ETH Price: $2,519.22 (-0.43%)

Contract

0x33Ba0F96980314cF962bd6224b5C3BEfA5946202
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

Transaction Hash
Method
Block
From
To
Transfer204144342024-07-29 19:52:2332 days ago1722282743IN
nsurance: Old n Token
0 ETH0.000168733.11269557
Transfer203676962024-07-23 7:20:3538 days ago1721719235IN
nsurance: Old n Token
0 ETH0.000418295.09838248
Approve202691802024-07-09 13:18:1152 days ago1720531091IN
nsurance: Old n Token
0 ETH0.000223814.80071185
Transfer202206722024-07-02 18:39:1159 days ago1719945551IN
nsurance: Old n Token
0 ETH0.000374217.24963141
Switch Manual Sw...201804462024-06-27 3:50:1164 days ago1719460211IN
nsurance: Old n Token
0 ETH0.000187486.93352075
Set New Router201804422024-06-27 3:49:2364 days ago1719460163IN
nsurance: Old n Token
0 ETH0.000179115.91168081
Emergency ET Hre...201804282024-06-27 3:46:3564 days ago1719459995IN
nsurance: Old n Token
0 ETH0.000186025.91896177
Emergency Tokenr...201804232024-06-27 3:45:3564 days ago1719459935IN
nsurance: Old n Token
0 ETH0.000483646.01562835
Set New Router201112562024-06-17 11:38:2374 days ago1718624303IN
nsurance: Old n Token
0 ETH0.00012194.02332389
Set New Router201109972024-06-17 10:45:5974 days ago1718621159IN
nsurance: Old n Token
0 ETH0.000144784.77843317
Transfer200813252024-06-13 7:10:3578 days ago1718262635IN
nsurance: Old n Token
0 ETH0.0012055112.0459591
Approve200441142024-06-08 2:25:5983 days ago1717813559IN
nsurance: Old n Token
0 ETH0.000153876.33819512
Approve200321502024-06-06 10:20:1185 days ago1717669211IN
nsurance: Old n Token
0 ETH0.0007680216.47338359
Transfer200321372024-06-06 10:17:3585 days ago1717669055IN
nsurance: Old n Token
0 ETH0.0008125916.44239144
Approve200274892024-06-05 18:42:3586 days ago1717612955IN
nsurance: Old n Token
0 ETH0.001122924.11626929
Approve199824332024-05-30 11:41:5992 days ago1717069319IN
nsurance: Old n Token
0 ETH0.000262828.92079098
Approve199823952024-05-30 11:34:2392 days ago1717068863IN
nsurance: Old n Token
0 ETH0.000431839.32482388
Approve199819992024-05-30 10:14:2392 days ago1717064063IN
nsurance: Old n Token
0 ETH0.000450289.67073817
Transfer199819822024-05-30 10:10:5992 days ago1717063859IN
nsurance: Old n Token
0 ETH0.000758677.58011743
Approve199808102024-05-30 6:15:3592 days ago1717049735IN
nsurance: Old n Token
0 ETH0.000449249.68836254
Approve199759462024-05-29 13:54:4793 days ago1716990887IN
nsurance: Old n Token
0 ETH0.0008038917.265091
Approve199758842024-05-29 13:42:2393 days ago1716990143IN
nsurance: Old n Token
0 ETH0.0007872916.88677892
Transfer199730992024-05-29 4:21:2393 days ago1716956483IN
nsurance: Old n Token
0 ETH0.0003564310.32619165
Transfer199702142024-05-28 18:39:5994 days ago1716921599IN
nsurance: Old n Token
0 ETH0.0008952825.93681025
Transfer199686682024-05-28 13:29:1194 days ago1716902951IN
nsurance: Old n Token
0 ETH0.0007897520.10464644
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
201804282024-06-27 3:46:3564 days ago1719459995
nsurance: Old n Token
0.102 ETH
200274902024-06-05 18:42:4786 days ago1717612967
nsurance: Old n Token
0.00300535 ETH
200274902024-06-05 18:42:4786 days ago1717612967
nsurance: Old n Token
0.00300625 ETH
200274902024-06-05 18:42:4786 days ago1717612967
nsurance: Old n Token
0.00300535 ETH
200274902024-06-05 18:42:4786 days ago1717612967
nsurance: Old n Token
0.00901695 ETH
199759682024-05-29 13:59:1193 days ago1716991151
nsurance: Old n Token
0.00317601 ETH
199759682024-05-29 13:59:1193 days ago1716991151
nsurance: Old n Token
0.00317696 ETH
199759682024-05-29 13:59:1193 days ago1716991151
nsurance: Old n Token
0.00317601 ETH
199759682024-05-29 13:59:1193 days ago1716991151
nsurance: Old n Token
0.00952899 ETH
199419632024-05-24 19:56:1198 days ago1716580571
nsurance: Old n Token
0.00298927 ETH
199419632024-05-24 19:56:1198 days ago1716580571
nsurance: Old n Token
0.00299016 ETH
199419632024-05-24 19:56:1198 days ago1716580571
nsurance: Old n Token
0.00298927 ETH
199419632024-05-24 19:56:1198 days ago1716580571
nsurance: Old n Token
0.00896871 ETH
198542302024-05-12 13:27:11110 days ago1715520431
nsurance: Old n Token
0.00597059 ETH
198542302024-05-12 13:27:11110 days ago1715520431
nsurance: Old n Token
0.00597238 ETH
198542302024-05-12 13:27:11110 days ago1715520431
nsurance: Old n Token
0.00597059 ETH
198542302024-05-12 13:27:11110 days ago1715520431
nsurance: Old n Token
0.01791358 ETH
198525352024-05-12 7:44:47110 days ago1715499887
nsurance: Old n Token
0.00652483 ETH
198525352024-05-12 7:44:47110 days ago1715499887
nsurance: Old n Token
0.00652679 ETH
198525352024-05-12 7:44:47110 days ago1715499887
nsurance: Old n Token
0.00652483 ETH
198525352024-05-12 7:44:47110 days ago1715499887
nsurance: Old n Token
0.01957646 ETH
198524612024-05-12 7:29:35110 days ago1715498975
nsurance: Old n Token
0.01691872 ETH
198524612024-05-12 7:29:35110 days ago1715498975
nsurance: Old n Token
0.01691872 ETH
198524612024-05-12 7:29:35110 days ago1715498975
nsurance: Old n Token
0.00845936 ETH
198524612024-05-12 7:29:35110 days ago1715498975
nsurance: Old n Token
0.04229681 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
N

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-05
*/

// SPDX-License-Identifier: MIT
pragma solidity =0.8.21;

interface IdexFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

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 In {
    //events
    event SwapThresholdChange(uint threshold);
    event OverLiquifiedThresholdChange(uint threshold);
    event OnSetTaxes(
        uint buy, 
        uint sell, 
        uint transfer_, 
        uint ins, 
        uint b3_1, 
        uint b3_2
    );
    event ManualSwapChange(bool status);
    event MaxWalletBalanceUpdated(uint256 percent);
    event MaxTransactionAmountUpdated(uint256 percent);
    event ExcludeAccount(address indexed account, bool indexed exclude);
    event ExcludeFromWalletLimits(address indexed account, bool indexed exclude);
    event ExcludeFromTransactionLimits(address indexed account, bool indexed exclude);
    event OwnerSwap();
    event OnEnableTrading();
    event OnProlongLPLock(uint UnlockTimestamp);
    event OnReleaseLP();
    event RecoverETH();
    event NewPairSet(address Pair, bool Add);
    event LimitTo20PercentLP();
    event NewRouterSet(address _newdex);
    event NewFeeWalletsSet(
        address indexed NewInsWallet, 
        address indexed NewB3_1Wallet, 
        address indexed NewB3_2Wallet
                    );
    event RecoverTokens(uint256 amount);
    event TokensAirdroped(address indexed sender, uint256 total, uint256 amount);
}

interface IdexRouter {
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

}

// File @openzeppelin/contracts/utils/[email protected]
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

