Contract 0x75a6f00ab686388e3a316c978b1a466750f42774

 

Contract Overview

Balance:
0.116068826447782266 BNB

BNB Value:
$44.48 (@ $383.20/BNB)

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xaff4d291a3cfea57e2667eeb74b5e9279b13b79c463d2fcc575c3f25a47ebdafApprove144919472022-01-19 4:39:427 days 1 hr ago0xe56d10669ea90d4b0987bae6ce2df578c2d74994 IN  0x75a6f00ab686388e3a316c978b1a466750f427740 BNB0.000311843
0x7fac3a566c91b92beff2d627a4b792305cd43c2b63d5b4a1eca3067a12aeb98dApprove143866862022-01-15 12:12:1010 days 17 hrs ago0xd1e47a6513273618aa7fe864dd4b0c38fef9edfa IN  0x75a6f00ab686388e3a316c978b1a466750f427740 BNB0.000222745
0x26d736c78e8d95fd0dbe867d27a24a8bad925fe6c69a7f313560a8263642858cApprove141397962022-01-06 22:03:4919 days 7 hrs ago0xeb8835642f278d22a0b65fb1c957375f850d64de IN  0x75a6f00ab686388e3a316c978b1a466750f427740 BNB0.000222745
0x4f12994c057047bc8e62f705f7e5df94f58098ef228dcfab6f38ffd7f54a4ca3Approve141034112022-01-05 15:41:1420 days 14 hrs ago0x6b86903cab1ee3f4acfa1ba8eaad66c01501ff48 IN  0x75a6f00ab686388e3a316c978b1a466750f427740 BNB0.000222745
0x115c4a54f40006727e72ae10604dd94fc9e0a375dd167f0756a64c0d24e860b5Approve140191642022-01-02 17:21:2923 days 12 hrs ago0x66627e4cbfaa1b13782b3352baad171d3fb124ed IN  0x75a6f00ab686388e3a316c978b1a466750f427740 BNB0.000072915
0xb5224670dbc044b9bfe77fceed65b5b8e0a34c4d6f8723ec7e446a585674e444Transfer139269222021-12-30 12:21:0326 days 17 hrs ago0xd901927825e4d54273a5e5bbf785a841afba901c IN  0x75a6f00ab686388e3a316c978b1a466750f427740 BNB0.00079873
0x46a2fc26ed3c278197c450023ed34ef746722e3829e67b878c9c64b573c0786dApprove135759172021-12-18 6:55:1538 days 22 hrs ago0xb9c2556f3aa154693aae347ee19cac8843984b40 IN  0x75a6f00ab686388e3a316c978b1a466750f427740 BNB0.000222745
0xddf9c55d963b299e1252b24c7f80e693ba4f94f163369ef09b95ee0b6baf6089Approve133869142021-12-11 16:43:0845 days 13 hrs ago0xbaf88b32025aeaefee010013da46098382475ddc IN  0x75a6f00ab686388e3a316c978b1a466750f427740 BNB0.0000758316
0xd29f74d05071a2e761806da1292cec018bdddfa6d9d1af801c4a60d4c20330cdTransfer133089552021-12-08 23:22:5148 days 6 hrs ago0x1e614e285e244914df08233d20c3f9703c1317b3 IN  0x75a6f00ab686388e3a316c978b1a466750f427740.007832125933109 BNB0.000105275
0x71df8f11661cfed26391ad3b4074f943eae531b14f139f39891c718444f03d05Transfer133089402021-12-08 23:22:0648 days 6 hrs ago0x1e614e285e244914df08233d20c3f9703c1317b3 IN  0x75a6f00ab686388e3a316c978b1a466750f427740 BNB0.000765945
0xa9cc164266bf5e638881eacb321716a7cb6a57ea8811a28b226efa8583789020Approve132809202021-12-07 21:03:3549 days 8 hrs ago0x51c66f8a399c364135e07e2a17c903363a7604ce IN  0x75a6f00ab686388e3a316c978b1a466750f427740 BNB0.000222745
0x02ec93648506a98e72fd901eab56ead7af8457e8cd6bc300626e6095080f70eeApprove130127912021-11-28 2:49:5159 days 2 hrs ago0x15fdfd8373ed341b310fb374e8b46dff3c51b712 IN  0x75a6f00ab686388e3a316c978b1a466750f427740 BNB0.000222745
0x62fe4d635629b507925fd1723e017a2d8943ae5d5514e2e8903a3b14e74555ddApprove129777252021-11-26 19:26:3660 days 10 hrs ago0x59e85b34b9eb07bd4ab127f512200dfb88c444d7 IN  0x75a6f00ab686388e3a316c978b1a466750f427740 BNB0.000311843
0xb3222578e91511e11f8b6d1c26f0f9ba0ec2833446662377a1e118272ce848ecApprove129533762021-11-25 20:31:2361 days 9 hrs ago0x29dfb7da8d41d0510663f0c70f2bee86e198f724 IN  0x75a6f00ab686388e3a316c978b1a466750f427740 BNB0.000072915
0x28cd7ffcdfe6dab3fff6958b5604cbd40d3defae27b1627e9e6186600c6fdef2Transfer128117972021-11-20 17:44:4566 days 12 hrs ago0x668716da284a0a8469bf454111f988164457c9be IN  0x75a6f00ab686388e3a316c978b1a466750f427740 BNB0.00072373
0x7292cc8e3a1aec878b4f3ef4408b1ea2fc5c7f7978fa55efc64e7541bac79bffTransfer127816162021-11-19 15:14:2467 days 14 hrs ago0x2439d039ad7e18b40ff622ad2908fd857c2a5dec IN  0x75a6f00ab686388e3a316c978b1a466750f427740 BNB0.00072373
0x4b644a54f9e76a98cf063a230bea6e2c70a5fa02e8d1f36f0b04d3044098e6aeTransfer127724602021-11-19 7:15:3467 days 22 hrs ago0x291778933c2c81932ede4d73d16536efe6ecaf0d IN  0x75a6f00ab686388e3a316c978b1a466750f427740 BNB0.00072373
0x611ae7da657ac6cd8a9d2ffec839abc5379085e30c1d3fe636879bedb1d402e1Approve127486062021-11-18 10:36:3168 days 19 hrs ago0xb8d4916400cf5ab4337fa3199a4b8e9e376e590b IN  0x75a6f00ab686388e3a316c978b1a466750f427740 BNB0.000072915
0xf548a79a304abb4c773099c89905b773a9939b1c073749289f4194a92473705dTransfer127366522021-11-18 0:18:5469 days 5 hrs ago0xa4b042702ef5f48cd6d7d09e6859e950a81d1277 IN  0x75a6f00ab686388e3a316c978b1a466750f427740 BNB0.000737385
0xc6b4974bb539f19992c47f535d4e69fd24db7dfaefe01f70a95bb0f4a622f796Transfer127366482021-11-18 0:18:4269 days 5 hrs ago0xa807dd73c708d97c0cf3871aedf5812389b55c01 IN  0x75a6f00ab686388e3a316c978b1a466750f427740 BNB0.00072379
0xd0136537e635419a2817aa5ffe680ea989ad4d4c675e35cfd8d4996e620fb09dTransfer127366302021-11-18 0:17:4369 days 5 hrs ago0xaf6a86ad551bb569fff708fbee7fd4b9cd798db7 IN  0x75a6f00ab686388e3a316c978b1a466750f427740 BNB0.00079879
0x1088125b7267e6ed46037f215763bade02910c07f22a252016aebf8b17e749b1Approve127343762021-11-17 22:22:4369 days 7 hrs ago0x498079ab9e50afdb8eaae0e78985c0a956fc9916 IN  0x75a6f00ab686388e3a316c978b1a466750f427740 BNB0.000267294
0x7713abb046e4f550f5ce3d26b7f746960d6462982a54e29135d61579281c813bApprove127019602021-11-16 17:31:5070 days 12 hrs ago0xc86b627a9de8cd65ad78bb348d5984d0e3ba1266 IN  0x75a6f00ab686388e3a316c978b1a466750f427740 BNB0.000222745
0x6b5756d9e076ae211c1851ecb1c5ca04df9dc4b195cefa3501a6d30298ce7730Approve126273282021-11-14 0:04:5173 days 5 hrs ago0x9e3fc3631dbdf749b0d078bd5cedc622b7b4e591 IN  0x75a6f00ab686388e3a316c978b1a466750f427740 BNB0.000222745
0x06d694e0556011b0ae74c8878ce0eca98251fe44866e3761285875c1f6e7051aApprove125647392021-11-11 18:20:0375 days 11 hrs ago0x4d12971e28f783ce9209e44ea39e6eab1c36b7b3 IN  0x75a6f00ab686388e3a316c978b1a466750f427740 BNB0.000222745
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TipTok

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-07-08
*/

pragma solidity 0.8.4;
// SPDX-License-Identifier: Unlicensed

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

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

interface IBEP20 {

    function totalSupply() external view returns (uint256);
    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);
}

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }


    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

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

contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

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

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

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract TipTok is Context, IBEP20, Ownable {
    using SafeMath for uint256;

    // Mappings for tracking
    mapping (address => uint256) public amountSoldTrack;
    mapping (address => uint256) public amountBlockToSellNext;
    uint256 public limitToSellBeforeBlockCooldown = 2000000 * 10**9; // 0.2% of total Supply
    uint256 public _blocksToWait = 720; // Around 5s/Block = 1hr

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

    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isAdminAccount;

    mapping (address => bool) private _isExcluded;
    address[] private _excluded;

    uint256 private constant MAX = ~uint256(0);
    uint256 private _tTotal = 1000000000 * 10**9; // 1 billion
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    string private _name = "TipTok";
    string private _symbol = "TipTok";
    uint8 private _decimals = 9;

    uint256 private priceImpact = 3;

    uint256 public _taxFee = 2;
    uint256 private _previousTaxFee = _taxFee;

    uint256 public _marketingFee = 1;
    uint256 private _previousMarketingFee = _marketingFee;
    address public marketingAddr = 0x5b754245E1D36ef99d824Fc39903A5675e1378DF;
    
    uint256 public _influencerFee = 3;
    uint256 private _previousInfluencerFee = _influencerFee;
    address public influencerAddr = 0x234693E44BD97541428C1DC0E449537B420ed4C6;

    uint256 public _liquidityFee = 5;
    uint256 private _previousLiquidityFee = _liquidityFee;

    uint256 public _maxAllowedBalanceAmount = 10000000 * 10**9; //1% of totalSupply
    uint256 public _maxTxAmount = 2000000 * 10**9; //0.2% of totalSupply

    IUniswapV2Router02 public  uniswapV2Router;
    address public uniswapV2Pair;
    uint256 private numTokensSellToAddToLiquidity = 2000000 * 10**9; //0.2% of totalSupply
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;

    event Purchase(address indexed to, uint256 amount);
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiquidity
    );

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor () {
        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isAdminAccount[owner()] = true;
        _isAdminAccount[address(this)] = true;
        _isAdminAccount[uniswapV2Pair] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

    function balanceOf(address account) public view override returns (uint256) {
        if (_isExcluded[account]) return _tOwned[account];
        return tokenFromReflection(_rOwned[account]);
    }

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function isExcludedFromReward(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function totalFees() public view returns (uint256) {
        return _tFeeTotal;
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferFee) {
            (uint256 rAmount,,,,,,) = _getValues(tAmount);
            return rAmount;
        } else {
            (,uint256 rTransferAmount,,,,,) = _getValues(tAmount);
            return rTransferAmount;
        }
    }

    function tokenFromReflection(uint256 rAmount) public view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function excludeFromReward(address account) public onlyOwner() {
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeInReward(address account) external onlyOwner() {
        require(_isExcluded[account], "Account is already excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }
    
    function addAdminAccount(address account) public onlyOwner() {
        _isAdminAccount[account] = true;
    }

    function removeAdminAccount(address account) public onlyOwner() {
        _isAdminAccount[account] = false;
    }

    function excludeFromFee(address account) public onlyOwner() {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner() {
        _isExcludedFromFee[account] = false;
    }

    function setTaxFeePercent(uint256 taxFee) external onlyOwner() {
        require(taxFee <= 10, "Percentage too high. Please use a lower percentage.");
        _taxFee = taxFee;
    }

    function setMarketingAddr(address addr) external onlyOwner() {
        marketingAddr = addr;
    }

    function setInfluencerAddr(address addr) external onlyOwner() {
        influencerAddr = addr;
    }

    function setMarketingFeePercent(uint256 marketingFee) external onlyOwner() {
        require(marketingFee <= 10, "Percentage too high. Please use a lower percentage.");
        _marketingFee = marketingFee;
    }

    function setInfluencerFeePercent(uint256 influencerFee) external onlyOwner() {
        require(influencerFee <= 10, "Percentage too high. Please use a lower percentage.");
        _influencerFee = influencerFee;
    }

    function setLiquidityFeePercent(uint256 liquidityFee) external onlyOwner() {
        require(liquidityFee <= 10, "Percentage too high. Please use a lower percentage.");
        _liquidityFee = liquidityFee;
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner() {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function setMaxAllowedBalance(uint256 maxBalancePercent) external onlyOwner() {
        require(maxBalancePercent >= 1, "Percentage too low. Please use a higher percentage.");
        _maxAllowedBalanceAmount = _tTotal.mul(maxBalancePercent).div(
            10**2
        );
    }

    function getMaxAllowedBalance() public view returns(uint256) {
        return _maxAllowedBalanceAmount;
    }

    function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() {
        require(maxTxAmount >= 2000000 * 10**9, "Amount is too low. Please set a higher maxTxAmount.");
        _maxTxAmount = maxTxAmount;
    }

    function getMaxTxAmount() public view returns(uint256) {
        return _maxTxAmount;
    }

    function setSellLimitForBlockCooldown(uint256 SellLimitForBlockCooldown) external onlyOwner() {
        require(SellLimitForBlockCooldown >= 2000000 * 10**9, "Amount is too low. Please set a higher SellLimitForBlockCooldown.");
        limitToSellBeforeBlockCooldown = SellLimitForBlockCooldown;
    }

    function getLimitToSellBeforeBlockCooldown() public view returns(uint256) {
        return limitToSellBeforeBlockCooldown;
    }

    function setBlocksToWait(uint256 newBlocks) external onlyOwner() {
        require(newBlocks <= 8640, "Block wait time is too hight. Set it below than 8640 (12Hrs).");
        _blocksToWait = newBlocks;
    }

    function getBlocksToWait() public view returns(uint256) {
        return _blocksToWait;
    }

    receive() external payable {
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tMarketing, uint256 tLiquidity) = _getTValues(tAmount);
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tMarketing, _getRate());
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tMarketing, tLiquidity);
    }

    function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256) {
        uint256 tFee = calculateTaxFee(tAmount);
        uint256 marketing = calculateMarketingFee(tAmount);
        uint256 tLiquidity = calculateLiquidityFee(tAmount);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(marketing).sub(tLiquidity);
        return (tTransferAmount, tFee, marketing, tLiquidity);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 marketing, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rMarketing = marketing.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rMarketing);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _takeLiquidity(uint256 tLiquidity) private {
        uint256 currentRate =  _getRate();
        uint256 rLiquidity = tLiquidity.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity);
        if(_isExcluded[address(this)])
            _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity);
    }

    function _takeMarketing(uint256 marketing) private {
        uint256 currentRate =  _getRate();
        uint256 rMarketing = marketing.mul(currentRate);
        _rOwned[marketingAddr] = _rOwned[marketingAddr].add(rMarketing);
        if(_isExcluded[address(this)])
            _tOwned[address(this)] = _tOwned[address(this)].add(marketing);
    }

    function _takeInfluencer(uint256 influencer) private {
        uint256 currentRate =  _getRate();
        uint256 rInfluencer = influencer.mul(currentRate);
        _rOwned[influencerAddr] = _rOwned[influencerAddr].add(rInfluencer);
    }

    function calculateTaxFee(uint256 _amount) private view returns (uint256) {
        return _amount.mul(_taxFee).div(
            10**2
        );
    }

    function calculateMarketingFee(uint256 _amount) private view returns (uint256) {
        return _amount.mul(_marketingFee).div(
            10**2
        );
    }

    function calculateLiquidityFee(uint256 _amount) private view returns (uint256) {
        return _amount.mul(_liquidityFee).div(
            10**2
        );
    }

    function calculateInfluencerFee(uint256 _amount) private view returns (uint256) {
        return _amount.mul(_influencerFee).div(
            10**2
        );
    }

    function setPriceImpact(uint256 percent) external onlyOwner(){
        require(percent >= 1, "Price impact set too low");
        priceImpact = percent;
    }


    function removeAllFee() private {
        if(_taxFee == 0 && _marketingFee == 0 && _liquidityFee == 0 && _influencerFee == 0) return;

        _previousTaxFee = _taxFee;
        _previousMarketingFee = _marketingFee;
        _previousLiquidityFee = _liquidityFee;
        _previousInfluencerFee = _influencerFee;

        _taxFee = 0;
        _marketingFee = 0;
        _liquidityFee = 0;
        _influencerFee = 0;
    }

    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _marketingFee = _previousMarketingFee;
        _liquidityFee = _previousLiquidityFee;
        _influencerFee = _previousInfluencerFee;
    }

    function isAdminAccount(address account) public view returns(bool) {
        return _isAdminAccount[account];
    }

    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }

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

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        if (from != owner() && to != owner()) { // Owner can send to the zero address on demand.
            require(to != address(0), "ERC20: transfer to the zero address");
        }

        uint256 currentBalance = balanceOf(to);
        
        if(to == uniswapV2Pair && !_isAdminAccount[from]){
            require(amount <= balanceOf(uniswapV2Pair).mul(priceImpact).div(100) && amount <= _maxTxAmount);
            require(block.number >= amountBlockToSellNext[from], "You have sold or transferred too much, try to sell again in 1400 blocks from your last transaction.");
            require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            amountSoldTrack[from] += amount;
        }

        if(to != uniswapV2Pair && !_isAdminAccount[from]){
            require((currentBalance + amount) <= _maxAllowedBalanceAmount, "Account balance exceeds the maxAllowedBalanceAmount.");
            require(block.number >= amountBlockToSellNext[from], "You have sold or transferred too much, try to sell again in 1400 blocks from your last transaction.");
            require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            amountSoldTrack[from] += amount;
        }

        if(from == uniswapV2Pair && !_isAdminAccount[to]) {
            require((currentBalance + amount) <= _maxAllowedBalanceAmount, "Account balance exceeds the maxAllowedBalanceAmount.");
        }

        
        uint256 contractTokenBalance = balanceOf(address(this));

        bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;
        if (
            overMinTokenBalance &&
            !inSwapAndLiquify &&
            from != uniswapV2Pair &&
            swapAndLiquifyEnabled
        ) {
            contractTokenBalance = numTokensSellToAddToLiquidity;
            swapAndLiquify(contractTokenBalance);
        }

        bool takeFee = true;

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

        if(to == address(0)) {
            takeFee = false;
        }

        _tokenTransfer(from,to,amount,takeFee);

        if(amountSoldTrack[from] >= limitToSellBeforeBlockCooldown){
            amountBlockToSellNext[from] = block.number.add(_blocksToWait);
            amountSoldTrack[from] = 0;
        }
    }


    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        uint256 half = contractTokenBalance.div(2);
        uint256 otherHalf = contractTokenBalance.sub(half);

        uint256 initialBalance = address(this).balance;

        swapTokensForEth(half);

        uint256 newBalance = address(this).balance.sub(initialBalance);

        addLiquidity(otherHalf, newBalance);

        emit SwapAndLiquify(half, newBalance, otherHalf);
    }
    

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            address(this),
            block.timestamp
        );
    }

    //Call this function with true, before presale and false after presale and LQ is added on PCS.
    function setPresaleState(bool presale) external onlyOwner() {
        if (presale) {
            _taxFee = 0;
            _previousTaxFee = _taxFee;
            _liquidityFee = 0;
            _previousLiquidityFee = _liquidityFee;
            _marketingFee = 0;
            _previousMarketingFee = _marketingFee;
            _influencerFee = 0;
            _previousInfluencerFee = _influencerFee;
            inSwapAndLiquify = false;
            swapAndLiquifyEnabled = false;
            _maxTxAmount = _tTotal;
            emit SwapAndLiquifyEnabledUpdated(false);
        } else {
            _taxFee = 2;
            _previousTaxFee = _taxFee;
            _liquidityFee = 5;
            _previousLiquidityFee = _liquidityFee;
            _marketingFee = 1;
            _previousMarketingFee = _marketingFee;
            _influencerFee = 3;
            _previousInfluencerFee = _influencerFee;
            inSwapAndLiquify = true;
            swapAndLiquifyEnabled = true;
            _maxTxAmount = 2000000 * 10**9;
            emit SwapAndLiquifyEnabledUpdated(true);
        }
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount,bool takeFee) private {
        if(!takeFee)
            removeAllFee();

        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }

        if(!takeFee)
            restoreAllFee();
    }
    
    function setRouterAddress(address newRouter) public onlyOwner() {
        IUniswapV2Router02 _newPancakeRouter = IUniswapV2Router02(newRouter);
        uniswapV2Pair = IUniswapV2Factory(_newPancakeRouter.factory()).createPair(address(this), _newPancakeRouter.WETH());
        uniswapV2Router = _newPancakeRouter;
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 marketing, uint256 tLiquidity) = _getValues(tAmount);
        uint256 tInfluencerAmount = calculateInfluencerFee(tAmount);
        rAmount = rAmount.sub(tInfluencerAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeLiquidity(tLiquidity);
        _takeMarketing(marketing);
        _takeInfluencer(tInfluencerAmount);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, marketingAddr, marketing);
        emit Transfer(sender, recipient, tTransferAmount.sub(tInfluencerAmount));
        emit Transfer(sender, influencerAddr, tInfluencerAmount);
    }

    function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 marketing, uint256 tLiquidity) = _getValues(tAmount);
        uint256 tInfluencerAmount = calculateInfluencerFee(tAmount);
        rAmount = rAmount.sub(tInfluencerAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);           
        _takeLiquidity(tLiquidity);
        _takeMarketing(marketing);
        _takeInfluencer(tInfluencerAmount);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, marketingAddr, marketing);
        emit Transfer(sender, recipient, tTransferAmount.sub(tInfluencerAmount));
        emit Transfer(sender, influencerAddr, tInfluencerAmount);
    }

    function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 marketing, uint256 tLiquidity) = _getValues(tAmount);
        uint256 tInfluencerAmount = calculateInfluencerFee(tAmount);
        rAmount = rAmount.sub(tInfluencerAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);   
        _takeLiquidity(tLiquidity);
        _takeMarketing(marketing);
        _takeInfluencer(tInfluencerAmount);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, marketingAddr, marketing);
        emit Transfer(sender, recipient, tTransferAmount.sub(tInfluencerAmount));
        emit Transfer(sender, influencerAddr, tInfluencerAmount);
    }

    function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 marketing, uint256 tLiquidity) = _getValues(tAmount);
        uint256 tInfluencerAmount = calculateInfluencerFee(tAmount);
        rAmount = rAmount.sub(tInfluencerAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);        
        _takeLiquidity(tLiquidity);
        _takeMarketing(marketing);
        _takeInfluencer(tInfluencerAmount);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, marketingAddr, marketing);
        emit Transfer(sender, recipient, tTransferAmount.sub(tInfluencerAmount));
        emit Transfer(sender, influencerAddr, tInfluencerAmount);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Purchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_blocksToWait","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_influencerFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxAllowedBalanceAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addAdminAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"amountBlockToSellNext","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"amountSoldTrack","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getBlocksToWait","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLimitToSellBeforeBlockCooldown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxAllowedBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"influencerAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isAdminAccount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitToSellBeforeBlockCooldown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeAdminAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBlocks","type":"uint256"}],"name":"setBlocksToWait","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setInfluencerAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"influencerFee","type":"uint256"}],"name":"setInfluencerFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setLiquidityFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setMarketingAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingFee","type":"uint256"}],"name":"setMarketingFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBalancePercent","type":"uint256"}],"name":"setMaxAllowedBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"presale","type":"bool"}],"name":"setPresaleState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setPriceImpact","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setRouterAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"SellLimitForBlockCooldown","type":"uint256"}],"name":"setSellLimitForBlockCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"setTaxFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405266071afd498d00006003556102d0600455670de0b6b3a7640000600c8190556200003190600019620005d0565b6200003f906000196200056f565b600d5560408051808201909152600680825265546970546f6b60d01b60209092019182526200007191600f9162000499565b5060408051808201909152600680825265546970546f6b60d01b6020909201918252620000a19160109162000499565b506011805460ff19166009179055600360128190556002601381905560145560016015819055601655601780546001600160a01b0319908116735b754245e1d36ef99d824fc39903a5675e1378df179091556018829055601991909155601a805490911673234693e44bd97541428c1dc0e449537b420ed4c61790556005601b819055601c55662386f26fc10000601d5566071afd498d0000601e8190556021556022805461ff0019166101001790553480156200015e57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600d543360009081526005602090815260409182902092909255805163c45a015560e01b815290517310ed43c718714eb63d5aa57b78b54704e256024e92839263c45a01559260048083019392829003018186803b1580156200020257600080fd5b505afa15801562000217573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023d91906200053f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200028657600080fd5b505afa1580156200029b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c191906200053f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200030a57600080fd5b505af11580156200031f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034591906200053f565b602080546001600160a01b03199081166001600160a01b0393841617909155601f80549091169183169190911790556001600860006200038d6000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526008909252812080549092166001908117909255600990620003e66000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526009845282812080548616600190811790915593549091168152208054909216179055620004423390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c546040516200048a91815260200190565b60405180910390a350620005f1565b828054620004a79062000593565b90600052602060002090601f016020900481019282620004cb576000855562000516565b82601f10620004e657805160ff191683800117855562000516565b8280016001018555821562000516579182015b8281111562000516578251825591602001919060010190620004f9565b506200052492915062000528565b5090565b5b8082111562000524576000815560010162000529565b60006020828403121562000551578081fd5b81516001600160a01b038116811462000568578182fd5b9392505050565b6000828210156200058e57634e487b7160e01b81526011600452602481fd5b500390565b600181811c90821680620005a857607f821691505b60208210811415620005ca57634e487b7160e01b600052602260045260246000fd5b50919050565b600082620005ec57634e487b7160e01b81526012600452602481fd5b500690565b61363c80620006016000396000f3fe6080604052600436106103905760003560e01c80634fe57e7a116101dc578063a7c1d59011610102578063d71e4671116100a0578063ea2f0b371161006f578063ea2f0b3714610aa7578063ec28438a14610ac7578063f2fde38b14610ae7578063f320265014610b0757600080fd5b8063d71e467114610a09578063dd62ed3e14610a36578063e2c5a6f514610a7c578063e9ad51ff14610a9257600080fd5b8063b0d0b413116100dc578063b0d0b41314610993578063bce4d6ae146109b3578063c49b9a80146109d3578063c78f54a0146109f357600080fd5b8063a7c1d5901461093e578063a9059cbb1461095e578063b05379161461097e57600080fd5b806370a082311161017a5780638da5cb5b116101495780638da5cb5b146108cb5780638ee88c53146108e957806395d89b4114610909578063a457c2d71461091e57600080fd5b806370a0823114610847578063715018a6146108675780637d1db4a51461087c57806388f820201461089257600080fd5b8063679f2aed116101b6578063679f2aed146107cf57806367a89a72146107fc5780636bc87c3a1461081c5780636d8b05271461083257600080fd5b80634fe57e7a1461075657806352390c02146107765780635342acb41461079657600080fd5b8063313ce567116102c157806341cb87fc1161025f57806347bf4c301161022e57806347bf4c30146106e157806349afc835146106f757806349bd5a5e146107175780634a74bb021461073757600080fd5b806341cb87fc14610661578063437823ec146106815780634549b039146106a1578063457c194c146106c157600080fd5b8063395093511161029b57806339509351146105f65780633ad1f661146106165780633b124fe71461062b5780633ff42b921461064157600080fd5b8063313ce5671461057b578063329e05871461059d5780633685d419146105d657600080fd5b80631ca6e0ee1161032e57806322976e0d1161030857806322976e0d1461050557806323b872dd1461051b5780632b929aa81461053b5780632d8381191461055b57600080fd5b80631ca6e0ee146104a55780631f7ac5a0146104c557806320a8e2d4146104e557600080fd5b80630d2b6c3e1161036a5780630d2b6c3e1461041957806313114a9d146104515780631694505e1461047057806318160ddd1461049057600080fd5b8063061c82d01461039c57806306fdde03146103be578063095ea7b3146103e957600080fd5b3661039757005b600080fd5b3480156103a857600080fd5b506103bc6103b73660046131e4565b610b1d565b005b3480156103ca57600080fd5b506103d3610b76565b6040516103e09190613254565b60405180910390f35b3480156103f557600080fd5b5061040961040436600461319f565b610c08565b60405190151581526020016103e0565b34801561042557600080fd5b50601a54610439906001600160a01b031681565b6040516001600160a01b0390911681526020016103e0565b34801561045d57600080fd5b50600e545b6040519081526020016103e0565b34801561047c57600080fd5b50601f54610439906001600160a01b031681565b34801561049c57600080fd5b50600c54610462565b3480156104b157600080fd5b506103bc6104c03660046131e4565b610c1f565b3480156104d157600080fd5b506103bc6104e03660046130ef565b610cdc565b3480156104f157600080fd5b506103bc6105003660046131e4565b610d28565b34801561051157600080fd5b5061046260155481565b34801561052757600080fd5b5061040961053636600461315f565b610dde565b34801561054757600080fd5b506103bc6105563660046131e4565b610e47565b34801561056757600080fd5b506104626105763660046131e4565b610ec7565b34801561058757600080fd5b5060115460405160ff90911681526020016103e0565b3480156105a957600080fd5b506104096105b83660046130ef565b6001600160a01b031660009081526009602052604090205460ff1690565b3480156105e257600080fd5b506103bc6105f13660046130ef565b610f4b565b34801561060257600080fd5b5061040961061136600461319f565b61113a565b34801561062257600080fd5b50600354610462565b34801561063757600080fd5b5061046260135481565b34801561064d57600080fd5b50601754610439906001600160a01b031681565b34801561066d57600080fd5b506103bc61067c3660046130ef565b611170565b34801561068d57600080fd5b506103bc61069c3660046130ef565b611342565b3480156106ad57600080fd5b506104626106bc3660046131fc565b611390565b3480156106cd57600080fd5b506103bc6106dc3660046131e4565b61141f565b3480156106ed57600080fd5b5061046260185481565b34801561070357600080fd5b506103bc6107123660046131e4565b61146f565b34801561072357600080fd5b50602054610439906001600160a01b031681565b34801561074357600080fd5b5060225461040990610100900460ff1681565b34801561076257600080fd5b506103bc6107713660046130ef565b611516565b34801561078257600080fd5b506103bc6107913660046130ef565b611564565b3480156107a257600080fd5b506104096107b13660046130ef565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156107db57600080fd5b506104626107ea3660046130ef565b60016020526000908152604090205481565b34801561080857600080fd5b506103bc6108173660046130ef565b6116b7565b34801561082857600080fd5b50610462601b5481565b34801561083e57600080fd5b50601e54610462565b34801561085357600080fd5b506104626108623660046130ef565b611702565b34801561087357600080fd5b506103bc611761565b34801561088857600080fd5b50610462601e5481565b34801561089e57600080fd5b506104096108ad3660046130ef565b6001600160a01b03166000908152600a602052604090205460ff1690565b3480156108d757600080fd5b506000546001600160a01b0316610439565b3480156108f557600080fd5b506103bc6109043660046131e4565b6117d5565b34801561091557600080fd5b506103d3611825565b34801561092a57600080fd5b5061040961093936600461319f565b611834565b34801561094a57600080fd5b506103bc6109593660046130ef565b611883565b34801561096a57600080fd5b5061040961097936600461319f565b6118cf565b34801561098a57600080fd5b50600454610462565b34801561099f57600080fd5b506103bc6109ae3660046131e4565b6118dc565b3480156109bf57600080fd5b506103bc6109ce3660046131ca565b61192c565b3480156109df57600080fd5b506103bc6109ee3660046131ca565b611a45565b3480156109ff57600080fd5b5061046260045481565b348015610a1557600080fd5b50610462610a243660046130ef565b60026020526000908152604090205481565b348015610a4257600080fd5b50610462610a51366004613127565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b348015610a8857600080fd5b50610462601d5481565b348015610a9e57600080fd5b50601d54610462565b348015610ab357600080fd5b506103bc610ac23660046130ef565b611ab8565b348015610ad357600080fd5b506103bc610ae23660046131e4565b611b03565b348015610af357600080fd5b506103bc610b023660046130ef565b611ba5565b348015610b1357600080fd5b5061046260035481565b6000546001600160a01b03163314610b505760405162461bcd60e51b8152600401610b47906133d1565b60405180910390fd5b600a811115610b715760405162461bcd60e51b8152600401610b4790613336565b601355565b6060600f8054610b8590613538565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb190613538565b8015610bfe5780601f10610bd357610100808354040283529160200191610bfe565b820191906000526020600020905b815481529060010190602001808311610be157829003601f168201915b5050505050905090565b6000610c15338484611c8f565b5060015b92915050565b6000546001600160a01b03163314610c495760405162461bcd60e51b8152600401610b47906133d1565b6001811015610cb65760405162461bcd60e51b815260206004820152603360248201527f50657263656e7461676520746f6f206c6f772e20506c65617365207573652061604482015272103434b3b432b9103832b931b2b73a30b3b29760691b6064820152608401610b47565b610cd66064610cd083600c54611db390919063ffffffff16565b90611e32565b601d5550565b6000546001600160a01b03163314610d065760405162461bcd60e51b8152600401610b47906133d1565b601a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d525760405162461bcd60e51b8152600401610b47906133d1565b66071afd498d0000811015610dd95760405162461bcd60e51b815260206004820152604160248201527f416d6f756e7420697320746f6f206c6f772e20506c656173652073657420612060448201527f6869676865722053656c6c4c696d6974466f72426c6f636b436f6f6c646f776e6064820152601760f91b608482015260a401610b47565b600355565b6000610deb848484611e74565b610e3d8433610e38856040518060600160405280602881526020016135ba602891396001600160a01b038a1660009081526007602090815260408083203384529091529020549190612303565b611c8f565b5060019392505050565b6000546001600160a01b03163314610e715760405162461bcd60e51b8152600401610b47906133d1565b6001811015610ec25760405162461bcd60e51b815260206004820152601860248201527f507269636520696d706163742073657420746f6f206c6f7700000000000000006044820152606401610b47565b601255565b6000600d54821115610f2e5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610b47565b6000610f3861233d565b9050610f448382611e32565b9392505050565b6000546001600160a01b03163314610f755760405162461bcd60e51b8152600401610b47906133d1565b6001600160a01b0381166000908152600a602052604090205460ff16610fdd5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610b47565b60005b600b5481101561113657816001600160a01b0316600b828154811061101557634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b0316141561112457600b805461104090600190613521565b8154811061105e57634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600b80546001600160a01b03909216918390811061109857634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600682526040808220829055600a90925220805460ff19169055600b8054806110fe57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b8061112e81613573565b915050610fe0565b5050565b3360008181526007602090815260408083206001600160a01b03871684529091528120549091610c15918590610e389086612360565b6000546001600160a01b0316331461119a5760405162461bcd60e51b8152600401610b47906133d1565b6000819050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156111d857600080fd5b505afa1580156111ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611210919061310b565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561125857600080fd5b505afa15801561126c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611290919061310b565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156112d857600080fd5b505af11580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611310919061310b565b602080546001600160a01b039283166001600160a01b031991821617909155601f805493909216921691909117905550565b6000546001600160a01b0316331461136c5760405162461bcd60e51b8152600401610b47906133d1565b6001600160a01b03166000908152600860205260409020805460ff19166001179055565b6000600c548311156113e45760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610b47565b816114045760006113f4846123bf565b50949650610c1995505050505050565b600061140f846123bf565b50939650610c1995505050505050565b6000546001600160a01b031633146114495760405162461bcd60e51b8152600401610b47906133d1565b600a81111561146a5760405162461bcd60e51b8152600401610b4790613336565b601555565b6000546001600160a01b031633146114995760405162461bcd60e51b8152600401610b47906133d1565b6121c08111156115115760405162461bcd60e51b815260206004820152603d60248201527f426c6f636b20776169742074696d6520697320746f6f2068696768742e20536560448201527f742069742062656c6f77207468616e203836343020283132487273292e0000006064820152608401610b47565b600455565b6000546001600160a01b031633146115405760405162461bcd60e51b8152600401610b47906133d1565b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b6000546001600160a01b0316331461158e5760405162461bcd60e51b8152600401610b47906133d1565b6001600160a01b0381166000908152600a602052604090205460ff16156115f75760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610b47565b6001600160a01b03811660009081526005602052604090205415611651576001600160a01b03811660009081526005602052604090205461163790610ec7565b6001600160a01b0382166000908152600660205260409020555b6001600160a01b03166000818152600a60205260408120805460ff19166001908117909155600b805491820181559091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319169091179055565b6000546001600160a01b031633146116e15760405162461bcd60e51b8152600401610b47906133d1565b6001600160a01b03166000908152600960205260409020805460ff19169055565b6001600160a01b0381166000908152600a602052604081205460ff161561173f57506001600160a01b031660009081526006602052604090205490565b6001600160a01b038216600090815260056020526040902054610c1990610ec7565b6000546001600160a01b0316331461178b5760405162461bcd60e51b8152600401610b47906133d1565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146117ff5760405162461bcd60e51b8152600401610b47906133d1565b600a8111156118205760405162461bcd60e51b8152600401610b4790613336565b601b55565b606060108054610b8590613538565b6000610c153384610e38856040518060600160405280602581526020016135e2602591393360009081526007602090815260408083206001600160a01b038d1684529091529020549190612303565b6000546001600160a01b031633146118ad5760405162461bcd60e51b8152600401610b47906133d1565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b6000610c15338484611e74565b6000546001600160a01b031633146119065760405162461bcd60e51b8152600401610b47906133d1565b600a8111156119275760405162461bcd60e51b8152600401610b4790613336565b601855565b6000546001600160a01b031633146119565760405162461bcd60e51b8152600401610b47906133d1565b80156119ce57600060138190556014819055601b819055601c81905560158190556016819055601881905560198190556022805461ffff19169055600c54601e556040519081527f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906020015b60405180910390a150565b600260138190556014556005601b819055601c55600160158190556016819055600360188190556019556022805461ffff191661010117905566071afd498d0000601e556040519081527f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906020016119c3565b50565b6000546001600160a01b03163314611a6f5760405162461bcd60e51b8152600401610b47906133d1565b602280548215156101000261ff00199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906119c390831515815260200190565b6000546001600160a01b03163314611ae25760405162461bcd60e51b8152600401610b47906133d1565b6001600160a01b03166000908152600860205260409020805460ff19169055565b6000546001600160a01b03163314611b2d5760405162461bcd60e51b8152600401610b47906133d1565b66071afd498d0000811015611ba05760405162461bcd60e51b815260206004820152603360248201527f416d6f756e7420697320746f6f206c6f772e20506c65617365207365742061206044820152723434b3b432b91036b0bc2a3c20b6b7bab73a1760691b6064820152608401610b47565b601e55565b6000546001600160a01b03163314611bcf5760405162461bcd60e51b8152600401610b47906133d1565b6001600160a01b038116611c345760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b47565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316611cf15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b47565b6001600160a01b038216611d525760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b47565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600082611dc257506000610c19565b6000611dce8385613502565b905082611ddb85836134e2565b14610f445760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b47565b6000610f4483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612419565b6001600160a01b038316611ed85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b47565b6000546001600160a01b03848116911614801590611f0457506000546001600160a01b03838116911614155b15611f6b576001600160a01b038216611f6b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b47565b6000611f7683611702565b6020549091506001600160a01b038481169116148015611faf57506001600160a01b03841660009081526009602052604090205460ff16155b1561208057601254602054611fde91606491610cd09190611fd8906001600160a01b0316611702565b90611db3565b8211158015611fef5750601e548211155b611ff857600080fd5b6001600160a01b0384166000908152600260205260409020544310156120305760405162461bcd60e51b8152600401610b47906132a7565b601e548211156120525760405162461bcd60e51b8152600401610b4790613389565b6001600160a01b0384166000908152600160205260408120805484929061207a9084906134ca565b90915550505b6020546001600160a01b038481169116148015906120b757506001600160a01b03841660009081526009602052604090205460ff16155b1561216f57601d546120c983836134ca565b11156120e75760405162461bcd60e51b8152600401610b4790613406565b6001600160a01b03841660009081526002602052604090205443101561211f5760405162461bcd60e51b8152600401610b47906132a7565b601e548211156121415760405162461bcd60e51b8152600401610b4790613389565b6001600160a01b038416600090815260016020526040812080548492906121699084906134ca565b90915550505b6020546001600160a01b0385811691161480156121a557506001600160a01b03831660009081526009602052604090205460ff16155b156121d557601d546121b783836134ca565b11156121d55760405162461bcd60e51b8152600401610b4790613406565b60006121e030611702565b602154909150811080159081906121fa575060225460ff16155b801561221457506020546001600160a01b03878116911614155b80156122275750602254610100900460ff165b1561223a57602154915061223a82612447565b6001600160a01b03861660009081526008602052604090205460019060ff168061227c57506001600160a01b03861660009081526008602052604090205460ff165b15612285575060005b6001600160a01b038616612297575060005b6122a3878787846124e5565b6003546001600160a01b038816600090815260016020526040902054106122fa576004546122d2904390612360565b6001600160a01b03881660009081526002602090815260408083209390935560019052908120555b50505050505050565b600081848411156123275760405162461bcd60e51b8152600401610b479190613254565b5060006123348486613521565b95945050505050565b600080600061234a61261c565b90925090506123598282611e32565b9250505090565b60008061236d83856134ca565b905083811015610f445760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b47565b60008060008060008060008060008060006123d98c6127d6565b935093509350935060008060006123f98f87876123f461233d565b61282b565b919f509d509b509599509397509195509350505050919395979092949650565b6000818361243a5760405162461bcd60e51b8152600401610b479190613254565b50600061233484866134e2565b6022805460ff191660011790556000612461826002611e32565b9050600061246f838361287b565b90504761247b836128bd565b6000612487478361287b565b90506124938382612a29565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150506022805460ff19169055505050565b806124f2576124f2612ae9565b6001600160a01b0384166000908152600a602052604090205460ff16801561253357506001600160a01b0383166000908152600a602052604090205460ff16155b1561254857612543848484612b44565b6125f4565b6001600160a01b0384166000908152600a602052604090205460ff1615801561258957506001600160a01b0383166000908152600a602052604090205460ff165b1561259957612543848484612d20565b6001600160a01b0384166000908152600a602052604090205460ff1680156125d957506001600160a01b0383166000908152600a602052604090205460ff165b156125e957612543848484612de4565b6125f4848484612e72565b8061261657612616601454601355601654601555601c54601b55601954601855565b50505050565b600d54600c546000918291825b600b548110156127a6578260056000600b848154811061265957634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806126d257508160066000600b84815481106126ab57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156126e857600d54600c54945094505050509091565b61273c60056000600b848154811061271057634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054849061287b565b925061279260066000600b848154811061276657634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054839061287b565b91508061279e81613573565b915050612629565b50600c54600d546127b691611e32565b8210156127cd57600d54600c549350935050509091565b90939092509050565b60008060008060006127e786612ed1565b905060006127f487612eed565b9050600061280188612f09565b9050600061281b8261281585818d8961287b565b9061287b565b9993985091965094509092505050565b600080808061283a8886611db3565b905060006128488887611db3565b905060006128568888611db3565b9050600061286882612815868661287b565b939b939a50919850919650505050505050565b6000610f4483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612303565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061290057634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601f54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561295457600080fd5b505afa158015612968573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061298c919061310b565b816001815181106129ad57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601f5460405163791ac94760e01b815291169063791ac947906129f390859060009086903090429060040161345a565b600060405180830381600087803b158015612a0d57600080fd5b505af1158015612a21573d6000803e3d6000fd5b505050505050565b601f54612a419030906001600160a01b031684611c8f565b601f5460405163f305d71960e01b8152306004820181905260248201859052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990839060c4016060604051808303818588803b158015612aa957600080fd5b505af1158015612abd573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ae29190613227565b5050505050565b601354158015612af95750601554155b8015612b055750601b54155b8015612b115750601854155b15612b1857565b6013805460145560158054601655601b8054601c55601880546019556000938490559183905582905555565b6000806000806000806000612b58886123bf565b96509650965096509650965096506000612b7189612f25565b9050612b7d888261287b565b6001600160a01b038c16600090815260066020526040902054909850612ba3908a61287b565b6001600160a01b038c16600090815260066020908152604080832093909355600590522054612bd2908961287b565b6001600160a01b03808d1660009081526005602052604080822093909355908c1681522054612c019088612360565b6001600160a01b038b16600090815260056020526040902055612c2382612f41565b612c2c83612fca565b612c3581613056565b612c3f86856130b6565b6017546040518481526001600160a01b03918216918d16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36001600160a01b03808b16908c167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612cbd888561287b565b60405190815260200160405180910390a3601a546040518281526001600160a01b03918216918d16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050505050505050565b6000806000806000806000612d34886123bf565b96509650965096509650965096506000612d4d89612f25565b9050612d59888261287b565b6001600160a01b038c16600090815260056020526040902054909850612d7f908961287b565b6001600160a01b03808d16600090815260056020908152604080832094909455918d16815260069091522054612db59086612360565b6001600160a01b038b16600090815260066020908152604080832093909355600590522054612c019088612360565b6000806000806000806000612df8886123bf565b96509650965096509650965096506000612e1189612f25565b9050612e1d888261287b565b6001600160a01b038c16600090815260066020526040902054909850612e43908a61287b565b6001600160a01b038c16600090815260066020908152604080832093909355600590522054612d7f908961287b565b6000806000806000806000612e86886123bf565b96509650965096509650965096506000612e9f89612f25565b9050612eab888261287b565b6001600160a01b038c16600090815260056020526040902054909850612bd2908961287b565b6000610c196064610cd060135485611db390919063ffffffff16565b6000610c196064610cd060155485611db390919063ffffffff16565b6000610c196064610cd0601b5485611db390919063ffffffff16565b6000610c196064610cd060185485611db390919063ffffffff16565b6000612f4b61233d565b90506000612f598383611db3565b30600090815260056020526040902054909150612f769082612360565b30600090815260056020908152604080832093909355600a9052205460ff1615612fc55730600090815260066020526040902054612fb49084612360565b306000908152600660205260409020555b505050565b6000612fd461233d565b90506000612fe28383611db3565b6017546001600160a01b031660009081526005602052604090205490915061300a9082612360565b6017546001600160a01b0316600090815260056020908152604080832093909355308252600a9052205460ff1615612fc55730600090815260066020526040902054612fb49084612360565b600061306061233d565b9050600061306e8383611db3565b601a546001600160a01b03166000908152600560205260409020549091506130969082612360565b601a546001600160a01b0316600090815260056020526040902055505050565b600d546130c3908361287b565b600d55600e546130d39082612360565b600e555050565b803580151581146130ea57600080fd5b919050565b600060208284031215613100578081fd5b8135610f44816135a4565b60006020828403121561311c578081fd5b8151610f44816135a4565b60008060408385031215613139578081fd5b8235613144816135a4565b91506020830135613154816135a4565b809150509250929050565b600080600060608486031215613173578081fd5b833561317e816135a4565b9250602084013561318e816135a4565b929592945050506040919091013590565b600080604083850312156131b1578182fd5b82356131bc816135a4565b946020939093013593505050565b6000602082840312156131db578081fd5b610f44826130da565b6000602082840312156131f5578081fd5b5035919050565b6000806040838503121561320e578182fd5b8235915061321e602084016130da565b90509250929050565b60008060006060848603121561323b578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b8181101561328057858101830151858201604001528201613264565b818111156132915783604083870101525b50601f01601f1916929092016040019392505050565b60208082526063908201527f596f75206861766520736f6c64206f72207472616e7366657272656420746f6f60408201527f206d7563682c2074727920746f2073656c6c20616761696e20696e203134303060608201527f20626c6f636b732066726f6d20796f7572206c617374207472616e736163746960808201526237b71760e91b60a082015260c00190565b60208082526033908201527f50657263656e7461676520746f6f20686967682e20506c65617365207573652060408201527230903637bbb2b9103832b931b2b73a30b3b29760691b606082015260800190565b60208082526028908201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546040820152673c20b6b7bab73a1760c11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526034908201527f4163636f756e742062616c616e6365206578636565647320746865206d617841604082015273363637bbb2b22130b630b731b2a0b6b7bab73a1760611b606082015260800190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156134a95784516001600160a01b031683529383019391830191600101613484565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156134dd576134dd61358e565b500190565b6000826134fd57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561351c5761351c61358e565b500290565b6000828210156135335761353361358e565b500390565b600181811c9082168061354c57607f821691505b6020821081141561356d57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156135875761358761358e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114611a4257600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122029dca717d545de360a8ac163ba3589f0dfed84c6c04328ae4c74a2e7f8fcc66864736f6c63430008040033