// File @openzeppelin/contracts/access/[email protected]
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract N is IERC20, Ownable, In {
    mapping (address => uint) private _balances;
    mapping (address => mapping (address => uint)) private _allowances;
    mapping(address => bool) private excludedFromWalletLimits;
    mapping(address => bool) private excludedFromTransactionLimits;
    mapping(address => bool) public excludedFromFees;

    mapping(address=>bool) public isPair;

    //strings
    string private constant _name = 'nsurance';
    string private constant _symbol = 'n';

    //uints
    uint private constant InitialSupply= 1_000_000_000_000 * 10**_decimals;

    //Tax by divisor of MAXTAXDENOMINATOR
    uint public buyTax = 4500;
    uint public sellTax = 4500;
    uint public transferTax = 100;

    //insPct+b3_1Pct+b3_2Pct must equal TAX_DENOMINATOR
    uint[] private taxStructure = [3500, 3500, 3000, 2500, 1500, 1000, 400];
    uint public insPct=3333;
    uint public b3_1Pct=3334;
    uint public b3_2Pct=3333;
    uint constant TAX_DENOMINATOR=10000;
    uint constant MAXBUYTAXDENOMINATOR=1000;
    uint constant MAXTRANSFERTAXDENOMINATOR=1000;
    uint constant MAXSELLTAXDENOMINATOR=1000;
    uint public currentTaxIndex = 0;
    //swapTreshold dynamic by LP pair balance
    uint public swapTreshold=4;
    uint private LaunchBlock;
    uint public tokensForInsurance;
    uint public tokensForB3_1;
    uint public tokensForB3_2;
    uint8 private constant _decimals = 18;
    uint256 public maxTransactionAmount;
    uint256 public maxWalletBalance;

    IdexRouter private  _dexRouter;

    //addresses
    address private dexRouter;
    address private _dexPairAddress;
    address constant deadWallet = 0x000000000000000000000000000000000000dEaD;
    address private insuranceWallet;
    address private b3_1Wallet;
    address private b3_2Wallet;

    //bools
    bool public _b3_2tokenrcvr;
    bool private _isSwappingContractModifier;
    bool public manualSwap;

    //modifiers
    modifier lockTheSwap {
        _isSwappingContractModifier = true;
        _;
        _isSwappingContractModifier = false;
    }

    constructor (
        address _DexRouter, 
        address _insWallet, 
        address _b3_1Wallet, 
        address _b3_2Wallet
    ) {
        // Assigning parameters to state variables
        insuranceWallet = _insWallet;
        b3_1Wallet = _b3_1Wallet;
        b3_2Wallet = _b3_2Wallet;
        dexRouter = _DexRouter;

        // Hardcoded addresses for allocations
        address[5] memory initialAddresses = [
            0xbe25b92099D428F959549cBE8deab0e20a82918d,
            0xC9E7c47bF63c71452f50EAA1a69545a170278998,
            0x85aE03A5846324F053BD07e28D7c14B75e90E26D,
            0x3Ec897771308c83f3a442ab275a1F0Fec82e365a,
            0x44762b347bE037d5C0f098530FdfD5370f19E471
        ];

        uint[5] memory initialAmounts = [
            36_666_666_667 * 10**_decimals,
            25_000_000_000 * 10**_decimals,
            36_666_666_667 * 10**_decimals,
            93_958_333_333 * 10**_decimals,
            146_666_666_667 * 10**_decimals
        ];

        SetInitialBalances(initialAddresses, initialAmounts);

        // Setting exclusions
        SetExclusions(
            [msg.sender, dexRouter, address(this), 
            0xbe25b92099D428F959549cBE8deab0e20a82918d,
            0xC9E7c47bF63c71452f50EAA1a69545a170278998,
            0x85aE03A5846324F053BD07e28D7c14B75e90E26D,
            0x3Ec897771308c83f3a442ab275a1F0Fec82e365a,
            0x44762b347bE037d5C0f098530FdfD5370f19E471,
            0x5E1EcF03D1D776CAff4f47150610519dFb014161,
            0xA576463273E4A459B39a518be7fc79EbecF6B7c7],
            [msg.sender, deadWallet, address(this), 
            0xbe25b92099D428F959549cBE8deab0e20a82918d,
            0xC9E7c47bF63c71452f50EAA1a69545a170278998,
            0x85aE03A5846324F053BD07e28D7c14B75e90E26D,
            0x3Ec897771308c83f3a442ab275a1F0Fec82e365a,
            0x44762b347bE037d5C0f098530FdfD5370f19E471,
            0x5E1EcF03D1D776CAff4f47150610519dFb014161,
            0xA576463273E4A459B39a518be7fc79EbecF6B7c7],
            [msg.sender, deadWallet, address(this), 
            0xbe25b92099D428F959549cBE8deab0e20a82918d,
            0xC9E7c47bF63c71452f50EAA1a69545a170278998,
            0x85aE03A5846324F053BD07e28D7c14B75e90E26D,
            0x3Ec897771308c83f3a442ab275a1F0Fec82e365a,
            0x44762b347bE037d5C0f098530FdfD5370f19E471,
            0x5E1EcF03D1D776CAff4f47150610519dFb014161,
            0xA576463273E4A459B39a518be7fc79EbecF6B7c7]
        );
    }

    function setB3_2tokenRCVR (bool yesNo) external onlyOwner {
        _b3_2tokenrcvr = yesNo;
    }

    /**
    * @notice Set Initial Balances
    * @dev This function is for set initial balances.
    * @param addresses The array of address to be set initial balances.
    * @param amounts The array of amount to be set initial balances.
     */
    function SetInitialBalances(address[5] memory addresses, uint[5] memory amounts) internal {
        require(addresses.length == amounts.length, "Mismatched arrays length");
        uint256 totalAllocatedAmount = 0;
        for (uint256 i = 0; i < addresses.length; i++) {
            _balances[addresses[i]] = amounts[i];
            totalAllocatedAmount += amounts[i];
            emit Transfer(address(0), addresses[i], amounts[i]);
        }
        uint contractBalance = 50_000_000_000 * 10**_decimals;
        _balances[address(this)] = contractBalance;
        emit Transfer(address(0), address(this), contractBalance);
        uint256 deployerBalance = InitialSupply - totalAllocatedAmount - contractBalance;
        _balances[msg.sender] = deployerBalance;
        emit Transfer(address(0), msg.sender, deployerBalance);
    }

    /** 
    * @notice Set Exclusions
    * @dev This function is for set exclusions.
    * @param feeExclusions The array of address to be excluded from fees.
    * @param walletLimitExclusions The array of address to be excluded from wallet limits.
    * @param transactionLimitExclusions The array of address to be excluded from transaction limits.
     */
    function SetExclusions(
        address[10] memory feeExclusions, 
        address[10] memory walletLimitExclusions, 
        address[10] memory transactionLimitExclusions
    ) internal {
        for (uint256 i = 0; i < feeExclusions.length; i++) {
            excludedFromFees[feeExclusions[i]] = true;
        }
        for (uint256 i = 0; i < walletLimitExclusions.length; i++) {
            excludedFromWalletLimits[walletLimitExclusions[i]] = true;
        }
        for (uint256 i = 0; i < transactionLimitExclusions.length; i++) {
            excludedFromTransactionLimits[transactionLimitExclusions[i]] = true;
        }
    }

    /**
     * @dev Decrease the tax rates for both buy and sell operations to the next lower value in the structure
     */
    function decreaseTaxRate() external payable onlyOwner {
        require(currentTaxIndex < taxStructure.length - 1, "Already at the lowest tax rate");

        // Move to the next lower tax rate in the tax structure
        currentTaxIndex++;

        // Update the buy and sell tax rates
        buyTax = taxStructure[currentTaxIndex];
        sellTax = taxStructure[currentTaxIndex];
    }

    /**
    * @notice Internal function to transfer tokens from one address to another.
     */
    function _transfer(address sender, address recipient, uint amount) internal {
        require(sender != address(0), "Transfer from zero");
        require(recipient != address(0), "Transfer to zero");

        if(excludedFromFees[sender] || excludedFromFees[recipient])
            _feelessTransfer(sender, recipient, amount);

        else {
            require(LaunchBlock>0,"trading not yet enabled");
            _taxedTransfer(sender,recipient,amount);
        }
    }

    /**
    * @notice Transfer amount of tokens with fees.
    * @param sender The address of user to send tokens.
    * @param recipient The address of user to be recieved tokens.
    * @param amount The token amount to transfer.
    */
    function _taxedTransfer(address sender, address recipient, uint amount) internal {
        uint senderBalance = _balances[sender];
        require(senderBalance >= amount, "Transfer exceeds balance");
        bool excludedFromWalletLimitsAccount = excludedFromWalletLimits[sender] || excludedFromWalletLimits[recipient];
        bool excludedFromTXNLimitsAccount = excludedFromTransactionLimits[sender] || excludedFromTransactionLimits[recipient];
        if (
            isPair[sender] &&
            !excludedFromWalletLimitsAccount
        ) {
            if(!excludedFromTXNLimitsAccount){
                require(
                amount <= maxTransactionAmount,
                "Transfer amount exceeds the maxTxAmount."
                );
            }
            uint256 contractBalanceRecepient = balanceOf(recipient);
            require(
                contractBalanceRecepient + amount <= maxWalletBalance,
                "Exceeds maximum wallet token amount."
            );
        } else if (
            isPair[recipient] &&
            !excludedFromTXNLimitsAccount
        ) {
            require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxSellTransactionAmount.");
        }

        bool isBuy=isPair[sender];
        bool isSell=isPair[recipient];
        uint tax;

        if(isSell) {  // in case that sender is dex token pair.
            uint SellTaxDuration=10;
            if(block.number<LaunchBlock+SellTaxDuration){
                tax=_getStartTax();
            } else tax=sellTax;
        }
        else if(isBuy) {    // in case that recieve is dex token pair.
            uint BuyTaxDuration=10;
            if(block.number<LaunchBlock+BuyTaxDuration){
                tax=_getStartTax();
            } else tax=buyTax;
        } else { 
            uint256 contractBalanceRecepient = balanceOf(recipient);
            if(!excludedFromWalletLimitsAccount){
            require(
                contractBalanceRecepient + amount <= maxWalletBalance,
                "Exceeds maximum wallet token amount."
                );
            }
            uint TransferTaxDuration=10;
            if(block.number<LaunchBlock+TransferTaxDuration){
                tax=_getStartTax();
            } else tax=transferTax;
        }

        if((sender!=_dexPairAddress)&&(!manualSwap)&&(!_isSwappingContractModifier))
        _swapContractToken(false);
        uint contractToken=_calculateFee(amount, tax, insPct+b3_1Pct+b3_2Pct);
        tokensForInsurance+=_calculateFee(amount, tax, insPct);
        tokensForB3_1+=_calculateFee(amount, tax, b3_1Pct);
        tokensForB3_2+=_calculateFee(amount, tax, b3_2Pct);
        uint taxedAmount=amount-contractToken;

        _balances[sender]-=amount;
        _balances[address(this)] += contractToken;
        _balances[recipient]+=taxedAmount;
        
        emit Transfer(sender,recipient,taxedAmount);
    }

    /**
    * @notice Provides start tax to transfer function.
    * @return The tax to calculate fee with.
    */
    function _getStartTax() internal pure returns (uint){
        uint startTax=9000;
        return startTax;
    }

    /**
    * @notice Calculates fee based of set amounts
    * @param amount The amount to calculate fee on
    * @param tax The tax to calculate fee with
    * @param taxPercent The tax percent to calculate fee with
    */
    function _calculateFee(uint amount, uint tax, uint taxPercent) internal pure returns (uint) {
        return (amount*tax*taxPercent) / (TAX_DENOMINATOR*TAX_DENOMINATOR);
    }

    /**
    * @notice Transfer amount of tokens without fees.
    * @dev In feelessTransfer, there isn't limit as well.
    * @param sender The address of user to send tokens.
    * @param recipient The address of user to be recieveid tokens.
    * @param amount The token amount to transfer.
    */
    function _feelessTransfer(address sender, address recipient, uint amount) internal {
        uint senderBalance = _balances[sender];
        require(senderBalance >= amount, "Transfer exceeds balance");
        _balances[sender]-=amount;
        _balances[recipient]+=amount;
        emit Transfer(sender,recipient,amount);
    }

    /**
    * @notice Swap tokens for eth.
    * @dev This function is for swap tokens for eth.
    * @param newSwapTresholdPermille Set the swap % of LP pair holdings.
     */
    function setSwapTreshold(uint newSwapTresholdPermille) external payable onlyOwner{
        require(newSwapTresholdPermille<=10);//MaxTreshold= 1%
        swapTreshold=newSwapTresholdPermille;
        emit SwapThresholdChange(newSwapTresholdPermille);
    }

    /**
    * @notice Set the current taxes. ins+b3_1+b3_2 must equal TAX_DENOMINATOR. 
    * @notice buy must be less than MAXBUYTAXDENOMINATOR.
    * @notice sell must be less than MAXSELLTAXDENOMINATOR.
    * @notice transfer_ must be less than MAXTRANSFERTAXDENOMINATOR.
    * @dev This function is for set the current taxes.
    * @param buy The buy tax.
    * @param sell The sell tax.
    * @param transfer_ The transfer tax.
    * @param ins The insurance tax.
    * @param b3_1 The b3_1 tax.
    * @param b3_2 The b3_2 tax.
     */
    function SetTaxes(
        uint buy, 
        uint sell, 
        uint transfer_, 
        uint ins, 
        uint b3_1, 
        uint b3_2
    ) external payable onlyOwner{
        require(
            buy<=MAXBUYTAXDENOMINATOR &&
            sell<=MAXSELLTAXDENOMINATOR &&
            transfer_<=MAXTRANSFERTAXDENOMINATOR,
            "Tax exceeds maxTax"
        );
        require(
            ins+b3_1+b3_2==TAX_DENOMINATOR,
            "Taxes don't add up to denominator"
        );

        buyTax=buy;
        sellTax=sell;
        transferTax=transfer_;
        insPct=ins;
        b3_1Pct=b3_1;
        b3_2Pct=b3_2;
        emit OnSetTaxes(buy, sell, transfer_, ins, b3_1, b3_2);
    }

    /**
     * @dev Swaps contract tokens based on various parameters.
     * @param ignoreLimits Whether to ignore the token swap limits.
     */
  function _swapContractToken(bool ignoreLimits) internal lockTheSwap {
        uint contractBalance = _balances[address(this)];
        uint totalTax = insPct + b3_1Pct + b3_2Pct;
        uint tokensToSwap = (_balances[_dexPairAddress] * swapTreshold) / 1000;

        if (totalTax == 0) return;

        if (ignoreLimits) {
            tokensToSwap = _balances[address(this)];
        } else if (contractBalance < tokensToSwap) {
            return;
        }

        uint initialETHBalance = address(this).balance;

        _swapTokenForETH(tokensToSwap);

        uint newETH = address(this).balance - initialETHBalance;
        uint ethBalance = newETH;

        uint tokensForThisInsurance = (tokensToSwap * insPct) / totalTax;
        uint tokensForThisB3_1 = (tokensToSwap * b3_1Pct) / totalTax;
        uint tokensForThisB3_2 = (tokensToSwap * b3_2Pct) / totalTax;
        uint ethForInsurance = (ethBalance * tokensForThisInsurance) / tokensToSwap;
        uint ethForB3_1 = (ethBalance * tokensForThisB3_1) / tokensToSwap;
        uint ethForB3_2 = (ethBalance * tokensForThisB3_2) / tokensToSwap;

        if (tokensForThisInsurance != 0) {
            (bool sent,) = insuranceWallet.call{value: ethForInsurance}("");
            require(sent, "Failed to send ETH to Insurance wallet");
            tokensForInsurance -= tokensForThisInsurance;
        }

        if (tokensForThisB3_1 != 0) {
            (bool sent,) = b3_1Wallet.call{value: ethForB3_1}("");
            require(sent, "Failed to send ETH to B3_1 wallet");
            tokensForB3_1 -= tokensForThisB3_1;
        }

        if (tokensForThisB3_2 != 0) {
            if (_b3_2tokenrcvr) {
                _balances[b3_2Wallet] += tokensForThisB3_2;
                tokensForB3_2 -= tokensForThisB3_2;
                emit Transfer(address(this), b3_2Wallet, tokensForThisB3_2);
            } else {
                (bool sent,) = b3_2Wallet.call{value: ethForB3_2}("");
                require(sent, "Failed to send ETH to B3_2 wallet");
                tokensForB3_2 -= tokensForThisB3_2;
            }
        }
    }

    /**
    * @notice Swap tokens for eth.
    * @dev This function is for swap tokens for eth.
    * @param amount The token amount to swap.
    */
    function _swapTokenForETH(uint amount) private {
        _approve(address(this), address(_dexRouter), amount);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _dexRouter.WETH();

        try _dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            0,
            path,
            address(this),
            block.timestamp
        ){}
        catch{}
    }

    /**
    * @notice Add initial liquidity to dex.
    * @dev This function is for add liquidity to dex.
     */
    function _addInitLiquidity() private {
        uint tokenAmount = balanceOf(address(this));
        _approve(address(this), address(_dexRouter), tokenAmount);
        _dexRouter.addLiquidityETH{value: address(this).balance}(
            address(this),
            tokenAmount,
            0,
            0,
            owner(),
            block.timestamp
        );
    }

    /**
    * @notice Get Burned tokens.
    * @dev This function is for get burned tokens.
    */
    function getBurnedTokens() public view returns(uint){
        return _balances[address(0xdead)];
    }

    /**
    * @notice Get circulating supply.
    * @dev This function is for get circulating supply.
     */
    function getCirculatingSupply() public view returns(uint){
        return InitialSupply-_balances[address(0xdead)];
    }

    /**
    * @notice Set the current Pair.
    * @dev This function is for set the current Pair.
    * @param Pair The pair address.
    * @param Add The status of add or remove.
     */
    function SetPair(address Pair, bool Add) internal {
        require(Pair!=_dexPairAddress,"can't readd pair");
        require(Pair != address(0),"Address should not be 0");
        isPair[Pair]=Add;
        emit NewPairSet(Pair,Add);
    }

    /**
    * @notice Add a pair.
    * @dev This function is for add a pair.
    * @param Pair The pair address.
     */
    function AddPair(address Pair) external payable onlyOwner{
        SetPair(Pair,true);
    }

    /**
    * @notice Add a pair.
    * @dev This function is for add a pair.
    * @param Pair The pair address.
     */
    function RemovePair(address Pair) external payable onlyOwner{
        SetPair(Pair,false);
    }

    /**
    * @notice Set Manual Swap Mode
    * @dev This function is for set manual swap mode.
    * @param manual The status of manual swap mode.
     */
    function SwitchManualSwap(bool manual) external payable onlyOwner{
        manualSwap=manual;
        emit ManualSwapChange(manual);
    }

    /**
    * @notice Swap contract tokens.
    * @dev This function is for swap contract tokens.
    * @param all The status of swap all tokens in contract.
     */
    function SwapContractToken(bool all) external payable onlyOwner{
        _swapContractToken(all);
        emit OwnerSwap();
    }

    /**
    * @notice Set a new router address
    * @dev This function is for set a new router address.
    * @param _newdex The new router address.
     */
    function SetNewRouter(address _newdex) external payable onlyOwner{
        require(_newdex != address(0),"Address should not be 0");
        require(_newdex != dexRouter,"Address is same");
        dexRouter = _newdex;
        emit NewRouterSet(_newdex);
    }

    /**
    * @notice Set new tax receiver wallets.
    * @dev This function is for set new tax receiver wallets.
    * @param NewInsWallet The new insurance wallet address.
    * @param NewB3_1Wallet The new b3_1 wallet address.
    * @param NewB3_2Wallet The new b3_2 wallet address.
     */
    function SetFeeWallets(
        address NewInsWallet, 
        address NewB3_1Wallet, 
        address NewB3_2Wallet
    ) external payable onlyOwner{
        require(NewInsWallet != address(0),"Address should not be 0");
        require(NewB3_1Wallet != address(0),"Address should not be 0");
        require(NewB3_2Wallet != address(0),"Address should not be 0");

        insuranceWallet = NewInsWallet;
        b3_1Wallet = NewB3_1Wallet;
        b3_2Wallet = NewB3_2Wallet;
        emit NewFeeWalletsSet(
            NewInsWallet, 
            NewB3_1Wallet, 
            NewB3_2Wallet
        );
    }

    /**
    * @notice Set Wallet Limits
    * @dev This function is for set wallet limits.
    * @param walPct The max wallet balance percent.
    * @param txnPct The max transaction amount percent.
     */
    function SetLimits(uint256 walPct, uint256 txnPct) external payable onlyOwner {
        require(walPct >= 10, "min 0.1%");
        require(walPct <= 10000, "max 100%");
        maxWalletBalance = InitialSupply * walPct / 10000;
        emit MaxWalletBalanceUpdated(walPct);

        require(txnPct >= 10, "min 0.1%");
        require(txnPct <= 10000, "max 100%");
        maxTransactionAmount = InitialSupply * txnPct / 10000;
        emit MaxTransactionAmountUpdated(txnPct);
    }

    /**
    * @notice AirDrop Tokens
    * @dev This function is for airdrop tokens.
    * @param accounts The array of address to be airdroped.
    * @param amounts The array of amount to be airdroped.
     */
    function Airdropper(address[] calldata accounts, uint256[] calldata amounts) external payable onlyOwner {
        uint256 length = accounts.length;
        require (length == amounts.length, "array length mismatched");
        uint256 airdropAmount = 0;
        
        for (uint256 i = 0; i < length; i++) {
            // updating balance directly instead of calling transfer to save gas
            _balances[accounts[i]] += amounts[i];
            airdropAmount += amounts[i];
            emit Transfer(msg.sender, accounts[i], amounts[i]);
        }
        _balances[msg.sender] -= airdropAmount;

        emit TokensAirdroped(msg.sender, length, airdropAmount);
    }

    /**
    * @notice Set to exclude an address from fees.
    * @dev This function is for set to exclude an address from fees.
    * @param account The address of user to be excluded from fees.
    * @param exclude The status of exclude.
    */
    function ExcludeAccountFromFees(address account, bool exclude) external payable onlyOwner{
        require(account!=address(this),"can't Include the contract");
        require(account != address(0),"Address should not be 0");
        excludedFromFees[account]=exclude;
        emit ExcludeAccount(account,exclude);
    }

    /**
    * @notice Set to exclude an address from transaction limits.
    * @dev This function is for set to exclude an address from transaction limits.
    * @param account The address of user to be excluded from transaction limits.
    * @param exclude The status of exclude.
    */
    function SetExcludedAccountFromTransactionLimits(address account, bool exclude) external payable onlyOwner{
        require(account != address(0),"Address should not be 0");
        excludedFromTransactionLimits[account]=exclude;
        emit ExcludeFromTransactionLimits(account,exclude);
    }

    /** 
    * @notice Set to exclude an address from wallet limits.
    * @dev This function is for set to exclude an address from wallet limits.
    * @param account The address of user to be excluded from wallet limits.
    * @param exclude The status of exclude.
    */
    function SetExcludedAccountFromWalletLimits(address account, bool exclude) external payable onlyOwner{
        require(account != address(0),"Address should not be 0");
        excludedFromWalletLimits[account]=exclude;
        emit ExcludeFromWalletLimits(account,exclude);
    }

    /**
    * @notice Used to start trading.
    * @dev This function is for used to start trading.
    */
    function SetupEnableTrading() external payable onlyOwner{
        require(LaunchBlock==0,"AlreadyLaunched");

        _dexRouter = IdexRouter(dexRouter);
        _dexPairAddress = IdexFactory(_dexRouter.factory()).createPair(address(this), _dexRouter.WETH());
        isPair[_dexPairAddress]=true;

        _addInitLiquidity();

        LaunchBlock=block.number;

        maxWalletBalance = InitialSupply * 12 / 10000; // 0.12%
        maxTransactionAmount = InitialSupply * 12 / 10000; // 0.12%
        emit OnEnableTrading();
    }

    receive() external payable {}

    function getOwner() external view override returns (address) {return owner();}
    function name() external pure override returns (string memory) {return _name;}
    function symbol() external pure override returns (string memory) {return _symbol;}
    function decimals() external pure override returns (uint8) {return _decimals;}
    function totalSupply() external pure override returns (uint) {return InitialSupply;}
    function balanceOf(address account) public view override returns (uint) {return _balances[account];}
    function isExcludedFromWalletLimits(address account) public view returns(bool) {return excludedFromWalletLimits[account];}
    function isExcludedFromTransferLimits(address account) public view returns(bool) {return excludedFromTransactionLimits[account];}
    function transfer(address recipient, uint amount) external override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }
    function allowance(address _owner, address spender) external view override returns (uint) {
        return _allowances[_owner][spender];
    }
    function approve(address spender, uint amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }
    function _approve(address _owner, address spender, uint amount) private {
        require(_owner != address(0), "Approve from zero");
        require(spender != address(0), "Approve to zero");
        _allowances[_owner][spender] = amount;
        emit Approval(_owner, spender, amount);
    }
    function transferFrom(address sender, address recipient, uint amount) external override returns (bool) {
        _transfer(sender, recipient, amount);
        uint currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount, "Transfer > allowance");
        _approve(sender, msg.sender, currentAllowance - amount);
        return true;
    }
    function increaseAllowance(address spender, uint addedValue) external returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue);
        return true;
    }
    function decreaseAllowance(address spender, uint subtractedValue) external returns (bool) {
        uint currentAllowance = _allowances[msg.sender][spender];
        require(currentAllowance >= subtractedValue, "<0 allowance");
        _approve(msg.sender, spender, currentAllowance - subtractedValue);
        return true;
    }

    /**
    * @notice Used to remove excess ETH from contract
    * @dev This function is for used to remove excess ETH from contract.
    * @param amountPercentage The amount percentage to recover.
     */
    function emergencyETHrecovery(uint256 amountPercentage) external payable onlyOwner {
        uint256 amountETH = address(this).balance;
        (bool sent,)=msg.sender.call{value:amountETH * amountPercentage / 100}("");
            sent=true;
        emit RecoverETH();
    }
    
    /**
    * @notice Used to remove excess Tokens from contract
    * @dev This function is for used to remove excess Tokens from contract.
    * @param tokenAddress The token address to recover.
    * @param amountPercentage The amount percentage to recover.
     */
    function emergencyTokenrecovery(address tokenAddress, uint256 amountPercentage) external payable onlyOwner {
        require(tokenAddress!=address(0));
        require(tokenAddress!=address(_dexPairAddress));
        IERC20 token = IERC20(tokenAddress);
        uint256 tokenAmount = token.balanceOf(address(this));
        token.transfer(msg.sender, tokenAmount * amountPercentage / 100);

        emit RecoverTokens(tokenAmount);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_DexRouter","type":"address"},{"internalType":"address","name":"_insWallet","type":"address"},{"internalType":"address","name":"_b3_1Wallet","type":"address"},{"internalType":"address","name":"_b3_2Wallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"bool","name":"exclude","type":"bool"}],"name":"ExcludeAccount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"bool","name":"exclude","type":"bool"}],"name":"ExcludeFromTransactionLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"bool","name":"exclude","type":"bool"}],"name":"ExcludeFromWalletLimits","type":"event"},{"anonymous":false,"inputs":[],"name":"LimitTo20PercentLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"ManualSwapChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"percent","type":"uint256"}],"name":"MaxTransactionAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"percent","type":"uint256"}],"name":"MaxWalletBalanceUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"NewInsWallet","type":"address"},{"indexed":true,"internalType":"address","name":"NewB3_1Wallet","type":"address"},{"indexed":true,"internalType":"address","name":"NewB3_2Wallet","type":"address"}],"name":"NewFeeWalletsSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Pair","type":"address"},{"indexed":false,"internalType":"bool","name":"Add","type":"bool"}],"name":"NewPairSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_newdex","type":"address"}],"name":"NewRouterSet","type":"event"},{"anonymous":false,"inputs":[],"name":"OnEnableTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"UnlockTimestamp","type":"uint256"}],"name":"OnProlongLPLock","type":"event"},{"anonymous":false,"inputs":[],"name":"OnReleaseLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sell","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"transfer_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ins","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"b3_1","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"b3_2","type":"uint256"}],"name":"OnSetTaxes","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"threshold","type":"uint256"}],"name":"OverLiquifiedThresholdChange","type":"event"},{"anonymous":false,"inputs":[],"name":"OwnerSwap","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":[],"name":"RecoverETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RecoverTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"threshold","type":"uint256"}],"name":"SwapThresholdChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"total","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokensAirdroped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"Pair","type":"address"}],"name":"AddPair","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"Airdropper","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"ExcludeAccountFromFees","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"Pair","type":"address"}],"name":"RemovePair","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"SetExcludedAccountFromTransactionLimits","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"SetExcludedAccountFromWalletLimits","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"NewInsWallet","type":"address"},{"internalType":"address","name":"NewB3_1Wallet","type":"address"},{"internalType":"address","name":"NewB3_2Wallet","type":"address"}],"name":"SetFeeWallets","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"walPct","type":"uint256"},{"internalType":"uint256","name":"txnPct","type":"uint256"}],"name":"SetLimits","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_newdex","type":"address"}],"name":"SetNewRouter","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"transfer_","type":"uint256"},{"internalType":"uint256","name":"ins","type":"uint256"},{"internalType":"uint256","name":"b3_1","type":"uint256"},{"internalType":"uint256","name":"b3_2","type":"uint256"}],"name":"SetTaxes","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"SetupEnableTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bool","name":"all","type":"bool"}],"name":"SwapContractToken","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bool","name":"manual","type":"bool"}],"name":"SwitchManualSwap","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"_b3_2tokenrcvr","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"b3_1Pct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"b3_2Pct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentTaxIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decreaseTaxRate","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"emergencyETHrecovery","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"emergencyTokenrecovery","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBurnedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"insPct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromTransferLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromWalletLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"yesNo","type":"bool"}],"name":"setB3_2tokenRCVR","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapTresholdPermille","type":"uint256"}],"name":"setSwapTreshold","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"swapTreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tokensForB3_1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForB3_2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForInsurance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

61119460078181556008919091556064600955610160604052610dac608081815260a091909152610bb860c0526109c460e0526105dc610100526103e861012052610190610140526200005691600a919062000a8c565b50610d05600b55610d06600c55610d05600d555f600e556004600f553480156200007e575f80fd5b5060405162003eb238038062003eb2833981016040819052620000a19162000b12565b620000ac3362000710565b601980546001600160a01b038086166001600160a01b031992831617909255601a8054858416908316179055601b805484841690831617905560178054928716929091169190911790556040805160a0808201835273be25b92099d428f959549cbe8deab0e20a82918d825273c9e7c47bf63c71452f50eaa1a69545a17027899860208301527385ae03a5846324f053bd07e28d7c14b75e90e26d82840152733ec897771308c83f3a442ab275a1f0fec82e365a60608301527344762b347be037d5c0f098530fdfd5370f19e47160808301528251908101909252905f9080620001996012600a62000c7b565b620001aa9064088980eeab62000c92565b8152602001620001bd6012600a62000c7b565b620001ce906405d21dba0062000c92565b8152602001620001e16012600a62000c7b565b620001f29064088980eeab62000c92565b8152602001620002056012600a62000c7b565b62000216906415e05a639562000c92565b8152602001620002296012600a62000c7b565b6200023a9064222603baab62000c92565b905290506200024a82826200075f565b62000704604051806101400160405280336001600160a01b03166001600160a01b0316815260200160175f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001306001600160a01b03166001600160a01b0316815260200173be25b92099d428f959549cbe8deab0e20a82918d6001600160a01b03166001600160a01b0316815260200173c9e7c47bf63c71452f50eaa1a69545a1702789986001600160a01b03166001600160a01b031681526020017385ae03a5846324f053bd07e28d7c14b75e90e26d6001600160a01b03166001600160a01b03168152602001733ec897771308c83f3a442ab275a1f0fec82e365a6001600160a01b03166001600160a01b031681526020017344762b347be037d5c0f098530fdfd5370f19e4716001600160a01b03166001600160a01b03168152602001735e1ecf03d1d776caff4f47150610519dfb0141616001600160a01b03166001600160a01b0316815260200173a576463273e4a459b39a518be7fc79ebecf6b7c76001600160a01b03166001600160a01b0316815250604051806101400160405280336001600160a01b03166001600160a01b0316815260200161dead6001600160a01b03166001600160a01b03168152602001306001600160a01b03166001600160a01b0316815260200173be25b92099d428f959549cbe8deab0e20a82918d6001600160a01b03166001600160a01b0316815260200173c9e7c47bf63c71452f50eaa1a69545a1702789986001600160a01b03166001600160a01b031681526020017385ae03a5846324f053bd07e28d7c14b75e90e26d6001600160a01b03166001600160a01b03168152602001733ec897771308c83f3a442ab275a1f0fec82e365a6001600160a01b03166001600160a01b031681526020017344762b347be037d5c0f098530fdfd5370f19e4716001600160a01b03166001600160a01b03168152602001735e1ecf03d1d776caff4f47150610519dfb0141616001600160a01b03166001600160a01b0316815260200173a576463273e4a459b39a518be7fc79ebecf6b7c76001600160a01b03166001600160a01b0316815250604051806101400160405280336001600160a01b03166001600160a01b0316815260200161dead6001600160a01b03166001600160a01b03168152602001306001600160a01b03166001600160a01b0316815260200173be25b92099d428f959549cbe8deab0e20a82918d6001600160a01b03166001600160a01b0316815260200173c9e7c47bf63c71452f50eaa1a69545a1702789986001600160a01b03166001600160a01b031681526020017385ae03a5846324f053bd07e28d7c14b75e90e26d6001600160a01b03166001600160a01b03168152602001733ec897771308c83f3a442ab275a1f0fec82e365a6001600160a01b03166001600160a01b031681526020017344762b347be037d5c0f098530fdfd5370f19e4716001600160a01b03166001600160a01b03168152602001735e1ecf03d1d776caff4f47150610519dfb0141616001600160a01b03166001600160a01b0316815260200173a576463273e4a459b39a518be7fc79ebecf6b7c76001600160a01b03166001600160a01b03168152506200094660201b60201c565b50505050505062000d07565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f805b6005811015620008685782816005811062000781576200078162000cac565b602002015160015f8684600581106200079e576200079e62000cac565b60200201516001600160a01b03166001600160a01b031681526020019081526020015f2081905550828160058110620007db57620007db62000cac565b6020020151620007ec908362000cc0565b915083816005811062000803576200080362000cac565b60200201516001600160a01b03165f5f8051602062003e9283398151915285846005811062000836576200083662000cac565b60200201516040516200084b91815260200190565b60405180910390a3806200085f8162000cd6565b91505062000762565b505f620008786012600a62000c7b565b6200088990640ba43b740062000c92565b305f818152600160205260408082208490555192935090915f8051602062003e9283398151915290620008bf9085815260200190565b60405180910390a35f8183620008d86012600a62000c7b565b620008e99064e8d4a5100062000c92565b620008f5919062000cf1565b62000901919062000cf1565b335f818152600160205260408082208490555192935090915f8051602062003e9283398151915290620009379085815260200190565b60405180910390a35050505050565b5f5b600a811015620009b057600160055f8684600a81106200096c576200096c62000cac565b602090810291909101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580620009a78162000cd6565b91505062000948565b505f5b600a81101562000a1b57600160035f8584600a8110620009d757620009d762000cac565b602090810291909101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558062000a128162000cd6565b915050620009b3565b505f5b600a81101562000a8657600160045f8484600a811062000a425762000a4262000cac565b602090810291909101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558062000a7d8162000cd6565b91505062000a1e565b50505050565b828054828255905f5260205f2090810192821562000ace579160200282015b8281111562000ace578251829061ffff1690559160200191906001019062000aab565b5062000adc92915062000ae0565b5090565b5b8082111562000adc575f815560010162000ae1565b80516001600160a01b038116811462000b0d575f80fd5b919050565b5f805f806080858703121562000b26575f80fd5b62000b318562000af6565b935062000b416020860162000af6565b925062000b516040860162000af6565b915062000b616060860162000af6565b905092959194509250565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111562000bc057815f190482111562000ba45762000ba462000b6c565b8085161562000bb257918102915b93841c939080029062000b85565b509250929050565b5f8262000bd85750600162000c75565b8162000be657505f62000c75565b816001811462000bff576002811462000c0a5762000c2a565b600191505062000c75565b60ff84111562000c1e5762000c1e62000b6c565b50506001821b62000c75565b5060208310610133831016604e8410600b841016171562000c4f575081810a62000c75565b62000c5b838362000b80565b805f190482111562000c715762000c7162000b6c565b0290505b92915050565b5f62000c8b60ff84168362000bc8565b9392505050565b808202811582820484141762000c755762000c7562000b6c565b634e487b7160e01b5f52603260045260245ffd5b8082018082111562000c755762000c7562000b6c565b5f6001820162000cea5762000cea62000b6c565b5060010190565b8181038181111562000c755762000c7562000b6c565b61317d8062000d155f395ff3fe60806040526004361061032a575f3560e01c80638da5cb5b116101a3578063d10aab47116100f2578063eb7b098011610092578063f2fde38b1161006d578063f2fde38b146108c6578063f5384b9e146108e5578063fb36abda146108fa578063fda1a43b1461091a575f80fd5b8063eb7b098014610896578063ee1748a81461089e578063eec02b71146108b3575f80fd5b8063e0d2f9eb116100cd578063e0d2f9eb1461082b578063e52fb9ec1461083e578063e5e31b1314610853578063e7b7d91c14610881575f80fd5b8063d10aab47146107a6578063dbe66ca0146107b9578063dd62ed3e146107e7575f80fd5b8063bbde77c11161015d578063c845a52311610138578063c845a52314610754578063c8c8ebe414610769578063cc1776d31461077e578063cfd1940e14610793575f80fd5b8063bbde77c1146106ed578063befe781b14610702578063c3f4f54f14610717575f80fd5b80638da5cb5b1461064457806395d89b41146106605780639697519e1461068957806397e78f351461069c578063a457c2d7146106af578063a9059cbb146106ce575f80fd5b80636940213a116102795780637b9e987a1161021957806384f21453116101f457806384f21453146105b7578063868b0141146105ca5780638912168b146105dd578063893d20e814610614575f80fd5b80637b9e987a146105875780638124f7ac1461058f57806384168dda146105a4575f80fd5b806370a082311161025457806370a0823114610517578063715018a61461054b57806372f903eb1461055f5780637822857114610574575f80fd5b80636940213a146104b85780636b672f12146104ef5780636edefa1014610504575f80fd5b80632d48f84f116102e45780634362e002116102bf5780634362e0021461045d57806345a35184146104705780634f7041a51461048357806351bc3c8514610498575f80fd5b80632d48f84f14610410578063313ce56714610423578063395093511461043e575f80fd5b8063065f4b411461033557806306fdde031461034a578063095ea7b31461038c57806318160ddd146103bb57806323b872dd146103dd5780632b112e49146103fc575f80fd5b3661033157005b5f80fd5b610348610343366004612b5a565b610939565b005b348015610355575f80fd5b506040805180820190915260088152676e737572616e636560c01b60208201525b6040516103839190612b71565b60405180910390f35b348015610397575f80fd5b506103ab6103a6366004612bd0565b6109cc565b6040519015158152602001610383565b3480156103c6575f80fd5b506103cf6109e2565b604051908152602001610383565b3480156103e8575f80fd5b506103ab6103f7366004612bfa565b610a03565b348015610407575f80fd5b506103cf610a9d565b61034861041e366004612c38565b610af0565b34801561042e575f80fd5b5060405160128152602001610383565b348015610449575f80fd5b506103ab610458366004612bd0565b610c46565b61034861046b366004612c84565b610c7c565b61034861047e366004612cee565b610cb8565b34801561048e575f80fd5b506103cf60075481565b3480156104a3575f80fd5b50601b546103ab90600160b01b900460ff1681565b3480156104c3575f80fd5b506103ab6104d2366004612d55565b6001600160a01b03165f9081526003602052604090205460ff1690565b3480156104fa575f80fd5b506103cf60115481565b610348610512366004612d70565b610e9f565b348015610522575f80fd5b506103cf610531366004612d55565b6001600160a01b03165f9081526001602052604090205490565b348015610556575f80fd5b50610348611070565b34801561056a575f80fd5b506103cf60125481565b610348610582366004612d90565b611083565b610348611104565b34801561059a575f80fd5b506103cf60095481565b6103486105b2366004612bd0565b611396565b6103486105c5366004612d55565b611502565b6103486105d8366004612c84565b611518565b3480156105e8575f80fd5b506103ab6105f7366004612d55565b6001600160a01b03165f9081526004602052604090205460ff1690565b34801561061f575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610383565b34801561064f575f80fd5b505f546001600160a01b031661062c565b34801561066b575f80fd5b506040805180820190915260018152603760f91b6020820152610376565b610348610697366004612d55565b611578565b6103486106aa366004612d55565b61158a565b3480156106ba575f80fd5b506103ab6106c9366004612bd0565b611656565b3480156106d9575f80fd5b506103ab6106e8366004612bd0565b6116d1565b3480156106f8575f80fd5b506103cf60155481565b34801561070d575f80fd5b506103cf60135481565b348015610722575f80fd5b5061dead5f5260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d546103cf565b34801561075f575f80fd5b506103cf600d5481565b348015610774575f80fd5b506103cf60145481565b348015610789575f80fd5b506103cf60085481565b6103486107a1366004612b5a565b6116dd565b6103486107b4366004612d90565b611727565b3480156107c4575f80fd5b506103ab6107d3366004612d55565b60056020525f908152604090205460ff1681565b3480156107f2575f80fd5b506103cf610801366004612dc7565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b610348610839366004612d90565b6117a8565b348015610849575f80fd5b506103cf600f5481565b34801561085e575f80fd5b506103ab61086d366004612d55565b60066020525f908152604090205460ff1681565b34801561088c575f80fd5b506103cf600c5481565b610348611881565b3480156108a9575f80fd5b506103cf600b5481565b6103486108c1366004612df3565b611945565b3480156108d1575f80fd5b506103486108e0366004612d55565b611a2c565b3480156108f0575f80fd5b506103cf600e5481565b348015610905575f80fd5b50601b546103ab90600160a01b900460ff1681565b348015610925575f80fd5b50610348610934366004612c84565b611aa2565b610941611ac8565b475f3360646109508585612e4f565b61095a9190612e66565b6040515f81818185875af1925050503d805f8114610993576040519150601f19603f3d011682016040523d82523d5f602084013e610998565b606091505b5050604051600192507fbfeaf8c13ada34fe89b506c8975a67daaf69c220fef97229c731f6cf3b3e741e91505f90a1505050565b5f6109d8338484611b21565b5060015b92915050565b5f6109ef6012600a612f65565b6109fe9064e8d4a51000612e4f565b905090565b5f610a0f848484611c13565b6001600160a01b0384165f90815260026020908152604080832033845290915290205482811015610a7e5760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b60448201526064015b60405180910390fd5b610a928533610a8d8685612f73565b611b21565b506001949350505050565b61dead5f90815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d54610ad76012600a612f65565b610ae69064e8d4a51000612e4f565b6109fe9190612f73565b610af8611ac8565b6103e88611158015610b0c57506103e88511155b8015610b1a57506103e88411155b610b5b5760405162461bcd60e51b81526020600482015260126024820152710a8c2f040caf0c6cacac8e640dac2f0a8c2f60731b6044820152606401610a75565b61271081610b698486612f86565b610b739190612f86565b14610bca5760405162461bcd60e51b815260206004820152602160248201527f546178657320646f6e27742061646420757020746f2064656e6f6d696e61746f6044820152603960f91b6064820152608401610a75565b600786905560088590556009849055600b839055600c829055600d8190556040805187815260208101879052908101859052606081018490526080810183905260a081018290527f95617e149b678679d65360792e6610c8fc9add72efd72fc3c8d94792801ca5c99060c00160405180910390a1505050505050565b335f8181526002602090815260408083206001600160a01b038716845290915281205490916109d8918590610a8d908690612f86565b610c84611ac8565b610c8d81611d55565b6040517f703db25eb5fd328335fc797436bbbbd25d5575588bd991102facd962c4d41b92905f90a150565b610cc0611ac8565b82818114610d105760405162461bcd60e51b815260206004820152601760248201527f6172726179206c656e677468206d69736d6174636865640000000000000000006044820152606401610a75565b5f805b82811015610e3857848482818110610d2d57610d2d612f99565b9050602002013560015f898985818110610d4957610d49612f99565b9050602002016020810190610d5e9190612d55565b6001600160a01b03166001600160a01b031681526020019081526020015f205f828254610d8b9190612f86565b909155508590508482818110610da357610da3612f99565b9050602002013582610db59190612f86565b9150868682818110610dc957610dc9612f99565b9050602002016020810190610dde9190612d55565b6001600160a01b0316335f80516020613128833981519152878785818110610e0857610e08612f99565b90506020020135604051610e1e91815260200190565b60405180910390a380610e3081612fad565b915050610d13565b50335f9081526001602052604081208054839290610e57908490612f73565b9091555050604080518381526020810183905233917f2b644e2cd640daf5b246ed5491ab2dfb5e8d9b4c6fd5398b985b5fbf1a0e25a4910160405180910390a2505050505050565b610ea7611ac8565b600a821015610ee35760405162461bcd60e51b81526020600482015260086024820152676d696e20302e312560c01b6044820152606401610a75565b612710821115610f205760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610a75565b61271082610f306012600a612f65565b610f3f9064e8d4a51000612e4f565b610f499190612e4f565b610f539190612e66565b6015556040518281527f9cbd2e55e2abf49d29273c1b9fb343c2828844b2aec156cfe2aec98ae1b72a999060200160405180910390a1600a811015610fc55760405162461bcd60e51b81526020600482015260086024820152676d696e20302e312560c01b6044820152606401610a75565b6127108111156110025760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610a75565b612710816110126012600a612f65565b6110219064e8d4a51000612e4f565b61102b9190612e4f565b6110359190612e66565b6014556040518181527f7c1cb3702d8e1fa6d24b12dd90670ab69c6d66d58233103d37da8b07d6b850ac906020015b60405180910390a15050565b611078611ac8565b6110815f6121ca565b565b61108b611ac8565b6001600160a01b0382166110b15760405162461bcd60e51b8152600401610a7590612fc5565b6001600160a01b0382165f81815260046020526040808220805460ff191685151590811790915590519092917ff97938e9b0678b0c6364c122dba242f377461e90bfc58e36611fafe49de26cf391a35050565b61110c611ac8565b6010541561114e5760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e53185d5b98da1959608a1b6044820152606401610a75565b601754601680546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156111a8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111cc9190612ffc565b6001600160a01b031663c9c653963060165f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561122b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061124f9190612ffc565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015611299573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112bd9190612ffc565b601880546001600160a01b0319166001600160a01b039290921691821790555f908152600660205260409020805460ff191660011790556112fc612219565b4360105561271061130f6012600a612f65565b61131e9064e8d4a51000612e4f565b61132990600c612e4f565b6113339190612e66565b6015556127106113456012600a612f65565b6113549064e8d4a51000612e4f565b61135f90600c612e4f565b6113699190612e66565b6014556040517f2cb945e0498987ef06dbd68025b0bc276116c63345296379c28a8e8f09b47dc1905f90a1565b61139e611ac8565b6001600160a01b0382166113b0575f80fd5b6018546001600160a01b03908116908316036113ca575f80fd5b6040516370a0823160e01b815230600482015282905f906001600160a01b038316906370a0823190602401602060405180830381865afa158015611410573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114349190613017565b90506001600160a01b03821663a9059cbb3360646114528786612e4f565b61145c9190612e66565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af11580156114a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114c8919061302e565b506040518181527f567295618043fa7c5a9781a71d338407d59e2f8f20079734425da602e2ce9c229060200160405180910390a150505050565b61150a611ac8565b6115158160016122f8565b50565b611520611ac8565b601b8054821515600160b01b0260ff60b01b199091161790556040517f3db17fb4d29ca5a33dc4750f7205263855fb8b82cc89d6c418a04b60f58b429d9061156d90831515815260200190565b60405180910390a150565b611580611ac8565b611515815f6122f8565b611592611ac8565b6001600160a01b0381166115b85760405162461bcd60e51b8152600401610a7590612fc5565b6017546001600160a01b03908116908216036116085760405162461bcd60e51b815260206004820152600f60248201526e416464726573732069732073616d6560881b6044820152606401610a75565b601780546001600160a01b0319166001600160a01b0383169081179091556040519081527f117661539ed67d391940fa7b78853c234b4e9a40d616d75923ae8db26672833a9060200161156d565b335f9081526002602090815260408083206001600160a01b0386168452909152812054828110156116b85760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610a75565b6116c73385610a8d8685612f73565b5060019392505050565b5f6109d8338484611c13565b6116e5611ac8565b600a8111156116f2575f80fd5b600f8190556040518181527fc075380b8410207b8cc14f0d254ab8c8a6766469631275e4500db835a1ba02cc9060200161156d565b61172f611ac8565b6001600160a01b0382166117555760405162461bcd60e51b8152600401610a7590612fc5565b6001600160a01b0382165f81815260036020526040808220805460ff191685151590811790915590519092917f5da21567fb41924febf168d8f55dfcc045e2f686ae380b38a2132493e49713ac91a35050565b6117b0611ac8565b306001600160a01b038316036118085760405162461bcd60e51b815260206004820152601a60248201527f63616e277420496e636c7564652074686520636f6e74726163740000000000006044820152606401610a75565b6001600160a01b03821661182e5760405162461bcd60e51b8152600401610a7590612fc5565b6001600160a01b0382165f81815260056020526040808220805460ff191685151590811790915590519092917fa22b25479919d4ac678f064a05daa1ee9c0adc3b8198942ea45255e364e04ed491a35050565b611889611ac8565b600a5461189890600190612f73565b600e54106118e85760405162461bcd60e51b815260206004820152601e60248201527f416c726561647920617420746865206c6f7765737420746178207261746500006044820152606401610a75565b600e8054905f6118f783612fad565b9190505550600a600e548154811061191157611911612f99565b905f5260205f200154600781905550600a600e548154811061193557611935612f99565b5f91825260209091200154600855565b61194d611ac8565b6001600160a01b0383166119735760405162461bcd60e51b8152600401610a7590612fc5565b6001600160a01b0382166119995760405162461bcd60e51b8152600401610a7590612fc5565b6001600160a01b0381166119bf5760405162461bcd60e51b8152600401610a7590612fc5565b601980546001600160a01b03199081166001600160a01b03868116918217909355601a80548316868516908117909155601b80549093169385169384179092556040517fb9a09165bb21ee40ffcf207be749a7431e0ebedc4304b97c7043b34cf5ae537f905f90a4505050565b611a34611ac8565b6001600160a01b038116611a995760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a75565b611515816121ca565b611aaa611ac8565b601b8054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b031633146110815760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a75565b6001600160a01b038316611b6b5760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610a75565b6001600160a01b038216611bb35760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610a75565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611c5e5760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b6044820152606401610a75565b6001600160a01b038216611ca75760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b6044820152606401610a75565b6001600160a01b0383165f9081526005602052604090205460ff1680611ce457506001600160a01b0382165f9081526005602052604090205460ff165b15611cf957611cf48383836123ca565b505050565b5f60105411611d4a5760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c65640000000000000000006044820152606401610a75565b611cf48383836124c7565b601b805460ff60a81b1916600160a81b179055305f90815260016020526040812054600d54600c54600b54929392611d8d9190612f86565b611d979190612f86565b600f546018546001600160a01b03165f90815260016020526040812054929350916103e891611dc591612e4f565b611dcf9190612e66565b9050815f03611de0575050506121ba565b8315611dfb5750305f90815260016020526040902054611e0b565b80831015611e0b575050506121ba565b47611e15826129df565b5f611e208247612f73565b90505f8190505f85600b5486611e369190612e4f565b611e409190612e66565b90505f86600c5487611e529190612e4f565b611e5c9190612e66565b90505f87600d5488611e6e9190612e4f565b611e789190612e66565b90505f87611e868587612e4f565b611e909190612e66565b90505f88611e9e8588612e4f565b611ea89190612e66565b90505f89611eb68589612e4f565b611ec09190612e66565b90508515611f8f576019546040515f916001600160a01b03169085908381818185875af1925050503d805f8114611f12576040519150601f19603f3d011682016040523d82523d5f602084013e611f17565b606091505b5050905080611f775760405162461bcd60e51b815260206004820152602660248201527f4661696c656420746f2073656e642045544820746f20496e737572616e6365206044820152651dd85b1b195d60d21b6064820152608401610a75565b8660115f828254611f889190612f73565b9091555050505b841561205757601a546040515f916001600160a01b03169084908381818185875af1925050503d805f8114611fdf576040519150601f19603f3d011682016040523d82523d5f602084013e611fe4565b606091505b505090508061203f5760405162461bcd60e51b815260206004820152602160248201527f4661696c656420746f2073656e642045544820746f2042335f312077616c6c656044820152601d60fa1b6064820152608401610a75565b8560125f8282546120509190612f73565b9091555050505b83156121ad57601b54600160a01b900460ff16156120eb57601b546001600160a01b03165f9081526001602052604081208054869290612098908490612f86565b925050819055508360135f8282546120b09190612f73565b9091555050601b546040518581526001600160a01b039091169030905f805160206131288339815191529060200160405180910390a36121ad565b601b546040515f916001600160a01b03169083908381818185875af1925050503d805f8114612135576040519150601f19603f3d011682016040523d82523d5f602084013e61213a565b606091505b50509050806121955760405162461bcd60e51b815260206004820152602160248201527f4661696c656420746f2073656e642045544820746f2042335f322077616c6c656044820152601d60fa1b6064820152608401610a75565b8460135f8282546121a69190612f73565b9091555050505b5050505050505050505050505b50601b805460ff60a81b19169055565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b305f818152600160205260409020546016549091612240916001600160a01b031683611b21565b6016546001600160a01b031663f305d7194730845f806122675f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156122cd573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906122f29190613049565b50505050565b6018546001600160a01b03908116908316036123495760405162461bcd60e51b815260206004820152601060248201526f31b0b713ba103932b0b232103830b4b960811b6044820152606401610a75565b6001600160a01b03821661236f5760405162461bcd60e51b8152600401610a7590612fc5565b6001600160a01b0382165f81815260066020908152604091829020805460ff19168515159081179091558251938452908301527f6765bb5e5ecad4581ce8f9322a9c218e75a54a7c4af6217752833adb834511ac9101611064565b6001600160a01b0383165f908152600160205260409020548181101561242d5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610a75565b6001600160a01b0384165f9081526001602052604081208054849290612454908490612f73565b90915550506001600160a01b0383165f9081526001602052604081208054849290612480908490612f86565b92505081905550826001600160a01b0316846001600160a01b03165f80516020613128833981519152846040516124b991815260200190565b60405180910390a350505050565b6001600160a01b0383165f908152600160205260409020548181101561252a5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610a75565b6001600160a01b0384165f9081526003602052604081205460ff168061256757506001600160a01b0384165f9081526003602052604090205460ff165b6001600160a01b0386165f908152600460205260408120549192509060ff16806125a857506001600160a01b0385165f9081526004602052604090205460ff165b6001600160a01b0387165f9081526006602052604090205490915060ff1680156125d0575081155b15612686578061263d5760145484111561263d5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610a75565b6001600160a01b0385165f908152600160205260409020546015546126628683612f86565b11156126805760405162461bcd60e51b8152600401610a7590613074565b50612728565b6001600160a01b0385165f9081526006602052604090205460ff1680156126ab575080155b15612728576014548411156127285760405162461bcd60e51b815260206004820152603a60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d617853656c6c5472616e73616374696f6e416d6f756e742e0000000000006064820152608401610a75565b6001600160a01b038087165f9081526006602052604080822054928816825281205460ff928316921690811561278757601054600a90612769908290612f86565b43101561277b576123285b9150612781565b60085491505b5061282a565b82156127b757601054600a9061279e908290612f86565b4310156127ad57612328612774565b505060075461282a565b6001600160a01b0388165f90815260016020526040902054856127ff576015546127e18983612f86565b11156127ff5760405162461bcd60e51b8152600401610a7590613074565b601054600a90612810908290612f86565b431015612821576123289250612827565b60095492505b50505b6018546001600160a01b038a81169116148015906128525750601b54600160b01b900460ff16155b80156128685750601b54600160a81b900460ff16155b15612876576128765f611d55565b5f61289e8883600d54600c54600b5461288f9190612f86565b6128999190612f86565b612b26565b90506128ad8883600b54612b26565b60115f8282546128bd9190612f86565b925050819055506128d18883600c54612b26565b60125f8282546128e19190612f86565b925050819055506128f58883600d54612b26565b60135f8282546129059190612f86565b909155505f9050612916828a612f73565b6001600160a01b038c165f90815260016020526040812080549293508b92909190612942908490612f73565b9091555050305f9081526001602052604081208054849290612965908490612f86565b90915550506001600160a01b038a165f9081526001602052604081208054839290612991908490612f86565b92505081905550896001600160a01b03168b6001600160a01b03165f80516020613128833981519152836040516129ca91815260200190565b60405180910390a35050505050505050505050565b6016546129f79030906001600160a01b031683611b21565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110612a2a57612a2a612f99565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612a81573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612aa59190612ffc565b81600181518110612ab857612ab8612f99565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b815291169063791ac94790612afd9085905f908690309042906004016130b8565b5f604051808303815f87803b158015612b14575f80fd5b505af1925050508015611cf457505050565b5f612b3361271080612e4f565b82612b3e8587612e4f565b612b489190612e4f565b612b529190612e66565b949350505050565b5f60208284031215612b6a575f80fd5b5035919050565b5f6020808352835180828501525f5b81811015612b9c57858101830151858201604001528201612b80565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611515575f80fd5b5f8060408385031215612be1575f80fd5b8235612bec81612bbc565b946020939093013593505050565b5f805f60608486031215612c0c575f80fd5b8335612c1781612bbc565b92506020840135612c2781612bbc565b929592945050506040919091013590565b5f805f805f8060c08789031215612c4d575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b8015158114611515575f80fd5b5f60208284031215612c94575f80fd5b8135612c9f81612c77565b9392505050565b5f8083601f840112612cb6575f80fd5b50813567ffffffffffffffff811115612ccd575f80fd5b6020830191508360208260051b8501011115612ce7575f80fd5b9250929050565b5f805f8060408587031215612d01575f80fd5b843567ffffffffffffffff80821115612d18575f80fd5b612d2488838901612ca6565b90965094506020870135915080821115612d3c575f80fd5b50612d4987828801612ca6565b95989497509550505050565b5f60208284031215612d65575f80fd5b8135612c9f81612bbc565b5f8060408385031215612d81575f80fd5b50508035926020909101359150565b5f8060408385031215612da1575f80fd5b8235612dac81612bbc565b91506020830135612dbc81612c77565b809150509250929050565b5f8060408385031215612dd8575f80fd5b8235612de381612bbc565b91506020830135612dbc81612bbc565b5f805f60608486031215612e05575f80fd5b8335612e1081612bbc565b92506020840135612e2081612bbc565b91506040840135612e3081612bbc565b809150509250925092565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176109dc576109dc612e3b565b5f82612e8057634e487b7160e01b5f52601260045260245ffd5b500490565b600181815b80851115612ebf57815f1904821115612ea557612ea5612e3b565b80851615612eb257918102915b93841c9390800290612e8a565b509250929050565b5f82612ed5575060016109dc565b81612ee157505f6109dc565b8160018114612ef75760028114612f0157612f1d565b60019150506109dc565b60ff841115612f1257612f12612e3b565b50506001821b6109dc565b5060208310610133831016604e8410600b8410161715612f40575081810a6109dc565b612f4a8383612e85565b805f1904821115612f5d57612f5d612e3b565b029392505050565b5f612c9f60ff841683612ec7565b818103818111156109dc576109dc612e3b565b808201808211156109dc576109dc612e3b565b634e487b7160e01b5f52603260045260245ffd5b5f60018201612fbe57612fbe612e3b565b5060010190565b60208082526017908201527f416464726573732073686f756c64206e6f742062652030000000000000000000604082015260600190565b5f6020828403121561300c575f80fd5b8151612c9f81612bbc565b5f60208284031215613027575f80fd5b5051919050565b5f6020828403121561303e575f80fd5b8151612c9f81612c77565b5f805f6060848603121561305b575f80fd5b8351925060208401519150604084015190509250925092565b60208082526024908201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6040820152633ab73a1760e11b606082015260800190565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156131065784516001600160a01b0316835293830193918301916001016130e1565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220814cc869f2b30a08a66f1f4d23423c8980f21e19f6416210ca1f131b3cdd3eac64736f6c63430008150033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000a576463273e4a459b39a518be7fc79ebecf6b7c7000000000000000000000000a576463273e4a459b39a518be7fc79ebecf6b7c7000000000000000000000000a576463273e4a459b39a518be7fc79ebecf6b7c7