Deployed ByteCode Sourcemap

9023:25347:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16301:185;;;;;;;;;;-1:-1:-1;16301:185:0;;;;;:::i;:::-;;:::i;:::-;;12151:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13063:161;;;;;;;;;;-1:-1:-1;13063:161:0;;;;;:::i;:::-;;:::i;:::-;;;4179:14:1;;4172:22;4154:41;;4142:2;4127:18;13063:161:0;4109:92:1;10536:74:0;;;;;;;;;;-1:-1:-1;10536:74:0;;;;-1:-1:-1;;;;;10536:74:0;;;;;;-1:-1:-1;;;;;3049:32:1;;;3031:51;;3019:2;3004:18;10536:74:0;2986:102:1;14184:87:0;;;;;;;;;;-1:-1:-1;14253:10:0;;14184:87;;;13360:25:1;;;13348:2;13333:18;14184:87:0;13315:76:1;10881:42:0;;;;;;;;;;-1:-1:-1;10881:42:0;;;;-1:-1:-1;;;;;10881:42:0;;;12428:95;;;;;;;;;;-1:-1:-1;12508:7:0;;12428:95;;17567:286;;;;;;;;;;-1:-1:-1;17567:286:0;;;;;:::i;:::-;;:::i;16602:102::-;;;;;;;;;;-1:-1:-1;16602:102:0;;;;;:::i;:::-;;:::i;18305:304::-;;;;;;;;;;-1:-1:-1;18305:304:0;;;;;:::i;:::-;;:::i;10249:32::-;;;;;;;;;;;;;;;;13232:313;;;;;;;;;;-1:-1:-1;13232:313:0;;;;;:::i;:::-;;:::i;23005:161::-;;;;;;;;;;-1:-1:-1;23005:161:0;;;;;:::i;:::-;;:::i;14725:253::-;;;;;;;;;;-1:-1:-1;14725:253:0;;;;;:::i;:::-;;:::i;12337:83::-;;;;;;;;;;-1:-1:-1;12403:9:0;;12337:83;;12403:9;;;;14850:36:1;;14838:2;14823:18;12337:83:0;14805:87:1;23849:117:0;;;;;;;;;;-1:-1:-1;23849:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;23934:24:0;23910:4;23934:24;;;:15;:24;;;;;;;;;23849:117;15327:479;;;;;;;;;;-1:-1:-1;15327:479:0;;;;;:::i;:::-;;:::i;13553:218::-;;;;;;;;;;-1:-1:-1;13553:218:0;;;;;:::i;:::-;;:::i;18617:130::-;;;;;;;;;;-1:-1:-1;18709:30:0;;18617:130;;10166:26;;;;;;;;;;;;;;;;10348:73;;;;;;;;;;-1:-1:-1;10348:73:0;;;;-1:-1:-1;;;;;10348:73:0;;;30239:322;;;;;;;;;;-1:-1:-1;30239:322:0;;;;;:::i;:::-;;:::i;16060:113::-;;;;;;;;;;-1:-1:-1;16060:113:0;;;;;:::i;:::-;;:::i;14279:438::-;;;;;;;;;;-1:-1:-1;14279:438:0;;;;;:::i;:::-;;:::i;16712:215::-;;;;;;;;;;-1:-1:-1;16712:215:0;;;;;:::i;:::-;;:::i;10434:33::-;;;;;;;;;;;;;;;;18755:211;;;;;;;;;;-1:-1:-1;18755:211:0;;;;;:::i;:::-;;:::i;10930:28::-;;;;;;;;;;-1:-1:-1;10930:28:0;;;;-1:-1:-1;;;;;10930:28:0;;;11085:40;;;;;;;;;;-1:-1:-1;11085:40:0;;;;;;;;;;;15818:111;;;;;;;;;;-1:-1:-1;15818:111:0;;;;;:::i;:::-;;:::i;14986:333::-;;;;;;;;;;-1:-1:-1;14986:333:0;;;;;:::i;:::-;;:::i;23974:123::-;;;;;;;;;;-1:-1:-1;23974:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;24062:27:0;24038:4;24062:27;;;:18;:27;;;;;;;;;23974:123;9139:51;;;;;;;;;;-1:-1:-1;9139:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;15937:115;;;;;;;;;;-1:-1:-1;15937:115:0;;;;;:::i;:::-;;:::i;10619:32::-;;;;;;;;;;;;;;;;18204:93;;;;;;;;;;-1:-1:-1;18277:12:0;;18204:93;;12531:198;;;;;;;;;;-1:-1:-1;12531:198:0;;;;;:::i;:::-;;:::i;3103:148::-;;;;;;;;;;;;;:::i;10805:45::-;;;;;;;;;;;;;;;;14056:120;;;;;;;;;;-1:-1:-1;14056:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;14148:20:0;14124:4;14148:20;;;:11;:20;;;;;;;;;14056:120;2880:87;;;;;;;;;;-1:-1:-1;2926:7:0;2953:6;-1:-1:-1;;;;;2953:6:0;2880:87;;17163:215;;;;;;;;;;-1:-1:-1;17163:215:0;;;;;:::i;:::-;;:::i;12242:87::-;;;;;;;;;;;;;:::i;13779:269::-;;;;;;;;;;-1:-1:-1;13779:269:0;;;;;:::i;:::-;;:::i;16494:100::-;;;;;;;;;;-1:-1:-1;16494:100:0;;;;;:::i;:::-;;:::i;12737:167::-;;;;;;;;;;-1:-1:-1;12737:167:0;;;;;:::i;:::-;;:::i;18974:95::-;;;;;;;;;;-1:-1:-1;19048:13:0;;18974:95;;16935:220;;;;;;;;;;-1:-1:-1;16935:220:0;;;;;:::i;:::-;;:::i;28413:1118::-;;;;;;;;;;-1:-1:-1;28413:1118:0;;;;;:::i;:::-;;:::i;17386:173::-;;;;;;;;;;-1:-1:-1;17386:173:0;;;;;:::i;:::-;;:::i;9355:34::-;;;;;;;;;;;;;;;;9197:57;;;;;;;;;;-1:-1:-1;9197:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;12912:143;;;;;;;;;;-1:-1:-1;12912:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;13020:18:0;;;12993:7;13020:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12912:143;10720:58;;;;;;;;;;;;;;;;17861:111;;;;;;;;;;-1:-1:-1;17940:24:0;;17861:111;;16181:112;;;;;;;;;;-1:-1:-1;16181:112:0;;;;;:::i;:::-;;:::i;17980:216::-;;;;;;;;;;-1:-1:-1;17980:216:0;;;;;:::i;:::-;;:::i;3259:244::-;;;;;;;;;;-1:-1:-1;3259:244:0;;;;;:::i;:::-;;:::i;9261:63::-;;;;;;;;;;;;;;;;16301:185;2926:7;2953:6;-1:-1:-1;;;;;2953:6:0;179:10;3015:23;3007:68;;;;-1:-1:-1;;;3007:68:0;;;;;;;:::i;:::-;;;;;;;;;16393:2:::1;16383:6;:12;;16375:76;;;;-1:-1:-1::0;;;16375:76:0::1;;;;;;;:::i;:::-;16462:7;:16:::0;16301:185::o;12151:83::-;12188:13;12221:5;12214:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12151:83;:::o;13063:161::-;13138:4;13155:39;179:10;13178:7;13187:6;13155:8;:39::i;:::-;-1:-1:-1;13212:4:0;13063:161;;;;;:::o;17567:286::-;2926:7;2953:6;-1:-1:-1;;;;;2953:6:0;179:10;3015:23;3007:68;;;;-1:-1:-1;;;3007:68:0;;;;;;;:::i;:::-;17685:1:::1;17664:17;:22;;17656:86;;;::::0;-1:-1:-1;;;17656:86:0;;12996:2:1;17656:86:0::1;::::0;::::1;12978:21:1::0;13035:2;13015:18;;;13008:30;13074:34;13054:18;;;13047:62;-1:-1:-1;;;13125:18:1;;;13118:49;13184:19;;17656:86:0::1;12968:241:1::0;17656:86:0::1;17780:65;17829:5;17780:30;17792:17;17780:7;;:11;;:30;;;;:::i;:::-;:34:::0;::::1;:65::i;:::-;17753:24;:92:::0;-1:-1:-1;17567:286:0:o;16602:102::-;2926:7;2953:6;-1:-1:-1;;;;;2953:6:0;179:10;3015:23;3007:68;;;;-1:-1:-1;;;3007:68:0;;;;;;;:::i;:::-;16675:14:::1;:21:::0;;-1:-1:-1;;;;;;16675:21:0::1;-1:-1:-1::0;;;;;16675:21:0;;;::::1;::::0;;;::::1;::::0;;16602:102::o;18305:304::-;2926:7;2953:6;-1:-1:-1;;;;;2953:6:0;179:10;3015:23;3007:68;;;;-1:-1:-1;;;3007:68:0;;;;;;;:::i;:::-;18447:15:::1;18418:25;:44;;18410:122;;;::::0;-1:-1:-1;;;18410:122:0;;12522:2:1;18410:122:0::1;::::0;::::1;12504:21:1::0;12561:2;12541:18;;;12534:30;12600:34;12580:18;;;12573:62;12671:34;12651:18;;;12644:62;-1:-1:-1;;;12722:19:1;;;12715:32;12764:19;;18410:122:0::1;12494:295:1::0;18410:122:0::1;18543:30;:58:::0;18305:304::o;13232:313::-;13330:4;13347:36;13357:6;13365:9;13376:6;13347:9;:36::i;:::-;13394:121;13403:6;179:10;13425:89;13463:6;13425:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13425:19:0;;;;;;:11;:19;;;;;;;;179:10;13425:33;;;;;;;;;;:37;:89::i;:::-;13394:8;:121::i;:::-;-1:-1:-1;13533:4:0;13232:313;;;;;:::o;23005:161::-;2926:7;2953:6;-1:-1:-1;;;;;2953:6:0;179:10;3015:23;3007:68;;;;-1:-1:-1;;;3007:68:0;;;;;;;:::i;:::-;23096:1:::1;23085:7;:12;;23077:49;;;::::0;-1:-1:-1;;;23077:49:0;;7423:2:1;23077:49:0::1;::::0;::::1;7405:21:1::0;7462:2;7442:18;;;7435:30;7501:26;7481:18;;;7474:54;7545:18;;23077:49:0::1;7395:174:1::0;23077:49:0::1;23137:11;:21:::0;23005:161::o;14725:253::-;14791:7;14830;;14819;:18;;14811:73;;;;-1:-1:-1;;;14811:73:0;;6202:2:1;14811:73:0;;;6184:21:1;6241:2;6221:18;;;6214:30;6280:34;6260:18;;;6253:62;-1:-1:-1;;;6331:18:1;;;6324:40;6381:19;;14811:73:0;6174:232:1;14811:73:0;14895:19;14918:10;:8;:10::i;:::-;14895:33;-1:-1:-1;14946:24:0;:7;14895:33;14946:11;:24::i;:::-;14939:31;14725:253;-1:-1:-1;;;14725:253:0:o;15327:479::-;2926:7;2953:6;-1:-1:-1;;;;;2953:6:0;179:10;3015:23;3007:68;;;;-1:-1:-1;;;3007:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15409:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;15401:60;;;::::0;-1:-1:-1;;;15401:60:0;;8132:2:1;15401:60:0::1;::::0;::::1;8114:21:1::0;8171:2;8151:18;;;8144:30;8210:29;8190:18;;;8183:57;8257:18;;15401:60:0::1;8104:177:1::0;15401:60:0::1;15477:9;15472:327;15496:9;:16:::0;15492:20;::::1;15472:327;;;15554:7;-1:-1:-1::0;;;;;15538:23:0::1;:9;15548:1;15538:12;;;;;;-1:-1:-1::0;;;15538:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;15538:12:0::1;:23;15534:254;;;15597:9;15607:16:::0;;:20:::1;::::0;15626:1:::1;::::0;15607:20:::1;:::i;:::-;15597:31;;;;;;-1:-1:-1::0;;;15597:31:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;15582:9:::1;:12:::0;;-1:-1:-1;;;;;15597:31:0;;::::1;::::0;15592:1;;15582:12;::::1;;;-1:-1:-1::0;;;15582:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;15582:46:0::1;-1:-1:-1::0;;;;;15582:46:0;;::::1;;::::0;;15647:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;15686:11:::1;:20:::0;;;;:28;;-1:-1:-1;;15686:28:0::1;::::0;;15733:9:::1;:15:::0;;;::::1;;-1:-1:-1::0;;;15733:15:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;15733:15:0;;;;;-1:-1:-1;;;;;;15733:15:0::1;::::0;;;;;15472:327:::1;15327:479:::0;:::o;15534:254::-:1;15514:3:::0;::::1;::::0;::::1;:::i;:::-;;;;15472:327;;;;15327:479:::0;:::o;13553:218::-;179:10;13641:4;13690:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;13690:34:0;;;;;;;;;;13641:4;;13658:83;;13681:7;;13690:50;;13729:10;13690:38;:50::i;30239:322::-;2926:7;2953:6;-1:-1:-1;;;;;2953:6:0;179:10;3015:23;3007:68;;;;-1:-1:-1;;;3007:68:0;;;;;;;:::i;:::-;30314:36:::1;30372:9;30314:68;;30427:17;-1:-1:-1::0;;;;;30427:25:0::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;30409:57:0::1;;30475:4;30482:17;-1:-1:-1::0;;;;;30482:22:0::1;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30409:98;::::0;-1:-1:-1;;;;;;30409:98:0::1;::::0;;;;;;-1:-1:-1;;;;;3323:15:1;;;30409:98:0::1;::::0;::::1;3305:34:1::0;3375:15;;3355:18;;;3348:43;3240:18;;30409:98:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30393:13;:114:::0;;-1:-1:-1;;;;;30393:114:0;;::::1;-1:-1:-1::0;;;;;;30393:114:0;;::::1;;::::0;;;30518:15:::1;:35:::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;-1:-1:-1;30239:322:0:o;16060:113::-;2926:7;2953:6;-1:-1:-1;;;;;2953:6:0;179:10;3015:23;3007:68;;;;-1:-1:-1;;;3007:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16131:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;16131:34:0::1;16161:4;16131:34;::::0;;16060:113::o;14279:438::-;14369:7;14408;;14397;:18;;14389:62;;;;-1:-1:-1;;;14389:62:0;;8908:2:1;14389:62:0;;;8890:21:1;8947:2;8927:18;;;8920:30;8986:33;8966:18;;;8959:61;9037:18;;14389:62:0;8880:181:1;14389:62:0;14467:17;14462:248;;14502:15;14527:19;14538:7;14527:10;:19::i;:::-;-1:-1:-1;14501:45:0;;-1:-1:-1;14561:14:0;;-1:-1:-1;;;;;;14561:14:0;14462:248;14610:23;14642:19;14653:7;14642:10;:19::i;:::-;-1:-1:-1;14608:53:0;;-1:-1:-1;14676:22:0;;-1:-1:-1;;;;;;14676:22:0;16712:215;2926:7;2953:6;-1:-1:-1;;;;;2953:6:0;179:10;3015:23;3007:68;;;;-1:-1:-1;;;3007:68:0;;;;;;;:::i;:::-;16822:2:::1;16806:12;:18;;16798:82;;;;-1:-1:-1::0;;;16798:82:0::1;;;;;;;:::i;:::-;16891:13;:28:::0;16712:215::o;18755:211::-;2926:7;2953:6;-1:-1:-1;;;;;2953:6:0;179:10;3015:23;3007:68;;;;-1:-1:-1;;;3007:68:0;;;;;;;:::i;:::-;18852:4:::1;18839:9;:17;;18831:91;;;::::0;-1:-1:-1;;;18831:91:0;;9268:2:1;18831:91:0::1;::::0;::::1;9250:21:1::0;9307:2;9287:18;;;9280:30;9346:34;9326:18;;;9319:62;9417:31;9397:18;;;9390:59;9466:19;;18831:91:0::1;9240:251:1::0;18831:91:0::1;18933:13;:25:::0;18755:211::o;15818:111::-;2926:7;2953:6;-1:-1:-1;;;;;2953:6:0;179:10;3015:23;3007:68;;;;-1:-1:-1;;;3007:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15890:24:0::1;;::::0;;;:15:::1;:24;::::0;;;;:31;;-1:-1:-1;;15890:31:0::1;15917:4;15890:31;::::0;;15818:111::o;14986:333::-;2926:7;2953:6;-1:-1:-1;;;;;2953:6:0;179:10;3015:23;3007:68;;;;-1:-1:-1;;;3007:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15069:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;15068:21;15060:61;;;::::0;-1:-1:-1;;;15060:61:0;;8132:2:1;15060:61:0::1;::::0;::::1;8114:21:1::0;8171:2;8151:18;;;8144:30;8210:29;8190:18;;;8183:57;8257:18;;15060:61:0::1;8104:177:1::0;15060:61:0::1;-1:-1:-1::0;;;;;15135:16:0;::::1;15154:1;15135:16:::0;;;:7:::1;:16;::::0;;;;;:20;15132:108:::1;;-1:-1:-1::0;;;;;15211:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;15191:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;15172:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;15132:108:::1;-1:-1:-1::0;;;;;15250:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;15250:27:0::1;15273:4;15250:27:::0;;::::1;::::0;;;15288:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;15288:23:0::1;::::0;;::::1;::::0;;14986:333::o;15937:115::-;2926:7;2953:6;-1:-1:-1;;;;;2953:6:0;179:10;3015:23;3007:68;;;;-1:-1:-1;;;3007:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16012:24:0::1;16039:5;16012:24:::0;;;:15:::1;:24;::::0;;;;:32;;-1:-1:-1;;16012:32:0::1;::::0;;15937:115::o;12531:198::-;-1:-1:-1;;;;;12621:20:0;;12597:7;12621:20;;;:11;:20;;;;;;;;12617:49;;;-1:-1:-1;;;;;;12650:16:0;;;;;:7;:16;;;;;;;12531:198::o;12617:49::-;-1:-1:-1;;;;;12704:16:0;;;;;;:7;:16;;;;;;12684:37;;:19;:37::i;3103:148::-;2926:7;2953:6;-1:-1:-1;;;;;2953:6:0;179:10;3015:23;3007:68;;;;-1:-1:-1;;;3007:68:0;;;;;;;:::i;:::-;3210:1:::1;3194:6:::0;;3173:40:::1;::::0;-1:-1:-1;;;;;3194:6:0;;::::1;::::0;3173:40:::1;::::0;3210:1;;3173:40:::1;3241:1;3224:19:::0;;-1:-1:-1;;;;;;3224:19:0::1;::::0;;3103:148::o;17163:215::-;2926:7;2953:6;-1:-1:-1;;;;;2953:6:0;179:10;3015:23;3007:68;;;;-1:-1:-1;;;3007:68:0;;;;;;;:::i;:::-;17273:2:::1;17257:12;:18;;17249:82;;;;-1:-1:-1::0;;;17249:82:0::1;;;;;;;:::i;:::-;17342:13;:28:::0;17163:215::o;12242:87::-;12281:13;12314:7;12307:14;;;;;:::i;13779:269::-;13872:4;13889:129;179:10;13912:7;13921:96;13960:15;13921:96;;;;;;;;;;;;;;;;;179:10;13921:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;13921:34:0;;;;;;;;;;;;:38;:96::i;16494:100::-;2926:7;2953:6;-1:-1:-1;;;;;2953:6:0;179:10;3015:23;3007:68;;;;-1:-1:-1;;;3007:68:0;;;;;;;:::i;:::-;16566:13:::1;:20:::0;;-1:-1:-1;;;;;;16566:20:0::1;-1:-1:-1::0;;;;;16566:20:0;;;::::1;::::0;;;::::1;::::0;;16494:100::o;12737:167::-;12815:4;12832:42;179:10;12856:9;12867:6;12832:9;:42::i;16935:220::-;2926:7;2953:6;-1:-1:-1;;;;;2953:6:0;179:10;3015:23;3007:68;;;;-1:-1:-1;;;3007:68:0;;;;;;;:::i;:::-;17048:2:::1;17031:13;:19;;17023:83;;;;-1:-1:-1::0;;;17023:83:0::1;;;;;;;:::i;:::-;17117:14;:30:::0;16935:220::o;28413:1118::-;2926:7;2953:6;-1:-1:-1;;;;;2953:6:0;179:10;3015:23;3007:68;;;;-1:-1:-1;;;3007:68:0;;;;;;;:::i;:::-;28488:7:::1;28484:1040;;;28522:1;28512:7;:11:::0;;;28538:15:::1;:25:::0;;;28578:13:::1;:17:::0;;;28610:21:::1;:37:::0;;;28662:13:::1;:17:::0;;;28694:21:::1;:37:::0;;;28746:14:::1;:18:::0;;;28779:22:::1;:39:::0;;;28833:16:::1;:24:::0;;-1:-1:-1;;28872:29:0;;;28931:7:::1;::::0;28916:12:::1;:22:::0;28958:35:::1;::::0;4154:41:1;;;28958:35:0::1;::::0;4142:2:1;4127:18;28958:35:0::1;;;;;;;;28413:1118:::0;:::o;28484:1040::-:1;29036:1;29026:7;:11:::0;;;29052:15:::1;:25:::0;29108:1:::1;29092:13;:17:::0;;;29124:21:::1;:37:::0;29192:1:::1;29176:13;:17:::0;;;29208:21:::1;:37:::0;;;29277:1:::1;29260:14;:18:::0;;;29293:22:::1;:39:::0;29347:16:::1;:23:::0;;-1:-1:-1;;29385:28:0;;;;;29443:15:::1;29428:12;:30:::0;29478:34:::1;::::0;4154:41:1;;;29478:34:0::1;::::0;4142:2:1;4127:18;29478:34:0::1;4109:92:1::0;28484:1040:0::1;28413:1118:::0;:::o;17386:173::-;2926:7;2953:6;-1:-1:-1;;;;;2953:6:0;179:10;3015:23;3007:68;;;;-1:-1:-1;;;3007:68:0;;;;;;;:::i;:::-;17465:21:::1;:32:::0;;;::::1;;;;-1:-1:-1::0;;17465:32:0;;::::1;;::::0;;17513:38:::1;::::0;::::1;::::0;::::1;::::0;17489:8;4179:14:1;4172:22;4154:41;;4142:2;4127:18;;4109:92;16181:112:0;2926:7;2953:6;-1:-1:-1;;;;;2953:6:0;179:10;3015:23;3007:68;;;;-1:-1:-1;;;3007:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16250:27:0::1;16280:5;16250:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;16250:35:0::1;::::0;;16181:112::o;17980:216::-;2926:7;2953:6;-1:-1:-1;;;;;2953:6:0;179:10;3015:23;3007:68;;;;-1:-1:-1;;;3007:68:0;;;;;;;:::i;:::-;18080:15:::1;18065:11;:30;;18057:94;;;::::0;-1:-1:-1;;;18057:94:0;;9698:2:1;18057:94:0::1;::::0;::::1;9680:21:1::0;9737:2;9717:18;;;9710:30;9776:34;9756:18;;;9749:62;-1:-1:-1;;;9827:18:1;;;9820:49;9886:19;;18057:94:0::1;9670:241:1::0;18057:94:0::1;18162:12;:26:::0;17980:216::o;3259:244::-;2926:7;2953:6;-1:-1:-1;;;;;2953:6:0;179:10;3015:23;3007:68;;;;-1:-1:-1;;;3007:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3348:22:0;::::1;3340:73;;;::::0;-1:-1:-1;;;3340:73:0;;6613:2:1;3340:73:0::1;::::0;::::1;6595:21:1::0;6652:2;6632:18;;;6625:30;6691:34;6671:18;;;6664:62;-1:-1:-1;;;6742:18:1;;;6735:36;6788:19;;3340:73:0::1;6585:228:1::0;3340:73:0::1;3450:6;::::0;;3429:38:::1;::::0;-1:-1:-1;;;;;3429:38:0;;::::1;::::0;3450:6;::::1;::::0;3429:38:::1;::::0;::::1;3478:6;:17:::0;;-1:-1:-1;;;;;;3478:17:0::1;-1:-1:-1::0;;;;;3478:17:0;;;::::1;::::0;;;::::1;::::0;;3259:244::o;24105:337::-;-1:-1:-1;;;;;24198:19:0;;24190:68;;;;-1:-1:-1;;;24190:68:0;;12117:2:1;24190:68:0;;;12099:21:1;12156:2;12136:18;;;12129:30;12195:34;12175:18;;;12168:62;-1:-1:-1;;;12246:18:1;;;12239:34;12290:19;;24190:68:0;12089:226:1;24190:68:0;-1:-1:-1;;;;;24277:21:0;;24269:68;;;;-1:-1:-1;;;24269:68:0;;7020:2:1;24269:68:0;;;7002:21:1;7059:2;7039:18;;;7032:30;7098:34;7078:18;;;7071:62;-1:-1:-1;;;7149:18:1;;;7142:32;7191:19;;24269:68:0;6992:224:1;24269:68:0;-1:-1:-1;;;;;24350:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;24402:32;;13360:25:1;;;24402:32:0;;13333:18:1;24402:32:0;;;;;;;24105:337;;;:::o;1564:250::-;1622:7;1646:6;1642:47;;-1:-1:-1;1676:1:0;1669:8;;1642:47;1701:9;1713:5;1717:1;1713;:5;:::i;:::-;1701:17;-1:-1:-1;1746:1:0;1737:5;1741:1;1701:17;1737:5;:::i;:::-;:10;1729:56;;;;-1:-1:-1;;;1729:56:0;;10527:2:1;1729:56:0;;;10509:21:1;10566:2;10546:18;;;10539:30;10605:34;10585:18;;;10578:62;-1:-1:-1;;;10656:18:1;;;10649:31;10697:19;;1729:56:0;10499:223:1;1824:132:0;1882:7;1909:39;1913:1;1916;1909:39;;;;;;;;;;;;;;;;;:3;:39::i;24450:2581::-;-1:-1:-1;;;;;24572:18:0;;24564:68;;;;-1:-1:-1;;;24564:68:0;;11290:2:1;24564:68:0;;;11272:21:1;11329:2;11309:18;;;11302:30;11368:34;11348:18;;;11341:62;-1:-1:-1;;;11419:18:1;;;11412:35;11464:19;;24564:68:0;11262:227:1;24564:68:0;2926:7;2953:6;-1:-1:-1;;;;;24647:15:0;;;2953:6;;24647:15;;;;:32;;-1:-1:-1;2926:7:0;2953:6;-1:-1:-1;;;;;24666:13:0;;;2953:6;;24666:13;;24647:32;24643:178;;;-1:-1:-1;;;;;24753:16:0;;24745:64;;;;-1:-1:-1;;;24745:64:0;;5250:2:1;24745:64:0;;;5232:21:1;5289:2;5269:18;;;5262:30;5328:34;5308:18;;;5301:62;-1:-1:-1;;;5379:18:1;;;5372:33;5422:19;;24745:64:0;5222:225:1;24745:64:0;24833:22;24858:13;24868:2;24858:9;:13::i;:::-;24901;;24833:38;;-1:-1:-1;;;;;;24895:19:0;;;24901:13;;24895:19;:45;;;;-1:-1:-1;;;;;;24919:21:0;;;;;;:15;:21;;;;;;;;24918:22;24895:45;24892:477;;;25003:11;;24984:13;;24974:50;;25020:3;;24974:41;;25003:11;24974:24;;-1:-1:-1;;;;;24984:13:0;24974:9;:24::i;:::-;:28;;:41::i;:50::-;24964:6;:60;;:86;;;;;25038:12;;25028:6;:22;;24964:86;24956:95;;;;;;-1:-1:-1;;;;;25090:27:0;;;;;;:21;:27;;;;;;25074:12;:43;;25066:155;;;;-1:-1:-1;;;25066:155:0;;;;;;;:::i;:::-;25254:12;;25244:6;:22;;25236:75;;;;-1:-1:-1;;;25236:75:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25326:21:0;;;;;;:15;:21;;;;;:31;;25351:6;;25326:21;:31;;25351:6;;25326:31;:::i;:::-;;;;-1:-1:-1;;24892:477:0;25390:13;;-1:-1:-1;;;;;25384:19:0;;;25390:13;;25384:19;;;;:45;;-1:-1:-1;;;;;;25408:21:0;;;;;;:15;:21;;;;;;;;25407:22;25384:45;25381:500;;;25482:24;;25454:23;25471:6;25454:14;:23;:::i;:::-;25453:53;;25445:118;;;;-1:-1:-1;;;25445:118:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25602:27:0;;;;;;:21;:27;;;;;;25586:12;:43;;25578:155;;;;-1:-1:-1;;;25578:155:0;;;;;;;:::i;:::-;25766:12;;25756:6;:22;;25748:75;;;;-1:-1:-1;;;25748:75:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25838:21:0;;;;;;:15;:21;;;;;:31;;25863:6;;25838:21;:31;;25863:6;;25838:31;:::i;:::-;;;;-1:-1:-1;;25381:500:0;25904:13;;-1:-1:-1;;;;;25896:21:0;;;25904:13;;25896:21;:45;;;;-1:-1:-1;;;;;;25922:19:0;;;;;;:15;:19;;;;;;;;25921:20;25896:45;25893:195;;;25995:24;;25967:23;25984:6;25967:14;:23;:::i;:::-;25966:53;;25958:118;;;;-1:-1:-1;;;25958:118:0;;;;;;;:::i;:::-;26110:28;26141:24;26159:4;26141:9;:24::i;:::-;26229:29;;26110:55;;-1:-1:-1;26205:53:0;;;;;;;26287;;-1:-1:-1;26324:16:0;;;;26323:17;26287:53;:91;;;;-1:-1:-1;26365:13:0;;-1:-1:-1;;;;;26357:21:0;;;26365:13;;26357:21;;26287:91;:129;;;;-1:-1:-1;26395:21:0;;;;;;;26287:129;26269:289;;;26466:29;;26443:52;;26510:36;26525:20;26510:14;:36::i;:::-;-1:-1:-1;;;;;26605:24:0;;26570:12;26605:24;;;:18;:24;;;;;;26585:4;;26605:24;;;:50;;-1:-1:-1;;;;;;26633:22:0;;;;;;:18;:22;;;;;;;;26605:50;26602:97;;;-1:-1:-1;26682:5:0;26602:97;-1:-1:-1;;;;;26714:16:0;;26711:63;;-1:-1:-1;26757:5:0;26711:63;26786:38;26801:4;26806:2;26809:6;26816:7;26786:14;:38::i;:::-;26865:30;;-1:-1:-1;;;;;26840:21:0;;;;;;:15;:21;;;;;;:55;26837:187;;26958:13;;26941:31;;:12;;:16;:31::i;:::-;-1:-1:-1;;;;;26911:27:0;;;;;;:21;:27;;;;;;;;:61;;;;26987:15;:21;;;;;:25;26837:187;24450:2581;;;;;;;:::o;1364:192::-;1450:7;1486:12;1478:6;;;;1470:29;;;;-1:-1:-1;;;1470:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1510:9:0;1522:5;1526:1;1522;:5;:::i;:::-;1510:17;1364:192;-1:-1:-1;;;;;1364:192:0:o;20612:163::-;20653:7;20674:15;20691;20710:19;:17;:19::i;:::-;20673:56;;-1:-1:-1;20673:56:0;-1:-1:-1;20747:20:0;20673:56;;20747:11;:20::i;:::-;20740:27;;;;20612:163;:::o;1031:181::-;1089:7;;1121:5;1125:1;1121;:5;:::i;:::-;1109:17;;1150:1;1145;:6;;1137:46;;;;-1:-1:-1;;;1137:46:0;;7776:2:1;1137:46:0;;;7758:21:1;7815:2;7795:18;;;7788:30;7854:29;7834:18;;;7827:57;7901:18;;1137:46:0;7748:177:1;19275:460:0;19334:7;19343;19352;19361;19370;19379;19388;19409:23;19434:12;19448:18;19468;19490:20;19502:7;19490:11;:20::i;:::-;19408:102;;;;;;;;19522:15;19539:23;19564:12;19580:50;19592:7;19601:4;19607:10;19619;:8;:10::i;:::-;19580:11;:50::i;:::-;19521:109;;-1:-1:-1;19521:109:0;-1:-1:-1;19521:109:0;-1:-1:-1;19681:15:0;;-1:-1:-1;19698:4:0;;-1:-1:-1;19704:10:0;;-1:-1:-1;19716:10:0;-1:-1:-1;;;;19275:460:0;;;;;;;;;:::o;1964:278::-;2050:7;2085:12;2078:5;2070:28;;;;-1:-1:-1;;;2070:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2109:9:0;2121:5;2125:1;2121;:5;:::i;27041:474::-;11414:16;:23;;-1:-1:-1;;11414:23:0;11433:4;11414:23;;;:16;27141:27:::1;:20:::0;27166:1:::1;27141:24;:27::i;:::-;27126:42:::0;-1:-1:-1;27179:17:0::1;27199:30;:20:::0;27126:42;27199:24:::1;:30::i;:::-;27179:50:::0;-1:-1:-1;27267:21:0::1;27301:22;27318:4:::0;27301:16:::1;:22::i;:::-;27336:18;27357:41;:21;27383:14:::0;27357:25:::1;:41::i;:::-;27336:62;;27411:35;27424:9;27435:10;27411:12;:35::i;:::-;27464:43;::::0;;14586:25:1;;;14642:2;14627:18;;14620:34;;;14670:18;;;14663:34;;;27464:43:0::1;::::0;14574:2:1;14559:18;27464:43:0::1;;;;;;;-1:-1:-1::0;;11460:16:0;:24;;-1:-1:-1;;11460:24:0;;;-1:-1:-1;;;27041:474:0:o;29539:688::-;29650:7;29646:40;;29672:14;:12;:14::i;:::-;-1:-1:-1;;;;;29703:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;29727:22:0;;;;;;:11;:22;;;;;;;;29726:23;29703:46;29699:467;;;29766:48;29788:6;29796:9;29807:6;29766:21;:48::i;:::-;29699:467;;;-1:-1:-1;;;;;29837:19:0;;;;;;:11;:19;;;;;;;;29836:20;:46;;;;-1:-1:-1;;;;;;29860:22:0;;;;;;:11;:22;;;;;;;;29836:46;29832:334;;;29899:46;29919:6;29927:9;29938:6;29899:19;:46::i;29832:334::-;-1:-1:-1;;;;;29967:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;29990:22:0;;;;;;:11;:22;;;;;;;;29967:45;29963:203;;;30029:48;30051:6;30059:9;30070:6;30029:21;:48::i;29963:203::-;30110:44;30128:6;30136:9;30147:6;30110:17;:44::i;:::-;30182:7;30178:41;;30204:15;23672;;23662:7;:25;23714:21;;23698:13;:37;23762:21;;23746:13;:37;23811:22;;23794:14;:39;23618:223;30204:15;29539:688;;;;:::o;20783:555::-;20880:7;;20916;;20833;;;;;20934:289;20958:9;:16;20954:20;;20934:289;;;21024:7;21000;:21;21008:9;21018:1;21008:12;;;;;;-1:-1:-1;;;21008:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21008:12:0;21000:21;;;;;;;;;;;;;:31;;:66;;;21059:7;21035;:21;21043:9;21053:1;21043:12;;;;;;-1:-1:-1;;;21043:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21043:12:0;21035:21;;;;;;;;;;;;;:31;21000:66;20996:97;;;21076:7;;21085;;21068:25;;;;;;;20783:555;;:::o;20996:97::-;21118:34;21130:7;:21;21138:9;21148:1;21138:12;;;;;;-1:-1:-1;;;21138:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21138:12:0;21130:21;;;;;;;;;;;;;21118:7;;:11;:34::i;:::-;21108:44;;21177:34;21189:7;:21;21197:9;21207:1;21197:12;;;;;;-1:-1:-1;;;21197:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21197:12:0;21189:21;;;;;;;;;;;;;21177:7;;:11;:34::i;:::-;21167:44;-1:-1:-1;20976:3:0;;;;:::i;:::-;;;;20934:289;;;-1:-1:-1;21259:7:0;;21247;;:20;;:11;:20::i;:::-;21237:7;:30;21233:61;;;21277:7;;21286;;21269:25;;;;;;20783:555;;:::o;21233:61::-;21313:7;;21322;;-1:-1:-1;20783:555:0;-1:-1:-1;20783:555:0:o;19743:426::-;19803:7;19812;19821;19830;19850:12;19865:24;19881:7;19865:15;:24::i;:::-;19850:39;;19900:17;19920:30;19942:7;19920:21;:30::i;:::-;19900:50;;19961:18;19982:30;20004:7;19982:21;:30::i;:::-;19961:51;-1:-1:-1;20023:23:0;20049:48;19961:51;20049:32;20071:9;20049:32;:7;20061:4;20049:11;:17::i;:::-;:21;;:32::i;:48::-;20023:74;20133:4;;-1:-1:-1;20139:9:0;;-1:-1:-1;20139:9:0;-1:-1:-1;19743:426:0;;-1:-1:-1;;;19743:426:0:o;20177:427::-;20291:7;;;;20347:24;:7;20359:11;20347;:24::i;:::-;20329:42;-1:-1:-1;20382:12:0;20397:21;:4;20406:11;20397:8;:21::i;:::-;20382:36;-1:-1:-1;20429:18:0;20450:26;:9;20464:11;20450:13;:26::i;:::-;20429:47;-1:-1:-1;20487:23:0;20513:33;20429:47;20513:17;:7;20525:4;20513:11;:17::i;:33::-;20565:7;;;;-1:-1:-1;20591:4:0;;-1:-1:-1;20177:427:0;;-1:-1:-1;;;;;;;20177:427:0:o;1220:136::-;1278:7;1305:43;1309:1;1312;1305:43;;;;;;;;;;;;;;;;;:3;:43::i;27529:400::-;27619:16;;;27633:1;27619:16;;;;;;;;27595:21;;27619:16;;;;;;;;;;-1:-1:-1;27619:16:0;27595:40;;27664:4;27646;27651:1;27646:7;;;;;;-1:-1:-1;;;27646:7:0;;;;;;;;;-1:-1:-1;;;;;27646:23:0;;;:7;;;;;;;;;;:23;;;;27690:15;;:22;;;-1:-1:-1;;;27690:22:0;;;;:15;;;;;:20;;:22;;;;;27646:7;;27690:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27680:4;27685:1;27680:7;;;;;;-1:-1:-1;;;27680:7:0;;;;;;;;;-1:-1:-1;;;;;27680:32:0;;;:7;;;;;;;;;:32;27725:15;;:196;;-1:-1:-1;;;27725:196:0;;:15;;;:66;;:196;;27806:11;;27725:15;;27848:4;;27875;;27895:15;;27725:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27529:400;;:::o;27937:368::-;28050:15;;28018:62;;28035:4;;-1:-1:-1;;;;;28050:15:0;28068:11;28018:8;:62::i;:::-;28093:15;;:204;;-1:-1:-1;;;28093:204:0;;28165:4;28093:204;;;3743:34:1;;;3793:18;;;3786:34;;;28093:15:0;3836:18:1;;;3829:34;;;3879:18;;;3872:34;3922:19;;;3915:44;28271:15:0;3975:19:1;;;3968:35;-1:-1:-1;;;;;28093:15:0;;;;:31;;28132:9;;3677:19:1;;28093:204:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;27937:368;;:::o;23176:434::-;23222:7;;:12;:34;;;;-1:-1:-1;23238:13:0;;:18;23222:34;:56;;;;-1:-1:-1;23260:13:0;;:18;23222:56;:79;;;;-1:-1:-1;23282:14:0;;:19;23222:79;23219:91;;;23176:434::o;23219:91::-;23340:7;;;23322:15;:25;23382:13;;;23358:21;:37;23430:13;;;23406:21;:37;23479:14;;;23454:22;:39;-1:-1:-1;23506:11:0;;;;23528:17;;;;23556;;;23584:18;23176:434::o;32411:935::-;32514:15;32531:23;32556:12;32570:23;32595:12;32609:17;32628:18;32650:19;32661:7;32650:10;:19::i;:::-;32513:156;;;;;;;;;;;;;;32680:25;32708:31;32731:7;32708:22;:31::i;:::-;32680:59;-1:-1:-1;32760:30:0;:7;32680:59;32760:11;:30::i;:::-;-1:-1:-1;;;;;32819:15:0;;;;;;:7;:15;;;;;;32750:40;;-1:-1:-1;32819:28:0;;32839:7;32819:19;:28::i;:::-;-1:-1:-1;;;;;32801:15:0;;;;;;:7;:15;;;;;;;;:46;;;;32876:7;:15;;;;:28;;32896:7;32876:19;:28::i;:::-;-1:-1:-1;;;;;32858:15:0;;;;;;;:7;:15;;;;;;:46;;;;32936:18;;;;;;;:39;;32959:15;32936:22;:39::i;:::-;-1:-1:-1;;;;;32915:18:0;;;;;;:7;:18;;;;;:60;32989:26;33004:10;32989:14;:26::i;:::-;33026:25;33041:9;33026:14;:25::i;:::-;33062:34;33078:17;33062:15;:34::i;:::-;33107:23;33119:4;33125;33107:11;:23::i;:::-;33163:13;;33146:42;;13360:25:1;;;-1:-1:-1;;;;;33163:13:0;;;;33146:42;;;;;13348:2:1;13333:18;33146:42:0;;;;;;;-1:-1:-1;;;;;33204:67:0;;;;;;;33232:38;:15;33252:17;33232:19;:38::i;:::-;33204:67;;13360:25:1;;;13348:2;13333:18;33204:67:0;;;;;;;33304:14;;33287:51;;13360:25:1;;;-1:-1:-1;;;;;33304:14:0;;;;33287:51;;;;;13348:2:1;13333:18;33287:51:0;;;;;;;32411:935;;;;;;;;;;;:::o;31448:955::-;31549:15;31566:23;31591:12;31605:23;31630:12;31644:17;31663:18;31685:19;31696:7;31685:10;:19::i;:::-;31548:156;;;;;;;;;;;;;;31715:25;31743:31;31766:7;31743:22;:31::i;:::-;31715:59;-1:-1:-1;31795:30:0;:7;31715:59;31795:11;:30::i;:::-;-1:-1:-1;;;;;31854:15:0;;;;;;:7;:15;;;;;;31785:40;;-1:-1:-1;31854:28:0;;31785:40;31854:19;:28::i;:::-;-1:-1:-1;;;;;31836:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;31914:18;;;;;:7;:18;;;;;:39;;31937:15;31914:22;:39::i;:::-;-1:-1:-1;;;;;31893:18:0;;;;;;:7;:18;;;;;;;;:60;;;;31985:7;:18;;;;:39;;32008:15;31985:22;:39::i;33354:1011::-;33457:15;33474:23;33499:12;33513:23;33538:12;33552:17;33571:18;33593:19;33604:7;33593:10;:19::i;:::-;33456:156;;;;;;;;;;;;;;33623:25;33651:31;33674:7;33651:22;:31::i;:::-;33623:59;-1:-1:-1;33703:30:0;:7;33623:59;33703:11;:30::i;:::-;-1:-1:-1;;;;;33762:15:0;;;;;;:7;:15;;;;;;33693:40;;-1:-1:-1;33762:28:0;;33782:7;33762:19;:28::i;:::-;-1:-1:-1;;;;;33744:15:0;;;;;;:7;:15;;;;;;;;:46;;;;33819:7;:15;;;;:28;;33839:7;33819:19;:28::i;30569:871::-;30668:15;30685:23;30710:12;30724:23;30749:12;30763:17;30782:18;30804:19;30815:7;30804:10;:19::i;:::-;30667:156;;;;;;;;;;;;;;30834:25;30862:31;30885:7;30862:22;:31::i;:::-;30834:59;-1:-1:-1;30914:30:0;:7;30834:59;30914:11;:30::i;:::-;-1:-1:-1;;;;;30973:15:0;;;;;;:7;:15;;;;;;30904:40;;-1:-1:-1;30973:28:0;;30904:40;30973:19;:28::i;22319:154::-;22383:7;22410:55;22449:5;22410:20;22422:7;;22410;:11;;:20;;;;:::i;22481:166::-;22551:7;22578:61;22623:5;22578:26;22590:13;;22578:7;:11;;:26;;;;:::i;22655:166::-;22725:7;22752:61;22797:5;22752:26;22764:13;;22752:7;:11;;:26;;;;:::i;22829:168::-;22900:7;22927:62;22973:5;22927:27;22939:14;;22927:7;:11;;:27;;;;:::i;21346:355::-;21409:19;21432:10;:8;:10::i;:::-;21409:33;-1:-1:-1;21453:18:0;21474:27;:10;21409:33;21474:14;:27::i;:::-;21553:4;21537:22;;;;:7;:22;;;;;;21453:48;;-1:-1:-1;21537:38:0;;21453:48;21537:26;:38::i;:::-;21528:4;21512:22;;;;:7;:22;;;;;;;;:63;;;;21589:11;:26;;;;;;21586:107;;;21671:4;21655:22;;;;:7;:22;;;;;;:38;;21682:10;21655:26;:38::i;:::-;21646:4;21630:22;;;;:7;:22;;;;;:63;21586:107;21346:355;;;:::o;21709:352::-;21771:19;21794:10;:8;:10::i;:::-;21771:33;-1:-1:-1;21815:18:0;21836:26;:9;21771:33;21836:13;:26::i;:::-;21906:13;;-1:-1:-1;;;;;21906:13:0;21898:22;;;;:7;:22;;;;;;21815:47;;-1:-1:-1;21898:38:0;;21815:47;21898:26;:38::i;:::-;21881:13;;-1:-1:-1;;;;;21881:13:0;21873:22;;;;:7;:22;;;;;;;;:63;;;;21970:4;21950:26;;:11;:26;;;;;;21947:106;;;22032:4;22016:22;;;;:7;:22;;;;;;:37;;22043:9;22016:26;:37::i;22069:242::-;22133:19;22156:10;:8;:10::i;:::-;22133:33;-1:-1:-1;22177:19:0;22199:27;:10;22133:33;22199:14;:27::i;:::-;22271:14;;-1:-1:-1;;;;;22271:14:0;22263:23;;;;:7;:23;;;;;;22177:49;;-1:-1:-1;22263:40:0;;22177:49;22263:27;:40::i;:::-;22245:14;;-1:-1:-1;;;;;22245:14:0;22237:23;;;;:7;:23;;;;;:66;-1:-1:-1;;;22069:242:0:o;19120:147::-;19198:7;;:17;;19210:4;19198:11;:17::i;:::-;19188:7;:27;19239:10;;:20;;19254:4;19239:14;:20::i;:::-;19226:10;:33;-1:-1:-1;;19120:147:0:o;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:2;;164:1;161;154:12;108:2;60:114;;;:::o;179:257::-;238:6;291:2;279:9;270:7;266:23;262:32;259:2;;;312:6;304;297:22;259:2;356:9;343:23;375:31;400:5;375:31;:::i;441:261::-;511:6;564:2;552:9;543:7;539:23;535:32;532:2;;;585:6;577;570:22;532:2;622:9;616:16;641:31;666:5;641:31;:::i;707:398::-;775:6;783;836:2;824:9;815:7;811:23;807:32;804:2;;;857:6;849;842:22;804:2;901:9;888:23;920:31;945:5;920:31;:::i;:::-;970:5;-1:-1:-1;1027:2:1;1012:18;;999:32;1040:33;999:32;1040:33;:::i;:::-;1092:7;1082:17;;;794:311;;;;;:::o;1110:466::-;1187:6;1195;1203;1256:2;1244:9;1235:7;1231:23;1227:32;1224:2;;;1277:6;1269;1262:22;1224:2;1321:9;1308:23;1340:31;1365:5;1340:31;:::i;:::-;1390:5;-1:-1:-1;1447:2:1;1432:18;;1419:32;1460:33;1419:32;1460:33;:::i;:::-;1214:362;;1512:7;;-1:-1:-1;;;1566:2:1;1551:18;;;;1538:32;;1214:362::o;1581:325::-;1649:6;1657;1710:2;1698:9;1689:7;1685:23;1681:32;1678:2;;;1731:6;1723;1716:22;1678:2;1775:9;1762:23;1794:31;1819:5;1794:31;:::i;:::-;1844:5;1896:2;1881:18;;;;1868:32;;-1:-1:-1;;;1668:238:1:o;1911:190::-;1967:6;2020:2;2008:9;1999:7;1995:23;1991:32;1988:2;;;2041:6;2033;2026:22;1988:2;2069:26;2085:9;2069:26;:::i;2106:190::-;2165:6;2218:2;2206:9;2197:7;2193:23;2189:32;2186:2;;;2239:6;2231;2224:22;2186:2;-1:-1:-1;2267:23:1;;2176:120;-1:-1:-1;2176:120:1:o;2301:258::-;2366:6;2374;2427:2;2415:9;2406:7;2402:23;2398:32;2395:2;;;2448:6;2440;2433:22;2395:2;2489:9;2476:23;2466:33;;2518:35;2549:2;2538:9;2534:18;2518:35;:::i;:::-;2508:45;;2385:174;;;;;:::o;2564:316::-;2652:6;2660;2668;2721:2;2709:9;2700:7;2696:23;2692:32;2689:2;;;2742:6;2734;2727:22;2689:2;2776:9;2770:16;2760:26;;2826:2;2815:9;2811:18;2805:25;2795:35;;2870:2;2859:9;2855:18;2849:25;2839:35;;2679:201;;;;;:::o;4440:603::-;4552:4;4581:2;4610;4599:9;4592:21;4642:6;4636:13;4685:6;4680:2;4669:9;4665:18;4658:34;4710:4;4723:140;4737:6;4734:1;4731:13;4723:140;;;4832:14;;;4828:23;;4822:30;4798:17;;;4817:2;4794:26;4787:66;4752:10;;4723:140;;;4881:6;4878:1;4875:13;4872:2;;;4951:4;4946:2;4937:6;4926:9;4922:22;4918:31;4911:45;4872:2;-1:-1:-1;5027:2:1;5006:15;-1:-1:-1;;5002:29:1;4987:45;;;;5034:2;4983:54;;4561:482;-1:-1:-1;;;4561:482:1:o;5452:543::-;5654:2;5636:21;;;5693:2;5673:18;;;5666:30;5732:34;5727:2;5712:18;;5705:62;5803:34;5798:2;5783:18;;5776:62;5875:34;5869:3;5854:19;;5847:63;-1:-1:-1;;;5941:3:1;5926:19;;5919:34;5985:3;5970:19;;5626:369::o;8286:415::-;8488:2;8470:21;;;8527:2;8507:18;;;8500:30;8566:34;8561:2;8546:18;;8539:62;-1:-1:-1;;;8632:2:1;8617:18;;8610:49;8691:3;8676:19;;8460:241::o;9916:404::-;10118:2;10100:21;;;10157:2;10137:18;;;10130:30;10196:34;10191:2;10176:18;;10169:62;-1:-1:-1;;;10262:2:1;10247:18;;10240:38;10310:3;10295:19;;10090:230::o;10727:356::-;10929:2;10911:21;;;10948:18;;;10941:30;11007:34;11002:2;10987:18;;10980:62;11074:2;11059:18;;10901:182::o;11494:416::-;11696:2;11678:21;;;11735:2;11715:18;;;11708:30;11774:34;11769:2;11754:18;;11747:62;-1:-1:-1;;;11840:2:1;11825:18;;11818:50;11900:3;11885:19;;11668:242::o;13396:983::-;13658:4;13706:3;13695:9;13691:19;13737:6;13726:9;13719:25;13763:2;13801:6;13796:2;13785:9;13781:18;13774:34;13844:3;13839:2;13828:9;13824:18;13817:31;13868:6;13903;13897:13;13934:6;13926;13919:22;13972:3;13961:9;13957:19;13950:26;;14011:2;14003:6;13999:15;13985:29;;14032:4;14045:195;14059:6;14056:1;14053:13;14045:195;;;14124:13;;-1:-1:-1;;;;;14120:39:1;14108:52;;14215:15;;;;14180:12;;;;14156:1;14074:9;14045:195;;;-1:-1:-1;;;;;;;14296:32:1;;;;14291:2;14276:18;;14269:60;-1:-1:-1;;;14360:3:1;14345:19;14338:35;14257:3;13667:712;-1:-1:-1;;;13667:712:1:o;14897:128::-;14937:3;14968:1;14964:6;14961:1;14958:13;14955:2;;;14974:18;;:::i;:::-;-1:-1:-1;15010:9:1;;14945:80::o;15030:217::-;15070:1;15096;15086:2;;-1:-1:-1;;;15121:31:1;;15175:4;15172:1;15165:15;15203:4;15128:1;15193:15;15086:2;-1:-1:-1;15232:9:1;;15076:171::o;15252:168::-;15292:7;15358:1;15354;15350:6;15346:14;15343:1;15340:21;15335:1;15328:9;15321:17;15317:45;15314:2;;;15365:18;;:::i;:::-;-1:-1:-1;15405:9:1;;15304:116::o;15425:125::-;15465:4;15493:1;15490;15487:8;15484:2;;;15498:18;;:::i;:::-;-1:-1:-1;15535:9:1;;15474:76::o;15555:380::-;15634:1;15630:12;;;;15677;;;15698:2;;15752:4;15744:6;15740:17;15730:27;;15698:2;15805;15797:6;15794:14;15774:18;15771:38;15768:2;;;15851:10;15846:3;15842:20;15839:1;15832:31;15886:4;15883:1;15876:15;15914:4;15911:1;15904:15;15768:2;;15610:325;;;:::o;15940:135::-;15979:3;-1:-1:-1;;16000:17:1;;15997:2;;;16020:18;;:::i;:::-;-1:-1:-1;16067:1:1;16056:13;;15987:88::o;16080:127::-;16141:10;16136:3;16132:20;16129:1;16122:31;16172:4;16169:1;16162:15;16196:4;16193:1;16186:15;16212:131;-1:-1:-1;;;;;16287:31:1;;16277:42;;16267:2;;16333:1;16330;16323:12

Swarm Source

ipfs://29dca717d545de360a8ac163ba3589f0dfed84c6c04328ae4c74a2e7f8fcc668
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.