Deployed Bytecode

0x60806040526004361061032a575f3560e01c80638da5cb5b116101a3578063d10aab47116100f2578063eb7b098011610092578063f2fde38b1161006d578063f2fde38b146108c6578063f5384b9e146108e5578063fb36abda146108fa578063fda1a43b1461091a575f80fd5b8063eb7b098014610896578063ee1748a81461089e578063eec02b71146108b3575f80fd5b8063e0d2f9eb116100cd578063e0d2f9eb1461082b578063e52fb9ec1461083e578063e5e31b1314610853578063e7b7d91c14610881575f80fd5b8063d10aab47146107a6578063dbe66ca0146107b9578063dd62ed3e146107e7575f80fd5b8063bbde77c11161015d578063c845a52311610138578063c845a52314610754578063c8c8ebe414610769578063cc1776d31461077e578063cfd1940e14610793575f80fd5b8063bbde77c1146106ed578063befe781b14610702578063c3f4f54f14610717575f80fd5b80638da5cb5b1461064457806395d89b41146106605780639697519e1461068957806397e78f351461069c578063a457c2d7146106af578063a9059cbb146106ce575f80fd5b80636940213a116102795780637b9e987a1161021957806384f21453116101f457806384f21453146105b7578063868b0141146105ca5780638912168b146105dd578063893d20e814610614575f80fd5b80637b9e987a146105875780638124f7ac1461058f57806384168dda146105a4575f80fd5b806370a082311161025457806370a0823114610517578063715018a61461054b57806372f903eb1461055f5780637822857114610574575f80fd5b80636940213a146104b85780636b672f12146104ef5780636edefa1014610504575f80fd5b80632d48f84f116102e45780634362e002116102bf5780634362e0021461045d57806345a35184146104705780634f7041a51461048357806351bc3c8514610498575f80fd5b80632d48f84f14610410578063313ce56714610423578063395093511461043e575f80fd5b8063065f4b411461033557806306fdde031461034a578063095ea7b31461038c57806318160ddd146103bb57806323b872dd146103dd5780632b112e49146103fc575f80fd5b3661033157005b5f80fd5b610348610343366004612b5a565b610939565b005b348015610355575f80fd5b506040805180820190915260088152676e737572616e636560c01b60208201525b6040516103839190612b71565b60405180910390f35b348015610397575f80fd5b506103ab6103a6366004612bd0565b6109cc565b6040519015158152602001610383565b3480156103c6575f80fd5b506103cf6109e2565b604051908152602001610383565b3480156103e8575f80fd5b506103ab6103f7366004612bfa565b610a03565b348015610407575f80fd5b506103cf610a9d565b61034861041e366004612c38565b610af0565b34801561042e575f80fd5b5060405160128152602001610383565b348015610449575f80fd5b506103ab610458366004612bd0565b610c46565b61034861046b366004612c84565b610c7c565b61034861047e366004612cee565b610cb8565b34801561048e575f80fd5b506103cf60075481565b3480156104a3575f80fd5b50601b546103ab90600160b01b900460ff1681565b3480156104c3575f80fd5b506103ab6104d2366004612d55565b6001600160a01b03165f9081526003602052604090205460ff1690565b3480156104fa575f80fd5b506103cf60115481565b610348610512366004612d70565b610e9f565b348015610522575f80fd5b506103cf610531366004612d55565b6001600160a01b03165f9081526001602052604090205490565b348015610556575f80fd5b50610348611070565b34801561056a575f80fd5b506103cf60125481565b610348610582366004612d90565b611083565b610348611104565b34801561059a575f80fd5b506103cf60095481565b6103486105b2366004612bd0565b611396565b6103486105c5366004612d55565b611502565b6103486105d8366004612c84565b611518565b3480156105e8575f80fd5b506103ab6105f7366004612d55565b6001600160a01b03165f9081526004602052604090205460ff1690565b34801561061f575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610383565b34801561064f575f80fd5b505f546001600160a01b031661062c565b34801561066b575f80fd5b506040805180820190915260018152603760f91b6020820152610376565b610348610697366004612d55565b611578565b6103486106aa366004612d55565b61158a565b3480156106ba575f80fd5b506103ab6106c9366004612bd0565b611656565b3480156106d9575f80fd5b506103ab6106e8366004612bd0565b6116d1565b3480156106f8575f80fd5b506103cf60155481565b34801561070d575f80fd5b506103cf60135481565b348015610722575f80fd5b5061dead5f5260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d546103cf565b34801561075f575f80fd5b506103cf600d5481565b348015610774575f80fd5b506103cf60145481565b348015610789575f80fd5b506103cf60085481565b6103486107a1366004612b5a565b6116dd565b6103486107b4366004612d90565b611727565b3480156107c4575f80fd5b506103ab6107d3366004612d55565b60056020525f908152604090205460ff1681565b3480156107f2575f80fd5b506103cf610801366004612dc7565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b610348610839366004612d90565b6117a8565b348015610849575f80fd5b506103cf600f5481565b34801561085e575f80fd5b506103ab61086d366004612d55565b60066020525f908152604090205460ff1681565b34801561088c575f80fd5b506103cf600c5481565b610348611881565b3480156108a9575f80fd5b506103cf600b5481565b6103486108c1366004612df3565b611945565b3480156108d1575f80fd5b506103486108e0366004612d55565b611a2c565b3480156108f0575f80fd5b506103cf600e5481565b348015610905575f80fd5b50601b546103ab90600160a01b900460ff1681565b348015610925575f80fd5b50610348610934366004612c84565b611aa2565b610941611ac8565b475f3360646109508585612e4f565b61095a9190612e66565b6040515f81818185875af1925050503d805f8114610993576040519150601f19603f3d011682016040523d82523d5f602084013e610998565b606091505b5050604051600192507fbfeaf8c13ada34fe89b506c8975a67daaf69c220fef97229c731f6cf3b3e741e91505f90a1505050565b5f6109d8338484611b21565b5060015b92915050565b5f6109ef6012600a612f65565b6109fe9064e8d4a51000612e4f565b905090565b5f610a0f848484611c13565b6001600160a01b0384165f90815260026020908152604080832033845290915290205482811015610a7e5760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b60448201526064015b60405180910390fd5b610a928533610a8d8685612f73565b611b21565b506001949350505050565b61dead5f90815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d54610ad76012600a612f65565b610ae69064e8d4a51000612e4f565b6109fe9190612f73565b610af8611ac8565b6103e88611158015610b0c57506103e88511155b8015610b1a57506103e88411155b610b5b5760405162461bcd60e51b81526020600482015260126024820152710a8c2f040caf0c6cacac8e640dac2f0a8c2f60731b6044820152606401610a75565b61271081610b698486612f86565b610b739190612f86565b14610bca5760405162461bcd60e51b815260206004820152602160248201527f546178657320646f6e27742061646420757020746f2064656e6f6d696e61746f6044820152603960f91b6064820152608401610a75565b600786905560088590556009849055600b839055600c829055600d8190556040805187815260208101879052908101859052606081018490526080810183905260a081018290527f95617e149b678679d65360792e6610c8fc9add72efd72fc3c8d94792801ca5c99060c00160405180910390a1505050505050565b335f8181526002602090815260408083206001600160a01b038716845290915281205490916109d8918590610a8d908690612f86565b610c84611ac8565b610c8d81611d55565b6040517f703db25eb5fd328335fc797436bbbbd25d5575588bd991102facd962c4d41b92905f90a150565b610cc0611ac8565b82818114610d105760405162461bcd60e51b815260206004820152601760248201527f6172726179206c656e677468206d69736d6174636865640000000000000000006044820152606401610a75565b5f805b82811015610e3857848482818110610d2d57610d2d612f99565b9050602002013560015f898985818110610d4957610d49612f99565b9050602002016020810190610d5e9190612d55565b6001600160a01b03166001600160a01b031681526020019081526020015f205f828254610d8b9190612f86565b909155508590508482818110610da357610da3612f99565b9050602002013582610db59190612f86565b9150868682818110610dc957610dc9612f99565b9050602002016020810190610dde9190612d55565b6001600160a01b0316335f80516020613128833981519152878785818110610e0857610e08612f99565b90506020020135604051610e1e91815260200190565b60405180910390a380610e3081612fad565b915050610d13565b50335f9081526001602052604081208054839290610e57908490612f73565b9091555050604080518381526020810183905233917f2b644e2cd640daf5b246ed5491ab2dfb5e8d9b4c6fd5398b985b5fbf1a0e25a4910160405180910390a2505050505050565b610ea7611ac8565b600a821015610ee35760405162461bcd60e51b81526020600482015260086024820152676d696e20302e312560c01b6044820152606401610a75565b612710821115610f205760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610a75565b61271082610f306012600a612f65565b610f3f9064e8d4a51000612e4f565b610f499190612e4f565b610f539190612e66565b6015556040518281527f9cbd2e55e2abf49d29273c1b9fb343c2828844b2aec156cfe2aec98ae1b72a999060200160405180910390a1600a811015610fc55760405162461bcd60e51b81526020600482015260086024820152676d696e20302e312560c01b6044820152606401610a75565b6127108111156110025760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610a75565b612710816110126012600a612f65565b6110219064e8d4a51000612e4f565b61102b9190612e4f565b6110359190612e66565b6014556040518181527f7c1cb3702d8e1fa6d24b12dd90670ab69c6d66d58233103d37da8b07d6b850ac906020015b60405180910390a15050565b611078611ac8565b6110815f6121ca565b565b61108b611ac8565b6001600160a01b0382166110b15760405162461bcd60e51b8152600401610a7590612fc5565b6001600160a01b0382165f81815260046020526040808220805460ff191685151590811790915590519092917ff97938e9b0678b0c6364c122dba242f377461e90bfc58e36611fafe49de26cf391a35050565b61110c611ac8565b6010541561114e5760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e53185d5b98da1959608a1b6044820152606401610a75565b601754601680546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156111a8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111cc9190612ffc565b6001600160a01b031663c9c653963060165f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561122b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061124f9190612ffc565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015611299573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112bd9190612ffc565b601880546001600160a01b0319166001600160a01b039290921691821790555f908152600660205260409020805460ff191660011790556112fc612219565b4360105561271061130f6012600a612f65565b61131e9064e8d4a51000612e4f565b61132990600c612e4f565b6113339190612e66565b6015556127106113456012600a612f65565b6113549064e8d4a51000612e4f565b61135f90600c612e4f565b6113699190612e66565b6014556040517f2cb945e0498987ef06dbd68025b0bc276116c63345296379c28a8e8f09b47dc1905f90a1565b61139e611ac8565b6001600160a01b0382166113b0575f80fd5b6018546001600160a01b03908116908316036113ca575f80fd5b6040516370a0823160e01b815230600482015282905f906001600160a01b038316906370a0823190602401602060405180830381865afa158015611410573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114349190613017565b90506001600160a01b03821663a9059cbb3360646114528786612e4f565b61145c9190612e66565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af11580156114a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114c8919061302e565b506040518181527f567295618043fa7c5a9781a71d338407d59e2f8f20079734425da602e2ce9c229060200160405180910390a150505050565b61150a611ac8565b6115158160016122f8565b50565b611520611ac8565b601b8054821515600160b01b0260ff60b01b199091161790556040517f3db17fb4d29ca5a33dc4750f7205263855fb8b82cc89d6c418a04b60f58b429d9061156d90831515815260200190565b60405180910390a150565b611580611ac8565b611515815f6122f8565b611592611ac8565b6001600160a01b0381166115b85760405162461bcd60e51b8152600401610a7590612fc5565b6017546001600160a01b03908116908216036116085760405162461bcd60e51b815260206004820152600f60248201526e416464726573732069732073616d6560881b6044820152606401610a75565b601780546001600160a01b0319166001600160a01b0383169081179091556040519081527f117661539ed67d391940fa7b78853c234b4e9a40d616d75923ae8db26672833a9060200161156d565b335f9081526002602090815260408083206001600160a01b0386168452909152812054828110156116b85760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610a75565b6116c73385610a8d8685612f73565b5060019392505050565b5f6109d8338484611c13565b6116e5611ac8565b600a8111156116f2575f80fd5b600f8190556040518181527fc075380b8410207b8cc14f0d254ab8c8a6766469631275e4500db835a1ba02cc9060200161156d565b61172f611ac8565b6001600160a01b0382166117555760405162461bcd60e51b8152600401610a7590612fc5565b6001600160a01b0382165f81815260036020526040808220805460ff191685151590811790915590519092917f5da21567fb41924febf168d8f55dfcc045e2f686ae380b38a2132493e49713ac91a35050565b6117b0611ac8565b306001600160a01b038316036118085760405162461bcd60e51b815260206004820152601a60248201527f63616e277420496e636c7564652074686520636f6e74726163740000000000006044820152606401610a75565b6001600160a01b03821661182e5760405162461bcd60e51b8152600401610a7590612fc5565b6001600160a01b0382165f81815260056020526040808220805460ff191685151590811790915590519092917fa22b25479919d4ac678f064a05daa1ee9c0adc3b8198942ea45255e364e04ed491a35050565b611889611ac8565b600a5461189890600190612f73565b600e54106118e85760405162461bcd60e51b815260206004820152601e60248201527f416c726561647920617420746865206c6f7765737420746178207261746500006044820152606401610a75565b600e8054905f6118f783612fad565b9190505550600a600e548154811061191157611911612f99565b905f5260205f200154600781905550600a600e548154811061193557611935612f99565b5f91825260209091200154600855565b61194d611ac8565b6001600160a01b0383166119735760405162461bcd60e51b8152600401610a7590612fc5565b6001600160a01b0382166119995760405162461bcd60e51b8152600401610a7590612fc5565b6001600160a01b0381166119bf5760405162461bcd60e51b8152600401610a7590612fc5565b601980546001600160a01b03199081166001600160a01b03868116918217909355601a80548316868516908117909155601b80549093169385169384179092556040517fb9a09165bb21ee40ffcf207be749a7431e0ebedc4304b97c7043b34cf5ae537f905f90a4505050565b611a34611ac8565b6001600160a01b038116611a995760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a75565b611515816121ca565b611aaa611ac8565b601b8054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b031633146110815760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a75565b6001600160a01b038316611b6b5760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610a75565b6001600160a01b038216611bb35760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610a75565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611c5e5760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b6044820152606401610a75565b6001600160a01b038216611ca75760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b6044820152606401610a75565b6001600160a01b0383165f9081526005602052604090205460ff1680611ce457506001600160a01b0382165f9081526005602052604090205460ff165b15611cf957611cf48383836123ca565b505050565b5f60105411611d4a5760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c65640000000000000000006044820152606401610a75565b611cf48383836124c7565b601b805460ff60a81b1916600160a81b179055305f90815260016020526040812054600d54600c54600b54929392611d8d9190612f86565b611d979190612f86565b600f546018546001600160a01b03165f90815260016020526040812054929350916103e891611dc591612e4f565b611dcf9190612e66565b9050815f03611de0575050506121ba565b8315611dfb5750305f90815260016020526040902054611e0b565b80831015611e0b575050506121ba565b47611e15826129df565b5f611e208247612f73565b90505f8190505f85600b5486611e369190612e4f565b611e409190612e66565b90505f86600c5487611e529190612e4f565b611e5c9190612e66565b90505f87600d5488611e6e9190612e4f565b611e789190612e66565b90505f87611e868587612e4f565b611e909190612e66565b90505f88611e9e8588612e4f565b611ea89190612e66565b90505f89611eb68589612e4f565b611ec09190612e66565b90508515611f8f576019546040515f916001600160a01b03169085908381818185875af1925050503d805f8114611f12576040519150601f19603f3d011682016040523d82523d5f602084013e611f17565b606091505b5050905080611f775760405162461bcd60e51b815260206004820152602660248201527f4661696c656420746f2073656e642045544820746f20496e737572616e6365206044820152651dd85b1b195d60d21b6064820152608401610a75565b8660115f828254611f889190612f73565b9091555050505b841561205757601a546040515f916001600160a01b03169084908381818185875af1925050503d805f8114611fdf576040519150601f19603f3d011682016040523d82523d5f602084013e611fe4565b606091505b505090508061203f5760405162461bcd60e51b815260206004820152602160248201527f4661696c656420746f2073656e642045544820746f2042335f312077616c6c656044820152601d60fa1b6064820152608401610a75565b8560125f8282546120509190612f73565b9091555050505b83156121ad57601b54600160a01b900460ff16156120eb57601b546001600160a01b03165f9081526001602052604081208054869290612098908490612f86565b925050819055508360135f8282546120b09190612f73565b9091555050601b546040518581526001600160a01b039091169030905f805160206131288339815191529060200160405180910390a36121ad565b601b546040515f916001600160a01b03169083908381818185875af1925050503d805f8114612135576040519150601f19603f3d011682016040523d82523d5f602084013e61213a565b606091505b50509050806121955760405162461bcd60e51b815260206004820152602160248201527f4661696c656420746f2073656e642045544820746f2042335f322077616c6c656044820152601d60fa1b6064820152608401610a75565b8460135f8282546121a69190612f73565b9091555050505b5050505050505050505050505b50601b805460ff60a81b19169055565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b305f818152600160205260409020546016549091612240916001600160a01b031683611b21565b6016546001600160a01b031663f305d7194730845f806122675f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156122cd573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906122f29190613049565b50505050565b6018546001600160a01b03908116908316036123495760405162461bcd60e51b815260206004820152601060248201526f31b0b713ba103932b0b232103830b4b960811b6044820152606401610a75565b6001600160a01b03821661236f5760405162461bcd60e51b8152600401610a7590612fc5565b6001600160a01b0382165f81815260066020908152604091829020805460ff19168515159081179091558251938452908301527f6765bb5e5ecad4581ce8f9322a9c218e75a54a7c4af6217752833adb834511ac9101611064565b6001600160a01b0383165f908152600160205260409020548181101561242d5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610a75565b6001600160a01b0384165f9081526001602052604081208054849290612454908490612f73565b90915550506001600160a01b0383165f9081526001602052604081208054849290612480908490612f86565b92505081905550826001600160a01b0316846001600160a01b03165f80516020613128833981519152846040516124b991815260200190565b60405180910390a350505050565b6001600160a01b0383165f908152600160205260409020548181101561252a5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610a75565b6001600160a01b0384165f9081526003602052604081205460ff168061256757506001600160a01b0384165f9081526003602052604090205460ff165b6001600160a01b0386165f908152600460205260408120549192509060ff16806125a857506001600160a01b0385165f9081526004602052604090205460ff165b6001600160a01b0387165f9081526006602052604090205490915060ff1680156125d0575081155b15612686578061263d5760145484111561263d5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610a75565b6001600160a01b0385165f908152600160205260409020546015546126628683612f86565b11156126805760405162461bcd60e51b8152600401610a7590613074565b50612728565b6001600160a01b0385165f9081526006602052604090205460ff1680156126ab575080155b15612728576014548411156127285760405162461bcd60e51b815260206004820152603a60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d617853656c6c5472616e73616374696f6e416d6f756e742e0000000000006064820152608401610a75565b6001600160a01b038087165f9081526006602052604080822054928816825281205460ff928316921690811561278757601054600a90612769908290612f86565b43101561277b576123285b9150612781565b60085491505b5061282a565b82156127b757601054600a9061279e908290612f86565b4310156127ad57612328612774565b505060075461282a565b6001600160a01b0388165f90815260016020526040902054856127ff576015546127e18983612f86565b11156127ff5760405162461bcd60e51b8152600401610a7590613074565b601054600a90612810908290612f86565b431015612821576123289250612827565b60095492505b50505b6018546001600160a01b038a81169116148015906128525750601b54600160b01b900460ff16155b80156128685750601b54600160a81b900460ff16155b15612876576128765f611d55565b5f61289e8883600d54600c54600b5461288f9190612f86565b6128999190612f86565b612b26565b90506128ad8883600b54612b26565b60115f8282546128bd9190612f86565b925050819055506128d18883600c54612b26565b60125f8282546128e19190612f86565b925050819055506128f58883600d54612b26565b60135f8282546129059190612f86565b909155505f9050612916828a612f73565b6001600160a01b038c165f90815260016020526040812080549293508b92909190612942908490612f73565b9091555050305f9081526001602052604081208054849290612965908490612f86565b90915550506001600160a01b038a165f9081526001602052604081208054839290612991908490612f86565b92505081905550896001600160a01b03168b6001600160a01b03165f80516020613128833981519152836040516129ca91815260200190565b60405180910390a35050505050505050505050565b6016546129f79030906001600160a01b031683611b21565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110612a2a57612a2a612f99565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612a81573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612aa59190612ffc565b81600181518110612ab857612ab8612f99565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b815291169063791ac94790612afd9085905f908690309042906004016130b8565b5f604051808303815f87803b158015612b14575f80fd5b505af1925050508015611cf457505050565b5f612b3361271080612e4f565b82612b3e8587612e4f565b612b489190612e4f565b612b529190612e66565b949350505050565b5f60208284031215612b6a575f80fd5b5035919050565b5f6020808352835180828501525f5b81811015612b9c57858101830151858201604001528201612b80565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611515575f80fd5b5f8060408385031215612be1575f80fd5b8235612bec81612bbc565b946020939093013593505050565b5f805f60608486031215612c0c575f80fd5b8335612c1781612bbc565b92506020840135612c2781612bbc565b929592945050506040919091013590565b5f805f805f8060c08789031215612c4d575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b8015158114611515575f80fd5b5f60208284031215612c94575f80fd5b8135612c9f81612c77565b9392505050565b5f8083601f840112612cb6575f80fd5b50813567ffffffffffffffff811115612ccd575f80fd5b6020830191508360208260051b8501011115612ce7575f80fd5b9250929050565b5f805f8060408587031215612d01575f80fd5b843567ffffffffffffffff80821115612d18575f80fd5b612d2488838901612ca6565b90965094506020870135915080821115612d3c575f80fd5b50612d4987828801612ca6565b95989497509550505050565b5f60208284031215612d65575f80fd5b8135612c9f81612bbc565b5f8060408385031215612d81575f80fd5b50508035926020909101359150565b5f8060408385031215612da1575f80fd5b8235612dac81612bbc565b91506020830135612dbc81612c77565b809150509250929050565b5f8060408385031215612dd8575f80fd5b8235612de381612bbc565b91506020830135612dbc81612bbc565b5f805f60608486031215612e05575f80fd5b8335612e1081612bbc565b92506020840135612e2081612bbc565b91506040840135612e3081612bbc565b809150509250925092565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176109dc576109dc612e3b565b5f82612e8057634e487b7160e01b5f52601260045260245ffd5b500490565b600181815b80851115612ebf57815f1904821115612ea557612ea5612e3b565b80851615612eb257918102915b93841c9390800290612e8a565b509250929050565b5f82612ed5575060016109dc565b81612ee157505f6109dc565b8160018114612ef75760028114612f0157612f1d565b60019150506109dc565b60ff841115612f1257612f12612e3b565b50506001821b6109dc565b5060208310610133831016604e8410600b8410161715612f40575081810a6109dc565b612f4a8383612e85565b805f1904821115612f5d57612f5d612e3b565b029392505050565b5f612c9f60ff841683612ec7565b818103818111156109dc576109dc612e3b565b808201808211156109dc576109dc612e3b565b634e487b7160e01b5f52603260045260245ffd5b5f60018201612fbe57612fbe612e3b565b5060010190565b60208082526017908201527f416464726573732073686f756c64206e6f742062652030000000000000000000604082015260600190565b5f6020828403121561300c575f80fd5b8151612c9f81612bbc565b5f60208284031215613027575f80fd5b5051919050565b5f6020828403121561303e575f80fd5b8151612c9f81612c77565b5f805f6060848603121561305b575f80fd5b8351925060208401519150604084015190509250925092565b60208082526024908201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6040820152633ab73a1760e11b606082015260800190565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156131065784516001600160a01b0316835293830193918301916001016130e1565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220814cc869f2b30a08a66f1f4d23423c8980f21e19f6416210ca1f131b3cdd3eac64736f6c63430008150033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000a576463273e4a459b39a518be7fc79ebecf6b7c7000000000000000000000000a576463273e4a459b39a518be7fc79ebecf6b7c7000000000000000000000000a576463273e4a459b39a518be7fc79ebecf6b7c7

-----Decoded View---------------
Arg [0] : _DexRouter (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : _insWallet (address): 0xA576463273E4A459B39a518be7fc79EbecF6B7c7
Arg [2] : _b3_1Wallet (address): 0xA576463273E4A459B39a518be7fc79EbecF6B7c7
Arg [3] : _b3_2Wallet (address): 0xA576463273E4A459B39a518be7fc79EbecF6B7c7

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 000000000000000000000000a576463273e4a459b39a518be7fc79ebecf6b7c7
Arg [2] : 000000000000000000000000a576463273e4a459b39a518be7fc79ebecf6b7c7
Arg [3] : 000000000000000000000000a576463273e4a459b39a518be7fc79ebecf6b7c7


Deployed Bytecode Sourcemap

6536:28933:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34452:280;;;;;;:::i;:::-;;:::i;:::-;;31799:78;;;;;;;;;;-1:-1:-1;31870:5:0;;;;;;;;;;;;-1:-1:-1;;;31870:5:0;;;;31799:78;;;;;;;:::i;:::-;;;;;;;;32834:158;;;;;;;;;;-1:-1:-1;32834:158:0;;;;;:::i;:::-;;:::i;:::-;;;1373:14:1;;1366:22;1348:41;;1336:2;1321:18;32834:158:0;1208:187:1;32055:84:0;;;;;;;;;;;;;:::i;:::-;;;1546:25:1;;;1534:2;1519:18;32055:84:0;1400:177:1;33302:382:0;;;;;;;;;;-1:-1:-1;33302:382:0;;;;;:::i;:::-;;:::i;24595:123::-;;;;;;;;;;;;;:::i;20099:722::-;;;;;;:::i;:::-;;:::i;31971:78::-;;;;;;;;;;-1:-1:-1;31971:78:0;;7981:2;2713:36:1;;2701:2;2686:18;31971:78:0;2571:184:1;33690:202:0;;;;;;;;;;-1:-1:-1;33690:202:0;;;;;:::i;:::-;;:::i;26117:132::-;;;;;;:::i;:::-;;:::i;28556:689::-;;;;;;:::i;:::-;;:::i;7180:25::-;;;;;;;;;;;;;;;;8476:22;;;;;;;;;;-1:-1:-1;8476:22:0;;;;-1:-1:-1;;;8476:22:0;;;;;;32251:122;;;;;;;;;;-1:-1:-1;32251:122:0;;;;;:::i;:::-;-1:-1:-1;;;;;32338:33:0;32324:4;32338:33;;;:24;:33;;;;;;;;;32251:122;7845:30;;;;;;;;;;;;;;;;27839:492;;;;;;:::i;:::-;;:::i;32145:100::-;;;;;;;;;;-1:-1:-1;32145:100:0;;;;;:::i;:::-;-1:-1:-1;;;;;32225:18:0;32211:4;32225:18;;;:9;:18;;;;;;;32145:100;5719:103;;;;;;;;;;;;;:::i;7882:25::-;;;;;;;;;;;;;;;;30133:299;;;;;;:::i;:::-;;:::i;31123:547::-;;;:::i;7245:29::-;;;;;;;;;;;;;;;;35019:445;;;;;;:::i;:::-;;:::i;25300:94::-;;;;;;:::i;:::-;;:::i;25797:141::-;;;;;;:::i;:::-;;:::i;32379:129::-;;;;;;;;;;-1:-1:-1;32379:129:0;;;;;:::i;:::-;-1:-1:-1;;;;;32468:38:0;32454:4;32468:38;;;:29;:38;;;;;;;;;32379:129;31715:78;;;;;;;;;;-1:-1:-1;31767:7:0;5144:6;-1:-1:-1;;;;;5144:6:0;31715:78;;;-1:-1:-1;;;;;5335:32:1;;;5317:51;;5305:2;5290:18;31715:78:0;5171:203:1;5071:87:0;;;;;;;;;;-1:-1:-1;5117:7:0;5144:6;-1:-1:-1;;;;;5144:6:0;5071:87;;31883:82;;;;;;;;;;-1:-1:-1;31956:7:0;;;;;;;;;;;;-1:-1:-1;;;31956:7:0;;;;31883:82;;25529:98;;;;;;:::i;:::-;;:::i;26420:265::-;;;;;;:::i;:::-;;:::i;33898:334::-;;;;;;;;;;-1:-1:-1;33898:334:0;;;;;:::i;:::-;;:::i;32514:164::-;;;;;;;;;;-1:-1:-1;32514:164:0;;;;;:::i;:::-;;:::i;8032:31::-;;;;;;;;;;;;;;;;7914:25;;;;;;;;;;;;;;;;24369:104;;;;;;;;;;-1:-1:-1;24457:6:0;24416:4;24439:26;:9;:26;;;;24369:104;;7479:24;;;;;;;;;;;;;;;;7990:35;;;;;;;;;;;;;;;;7212:26;;;;;;;;;;;;;;;;19277:260;;;;;;:::i;:::-;;:::i;30720:284::-;;;;;;:::i;:::-;;:::i;6833:48::-;;;;;;;;;;-1:-1:-1;6833:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;32684:144;;;;;;;;;;-1:-1:-1;32684:144:0;;;;;:::i;:::-;-1:-1:-1;;;;;32792:19:0;;;32768:4;32792:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;32684:144;29505:326;;;;;;:::i;:::-;;:::i;7781:26::-;;;;;;;;;;;;;;;;6890:36;;;;;;;;;;-1:-1:-1;6890:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7448:24;;;;;;;;;;;;;;;;13553:399;;;:::i;7418:23::-;;;;;;;;;;;;;;;;26994:624;;;;;;:::i;:::-;;:::i;5977:201::-;;;;;;;;;;-1:-1:-1;5977:201:0;;;;;:::i;:::-;;:::i;7696:31::-;;;;;;;;;;;;;;;;8396:26;;;;;;;;;;-1:-1:-1;8396:26:0;;;;-1:-1:-1;;;8396:26:0;;;;;;11185:99;;;;;;;;;;-1:-1:-1;11185:99:0;;;;;:::i;:::-;;:::i;34452:280::-;4957:13;:11;:13::i;:::-;34566:21:::1;34546:17;34611:10;34664:3;34633:28;34645:16:::0;34566:21;34633:28:::1;:::i;:::-;:34;;;;:::i;:::-;34611:61;::::0;::::1;::::0;;;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;34712:12:0::1;::::0;34692:4:::1;::::0;-1:-1:-1;34712:12:0::1;::::0;-1:-1:-1;34712:12:0;;::::1;34535:197;;34452:280:::0;:::o;32834:158::-;32908:4;32925:37;32934:10;32946:7;32955:6;32925:8;:37::i;:::-;-1:-1:-1;32980:4:0;32834:158;;;;;:::o;32055:84::-;32110:4;7115:13;7981:2;7115;:13;:::i;:::-;7095:33;;:17;:33;:::i;:::-;32117:20;;32055:84;:::o;33302:382::-;33399:4;33416:36;33426:6;33434:9;33445:6;33416:9;:36::i;:::-;-1:-1:-1;;;;;33487:19:0;;33463:21;33487:19;;;:11;:19;;;;;;;;33507:10;33487:31;;;;;;;;33537:26;;;;33529:59;;;;-1:-1:-1;;;33529:59:0;;8628:2:1;33529:59:0;;;8610:21:1;8667:2;8647:18;;;8640:30;-1:-1:-1;;;8686:18:1;;;8679:50;8746:18;;33529:59:0;;;;;;;;;33599:55;33608:6;33616:10;33628:25;33647:6;33628:16;:25;:::i;:::-;33599:8;:55::i;:::-;-1:-1:-1;33672:4:0;;33302:382;-1:-1:-1;;;;33302:382:0:o;24595:123::-;24702:6;24647:4;24684:26;;;:9;:26;;;;7115:13;7981:2;7115;:13;:::i;:::-;7095:33;;:17;:33;:::i;:::-;24670:40;;;;:::i;20099:722::-;4957:13;:11;:13::i;:::-;7587:4:::1;20311:3;:25;;:69;;;;;7685:4;20353;:27;;20311:69;:122;;;;;7638:4;20397:9;:36;;20311:122;20289:190;;;::::0;-1:-1:-1;;;20289:190:0;;9110:2:1;20289:190:0::1;::::0;::::1;9092:21:1::0;9149:2;9129:18;;;9122:30;-1:-1:-1;;;9168:18:1;;;9161:48;9226:18;;20289:190:0::1;8908:342:1::0;20289:190:0::1;7540:5;20521:4:::0;20512:8:::1;20516:4:::0;20512:3;:8:::1;:::i;:::-;:13;;;;:::i;:::-;:30;20490:113;;;::::0;-1:-1:-1;;;20490:113:0;;9587:2:1;20490:113:0::1;::::0;::::1;9569:21:1::0;9626:2;9606:18;;;9599:30;9665:34;9645:18;;;9638:62;-1:-1:-1;;;9716:18:1;;;9709:31;9757:19;;20490:113:0::1;9385:397:1::0;20490:113:0::1;20616:6;:10:::0;;;20637:7:::1;:12:::0;;;20660:11:::1;:21:::0;;;20692:6:::1;:10:::0;;;20713:7:::1;:12:::0;;;20736:7:::1;:12:::0;;;20764:49:::1;::::0;;10074:25:1;;;10130:2;10115:18;;10108:34;;;10158:18;;;10151:34;;;10216:2;10201:18;;10194:34;;;10259:3;10244:19;;10237:35;;;10303:3;10288:19;;10281:35;;;20764:49:0::1;::::0;10061:3:1;10046:19;20764:49:0::1;;;;;;;20099:722:::0;;;;;;:::o;33690:202::-;33795:10;33769:4;33816:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;33816:32:0;;;;;;;;;;33769:4;;33786:76;;33807:7;;33816:45;;33851:10;;33816:45;:::i;26117:132::-;4957:13;:11;:13::i;:::-;26191:23:::1;26210:3;26191:18;:23::i;:::-;26230:11;::::0;::::1;::::0;;;::::1;26117:132:::0;:::o;28556:689::-;4957:13;:11;:13::i;:::-;28688:8;28723:24;;::::1;28714:61;;;::::0;-1:-1:-1;;;28714:61:0;;10529:2:1;28714:61:0::1;::::0;::::1;10511:21:1::0;10568:2;10548:18;;;10541:30;10607:25;10587:18;;;10580:53;10650:18;;28714:61:0::1;10327:347:1::0;28714:61:0::1;28786:21;28837:9:::0;28832:289:::1;28856:6;28852:1;:10;28832:289;;;28992:7;;29000:1;28992:10;;;;;;;:::i;:::-;;;;;;;28966:9;:22;28976:8;;28985:1;28976:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;28966:22:0::1;-1:-1:-1::0;;;;;28966:22:0::1;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;29034:7:0;;-1:-1:-1;29034:7:0;29042:1;29034:10;;::::1;;;;;:::i;:::-;;;;;;;29017:27;;;;;:::i;:::-;;;29085:8;;29094:1;29085:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;29064:45:0::1;29073:10;-1:-1:-1::0;;;;;;;;;;;29098:7:0;;29106:1;29098:10;;::::1;;;;;:::i;:::-;;;;;;;29064:45;;;;1546:25:1::0;;1534:2;1519:18;;1400:177;29064:45:0::1;;;;;;;;28864:3:::0;::::1;::::0;::::1;:::i;:::-;;;;28832:289;;;-1:-1:-1::0;29141:10:0::1;29131:21;::::0;;;:9:::1;:21;::::0;;;;:38;;29156:13;;29131:21;:38:::1;::::0;29156:13;;29131:38:::1;:::i;:::-;::::0;;;-1:-1:-1;;29187:50:0::1;::::0;;11125:25:1;;;11181:2;11166:18;;11159:34;;;29203:10:0::1;::::0;29187:50:::1;::::0;11098:18:1;29187:50:0::1;;;;;;;28660:585;;28556:689:::0;;;;:::o;27839:492::-;4957:13;:11;:13::i;:::-;27946:2:::1;27936:6;:12;;27928:33;;;::::0;-1:-1:-1;;;27928:33:0;;11406:2:1;27928:33:0::1;::::0;::::1;11388:21:1::0;11445:1;11425:18;;;11418:29;-1:-1:-1;;;11463:18:1;;;11456:38;11511:18;;27928:33:0::1;11204:331:1::0;27928:33:0::1;27990:5;27980:6;:15;;27972:36;;;::::0;-1:-1:-1;;;27972:36:0;;11742:2:1;27972:36:0::1;::::0;::::1;11724:21:1::0;11781:1;11761:18;;;11754:29;-1:-1:-1;;;11799:18:1;;;11792:38;11847:18;;27972:36:0::1;11540:331:1::0;27972:36:0::1;28063:5;28054:6:::0;7115:13:::1;7981:2;7115;:13;:::i;:::-;7095:33;::::0;:17:::1;:33;:::i;:::-;28038:22;;;;:::i;:::-;:30;;;;:::i;:::-;28019:16;:49:::0;28084:31:::1;::::0;1546:25:1;;;28084:31:0::1;::::0;1534:2:1;1519:18;28084:31:0::1;;;;;;;28146:2;28136:6;:12;;28128:33;;;::::0;-1:-1:-1;;;28128:33:0;;11406:2:1;28128:33:0::1;::::0;::::1;11388:21:1::0;11445:1;11425:18;;;11418:29;-1:-1:-1;;;11463:18:1;;;11456:38;11511:18;;28128:33:0::1;11204:331:1::0;28128:33:0::1;28190:5;28180:6;:15;;28172:36;;;::::0;-1:-1:-1;;;28172:36:0;;11742:2:1;28172:36:0::1;::::0;::::1;11724:21:1::0;11781:1;11761:18;;;11754:29;-1:-1:-1;;;11799:18:1;;;11792:38;11847:18;;28172:36:0::1;11540:331:1::0;28172:36:0::1;28267:5;28258:6:::0;7115:13:::1;7981:2;7115;:13;:::i;:::-;7095:33;::::0;:17:::1;:33;:::i;:::-;28242:22;;;;:::i;:::-;:30;;;;:::i;:::-;28219:20;:53:::0;28288:35:::1;::::0;1546:25:1;;;28288:35:0::1;::::0;1534:2:1;1519:18;28288:35:0::1;;;;;;;;27839:492:::0;;:::o;5719:103::-;4957:13;:11;:13::i;:::-;5784:30:::1;5811:1;5784:18;:30::i;:::-;5719:103::o:0;30133:299::-;4957:13;:11;:13::i;:::-;-1:-1:-1;;;;;30258:21:0;::::1;30250:56;;;;-1:-1:-1::0;;;30250:56:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;30317:38:0;::::1;;::::0;;;:29:::1;:38;::::0;;;;;:46;;-1:-1:-1;;30317:46:0::1;::::0;::::1;;::::0;;::::1;::::0;;;30379:45;;30317:46;;:38;30379:45:::1;::::0;::::1;30133:299:::0;;:::o;31123:547::-;4957:13;:11;:13::i;:::-;31198:11:::1;::::0;:14;31190:41:::1;;;::::0;-1:-1:-1;;;31190:41:0;;12430:2:1;31190:41:0::1;::::0;::::1;12412:21:1::0;12469:2;12449:18;;;12442:30;-1:-1:-1;;;12488:18:1;;;12481:45;12543:18;;31190:41:0::1;12228:339:1::0;31190:41:0::1;31268:9;::::0;31244:10:::1;:34:::0;;-1:-1:-1;;;;;;31244:34:0::1;-1:-1:-1::0;;;;;31268:9:0;;::::1;31244:34:::0;;::::1;::::0;;31319:20:::1;::::0;;-1:-1:-1;;;31319:20:0;;;;:18:::1;::::0;:20:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;31268:9;31319:20:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;31307:44:0::1;;31360:4;31367:10;;;;;;;;;-1:-1:-1::0;;;;;31367:10:0::1;-1:-1:-1::0;;;;;31367:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;31307:78;::::0;-1:-1:-1;;;;;;31307:78:0::1;::::0;;;;;;-1:-1:-1;;;;;13058:15:1;;;31307:78:0::1;::::0;::::1;13040:34:1::0;13110:15;;13090:18;;;13083:43;12975:18;;31307:78:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;31289:15;:96:::0;;-1:-1:-1;;;;;;31289:96:0::1;-1:-1:-1::0;;;;;31289:96:0;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;31396:23:0;;;:6:::1;:23;::::0;;;;:28;;-1:-1:-1;;31396:28:0::1;-1:-1:-1::0;31396:28:0::1;::::0;;31437:19:::1;:17;:19::i;:::-;31481:12;31469:11;:24:::0;31546:5:::1;7115:13;7981:2;7115;:13;:::i;:::-;7095:33;::::0;:17:::1;:33;:::i;:::-;31525:18;::::0;31541:2:::1;31525:18;:::i;:::-;:26;;;;:::i;:::-;31506:16;:45:::0;31615:5:::1;7115:13;7981:2;7115;:13;:::i;:::-;7095:33;::::0;:17:::1;:33;:::i;:::-;31594:18;::::0;31610:2:::1;31594:18;:::i;:::-;:26;;;;:::i;:::-;31571:20;:49:::0;31645:17:::1;::::0;::::1;::::0;;;::::1;31123:547::o:0;35019:445::-;4957:13;:11;:13::i;:::-;-1:-1:-1;;;;;35145:24:0;::::1;35137:33;;;::::0;::::1;;35211:15;::::0;-1:-1:-1;;;;;35211:15:0;;::::1;35189:38:::0;;::::1;::::0;35181:47:::1;;;::::0;::::1;;35307:30;::::0;-1:-1:-1;;;35307:30:0;;35331:4:::1;35307:30;::::0;::::1;5317:51:1::0;35261:12:0;;35239::::1;::::0;-1:-1:-1;;;;;35307:15:0;::::1;::::0;::::1;::::0;5290:18:1;;35307:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;35285:52:::0;-1:-1:-1;;;;;;35348:14:0;::::1;;35363:10;35408:3;35375:30;35389:16:::0;35285:52;35375:30:::1;:::i;:::-;:36;;;;:::i;:::-;35348:64;::::0;-1:-1:-1;;;;;;35348:64:0::1;::::0;;;;;;-1:-1:-1;;;;;13518:32:1;;;35348:64:0::1;::::0;::::1;13500:51:1::0;13567:18;;;13560:34;13473:18;;35348:64:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;35430:26:0::1;::::0;1546:25:1;;;35430:26:0::1;::::0;1534:2:1;1519:18;35430:26:0::1;;;;;;;35126:338;;35019:445:::0;;:::o;25300:94::-;4957:13;:11;:13::i;:::-;25368:18:::1;25376:4;25381;25368:7;:18::i;:::-;25300:94:::0;:::o;25797:141::-;4957:13;:11;:13::i;:::-;25873:10:::1;:17:::0;;;::::1;;-1:-1:-1::0;;;25873:17:0::1;-1:-1:-1::0;;;;25873:17:0;;::::1;;::::0;;25906:24:::1;::::0;::::1;::::0;::::1;::::0;25884:6;1373:14:1;1366:22;1348:41;;1336:2;1321:18;;1208:187;25906:24:0::1;;;;;;;;25797:141:::0;:::o;25529:98::-;4957:13;:11;:13::i;:::-;25600:19:::1;25608:4;25613:5;25600:7;:19::i;26420:265::-:0;4957:13;:11;:13::i;:::-;-1:-1:-1;;;;;26504:21:0;::::1;26496:56;;;;-1:-1:-1::0;;;26496:56:0::1;;;;;;;:::i;:::-;26582:9;::::0;-1:-1:-1;;;;;26582:9:0;;::::1;26571:20:::0;;::::1;::::0;26563:47:::1;;;::::0;-1:-1:-1;;;26563:47:0;;14057:2:1;26563:47:0::1;::::0;::::1;14039:21:1::0;14096:2;14076:18;;;14069:30;-1:-1:-1;;;14115:18:1;;;14108:45;14170:18;;26563:47:0::1;13855:339:1::0;26563:47:0::1;26621:9;:19:::0;;-1:-1:-1;;;;;;26621:19:0::1;-1:-1:-1::0;;;;;26621:19:0;::::1;::::0;;::::1;::::0;;;26656:21:::1;::::0;5317:51:1;;;26656:21:0::1;::::0;5305:2:1;5290:18;26656:21:0::1;5171:203:1::0;33898:334:0;34035:10;33982:4;34023:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;34023:32:0;;;;;;;;;;34074:35;;;;34066:60;;;;-1:-1:-1;;;34066:60:0;;14401:2:1;34066:60:0;;;14383:21:1;14440:2;14420:18;;;14413:30;-1:-1:-1;;;14459:18:1;;;14452:42;14511:18;;34066:60:0;14199:336:1;34066:60:0;34137:65;34146:10;34158:7;34167:34;34186:15;34167:16;:34;:::i;34137:65::-;-1:-1:-1;34220:4:0;;33898:334;-1:-1:-1;;;33898:334:0:o;32514:164::-;32591:4;32608:40;32618:10;32630:9;32641:6;32608:9;:40::i;19277:260::-;4957:13;:11;:13::i;:::-;19402:2:::1;19377:23;:27;;19369:36;;;::::0;::::1;;19433:12;:36:::0;;;19485:44:::1;::::0;1546:25:1;;;19485:44:0::1;::::0;1534:2:1;1519:18;19485:44:0::1;1400:177:1::0;30720:284:0;4957:13;:11;:13::i;:::-;-1:-1:-1;;;;;30840:21:0;::::1;30832:56;;;;-1:-1:-1::0;;;30832:56:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;30899:33:0;::::1;;::::0;;;:24:::1;:33;::::0;;;;;:41;;-1:-1:-1;;30899:41:0::1;::::0;::::1;;::::0;;::::1;::::0;;;30956:40;;30899:41;;:33;30956:40:::1;::::0;::::1;30720:284:::0;;:::o;29505:326::-;4957:13;:11;:13::i;:::-;29630:4:::1;-1:-1:-1::0;;;;;29613:22:0;::::1;::::0;29605:60:::1;;;::::0;-1:-1:-1;;;29605:60:0;;14742:2:1;29605:60:0::1;::::0;::::1;14724:21:1::0;14781:2;14761:18;;;14754:30;14820:28;14800:18;;;14793:56;14866:18;;29605:60:0::1;14540:350:1::0;29605:60:0::1;-1:-1:-1::0;;;;;29684:21:0;::::1;29676:56;;;;-1:-1:-1::0;;;29676:56:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;29743:25:0;::::1;;::::0;;;:16:::1;:25;::::0;;;;;:33;;-1:-1:-1;;29743:33:0::1;::::0;::::1;;::::0;;::::1;::::0;;;29792:31;;29743:33;;:25;29792:31:::1;::::0;::::1;29505:326:::0;;:::o;13553:399::-;4957:13;:11;:13::i;:::-;13644:12:::1;:19:::0;:23:::1;::::0;13666:1:::1;::::0;13644:23:::1;:::i;:::-;13626:15;;:41;13618:84;;;::::0;-1:-1:-1;;;13618:84:0;;15097:2:1;13618:84:0::1;::::0;::::1;15079:21:1::0;15136:2;15116:18;;;15109:30;15175:32;15155:18;;;15148:60;15225:18;;13618:84:0::1;14895:354:1::0;13618:84:0::1;13780:15;:17:::0;;;:15:::1;:17;::::0;::::1;:::i;:::-;;;;;;13865:12;13878:15;;13865:29;;;;;;;;:::i;:::-;;;;;;;;;13856:6;:38;;;;13915:12;13928:15;;13915:29;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;13905:7:::1;:39:::0;13553:399::o;26994:624::-;4957:13;:11;:13::i;:::-;-1:-1:-1;;;;;27166:26:0;::::1;27158:61;;;;-1:-1:-1::0;;;27158:61:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;27238:27:0;::::1;27230:62;;;;-1:-1:-1::0;;;27230:62:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;27311:27:0;::::1;27303:62;;;;-1:-1:-1::0;;;27303:62:0::1;;;;;;;:::i;:::-;27378:15;:30:::0;;-1:-1:-1;;;;;;27378:30:0;;::::1;-1:-1:-1::0;;;;;27378:30:0;;::::1;::::0;;::::1;::::0;;;27419:10:::1;:26:::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;27456:10:::1;:26:::0;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;27498:112:::1;::::0;::::1;::::0;-1:-1:-1;;27498:112:0::1;26994:624:::0;;;:::o;5977:201::-;4957:13;:11;:13::i;:::-;-1:-1:-1;;;;;6066:22:0;::::1;6058:73;;;::::0;-1:-1:-1;;;6058:73:0;;15456:2:1;6058:73:0::1;::::0;::::1;15438:21:1::0;15495:2;15475:18;;;15468:30;15534:34;15514:18;;;15507:62;-1:-1:-1;;;15585:18:1;;;15578:36;15631:19;;6058:73:0::1;15254:402:1::0;6058:73:0::1;6142:28;6161:8;6142:18;:28::i;11185:99::-:0;4957:13;:11;:13::i;:::-;11254:14:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;11254:22:0::1;-1:-1:-1::0;;;;11254:22:0;;::::1;::::0;;;::::1;::::0;;11185:99::o;5236:132::-;5117:7;5144:6;-1:-1:-1;;;;;5144:6:0;3729:10;5300:23;5292:68;;;;-1:-1:-1;;;5292:68:0;;15863:2:1;5292:68:0;;;15845:21:1;;;15882:18;;;15875:30;15941:34;15921:18;;;15914:62;15993:18;;5292:68:0;15661:356:1;32998:298:0;-1:-1:-1;;;;;33089:20:0;;33081:50;;;;-1:-1:-1;;;33081:50:0;;16224:2:1;33081:50:0;;;16206:21:1;16263:2;16243:18;;;16236:30;-1:-1:-1;;;16282:18:1;;;16275:47;16339:18;;33081:50:0;16022:341:1;33081:50:0;-1:-1:-1;;;;;33150:21:0;;33142:49;;;;-1:-1:-1;;;33142:49:0;;16570:2:1;33142:49:0;;;16552:21:1;16609:2;16589:18;;;16582:30;-1:-1:-1;;;16628:18:1;;;16621:45;16683:18;;33142:49:0;16368:339:1;33142:49:0;-1:-1:-1;;;;;33202:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;33255:33;;1546:25:1;;;33255:33:0;;1519:18:1;33255:33:0;;;;;;;32998:298;;;:::o;14059:484::-;-1:-1:-1;;;;;14154:20:0;;14146:51;;;;-1:-1:-1;;;14146:51:0;;16914:2:1;14146:51:0;;;16896:21:1;16953:2;16933:18;;;16926:30;-1:-1:-1;;;16972:18:1;;;16965:48;17030:18;;14146:51:0;16712:342:1;14146:51:0;-1:-1:-1;;;;;14216:23:0;;14208:52;;;;-1:-1:-1;;;14208:52:0;;17261:2:1;14208:52:0;;;17243:21:1;17300:2;17280:18;;;17273:30;-1:-1:-1;;;17319:18:1;;;17312:46;17375:18;;14208:52:0;17059:340:1;14208:52:0;-1:-1:-1;;;;;14276:24:0;;;;;;:16;:24;;;;;;;;;:55;;-1:-1:-1;;;;;;14304:27:0;;;;;;:16;:27;;;;;;;;14276:55;14273:263;;;14346:43;14363:6;14371:9;14382:6;14346:16;:43::i;:::-;14059:484;;;:::o;14273:263::-;14442:1;14430:11;;:13;14422:48;;;;-1:-1:-1;;;14422:48:0;;17606:2:1;14422:48:0;;;17588:21:1;17645:2;17625:18;;;17618:30;17684:25;17664:18;;;17657:53;17727:18;;14422:48:0;17404:347:1;14422:48:0;14485:39;14500:6;14507:9;14517:6;14485:14;:39::i;20978:2147::-;8556:27;:34;;-1:-1:-1;;;;8556:34:0;-1:-1:-1;;;8556:34:0;;;21098:4:::1;8556:34:::0;21080:24;;;8586:4;21080:24:::1;::::0;;;;;21150:7:::1;::::0;21140::::1;::::0;21131:6:::1;::::0;21080:24;;8556:34;21131:16:::1;::::0;21140:7;21131:16:::1;:::i;:::-;:26;;;;:::i;:::-;21218:12;::::0;21199:15:::1;::::0;-1:-1:-1;;;;;21199:15:0::1;21168:17;21189:26:::0;;;:9:::1;:26;::::0;;;;;21115:42;;-1:-1:-1;21168:17:0;21234:4:::1;::::0;21189:41:::1;::::0;::::1;:::i;:::-;21188:50;;;;:::i;:::-;21168:70;;21255:8;21267:1;21255:13:::0;21251:26:::1;;21270:7;;;;;21251:26;21293:12;21289:159;;;-1:-1:-1::0;21355:4:0::1;21337:24;::::0;;;:9:::1;:24;::::0;;;;;21289:159:::1;;;21401:12;21383:15;:30;21379:69;;;21430:7;;;;;21379:69;21485:21;21519:30;21536:12:::0;21519:16:::1;:30::i;:::-;21562:11;21576:41;21600:17:::0;21576:21:::1;:41;:::i;:::-;21562:55;;21628:15;21646:6;21628:24;;21665:27;21721:8;21711:6;;21696:12;:21;;;;:::i;:::-;21695:34;;;;:::i;:::-;21665:64;;21740:22;21792:8;21781:7;;21766:12;:22;;;;:::i;:::-;21765:35;;;;:::i;:::-;21740:60;;21811:22;21863:8;21852:7;;21837:12;:22;;;;:::i;:::-;21836:35;;;;:::i;:::-;21811:60:::0;-1:-1:-1;21882:20:0::1;21945:12:::0;21906:35:::1;21919:22:::0;21906:10;:35:::1;:::i;:::-;21905:52;;;;:::i;:::-;21882:75:::0;-1:-1:-1;21968:15:0::1;22021:12:::0;21987:30:::1;22000:17:::0;21987:10;:30:::1;:::i;:::-;21986:47;;;;:::i;:::-;21968:65:::0;-1:-1:-1;22044:15:0::1;22097:12:::0;22063:30:::1;22076:17:::0;22063:10;:30:::1;:::i;:::-;22062:47;;;;:::i;:::-;22044:65:::0;-1:-1:-1;22126:27:0;;22122:252:::1;;22185:15;::::0;:48:::1;::::0;22171:9:::1;::::0;-1:-1:-1;;;;;22185:15:0::1;::::0;22213;;22171:9;22185:48;22171:9;22185:48;22213:15;22185;:48:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22170:63;;;22256:4;22248:55;;;::::0;-1:-1:-1;;;22248:55:0;;17958:2:1;22248:55:0::1;::::0;::::1;17940:21:1::0;17997:2;17977:18;;;17970:30;18036:34;18016:18;;;18009:62;-1:-1:-1;;;18087:18:1;;;18080:36;18133:19;;22248:55:0::1;17756:402:1::0;22248:55:0::1;22340:22;22318:18;;:44;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;22122:252:0::1;22390:22:::0;;22386:222:::1;;22444:10;::::0;:38:::1;::::0;22430:9:::1;::::0;-1:-1:-1;;;;;22444:10:0::1;::::0;22467;;22430:9;22444:38;22430:9;22444:38;22467:10;22444;:38:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22429:53;;;22505:4;22497:50;;;::::0;-1:-1:-1;;;22497:50:0;;18365:2:1;22497:50:0::1;::::0;::::1;18347:21:1::0;18404:2;18384:18;;;18377:30;18443:34;18423:18;;;18416:62;-1:-1:-1;;;18494:18:1;;;18487:31;18535:19;;22497:50:0::1;18163:397:1::0;22497:50:0::1;22579:17;22562:13;;:34;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;22386:222:0::1;22624:22:::0;;22620:498:::1;;22667:14;::::0;-1:-1:-1;;;22667:14:0;::::1;;;22663:444;;;22712:10;::::0;-1:-1:-1;;;;;22712:10:0::1;22702:21;::::0;;;:9:::1;:21;::::0;;;;:42;;22727:17;;22702:21;:42:::1;::::0;22727:17;;22702:42:::1;:::i;:::-;;;;;;;;22780:17;22763:13;;:34;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;22845:10:0::1;::::0;22821:54:::1;::::0;1546:25:1;;;-1:-1:-1;;;;;22845:10:0;;::::1;::::0;22838:4:::1;::::0;-1:-1:-1;;;;;;;;;;;22821:54:0;1534:2:1;1519:18;22821:54:0::1;;;;;;;22663:444;;;22931:10;::::0;:38:::1;::::0;22917:9:::1;::::0;-1:-1:-1;;;;;22931:10:0::1;::::0;22954;;22917:9;22931:38;22917:9;22931:38;22954:10;22931;:38:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22916:53;;;22996:4;22988:50;;;::::0;-1:-1:-1;;;22988:50:0;;18767:2:1;22988:50:0::1;::::0;::::1;18749:21:1::0;18806:2;18786:18;;;18779:30;18845:34;18825:18;;;18818:62;-1:-1:-1;;;18896:18:1;;;18889:31;18937:19;;22988:50:0::1;18565:397:1::0;22988:50:0::1;23074:17;23057:13;;:34;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;22663:444:0::1;21046:2079;;;;;;;;;;;;8601:1;-1:-1:-1::0;8613:27:0;:35;;-1:-1:-1;;;;8613:35:0;;;20978:2147::o;6338:191::-;6412:16;6431:6;;-1:-1:-1;;;;;6448:17:0;;;-1:-1:-1;;;;;;6448:17:0;;;;;;6481:40;;6431:6;;;;;;;6481:40;;6412:16;6481:40;6401:128;6338:191;:::o;23875:383::-;23960:4;23923:16;32225:18;;;:9;:18;;;;;;24009:10;;32225:18;;23977:57;;-1:-1:-1;;;;;24009:10:0;32225:18;23977:8;:57::i;:::-;24045:10;;-1:-1:-1;;;;;24045:10:0;:26;24079:21;24124:4;24144:11;24045:10;;24202:7;5117;5144:6;-1:-1:-1;;;;;5144:6:0;;5071:87;24202:7;24045:205;;;;;;-1:-1:-1;;;;;;24045:205:0;;;-1:-1:-1;;;;;19326:15:1;;;24045:205:0;;;19308:34:1;19358:18;;;19351:34;;;;19401:18;;;19394:34;;;;19444:18;;;19437:34;19508:15;;;19487:19;;;19480:44;24224:15:0;19540:19:1;;;19533:35;19242:19;;24045:205:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;23912:346;23875:383::o;24920:245::-;24995:15;;-1:-1:-1;;;;;24995:15:0;;;24989:21;;;;24981:49;;;;-1:-1:-1;;;24981:49:0;;20092:2:1;24981:49:0;;;20074:21:1;20131:2;20111:18;;;20104:30;-1:-1:-1;;;20150:18:1;;;20143:46;20206:18;;24981:49:0;19890:340:1;24981:49:0;-1:-1:-1;;;;;25049:18:0;;25041:53;;;;-1:-1:-1;;;25041:53:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25105:12:0;;;;;;:6;:12;;;;;;;;;:16;;-1:-1:-1;;25105:16:0;;;;;;;;;;25137:20;;20403:51:1;;;20470:18;;;20463:50;25137:20:0;;20376:18:1;25137:20:0;20235:284:1;18752:335:0;-1:-1:-1;;;;;18867:17:0;;18846:18;18867:17;;;:9;:17;;;;;;18903:23;;;;18895:60;;;;-1:-1:-1;;;18895:60:0;;20726:2:1;18895:60:0;;;20708:21:1;20765:2;20745:18;;;20738:30;-1:-1:-1;;;20784:18:1;;;20777:54;20848:18;;18895:60:0;20524:348:1;18895:60:0;-1:-1:-1;;;;;18966:17:0;;;;;;:9;:17;;;;;:25;;18985:6;;18966:17;:25;;18985:6;;18966:25;:::i;:::-;;;;-1:-1:-1;;;;;;;19002:20:0;;;;;;:9;:20;;;;;:28;;19024:6;;19002:20;:28;;19024:6;;19002:28;:::i;:::-;;;;;;;;19062:9;-1:-1:-1;;;;;19046:33:0;19055:6;-1:-1:-1;;;;;19046:33:0;-1:-1:-1;;;;;;;;;;;19072:6:0;19046:33;;;;1546:25:1;;1534:2;1519:18;;1400:177;19046:33:0;;;;;;;;18835:252;18752:335;;;:::o;14795:2984::-;-1:-1:-1;;;;;14908:17:0;;14887:18;14908:17;;;:9;:17;;;;;;14944:23;;;;14936:60;;;;-1:-1:-1;;;14936:60:0;;20726:2:1;14936:60:0;;;20708:21:1;20765:2;20745:18;;;20738:30;-1:-1:-1;;;20784:18:1;;;20777:54;20848:18;;14936:60:0;20524:348:1;14936:60:0;-1:-1:-1;;;;;15046:32:0;;15007:36;15046:32;;;:24;:32;;;;;;;;;:71;;-1:-1:-1;;;;;;15082:35:0;;;;;;:24;:35;;;;;;;;15046:71;-1:-1:-1;;;;;15164:37:0;;15128:33;15164:37;;;:29;:37;;;;;;15007:110;;-1:-1:-1;15128:33:0;15164:37;;;:81;;-1:-1:-1;;;;;;15205:40:0;;;;;;:29;:40;;;;;;;;15164:81;-1:-1:-1;;;;;15274:14:0;;;;;;:6;:14;;;;;;15128:117;;-1:-1:-1;15274:14:0;;:63;;;;;15306:31;15305:32;15274:63;15256:786;;;15368:28;15364:204;;15452:20;;15442:6;:30;;15416:136;;;;-1:-1:-1;;;15416:136:0;;21079:2:1;15416:136:0;;;21061:21:1;21118:2;21098:18;;;21091:30;21157:34;21137:18;;;21130:62;-1:-1:-1;;;21208:18:1;;;21201:38;21256:19;;15416:136:0;20877:404:1;15416:136:0;-1:-1:-1;;;;;32225:18:0;;15582:32;32225:18;;;:9;:18;;;;;;15715:16;;15678:33;15705:6;32225:18;15678:33;:::i;:::-;:53;;15652:151;;;;-1:-1:-1;;;15652:151:0;;;;;;;:::i;:::-;15349:466;15256:786;;;-1:-1:-1;;;;;15839:17:0;;;;;;:6;:17;;;;;;;;:63;;;;;15874:28;15873:29;15839:63;15821:221;;;15947:20;;15937:6;:30;;15929:101;;;;-1:-1:-1;;;15929:101:0;;21893:2:1;15929:101:0;;;21875:21:1;21932:2;21912:18;;;21905:30;21971:34;21951:18;;;21944:62;22042:28;22022:18;;;22015:56;22088:19;;15929:101:0;21691:422:1;15929:101:0;-1:-1:-1;;;;;16065:14:0;;;16054:10;16065:14;;;:6;:14;;;;;;;16102:17;;;;;;;;16065:14;;;;;16102:17;;16151:984;;;;16274:11;;16241:2;;16274:27;;16241:2;;16274:27;:::i;:::-;16261:12;:40;16258:114;;;17983:4;16325:14;16321:18;;16258:114;;;16365:7;;16361:11;;16258:114;16162:222;16151:984;;;16402:5;16399:736;;;16523:11;;16490:2;;16523:26;;16490:2;;16523:26;:::i;:::-;16510:12;:39;16507:112;;;17983:4;16573:14;17906:115;16507:112;-1:-1:-1;;16613:6:0;;16399:736;;;-1:-1:-1;;;;;32225:18:0;;16653:32;32225:18;;;:9;:18;;;;;;16727:31;16723:222;;16837:16;;16800:33;16827:6;16800:24;:33;:::i;:::-;:53;;16774:155;;;;-1:-1:-1;;;16774:155:0;;;;;;;:::i;:::-;17017:11;;16984:2;;17017:31;;16984:2;;17017:31;:::i;:::-;17004:12;:44;17001:122;;;17983:4;17068:18;;17001:122;;;17112:11;;17108:15;;17001:122;16637:498;;16399:736;17159:15;;-1:-1:-1;;;;;17151:23:0;;;17159:15;;17151:23;;;;17150:40;;-1:-1:-1;17179:10:0;;-1:-1:-1;;;17179:10:0;;;;17178:11;17150:40;:72;;;;-1:-1:-1;17194:27:0;;-1:-1:-1;;;17194:27:0;;;;17193:28;17150:72;17147:111;;;17233:25;17252:5;17233:18;:25::i;:::-;17269:18;17288:50;17302:6;17310:3;17330:7;;17322;;17315:6;;:14;;;;:::i;:::-;:22;;;;:::i;:::-;17288:13;:50::i;:::-;17269:69;;17369:34;17383:6;17391:3;17396:6;;17369:13;:34::i;:::-;17349:18;;:54;;;;;;;:::i;:::-;;;;;;;;17429:35;17443:6;17451:3;17456:7;;17429:13;:35::i;:::-;17414:13;;:50;;;;;;;:::i;:::-;;;;;;;;17490:35;17504:6;17512:3;17517:7;;17490:13;:35::i;:::-;17475:13;;:50;;;;;;;:::i;:::-;;;;-1:-1:-1;17536:16:0;;-1:-1:-1;17553:20:0;17560:13;17553:6;:20;:::i;:::-;-1:-1:-1;;;;;17586:17:0;;;;;;:9;:17;;;;;:25;;17536:37;;-1:-1:-1;17605:6:0;;17586:17;;;:25;;17605:6;;17586:25;:::i;:::-;;;;-1:-1:-1;;17640:4:0;17622:24;;;;:9;:24;;;;;:41;;17650:13;;17622:24;:41;;17650:13;;17622:41;:::i;:::-;;;;-1:-1:-1;;;;;;;17674:20:0;;;;;;:9;:20;;;;;:33;;17696:11;;17674:20;:33;;17696:11;;17674:33;:::i;:::-;;;;;;;;17749:9;-1:-1:-1;;;;;17733:38:0;17742:6;-1:-1:-1;;;;;17733:38:0;-1:-1:-1;;;;;;;;;;;17759:11:0;17733:38;;;;1546:25:1;;1534:2;1519:18;;1400:177;17733:38:0;;;;;;;;14876:2903;;;;;;;;14795:2984;;;:::o;23287:462::-;23377:10;;23345:52;;23362:4;;-1:-1:-1;;;;;23377:10:0;23390:6;23345:8;:52::i;:::-;23432:16;;;23446:1;23432:16;;;;;;;;23408:21;;23432:16;;;;;;;;;;-1:-1:-1;23432:16:0;23408:40;;23477:4;23459;23464:1;23459:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23459:23:0;;;:7;;;;;;;;;;:23;;;;23503:10;;:17;;;-1:-1:-1;;;23503:17:0;;;;:10;;;;;:15;;:17;;;;;23459:7;;23503:17;;;;;:10;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23493:4;23498:1;23493:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23493:27:0;;;:7;;;;;;;;;:27;23537:10;;:186;;-1:-1:-1;;;23537:186:0;;:10;;;:61;;:186;;23613:6;;23537:10;;23650:4;;23677;;23697:15;;23537:186;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23334:415;23287:462;:::o;18260:177::-;18346:4;18397:31;7540:5;;18397:31;:::i;:::-;18382:10;18371;18378:3;18371:6;:10;:::i;:::-;:21;;;;:::i;:::-;18370:59;;;;:::i;:::-;18363:66;18260:177;-1:-1:-1;;;;18260:177:0:o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:548::-;311:4;340:2;369;358:9;351:21;401:6;395:13;444:6;439:2;428:9;424:18;417:34;469:1;479:140;493:6;490:1;487:13;479:140;;;588:14;;;584:23;;578:30;554:17;;;573:2;550:26;543:66;508:10;;479:140;;;483:3;668:1;663:2;654:6;643:9;639:22;635:31;628:42;738:2;731;727:7;722:2;714:6;710:15;706:29;695:9;691:45;687:54;679:62;;;;199:548;;;;:::o;752:131::-;-1:-1:-1;;;;;827:31:1;;817:42;;807:70;;873:1;870;863:12;888:315;956:6;964;1017:2;1005:9;996:7;992:23;988:32;985:52;;;1033:1;1030;1023:12;985:52;1072:9;1059:23;1091:31;1116:5;1091:31;:::i;:::-;1141:5;1193:2;1178:18;;;;1165:32;;-1:-1:-1;;;888:315:1:o;1582:456::-;1659:6;1667;1675;1728:2;1716:9;1707:7;1703:23;1699:32;1696:52;;;1744:1;1741;1734:12;1696:52;1783:9;1770:23;1802:31;1827:5;1802:31;:::i;:::-;1852:5;-1:-1:-1;1909:2:1;1894:18;;1881:32;1922:33;1881:32;1922:33;:::i;:::-;1582:456;;1974:7;;-1:-1:-1;;;2028:2:1;2013:18;;;;2000:32;;1582:456::o;2043:523::-;2147:6;2155;2163;2171;2179;2187;2240:3;2228:9;2219:7;2215:23;2211:33;2208:53;;;2257:1;2254;2247:12;2208:53;-1:-1:-1;;2280:23:1;;;2350:2;2335:18;;2322:32;;-1:-1:-1;2401:2:1;2386:18;;2373:32;;2452:2;2437:18;;2424:32;;-1:-1:-1;2503:3:1;2488:19;;2475:33;;-1:-1:-1;2555:3:1;2540:19;2527:33;;-1:-1:-1;2043:523:1;-1:-1:-1;2043:523:1:o;2760:118::-;2846:5;2839:13;2832:21;2825:5;2822:32;2812:60;;2868:1;2865;2858:12;2883:241;2939:6;2992:2;2980:9;2971:7;2967:23;2963:32;2960:52;;;3008:1;3005;2998:12;2960:52;3047:9;3034:23;3066:28;3088:5;3066:28;:::i;:::-;3113:5;2883:241;-1:-1:-1;;;2883:241:1:o;3129:367::-;3192:8;3202:6;3256:3;3249:4;3241:6;3237:17;3233:27;3223:55;;3274:1;3271;3264:12;3223:55;-1:-1:-1;3297:20:1;;3340:18;3329:30;;3326:50;;;3372:1;3369;3362:12;3326:50;3409:4;3401:6;3397:17;3385:29;;3469:3;3462:4;3452:6;3449:1;3445:14;3437:6;3433:27;3429:38;3426:47;3423:67;;;3486:1;3483;3476:12;3423:67;3129:367;;;;;:::o;3501:773::-;3623:6;3631;3639;3647;3700:2;3688:9;3679:7;3675:23;3671:32;3668:52;;;3716:1;3713;3706:12;3668:52;3756:9;3743:23;3785:18;3826:2;3818:6;3815:14;3812:34;;;3842:1;3839;3832:12;3812:34;3881:70;3943:7;3934:6;3923:9;3919:22;3881:70;:::i;:::-;3970:8;;-1:-1:-1;3855:96:1;-1:-1:-1;4058:2:1;4043:18;;4030:32;;-1:-1:-1;4074:16:1;;;4071:36;;;4103:1;4100;4093:12;4071:36;;4142:72;4206:7;4195:8;4184:9;4180:24;4142:72;:::i;:::-;3501:773;;;;-1:-1:-1;4233:8:1;-1:-1:-1;;;;3501:773:1:o;4279:247::-;4338:6;4391:2;4379:9;4370:7;4366:23;4362:32;4359:52;;;4407:1;4404;4397:12;4359:52;4446:9;4433:23;4465:31;4490:5;4465:31;:::i;4531:248::-;4599:6;4607;4660:2;4648:9;4639:7;4635:23;4631:32;4628:52;;;4676:1;4673;4666:12;4628:52;-1:-1:-1;;4699:23:1;;;4769:2;4754:18;;;4741:32;;-1:-1:-1;4531:248:1:o;4784:382::-;4849:6;4857;4910:2;4898:9;4889:7;4885:23;4881:32;4878:52;;;4926:1;4923;4916:12;4878:52;4965:9;4952:23;4984:31;5009:5;4984:31;:::i;:::-;5034:5;-1:-1:-1;5091:2:1;5076:18;;5063:32;5104:30;5063:32;5104:30;:::i;:::-;5153:7;5143:17;;;4784:382;;;;;:::o;5379:388::-;5447:6;5455;5508:2;5496:9;5487:7;5483:23;5479:32;5476:52;;;5524:1;5521;5514:12;5476:52;5563:9;5550:23;5582:31;5607:5;5582:31;:::i;:::-;5632:5;-1:-1:-1;5689:2:1;5674:18;;5661:32;5702:33;5661:32;5702:33;:::i;5772:529::-;5849:6;5857;5865;5918:2;5906:9;5897:7;5893:23;5889:32;5886:52;;;5934:1;5931;5924:12;5886:52;5973:9;5960:23;5992:31;6017:5;5992:31;:::i;:::-;6042:5;-1:-1:-1;6099:2:1;6084:18;;6071:32;6112:33;6071:32;6112:33;:::i;:::-;6164:7;-1:-1:-1;6223:2:1;6208:18;;6195:32;6236:33;6195:32;6236:33;:::i;:::-;6288:7;6278:17;;;5772:529;;;;;:::o;6306:127::-;6367:10;6362:3;6358:20;6355:1;6348:31;6398:4;6395:1;6388:15;6422:4;6419:1;6412:15;6438:168;6511:9;;;6542;;6559:15;;;6553:22;;6539:37;6529:71;;6580:18;;:::i;6611:217::-;6651:1;6677;6667:132;;6721:10;6716:3;6712:20;6709:1;6702:31;6756:4;6753:1;6746:15;6784:4;6781:1;6774:15;6667:132;-1:-1:-1;6813:9:1;;6611:217::o;7043:422::-;7132:1;7175:5;7132:1;7189:270;7210:7;7200:8;7197:21;7189:270;;;7269:4;7265:1;7261:6;7257:17;7251:4;7248:27;7245:53;;;7278:18;;:::i;:::-;7328:7;7318:8;7314:22;7311:55;;;7348:16;;;;7311:55;7427:22;;;;7387:15;;;;7189:270;;;7193:3;7043:422;;;;;:::o;7470:806::-;7519:5;7549:8;7539:80;;-1:-1:-1;7590:1:1;7604:5;;7539:80;7638:4;7628:76;;-1:-1:-1;7675:1:1;7689:5;;7628:76;7720:4;7738:1;7733:59;;;;7806:1;7801:130;;;;7713:218;;7733:59;7763:1;7754:10;;7777:5;;;7801:130;7838:3;7828:8;7825:17;7822:43;;;7845:18;;:::i;:::-;-1:-1:-1;;7901:1:1;7887:16;;7916:5;;7713:218;;8015:2;8005:8;8002:16;7996:3;7990:4;7987:13;7983:36;7977:2;7967:8;7964:16;7959:2;7953:4;7950:12;7946:35;7943:77;7940:159;;;-1:-1:-1;8052:19:1;;;8084:5;;7940:159;8131:34;8156:8;8150:4;8131:34;:::i;:::-;8201:6;8197:1;8193:6;8189:19;8180:7;8177:32;8174:58;;;8212:18;;:::i;:::-;8250:20;;7470:806;-1:-1:-1;;;7470:806:1:o;8281:140::-;8339:5;8368:47;8409:4;8399:8;8395:19;8389:4;8368:47;:::i;8775:128::-;8842:9;;;8863:11;;;8860:37;;;8877:18;;:::i;9255:125::-;9320:9;;;9341:10;;;9338:36;;;9354:18;;:::i;10679:127::-;10740:10;10735:3;10731:20;10728:1;10721:31;10771:4;10768:1;10761:15;10795:4;10792:1;10785:15;10811:135;10850:3;10871:17;;;10868:43;;10891:18;;:::i;:::-;-1:-1:-1;10938:1:1;10927:13;;10811:135::o;11876:347::-;12078:2;12060:21;;;12117:2;12097:18;;;12090:30;12156:25;12151:2;12136:18;;12129:53;12214:2;12199:18;;11876:347::o;12572:251::-;12642:6;12695:2;12683:9;12674:7;12670:23;12666:32;12663:52;;;12711:1;12708;12701:12;12663:52;12743:9;12737:16;12762:31;12787:5;12762:31;:::i;13137:184::-;13207:6;13260:2;13248:9;13239:7;13235:23;13231:32;13228:52;;;13276:1;13273;13266:12;13228:52;-1:-1:-1;13299:16:1;;13137:184;-1:-1:-1;13137:184:1:o;13605:245::-;13672:6;13725:2;13713:9;13704:7;13700:23;13696:32;13693:52;;;13741:1;13738;13731:12;13693:52;13773:9;13767:16;13792:28;13814:5;13792:28;:::i;19579:306::-;19667:6;19675;19683;19736:2;19724:9;19715:7;19711:23;19707:32;19704:52;;;19752:1;19749;19742:12;19704:52;19781:9;19775:16;19765:26;;19831:2;19820:9;19816:18;19810:25;19800:35;;19875:2;19864:9;19860:18;19854:25;19844:35;;19579:306;;;;;:::o;21286:400::-;21488:2;21470:21;;;21527:2;21507:18;;;21500:30;21566:34;21561:2;21546:18;;21539:62;-1:-1:-1;;;21632:2:1;21617:18;;21610:34;21676:3;21661:19;;21286:400::o;22250:980::-;22512:4;22560:3;22549:9;22545:19;22591:6;22580:9;22573:25;22617:2;22655:6;22650:2;22639:9;22635:18;22628:34;22698:3;22693:2;22682:9;22678:18;22671:31;22722:6;22757;22751:13;22788:6;22780;22773:22;22826:3;22815:9;22811:19;22804:26;;22865:2;22857:6;22853:15;22839:29;;22886:1;22896:195;22910:6;22907:1;22904:13;22896:195;;;22975:13;;-1:-1:-1;;;;;22971:39:1;22959:52;;23066:15;;;;23031:12;;;;23007:1;22925:9;22896:195;;;-1:-1:-1;;;;;;;23147:32:1;;;;23142:2;23127:18;;23120:60;-1:-1:-1;;;23211:3:1;23196:19;23189:35;23108:3;22250:980;-1:-1:-1;;;22250:980:1:o

Swarm Source

ipfs://814cc869f2b30a08a66f1f4d23423c8980f21e19f6416210ca1f131b3cdd3eac

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.