Contract 0xc029A12e4A002c6858878FD9D3cc74E227cc2DDa 2

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xa99932ba9ab13917c2512620ccffc66843617a9bcab3628fb728d3907bc0ea46Approve118659702021-10-18 1:00:493 hrs 21 mins ago0xbd6027e3fb330f48eaed1e4a2ccc6f35824501a6 IN  Velorex: VEX Token0 BNB0.00022263
0xc757012defd676e26a7445f56055d68ddb8d7de00455cc8c9a31e9a2973e1ce7Approve118630562021-10-17 22:33:025 hrs 49 mins ago0x2578520e3cf75d6699d7ff24a9a5b4632f9ae170 IN  Velorex: VEX Token0 BNB0.00022263
0xae84420635e0427e443e4f97cb73b374ea9374fe876e67336a6f68e46b913783Approve118629732021-10-17 22:28:535 hrs 53 mins ago0x5cc96f521e7a3ce7d9445a2509ab05e235e7e865 IN  Velorex: VEX Token0 BNB0.00022263
0x107f9b0f084d703a9bf36a37d5f8946013d34c9b57412b3457ad0eb3a5b87edcDeliver118620792021-10-17 21:44:096 hrs 38 mins ago0xe0d06950058d09e939908018711d78416add3087 IN  Velorex: VEX Token0 BNB0.000350465
0x36f596a7f896f7063c8545307cecfd578b3b10281c7a74390f6de4fbf003ec23Approve118619932021-10-17 21:39:516 hrs 42 mins ago0x29890035c29050ee33c03d0122444e9d5a006b76 IN  Velorex: VEX Token0 BNB0.00022263
0x634e2e1cb2ed2454b7bbac86e4c7ecc3fbeb1a007f3813346c02c187ee254171Approve118599552021-10-17 19:57:108 hrs 25 mins ago0x73187fdffc76559cbebe05d6258af35d64b67743 IN  Velorex: VEX Token0 BNB0.00022263
0x4da66b4e01c9d2e95ba655996c048352635d315d6e7da787209ca56fbbb2f34aApprove118583032021-10-17 18:34:229 hrs 47 mins ago0xb11f5289e9adb738c3b9b5631a15f37a6019040d IN  Velorex: VEX Token0 BNB0.00022263
0x60616151800e15acd9e5277446fd44a33bd5d3d526473e9371171193077db9cfApprove118575772021-10-17 17:58:0210 hrs 24 mins ago0x50efb935ea63b1948863e40b1b12a3adca3157a8 IN  Velorex: VEX Token0 BNB0.00022263
0x935b8515da42a953da6b988041bd23722687f49d894220d5e19f89379293480fApprove118562242021-10-17 16:49:5811 hrs 32 mins ago0xeaf1c3db0983d055941a96a0a9d13b42d0cedbd8 IN  Velorex: VEX Token0 BNB0.00022263
0x9f802e90456a6bcf4827f4660bedc35dfc58126cc60826b4460cad44662556f6Approve118557172021-10-17 16:24:3111 hrs 57 mins ago0xb1b9b4bbe8a92d535f5df2368e7fd2ecfb3a1950 IN  Velorex: VEX Token0 BNB0.00012507
0xf76fa4f9187d1a6e48d81b065cedd8e6ff0a1ceddc107943122c63b99f7335eaApprove118557132021-10-17 16:24:1911 hrs 57 mins ago0xb1b9b4bbe8a92d535f5df2368e7fd2ecfb3a1950 IN  Velorex: VEX Token0 BNB0.00022107
0x85206ad9e5f495e16c90903304a6650e0bcc6736eaef52b13313b9c8b458da6fApprove118533302021-10-17 14:23:0513 hrs 59 mins ago0xa694504b8d9a491d75dd6077c5a0dc89c88abdae IN  Velorex: VEX Token0 BNB0.00022263
0x83f816d99ecb0ba8b60d76b102ef406a1444d20c962598894559a9e4d68a842bApprove118532032021-10-17 14:16:4414 hrs 5 mins ago0x153075be70bec0623e2bb24e8861cd32262d6025 IN  Velorex: VEX Token0 BNB0.00022263
0xf5ed4fbb21a72003c2ff75cf0ede6f73b7a528da9f09ffda4ebeda5d46500470Transfer118527222021-10-17 13:52:4114 hrs 29 mins ago0x8bbdab6bdcdc09a0d83d31d8dbae868cc1470146 IN  Velorex: VEX Token0 BNB0.000858685
0xeb13e4dba33dca1e4bc813a30941586bda85e31e5cae9c19414f0d7e50368143Approve118524722021-10-17 13:40:1114 hrs 42 mins ago0x7b663784b1192a2cc686a869f59243742a97e24e IN  Velorex: VEX Token0 BNB0.00022263
0xb5258ba07d4dfe634c299dfbe8b3a6f944e9869dfb5b0f41da8fd3ca98ca331fApprove118502222021-10-17 11:45:0816 hrs 37 mins ago0xb752d7512ef1bb5560317c879e71616bc906212c IN  Velorex: VEX Token0 BNB0.00022263
0x0e23433fe25f6a84e532de8c7f38ceaa987bf41c12c56fe324acf2acaa4bb832Approve118493512021-10-17 11:00:5117 hrs 21 mins ago0x83dc8aeeb725162e0f46b9035fd72950817c6d2e IN  Velorex: VEX Token0 BNB0.00022263
0x784ff4c0866ca0fdce1b44412c71d563f864aa4b7e7a79d36c7282a758aa69deTransfer118459342021-10-17 8:10:0020 hrs 12 mins ago0xcf52e4332bed01687a94ea95bbe024f044ada920 IN  Velorex: VEX Token0 BNB0.000933625
0x794e8027a7f46e6a2e06a00f76c407e2c62dd1339104358e54863c28cfb02af3Approve118448472021-10-17 7:15:3921 hrs 6 mins ago0x78c72d30dfbe0aeff19c4e0adf2368ffe03f9149 IN  Velorex: VEX Token0 BNB0.000311682
0x69026168a878d309e13d7d7fddea1dd72999cf149c31cba497ac7d3ce686d537Transfer118445652021-10-17 7:01:3321 hrs 20 mins ago0xbbb9fc2489840a705089fbcbe00615a9ad3ab15a IN  Velorex: VEX Token0 BNB0.000858745
0xb932f7c4a26d2e022c369a4187ad420de056dea5c0ffe180e8497ee61ed34443Approve118434792021-10-17 6:07:1522 hrs 15 mins ago0xb3b6485408c4440242bdd42182de492c0a99f628 IN  Velorex: VEX Token0 BNB0.00022263
0x09c6a3a53bbb17ab3d962ae8179876eaf35b9fd18e08dc72e9003449de03a8c4Approve118434102021-10-17 6:03:4822 hrs 18 mins ago0x7ad057be1196ada4f98834217ddc5a42143d90a0 IN  Velorex: VEX Token0 BNB0.00022263
0x37cf438c4b786ff2db3043d6e7e3ec2aad60b26383c9d79ef5eb9d8171fb5d17Approve118403332021-10-17 3:29:531 day 52 mins ago0xbeb11524dd6838313216956b28ebf674f8d559e3 IN  Velorex: VEX Token0 BNB0.000267156
0xa8932ddef7d9db5fca8383a3820aa41fd78eb921b716e97277a4fb1d437540c6Approve118394102021-10-17 2:43:441 day 1 hr ago0x9100b23f3f03c65671dbc1536be7b85248fd96a2 IN  Velorex: VEX Token0 BNB0.00089052
0x6a9c5c4fdcf5598a43fa52b5fb741170bbdf7b5c23d411f46d5d4ca5017dd517Approve118352102021-10-16 23:13:441 day 5 hrs ago0xc1cdd127f3a2a60e8fb57acf7ed86ddfc1a89f09 IN  Velorex: VEX Token0 BNB0.00022263
[ Download CSV Export 

OVERVIEW

Velorex is a BEP20 token that is used to facilitate the use of Crypto -> Fiat ATM machines globally using Decentralized Exchanges for all trades.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xf50d12bcf3784284dc306162b52d2afa4db08afcffd6b075d42b626f0138a457118425062021-10-17 5:18:3623 hrs 3 mins ago Velorex: VEX Token0x605ec88f9a2c8b68ec828b3fbd13a626e907bad88.126798238777769592 BNB
0xf50d12bcf3784284dc306162b52d2afa4db08afcffd6b075d42b626f0138a457118425062021-10-17 5:18:3623 hrs 3 mins ago PancakeSwap: Router v2 Velorex: VEX Token8.126798238777769592 BNB
0x3c67bb2c1d017a41f80c7e2adf5a7138ca41b52925eceb27f028692955034686117663962021-10-14 13:39:063 days 14 hrs ago Velorex: VEX Token0x605ec88f9a2c8b68ec828b3fbd13a626e907bad88.815043700981814207 BNB
0x3c67bb2c1d017a41f80c7e2adf5a7138ca41b52925eceb27f028692955034686117663962021-10-14 13:39:063 days 14 hrs ago PancakeSwap: Router v2 Velorex: VEX Token8.815043700981814207 BNB
0x7acb5c8b9864270d3811b93cbb44e5866f826f98b0d6b4ed9ce9249de1f2f9b2117393142021-10-13 14:56:084 days 13 hrs ago Velorex: VEX Token0x605ec88f9a2c8b68ec828b3fbd13a626e907bad811.257370122290987933 BNB
0x7acb5c8b9864270d3811b93cbb44e5866f826f98b0d6b4ed9ce9249de1f2f9b2117393142021-10-13 14:56:084 days 13 hrs ago PancakeSwap: Router v2 Velorex: VEX Token11.257370122290987933 BNB
0xdf0262f73a0ea602f5a2b5e8f80fa19ee540b5ad995ffda0cbbd499fea135e02117053302021-10-12 10:07:115 days 18 hrs ago Velorex: VEX Token0x605ec88f9a2c8b68ec828b3fbd13a626e907bad89.687595880203310991 BNB
0xdf0262f73a0ea602f5a2b5e8f80fa19ee540b5ad995ffda0cbbd499fea135e02117053302021-10-12 10:07:115 days 18 hrs ago PancakeSwap: Router v2 Velorex: VEX Token9.687595880203310991 BNB
0x51e8ef3186dfcd0fd5dded852eb996b956bce0544b912b639cf865b0a4f90858116681832021-10-11 2:26:227 days 1 hr ago Velorex: VEX Token0x605ec88f9a2c8b68ec828b3fbd13a626e907bad89.981353099584220583 BNB
0x51e8ef3186dfcd0fd5dded852eb996b956bce0544b912b639cf865b0a4f90858116681832021-10-11 2:26:227 days 1 hr ago PancakeSwap: Router v2 Velorex: VEX Token9.981353099584220583 BNB
0xd090b8ad566dc0e8ee7dea30e8b1dfe6e53a5e370d6206a4b9adfb3ad883cc5d116466492021-10-10 8:23:427 days 19 hrs ago Velorex: VEX Token0x605ec88f9a2c8b68ec828b3fbd13a626e907bad810.748578648726766158 BNB
0xd090b8ad566dc0e8ee7dea30e8b1dfe6e53a5e370d6206a4b9adfb3ad883cc5d116466492021-10-10 8:23:427 days 19 hrs ago PancakeSwap: Router v2 Velorex: VEX Token10.748578648726766158 BNB
0x593438df7bd088751844b723196298589f21a78627e15f86fc638385f6cb0c0c115966742021-10-08 14:37:439 days 13 hrs ago Velorex: VEX Token0x605ec88f9a2c8b68ec828b3fbd13a626e907bad811.517082513121976368 BNB
0x593438df7bd088751844b723196298589f21a78627e15f86fc638385f6cb0c0c115966742021-10-08 14:37:439 days 13 hrs ago PancakeSwap: Router v2 Velorex: VEX Token11.517082513121976368 BNB
0xa00598442aed7c87a9cbc0137e6b2116e61ec973fa321675525f88abaeaa1376115834042021-10-08 3:33:3410 days 48 mins ago Velorex: VEX Token0x605ec88f9a2c8b68ec828b3fbd13a626e907bad812.717918749092513309 BNB
0xa00598442aed7c87a9cbc0137e6b2116e61ec973fa321675525f88abaeaa1376115834042021-10-08 3:33:3410 days 48 mins ago PancakeSwap: Router v2 Velorex: VEX Token12.717918749092513309 BNB
0x6634802c8a3ebe63acf47dfb7a6ffbdd2ebaa91aa5debfc4b076fbcf30342932115522062021-10-07 1:31:4811 days 2 hrs ago Velorex: VEX Token0x605ec88f9a2c8b68ec828b3fbd13a626e907bad810.341854948205553953 BNB
0x6634802c8a3ebe63acf47dfb7a6ffbdd2ebaa91aa5debfc4b076fbcf30342932115522062021-10-07 1:31:4811 days 2 hrs ago PancakeSwap: Router v2 Velorex: VEX Token10.341854948205553953 BNB
0x445177dbf233dc4a6535e21bb2f524f11c38917d43478f58b9b6d3e82d931dee115521832021-10-07 1:30:3911 days 2 hrs ago Velorex: VEX Token0x605ec88f9a2c8b68ec828b3fbd13a626e907bad810.341854948205553953 BNB
0x445177dbf233dc4a6535e21bb2f524f11c38917d43478f58b9b6d3e82d931dee115521832021-10-07 1:30:3911 days 2 hrs ago PancakeSwap: Router v2 Velorex: VEX Token10.341854948205553953 BNB
0x54f53afe054412067d5010022b32b856099c31f9ef8b5f581338f227f51214fc115221452021-10-06 0:26:5712 days 3 hrs ago Velorex: VEX Token0x605ec88f9a2c8b68ec828b3fbd13a626e907bad811.114552692070643936 BNB
0x54f53afe054412067d5010022b32b856099c31f9ef8b5f581338f227f51214fc115221452021-10-06 0:26:5712 days 3 hrs ago PancakeSwap: Router v2 Velorex: VEX Token11.114552692070643936 BNB
0x0dfa54463705be2394d598933393198c91041b02b2719d61b322c175ffa96e21115177742021-10-05 20:47:5612 days 7 hrs ago Velorex: VEX Token0x605ec88f9a2c8b68ec828b3fbd13a626e907bad811.778982198000300998 BNB
0x0dfa54463705be2394d598933393198c91041b02b2719d61b322c175ffa96e21115177742021-10-05 20:47:5612 days 7 hrs ago PancakeSwap: Router v2 Velorex: VEX Token11.778982198000300998 BNB
0x654f527ccdde677c03d221855d4f1f836c42294870c61474321da30d7a49a80b114740992021-10-04 8:21:5013 days 20 hrs ago Velorex: VEX Token0x605ec88f9a2c8b68ec828b3fbd13a626e907bad812.572573100745673168 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Velorex

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 2: Velorex.sol
/*

██╗░░░██╗███████╗██╗░░░░░░█████╗░██████╗░███████╗██╗░░██╗░░░███╗░░██╗███████╗████████╗
██║░░░██║██╔════╝██║░░░░░██╔══██╗██╔══██╗██╔════╝╚██╗██╔╝░░░████╗░██║██╔════╝╚══██╔══╝
╚██╗░██╔╝█████╗░░██║░░░░░██║░░██║██████╔╝█████╗░░░╚███╔╝░░░░██╔██╗██║█████╗░░░░░██║░░░
░╚████╔╝░██╔══╝░░██║░░░░░██║░░██║██╔══██╗██╔══╝░░░██╔██╗░░░░██║╚████║██╔══╝░░░░░██║░░░
░░╚██╔╝░░███████╗███████╗╚█████╔╝██║░░██║███████╗██╔╝╚██╗██╗██║░╚███║███████╗░░░██║░░░
░░░╚═╝░░░╚══════╝╚══════╝░╚════╝░╚═╝░░╚═╝╚══════╝╚═╝░░╚═╝╚═╝╚═╝░░╚══╝╚══════╝░░░╚═╝░░░
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

import "./util.sol";

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

    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => bool)    private _isExcludedFromFee;
    mapping (address => bool)    private _isExcluded;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromSwapAndLiquify;

    address[] private _excluded;
    address public _charityWallet;
   
    uint256 private constant MAX = ~uint256(0);
    uint256 private _tTotal = 500000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));

    uint256 private _tFeeTotal;
    uint256 private _tBurnTotal;

    string private constant _name     = "Velorex";
    string private constant _symbol   = "VEX";
    uint8  private constant _decimals = 9;
    
    uint256 public _taxFee       = 200; // 2% of every transaction is redistributed to holders
    uint256 public _liquidityFee = 500; // 5% of every transaction will be converted into BNB.
    uint256 public _burnFee      = 200; // 2% of every transaction is burned

    uint256 public _maxTxAmount                   = 500000000 * 10**9;
    uint256 public _numTokensSellToAddToLiquidity = 100000 * 10**9;
    
    // liquidity
    bool public  _swapAndLiquifyEnabled = true;
    bool private _inSwapAndLiquify;
    IUniswapV2Router02 public _uniswapV2Router;
    address            public _uniswapV2Pair;
    event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event CharitySent(
        address to,
        uint256 bnbSent
    );
    
    modifier lockTheSwap {
        _inSwapAndLiquify = true;
        _;
        _inSwapAndLiquify = false;
    }
    
    constructor (address cOwner, address charityWallet) Ownable(cOwner) {
        _charityWallet = charityWallet;

        _rOwned[cOwner] = _rTotal;
        
        // Create a uniswap pair for this new token
        IUniswapV2Router02 uniswapV2Router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        _uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _uniswapV2Router = uniswapV2Router;

        // exclude system addresses from fee
        _isExcludedFromFee[owner()]        = true;
        _isExcludedFromFee[address(this)]  = true;
        _isExcludedFromFee[_charityWallet] = true;

        _isExcludedFromSwapAndLiquify[_uniswapV2Pair]            = true;
        _isExcludedFromSwapAndLiquify[address(_uniswapV2Router)] = true;
        
        emit Transfer(address(0), cOwner, _tTotal);
    }

    receive() external payable {}

    // BEP20
    function name() public pure returns (string memory) {
        return _name;
    }
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
    function decimals() public pure 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 _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "BEP20: approve from the zero address");
        require(spender != address(0), "BEP20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "BEP20: 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, "BEP20: decreased allowance below zero"));
        return true;
    }

    // REFLECTION
    function deliver(uint256 tAmount) public {
        address sender = _msgSender();
        require(!_isExcluded[sender], "Excluded addresses cannot call this function");

        (, uint256 tFee, uint256 tLiquidity, uint256 tBurn) = _getTValues(tAmount);
        uint256 currentRate = _getRate();
        (uint256 rAmount,,) = _getRValues(tAmount, tFee, tLiquidity, tBurn, currentRate);

        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rTotal         = _rTotal.sub(rAmount);
        _tFeeTotal      = _tFeeTotal.add(tAmount);
    }
    function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");

        if (!deductTransferFee) {
            (, uint256 tFee, uint256 tLiquidity, uint256 tBurn) = _getTValues(tAmount);
            uint256 currentRate = _getRate();
            (uint256 rAmount,,) = _getRValues(tAmount, tFee, tLiquidity, tBurn, currentRate);

            return rAmount;

        } else {
            (, uint256 tFee, uint256 tLiquidity, uint256 tBurn) = _getTValues(tAmount);
            uint256 currentRate = _getRate();
            (, uint256 rTransferAmount,) = _getRValues(tAmount, tFee, tLiquidity, tBurn, currentRate);

            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 totalFees() public view returns (uint256) {
        return _tFeeTotal;
    }
    function totalBurn() public view returns (uint256) {
        return _tBurnTotal;
    }
    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }
    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }
    function setTaxFeePercent(uint256 taxFee) external onlyOwner {
        _taxFee = taxFee;
    }
    function setLiquidityFeePercent(uint256 liquidityFee) external onlyOwner {
        _liquidityFee = liquidityFee;
    }
    function setBurnFeePercent(uint256 burnFee) external onlyOwner {
        _burnFee = burnFee;
    }
    function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner {
        _maxTxAmount = _tTotal.mul(maxTxPercent).div(100);
    }
    function setMinLiquidityPercent(uint256 minLiquidityPercent) external onlyOwner {
        _numTokensSellToAddToLiquidity = _tTotal.mul(minLiquidityPercent).div(1000);
    }
    function setSwapAndLiquifyEnabled(bool enabled) public onlyOwner {
        _swapAndLiquifyEnabled = enabled;
        emit SwapAndLiquifyEnabledUpdated(enabled);
    }
    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }
    function isExcludedFromReward(address account) public view returns (bool) {
        return _isExcluded[account];
    }
    function setIsExcludedFromSwapAndLiquify(address a, bool b) external onlyOwner {
        _isExcludedFromSwapAndLiquify[a] = b;
    }
    function setUniswapRouter(address r) external onlyOwner {
        IUniswapV2Router02 uniswapV2Router = IUniswapV2Router02(r);
        _uniswapV2Router = uniswapV2Router;
    }
    function setUniswapPair(address p) external onlyOwner {
        _uniswapV2Pair = p;
    }

    // TRANSFER
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "BEP20: transfer from the zero address");
        require(to != address(0), "BEP20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (from != owner() && to != owner()) {
            require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
        }

        /*
            - swapAndLiquify will be initiated when token balance of this contract
            has accumulated enough over the minimum number of tokens required.
            - don't get caught in a circular liquidity event.
            - don't swapAndLiquify if sender is uniswap pair.
        */

        uint256 contractTokenBalance = balanceOf(address(this));
        
        if (contractTokenBalance >= _maxTxAmount) {
            contractTokenBalance = _maxTxAmount;
        }
        
        bool isOverMinTokenBalance = contractTokenBalance >= _numTokensSellToAddToLiquidity;
        if (
            isOverMinTokenBalance &&
            !_inSwapAndLiquify &&
            !_isExcludedFromSwapAndLiquify[from] &&
            _swapAndLiquifyEnabled
        ) {
            swapAndLiquify(_numTokensSellToAddToLiquidity);
        }
        
        bool takeFee = true;
        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        }
        _tokenTransfer(from, to, amount, takeFee);
    }
    function swapAndLiquify(uint256 tokenAmount) private lockTheSwap {
        swapTokensForBnb(tokenAmount);
        if (address(this).balance > 0) {
            emit CharitySent(_charityWallet, address(this).balance);
            payable(_charityWallet).transfer(address(this).balance);
        }
    }
    function swapTokensForBnb(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();

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

    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        uint256 previousTaxFee       = _taxFee;
        uint256 previousLiquidityFee = _liquidityFee;
        uint256 previousBurnFee      = _burnFee;

        if (!takeFee) {
            _taxFee       = 0;
            _liquidityFee = 0;
            _burnFee      = 0;
        }
        
        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]) {
            _transferStandard(sender, recipient, amount);

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

        } else {
            _transferStandard(sender, recipient, amount);
        }
        
        if (!takeFee) {
            _taxFee       = previousTaxFee;
            _liquidityFee = previousLiquidityFee;
            _burnFee      = previousBurnFee;
        }
    }
    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity, uint256 tBurn) = _getTValues(tAmount);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tLiquidity, tBurn, currentRate);
        uint256 rBurn = tBurn.mul(currentRate);

        _rOwned[sender]    = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);

        takeTransactionFee(address(this), tLiquidity, currentRate);
        _reflectFee(rFee, rBurn, tFee, tBurn);
        emit Transfer(sender, recipient, tTransferAmount);
    }
    function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity, uint256 tBurn) = _getTValues(tAmount);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tLiquidity, tBurn, currentRate);
        uint256 rBurn = tBurn.mul(currentRate);

        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);

        takeTransactionFee(address(this), tLiquidity, currentRate);
        _reflectFee(rFee, rBurn, tFee, tBurn);
        emit Transfer(sender, recipient, tTransferAmount);
    }
    function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity, uint256 tBurn) = _getTValues(tAmount);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tLiquidity, tBurn, currentRate);
        uint256 rBurn = tBurn.mul(currentRate);

        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);

        takeTransactionFee(address(this), tLiquidity, currentRate);
        _reflectFee(rFee, rBurn, tFee, tBurn);
        emit Transfer(sender, recipient, tTransferAmount);
    }
    function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity, uint256 tBurn) = _getTValues(tAmount);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tLiquidity, tBurn, currentRate);
        uint256 rBurn = tBurn.mul(currentRate);

        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);

        takeTransactionFee(address(this), tLiquidity, currentRate);
        _reflectFee(rFee, rBurn, tFee, tBurn);
        emit Transfer(sender, recipient, tTransferAmount);
    }
    function _reflectFee(uint256 rFee, uint256 rBurn, uint256 tFee, uint256 tBurn) private {
        _rTotal     = _rTotal.sub(rFee).sub(rBurn);
        _tFeeTotal  = _tFeeTotal.add(tFee);
        _tBurnTotal = _tBurnTotal.add(tBurn);
        _tTotal     = _tTotal.sub(tBurn);
    }
    function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256) {
        uint256 tFee       = tAmount.mul(_taxFee).div(10000);
        uint256 tLiquidity = tAmount.mul(_liquidityFee).div(10000);
        uint256 tBurn      = tAmount.mul(_burnFee).div(10000);
        uint256 tTransferAmount = tAmount.sub(tFee);
        tTransferAmount = tTransferAmount.sub(tLiquidity);
        tTransferAmount = tTransferAmount.sub(tBurn);
        return (tTransferAmount, tFee, tLiquidity, tBurn);
    }
    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tLiquidity, uint256 tBurn, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount     = tAmount.mul(currentRate);
        uint256 rFee        = tFee.mul(currentRate);
        uint256 rLiquidity  = tLiquidity.mul(currentRate);
        uint256 rBurn       = tBurn.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee);
        rTransferAmount = rTransferAmount.sub(rLiquidity);
        rTransferAmount = rTransferAmount.sub(rBurn);
        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 takeTransactionFee(address to, uint256 tAmount, uint256 currentRate) private {
        if (tAmount <= 0) { return; }

        uint256 rAmount = tAmount.mul(currentRate);
        _rOwned[to] = _rOwned[to].add(rAmount);
        if (_isExcluded[to]) {
            _tOwned[to] = _tOwned[to].add(tAmount);
        }
    }
}

File 2 of 2: util.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        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;
    address private _previousOwner;
    uint256 private _lockTime;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor (address initialOwner) {
        _owner = initialOwner;
        emit OwnershipTransferred(address(0), initialOwner);
    }

    function owner() public view 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;
    }

    function getUnlockTime() public view returns (uint256) {
        return _lockTime;
    }

    function lock(uint256 time) public virtual onlyOwner {
        _previousOwner = _owner;
        _owner = address(0);
        _lockTime = block.timestamp + time;
        emit OwnershipTransferred(_owner, address(0));
    }
    
    function unlock() public virtual {
        require(_previousOwner == msg.sender, "You don't have permission to unlock");
        require(block.timestamp > _lockTime , "Contract is still locked");
        emit OwnershipTransferred(_owner, _previousOwner);
        _owner = _previousOwner;
    }
}

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 IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, 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 Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"cOwner","type":"address"},{"internalType":"address","name":"charityWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"bnbSent","type":"uint256"}],"name":"CharitySent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","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":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":"_burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_charityWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFee","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":"_numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"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":"getUnlockTime","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":[{"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":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"burnFee","type":"uint256"}],"name":"setBurnFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bool","name":"b","type":"bool"}],"name":"setIsExcludedFromSwapAndLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setLiquidityFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minLiquidityPercent","type":"uint256"}],"name":"setMinLiquidityPercent","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":[{"internalType":"address","name":"p","type":"address"}],"name":"setUniswapPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"r","type":"address"}],"name":"setUniswapRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBurn","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":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526706f05b59d3b20000600b81905562000020906000196200042e565b6200002e906000196200040a565b600c5560c8600f8190556101f46010556011556706f05b59d3b20000601255655af3107a40006013556014805460ff191660011790553480156200007157600080fd5b5060405162002e8838038062002e888339810160408190526200009491620003d3565b600080546001600160a01b0319166001600160a01b03841690811782556040518492907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600a80546001600160a01b0319166001600160a01b0383811691909117909155600c5490831660009081526003602090815260409182902092909255805163c45a015560e01b815290517310ed43c718714eb63d5aa57b78b54704e256024e92839263c45a01559260048083019392829003018186803b1580156200016157600080fd5b505afa15801562000176573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019c9190620003af565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001e557600080fd5b505afa158015620001fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002209190620003af565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200026957600080fd5b505af11580156200027e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a49190620003af565b601580546001600160a01b0319166001600160a01b039283161781556014805462010000600160b01b0319166201000085851681029190911782556000805485168152600560209081526040808320805460ff1990811660019081179092553085528285208054821683179055600a54891685528285208054821683179055965488168452600883528184208054881682179055945493909304861682528282208054909516909317909355600b5481519081529051938716937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35050506200044f565b80516001600160a01b0381168114620003aa57600080fd5b919050565b600060208284031215620003c1578081fd5b620003cc8262000392565b9392505050565b60008060408385031215620003e6578081fd5b620003f18362000392565b9150620004016020840162000392565b90509250929050565b6000828210156200042957634e487b7160e01b81526011600452602481fd5b500390565b6000826200044a57634e487b7160e01b81526012600452602481fd5b500690565b612a29806200045f6000396000f3fe60806040526004361061028c5760003560e01c806370a082311161015a578063b3f22ce3116100c1578063d543dbeb1161007a578063d543dbeb146107e2578063d5aed6bf14610802578063dd46706414610822578063dd62ed3e14610842578063ea2f0b3714610888578063f2fde38b146108a857600080fd5b8063b3f22ce31461073c578063bea9849e14610752578063c0b0fda214610772578063c49b9a8014610788578063cbecede0146107a8578063cea26958146107c257600080fd5b80638ee88c53116101135780638ee88c531461067b57806395d89b411461069b5780639c74daf0146106c7578063a457c2d7146106e7578063a69df4b514610707578063a9059cbb1461071c57600080fd5b806370a08231146105a9578063715018a6146105c95780637d1db4a5146105de5780638268a343146105f457806388f82020146106245780638da5cb5b1461065d57600080fd5b80633b124fe7116101fe5780634549b039116101b75780634549b039146104df57806352390c02146104ff5780635342acb41461051f578063583e056814610558578063602bc62b1461057e5780636bc87c3a1461059357600080fd5b80633b124fe71461041c5780633bd5d173146104325780633c9f861d146104525780634092795214610467578063437823ec1461048757806343a18909146104a757600080fd5b806323b872dd1161025057806323b872dd146103605780632a9319cb146103805780632d838119146103a0578063313ce567146103c05780633685d419146103dc57806339509351146103fc57600080fd5b8063061c82d01461029857806306fdde03146102ba578063095ea7b3146102fc57806313114a9d1461032c57806318160ddd1461034b57600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102b86102b336600461279d565b6108c8565b005b3480156102c657600080fd5b506040805180820190915260078152660accad8dee4caf60cb1b60208201525b6040516102f391906127d7565b60405180910390f35b34801561030857600080fd5b5061031c610317366004612758565b610900565b60405190151581526020016102f3565b34801561033857600080fd5b50600d545b6040519081526020016102f3565b34801561035757600080fd5b50600b5461033d565b34801561036c57600080fd5b5061031c61037b3660046126e4565b610917565b34801561038c57600080fd5b506102b861039b36600461279d565b610980565b3480156103ac57600080fd5b5061033d6103bb36600461279d565b6109d1565b3480156103cc57600080fd5b50604051600981526020016102f3565b3480156103e857600080fd5b506102b86103f7366004612674565b610a55565b34801561040857600080fd5b5061031c610417366004612758565b610c44565b34801561042857600080fd5b5061033d600f5481565b34801561043e57600080fd5b506102b861044d36600461279d565b610c7a565b34801561045e57600080fd5b50600e5461033d565b34801561047357600080fd5b506102b8610482366004612724565b610d89565b34801561049357600080fd5b506102b86104a2366004612674565b610dde565b3480156104b357600080fd5b50600a546104c7906001600160a01b031681565b6040516001600160a01b0390911681526020016102f3565b3480156104eb57600080fd5b5061033d6104fa3660046127b5565b610e2c565b34801561050b57600080fd5b506102b861051a366004612674565b610f04565b34801561052b57600080fd5b5061031c61053a366004612674565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561056457600080fd5b506014546104c7906201000090046001600160a01b031681565b34801561058a57600080fd5b5060025461033d565b34801561059f57600080fd5b5061033d60105481565b3480156105b557600080fd5b5061033d6105c4366004612674565b611057565b3480156105d557600080fd5b506102b86110b6565b3480156105ea57600080fd5b5061033d60125481565b34801561060057600080fd5b5061031c61060f366004612674565b60086020526000908152604090205460ff1681565b34801561063057600080fd5b5061031c61063f366004612674565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561066957600080fd5b506000546001600160a01b03166104c7565b34801561068757600080fd5b506102b861069636600461279d565b611118565b3480156106a757600080fd5b506040805180820190915260038152620ac8ab60eb1b60208201526102e6565b3480156106d357600080fd5b506015546104c7906001600160a01b031681565b3480156106f357600080fd5b5061031c610702366004612758565b611147565b34801561071357600080fd5b506102b8611196565b34801561072857600080fd5b5061031c610737366004612758565b61129c565b34801561074857600080fd5b5061033d60135481565b34801561075e57600080fd5b506102b861076d366004612674565b6112a9565b34801561077e57600080fd5b5061033d60115481565b34801561079457600080fd5b506102b86107a3366004612783565b6112fd565b3480156107b457600080fd5b5060145461031c9060ff1681565b3480156107ce57600080fd5b506102b86107dd36600461279d565b61136e565b3480156107ee57600080fd5b506102b86107fd36600461279d565b61139d565b34801561080e57600080fd5b506102b861081d366004612674565b6113e7565b34801561082e57600080fd5b506102b861083d36600461279d565b611433565b34801561084e57600080fd5b5061033d61085d3660046126ac565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561089457600080fd5b506102b86108a3366004612674565b6114b8565b3480156108b457600080fd5b506102b86108c3366004612674565b611503565b6000546001600160a01b031633146108fb5760405162461bcd60e51b81526004016108f29061282a565b60405180910390fd5b600f55565b600061090d3384846115db565b5060015b92915050565b60006109248484846116ff565b610976843361097185604051806060016040528060288152602001612987602891396001600160a01b038a1660009081526007602090815260408083203384529091529020549190611994565b6115db565b5060019392505050565b6000546001600160a01b031633146109aa5760405162461bcd60e51b81526004016108f29061282a565b6109cb6103e86109c583600b546119ce90919063ffffffff16565b90611a4d565b60135550565b6000600c54821115610a385760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016108f2565b6000610a42611a8f565b9050610a4e8382611a4d565b9392505050565b6000546001600160a01b03163314610a7f5760405162461bcd60e51b81526004016108f29061282a565b6001600160a01b03811660009081526006602052604090205460ff16610ae75760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016108f2565b60005b600954811015610c4057816001600160a01b031660098281548110610b1f57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415610c2e5760098054610b4a90600190612926565b81548110610b6857634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600980546001600160a01b039092169183908110610ba257634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600690925220805460ff191690556009805480610c0857634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610c388161293d565b915050610aea565b5050565b3360008181526007602090815260408083206001600160a01b0387168452909152812054909161090d9185906109719086611ab2565b3360008181526006602052604090205460ff1615610cef5760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016108f2565b6000806000610cfd85611b11565b935093509350506000610d0e611a8f565b90506000610d1f8786868686611ba8565b50506001600160a01b038716600090815260036020526040902054909150610d479082611c1c565b6001600160a01b038716600090815260036020526040902055600c54610d6d9082611c1c565b600c55600d54610d7d9088611ab2565b600d5550505050505050565b6000546001600160a01b03163314610db35760405162461bcd60e51b81526004016108f29061282a565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610e085760405162461bcd60e51b81526004016108f29061282a565b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b6000600b54831115610e805760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016108f2565b81610ec5576000806000610e9386611b11565b935093509350506000610ea4611a8f565b90506000610eb58886868686611ba8565b5090965061091195505050505050565b6000806000610ed386611b11565b935093509350506000610ee4611a8f565b90506000610ef58886868686611ba8565b50965061091195505050505050565b6000546001600160a01b03163314610f2e5760405162461bcd60e51b81526004016108f29061282a565b6001600160a01b03811660009081526006602052604090205460ff1615610f975760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016108f2565b6001600160a01b03811660009081526003602052604090205415610ff1576001600160a01b038116600090815260036020526040902054610fd7906109d1565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b03166000818152600660205260408120805460ff191660019081179091556009805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319169091179055565b6001600160a01b03811660009081526006602052604081205460ff161561109457506001600160a01b031660009081526004602052604090205490565b6001600160a01b038216600090815260036020526040902054610911906109d1565b6000546001600160a01b031633146110e05760405162461bcd60e51b81526004016108f29061282a565b600080546040516001600160a01b03909116906000805160206129af833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146111425760405162461bcd60e51b81526004016108f29061282a565b601055565b600061090d3384610971856040518060600160405280602581526020016129cf602591393360009081526007602090815260408083206001600160a01b038d1684529091529020549190611994565b6001546001600160a01b031633146111fc5760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b60648201526084016108f2565b600254421161124d5760405162461bcd60e51b815260206004820152601860248201527f436f6e7472616374206973207374696c6c206c6f636b6564000000000000000060448201526064016108f2565b600154600080546040516001600160a01b0393841693909116916000805160206129af83398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b600061090d3384846116ff565b6000546001600160a01b031633146112d35760405162461bcd60e51b81526004016108f29061282a565b601480546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6000546001600160a01b031633146113275760405162461bcd60e51b81526004016108f29061282a565b6014805460ff19168215159081179091556040519081527f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599060200160405180910390a150565b6000546001600160a01b031633146113985760405162461bcd60e51b81526004016108f29061282a565b601155565b6000546001600160a01b031633146113c75760405162461bcd60e51b81526004016108f29061282a565b6113e160646109c583600b546119ce90919063ffffffff16565b60125550565b6000546001600160a01b031633146114115760405162461bcd60e51b81526004016108f29061282a565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461145d5760405162461bcd60e51b81526004016108f29061282a565b60008054600180546001600160a01b03199081166001600160a01b0384161790915516905561148c81426128cf565b600255600080546040516001600160a01b03909116906000805160206129af833981519152908390a350565b6000546001600160a01b031633146114e25760405162461bcd60e51b81526004016108f29061282a565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6000546001600160a01b0316331461152d5760405162461bcd60e51b81526004016108f29061282a565b6001600160a01b0381166115925760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108f2565b600080546040516001600160a01b03808516939216916000805160206129af83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661163d5760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108f2565b6001600160a01b03821661169e5760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108f2565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166117635760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108f2565b6001600160a01b0382166117c55760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108f2565b600081116118275760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108f2565b6000546001600160a01b0384811691161480159061185357506000546001600160a01b03838116911614155b156118bb576012548111156118bb5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016108f2565b60006118c630611057565b905060125481106118d657506012545b601354811080159081906118f25750601454610100900460ff16155b801561191757506001600160a01b03851660009081526008602052604090205460ff16155b8015611925575060145460ff165b1561193557611935601354611c5e565b6001600160a01b03851660009081526005602052604090205460019060ff168061197757506001600160a01b03851660009081526005602052604090205460ff165b15611980575060005b61198c86868684611d09565b505050505050565b600081848411156119b85760405162461bcd60e51b81526004016108f291906127d7565b5060006119c58486612926565b95945050505050565b6000826119dd57506000610911565b60006119e98385612907565b9050826119f685836128e7565b14610a4e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108f2565b6000610a4e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e99565b6000806000611a9c611ec7565b9092509050611aab8282611a4d565b9250505090565b600080611abf83856128cf565b905083811015610a4e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108f2565b6000806000806000611b346127106109c5600f54896119ce90919063ffffffff16565b90506000611b536127106109c56010548a6119ce90919063ffffffff16565b90506000611b726127106109c56011548b6119ce90919063ffffffff16565b90506000611b808985611c1c565b9050611b8c8184611c1c565b9050611b988183611c1c565b9993985091965094509092505050565b6000808080611bb789866119ce565b90506000611bc589876119ce565b90506000611bd389886119ce565b90506000611be189896119ce565b90506000611bef8585611c1c565b9050611bfb8184611c1c565b9050611c078183611c1c565b949d949c50929a509298505050505050505050565b6000610a4e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611994565b6014805461ff001916610100179055611c7681612081565b4715611cfb57600a54604080516001600160a01b0390921682524760208301527ed5888abd48df22072b354a454d4c2ee6a04aba2ccc348895e26a024e2c20ba910160405180910390a1600a546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611cf9573d6000803e3d6000fd5b505b506014805461ff0019169055565b600f5460105460115483611d27576000600f81905560108190556011555b6001600160a01b03871660009081526006602052604090205460ff168015611d6857506001600160a01b03861660009081526006602052604090205460ff16155b15611d7d57611d78878787612223565b611e7b565b6001600160a01b03871660009081526006602052604090205460ff16158015611dbe57506001600160a01b03861660009081526006602052604090205460ff165b15611dce57611d7887878761237a565b6001600160a01b03871660009081526006602052604090205460ff16158015611e1057506001600160a01b03861660009081526006602052604090205460ff16155b15611e2057611d7887878761244d565b6001600160a01b03871660009081526006602052604090205460ff168015611e6057506001600160a01b03861660009081526006602052604090205460ff165b15611e7057611d788787876124bb565b611e7b87878761244d565b83611e9057600f839055601082905560118190555b50505050505050565b60008183611eba5760405162461bcd60e51b81526004016108f291906127d7565b5060006119c584866128e7565b600c54600b546000918291825b60095481101561205157826003600060098481548110611f0457634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611f7d5750816004600060098481548110611f5657634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611f9357600c54600b54945094505050509091565b611fe76003600060098481548110611fbb57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548490611c1c565b925061203d600460006009848154811061201157634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548390611c1c565b9150806120498161293d565b915050611ed4565b50600b54600c5461206191611a4d565b82101561207857600c54600b549350935050509091565b90939092509050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106120c457634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050601460029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561213257600080fd5b505afa158015612146573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216a9190612690565b8160018151811061218b57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526014546121b791309162010000900416846115db565b60145460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac947906121f590859060009086903090429060040161285f565b600060405180830381600087803b15801561220f57600080fd5b505af115801561198c573d6000803e3d6000fd5b60008060008061223285611b11565b93509350935093506000612244611a8f565b905060008060006122588988888888611ba8565b91945092509050600061226b86866119ce565b6001600160a01b038d16600090815260046020526040902054909150612291908b611c1c565b6001600160a01b038d166000908152600460209081526040808320939093556003905220546122c09085611c1c565b6001600160a01b03808e1660009081526003602052604080822093909355908d16815220546122ef9084611ab2565b6001600160a01b038c16600090815260036020526040902055612313308887612558565b61231f82828a89612607565b8a6001600160a01b03168c6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8b60405161236491815260200190565b60405180910390a3505050505050505050505050565b60008060008061238985611b11565b9350935093509350600061239b611a8f565b905060008060006123af8988888888611ba8565b9194509250905060006123c286866119ce565b6001600160a01b038d166000908152600360205260409020549091506123e89085611c1c565b6001600160a01b03808e16600090815260036020908152604080832094909455918e1681526004909152205461241e908a611ab2565b6001600160a01b038c166000908152600460209081526040808320939093556003905220546122ef9084611ab2565b60008060008061245c85611b11565b9350935093509350600061246e611a8f565b905060008060006124828988888888611ba8565b91945092509050600061249586866119ce565b6001600160a01b038d166000908152600360205260409020549091506122c09085611c1c565b6000806000806124ca85611b11565b935093509350935060006124dc611a8f565b905060008060006124f08988888888611ba8565b91945092509050600061250386866119ce565b6001600160a01b038d16600090815260046020526040902054909150612529908b611c1c565b6001600160a01b038d166000908152600460209081526040808320939093556003905220546123e89085611c1c565b6000821161256557505050565b600061257183836119ce565b6001600160a01b0385166000908152600360205260409020549091506125979082611ab2565b6001600160a01b03851660009081526003602090815260408083209390935560069052205460ff1615612601576001600160a01b0384166000908152600460205260409020546125e79084611ab2565b6001600160a01b0385166000908152600460205260409020555b50505050565b6126268361262086600c54611c1c90919063ffffffff16565b90611c1c565b600c55600d546126369083611ab2565b600d55600e546126469082611ab2565b600e55600b546126569082611c1c565b600b5550505050565b8035801515811461266f57600080fd5b919050565b600060208284031215612685578081fd5b8135610a4e8161296e565b6000602082840312156126a1578081fd5b8151610a4e8161296e565b600080604083850312156126be578081fd5b82356126c98161296e565b915060208301356126d98161296e565b809150509250929050565b6000806000606084860312156126f8578081fd5b83356127038161296e565b925060208401356127138161296e565b929592945050506040919091013590565b60008060408385031215612736578182fd5b82356127418161296e565b915061274f6020840161265f565b90509250929050565b6000806040838503121561276a578182fd5b82356127758161296e565b946020939093013593505050565b600060208284031215612794578081fd5b610a4e8261265f565b6000602082840312156127ae578081fd5b5035919050565b600080604083850312156127c7578182fd5b8235915061274f6020840161265f565b6000602080835283518082850152825b81811015612803578581018301518582016040015282016127e7565b818111156128145783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156128ae5784516001600160a01b031683529383019391830191600101612889565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156128e2576128e2612958565b500190565b60008261290257634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561292157612921612958565b500290565b60008282101561293857612938612958565b500390565b600060001982141561295157612951612958565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461298357600080fd5b5056fe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e042455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220fce6966a8ae348bb8cd26560f12b66a75eafa07fa3767ec8a04f6b0c7f6a405c64736f6c634300080400330000000000000000000000008765e410f8e31892c2818907f86a57a5e2cc45a9000000000000000000000000605ec88f9a2c8b68ec828b3fbd13a626e907bad8

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

0000000000000000000000008765e410f8e31892c2818907f86a57a5e2cc45a9000000000000000000000000605ec88f9a2c8b68ec828b3fbd13a626e907bad8

-----Decoded View---------------
Arg [0] : cOwner (address): 0x8765e410f8e31892c2818907f86a57a5e2cc45a9
Arg [1] : charityWallet (address): 0x605ec88f9a2c8b68ec828b3fbd13a626e907bad8

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000008765e410f8e31892c2818907f86a57a5e2cc45a9
Arg [1] : 000000000000000000000000605ec88f9a2c8b68ec828b3fbd13a626e907bad8


Deployed ByteCode Sourcemap

1642:18341:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9386:94;;;;;;;;;;-1:-1:-1;9386:94:0;;;;;:::i;:::-;;:::i;:::-;;4394:81;;;;;;;;;;-1:-1:-1;4463:5:0;;;;;;;;;;;;-1:-1:-1;;;4463:5:0;;;;4394:81;;;;;;;:::i;:::-;;;;;;;;5269:158;;;;;;;;;;-1:-1:-1;5269:158:0;;;;;:::i;:::-;;:::i;:::-;;;3546:14:2;;3539:22;3521:41;;3509:2;3494:18;5269:158:0;3476:92:2;8978:85:0;;;;;;;;;;-1:-1:-1;9046:10:0;;8978:85;;;10822:25:2;;;10810:2;10795:18;8978:85:0;10777:76:2;4656:93:0;;;;;;;;;;-1:-1:-1;4735:7:0;;4656:93;;5768:309;;;;;;;;;;-1:-1:-1;5768:309:0;;;;;:::i;:::-;;:::i;9848:172::-;;;;;;;;;;-1:-1:-1;9848:172:0;;;;;:::i;:::-;;:::i;7921:249::-;;;;;;;;;;-1:-1:-1;7921:249:0;;;;;:::i;:::-;;:::i;4570:81::-;;;;;;;;;;-1:-1:-1;4570:81:0;;2510:1;11988:36:2;;11976:2;11961:18;4570:81:0;11943:87:2;8506:467:0;;;;;;;;;;-1:-1:-1;8506:467:0;;;;;:::i;:::-;;:::i;6082:215::-;;;;;;;;;;-1:-1:-1;6082:215:0;;;;;:::i;:::-;;:::i;2522:34::-;;;;;;;;;;;;;;;;6592:547;;;;;;;;;;-1:-1:-1;6592:547:0;;;;;:::i;:::-;;:::i;9068:86::-;;;;;;;;;;-1:-1:-1;9136:11:0;;9068:86;;10445:132;;;;;;;;;;-1:-1:-1;10445:132:0;;;;;:::i;:::-;;:::i;9159:109::-;;;;;;;;;;-1:-1:-1;9159:109:0;;;;;:::i;:::-;;:::i;2118:29::-;;;;;;;;;;-1:-1:-1;2118:29:0;;;;-1:-1:-1;;;;;2118:29:0;;;;;;-1:-1:-1;;;;;3058:32:2;;;3040:51;;3028:2;3013:18;2118:29:0;2995:102:2;7144:772:0;;;;;;;;;;-1:-1:-1;7144:772:0;;;;;:::i;:::-;;:::i;8175:326::-;;;;;;;;;;-1:-1:-1;8175:326:0;;;;;:::i;:::-;;:::i;10196:121::-;;;;;;;;;;-1:-1:-1;10196:121:0;;;;;:::i;:::-;-1:-1:-1;;;;;10283:27:0;10260:4;10283:27;;;:18;:27;;;;;;;;;10196:121;3035:42;;;;;;;;;;-1:-1:-1;3035:42:0;;;;;;;-1:-1:-1;;;;;3035:42:0;;;3632:88:1;;;;;;;;;;-1:-1:-1;3704:9:1;;3632:88;;2617:34:0;;;;;;;;;;;;;;;;4754:195;;;;;;;;;;-1:-1:-1;4754:195:0;;;;;:::i;:::-;;:::i;3235:145:1:-;;;;;;;;;;;;;:::i;2790:65:0:-;;;;;;;;;;;;;;;;2016:62;;;;;;;;;;-1:-1:-1;2016:62:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10322:118;;;;;;;;;;-1:-1:-1;10322:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;10413:20:0;10390:4;10413:20;;;:11;:20;;;;;;;;;10322:118;3030:77:1;;;;;;;;;;-1:-1:-1;3068:7:1;3094:6;-1:-1:-1;;;;;3094:6:1;3030:77;;9485:118:0;;;;;;;;;;-1:-1:-1;9485:118:0;;;;;:::i;:::-;;:::i;4480:85::-;;;;;;;;;;-1:-1:-1;4551:7:0;;;;;;;;;;;;-1:-1:-1;;;4551:7:0;;;;4480:85;;3083:40;;;;;;;;;;-1:-1:-1;3083:40:0;;;;-1:-1:-1;;;;;3083:40:0;;;6302:266;;;;;;;;;;-1:-1:-1;6302:266:0;;;;;:::i;:::-;;:::i;3957:293:1:-;;;;;;;;;;;;;:::i;4954:164:0:-;;;;;;;;;;-1:-1:-1;4954:164:0;;;;;:::i;:::-;;:::i;2861:62::-;;;;;;;;;;;;;;;;10582:175;;;;;;;;;;-1:-1:-1;10582:175:0;;;;;:::i;:::-;;:::i;2712:34::-;;;;;;;;;;;;;;;;10025:166;;;;;;;;;;-1:-1:-1;10025:166:0;;;;;:::i;:::-;;:::i;2951:42::-;;;;;;;;;;-1:-1:-1;2951:42:0;;;;;;;;9608:98;;;;;;;;;;-1:-1:-1;9608:98:0;;;;;:::i;:::-;;:::i;9711:132::-;;;;;;;;;;-1:-1:-1;9711:132:0;;;;;:::i;:::-;;:::i;10762:89::-;;;;;;;;;;-1:-1:-1;10762:89:0;;;;;:::i;:::-;;:::i;3726:221:1:-;;;;;;;;;;-1:-1:-1;3726:221:1;;;;;:::i;:::-;;:::i;5123:141:0:-;;;;;;;;;;-1:-1:-1;5123:141:0;;;;;:::i;:::-;-1:-1:-1;;;;;5230:18:0;;;5204:7;5230:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5123:141;9273:108;;;;;;;;;;-1:-1:-1;9273:108:0;;;;;:::i;:::-;;:::i;3386:240:1:-;;;;;;;;;;-1:-1:-1;3386:240:1;;;;;:::i;:::-;;:::i;9386:94:0:-;3152:6:1;;-1:-1:-1;;;;;3152:6:1;169:10;3152:22;3144:67;;;;-1:-1:-1;;;3144:67:1;;;;;;;:::i;:::-;;;;;;;;;9457:7:0::1;:16:::0;9386:94::o;5269:158::-;5344:4;5360:39;169:10:1;5383:7:0;5392:6;5360:8;:39::i;:::-;-1:-1:-1;5416:4:0;5269:158;;;;;:::o;5768:309::-;5866:4;5882:36;5892:6;5900:9;5911:6;5882:9;:36::i;:::-;5928:121;5937:6;169:10:1;5959:89:0;5997:6;5959:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5959:19:0;;;;;;:11;:19;;;;;;;;169:10:1;5959:33:0;;;;;;;;;;:37;:89::i;:::-;5928:8;:121::i;:::-;-1:-1:-1;6066:4:0;5768:309;;;;;:::o;9848:172::-;3152:6:1;;-1:-1:-1;;;;;3152:6:1;169:10;3152:22;3144:67;;;;-1:-1:-1;;;3144:67:1;;;;;;;:::i;:::-;9971:42:0::1;10008:4;9971:32;9983:19;9971:7;;:11;;:32;;;;:::i;:::-;:36:::0;::::1;:42::i;:::-;9938:30;:75:::0;-1:-1:-1;9848:172:0:o;7921:249::-;7987:7;8025;;8014;:18;;8006:73;;;;-1:-1:-1;;;8006:73:0;;5782:2:2;8006:73:0;;;5764:21:2;5821:2;5801:18;;;5794:30;5860:34;5840:18;;;5833:62;-1:-1:-1;;;5911:18:2;;;5904:40;5961:19;;8006:73:0;5754:232:2;8006:73:0;8090:19;8112:10;:8;:10::i;:::-;8090:32;-1:-1:-1;8139:24:0;:7;8090:32;8139:11;:24::i;:::-;8132:31;7921:249;-1:-1:-1;;;7921:249:0:o;8506:467::-;3152:6:1;;-1:-1:-1;;;;;3152:6:1;169:10;3152:22;3144:67;;;;-1:-1:-1;;;3144:67:1;;;;;;;:::i;:::-;-1:-1:-1;;;;;8585:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;8577:60;;;::::0;-1:-1:-1;;;8577:60:0;;6956:2:2;8577:60:0::1;::::0;::::1;6938:21:2::0;6995:2;6975:18;;;6968:30;7034:29;7014:18;;;7007:57;7081:18;;8577:60:0::1;6928:177:2::0;8577:60:0::1;8653:9;8648:319;8672:9;:16:::0;8668:20;::::1;8648:319;;;8729:7;-1:-1:-1::0;;;;;8713:23:0::1;:9;8723:1;8713:12;;;;;;-1:-1:-1::0;;;8713:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;8713:12:0::1;:23;8709:248;;;8771:9;8781:16:::0;;:20:::1;::::0;8800:1:::1;::::0;8781:20:::1;:::i;:::-;8771:31;;;;;;-1:-1:-1::0;;;8771:31:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;8756:9:::1;:12:::0;;-1:-1:-1;;;;;8771:31:0;;::::1;::::0;8766:1;;8756:12;::::1;;;-1:-1:-1::0;;;8756:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;8756:46:0::1;-1:-1:-1::0;;;;;8756:46:0;;::::1;;::::0;;8820:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;8858:11:::1;:20:::0;;;;:28;;-1:-1:-1;;8858:28:0::1;::::0;;8904:9:::1;:15:::0;;;::::1;;-1:-1:-1::0;;;8904:15:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;8904:15:0;;;;;-1:-1:-1;;;;;;8904:15:0::1;::::0;;;;;8648:319:::1;8506:467:::0;:::o;8709:248::-:1;8690:3:::0;::::1;::::0;::::1;:::i;:::-;;;;8648:319;;;;8506:467:::0;:::o;6082:215::-;169:10:1;6170:4:0;6218:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6218:34:0;;;;;;;;;;6170:4;;6186:83;;6209:7;;6218:50;;6257:10;6218:38;:50::i;6592:547::-;169:10:1;6643:14:0;6691:19;;;:11;:19;;;;;;;;6690:20;6682:77;;;;-1:-1:-1;;;6682:77:0;;9658:2:2;6682:77:0;;;9640:21:2;9697:2;9677:18;;;9670:30;9736:34;9716:18;;;9709:62;-1:-1:-1;;;9787:18:2;;;9780:42;9839:19;;6682:77:0;9630:234:2;6682:77:0;6773:12;6787:18;6807:13;6824:20;6836:7;6824:11;:20::i;:::-;6770:74;;;;;;;6854:19;6876:10;:8;:10::i;:::-;6854:32;;6897:15;6918:58;6930:7;6939:4;6945:10;6957:5;6964:11;6918;:58::i;:::-;-1:-1:-1;;;;;;;7005:15:0;;;;;;:7;:15;;;;;;6896:80;;-1:-1:-1;7005:28:0;;6896:80;7005:19;:28::i;:::-;-1:-1:-1;;;;;6987:15:0;;;;;;:7;:15;;;;;:46;7061:7;;:20;;7073:7;7061:11;:20::i;:::-;7043:7;:38;7109:10;;:23;;7124:7;7109:14;:23::i;:::-;7091:10;:41;-1:-1:-1;;;;;;;6592:547:0:o;10445:132::-;3152:6:1;;-1:-1:-1;;;;;3152:6:1;169:10;3152:22;3144:67;;;;-1:-1:-1;;;3144:67:1;;;;;;;:::i;:::-;-1:-1:-1;;;;;10534:32:0;;;::::1;;::::0;;;:29:::1;:32;::::0;;;;:36;;-1:-1:-1;;10534:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10445:132::o;9159:109::-;3152:6:1;;-1:-1:-1;;;;;3152:6:1;169:10;3152:22;3144:67;;;;-1:-1:-1;;;3144:67:1;;;;;;;:::i;:::-;-1:-1:-1;;;;;9227:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;9227:34:0::1;9257:4;9227:34;::::0;;9159:109::o;7144:772::-;7234:7;7272;;7261;:18;;7253:62;;;;-1:-1:-1;;;7253:62:0;;7312:2:2;7253:62:0;;;7294:21:2;7351:2;7331:18;;;7324:30;7390:33;7370:18;;;7363:61;7441:18;;7253:62:0;7284:181:2;7253:62:0;7331:17;7326:584;;7367:12;7381:18;7401:13;7418:20;7430:7;7418:11;:20::i;:::-;7364:74;;;;;;;7452:19;7474:10;:8;:10::i;:::-;7452:32;;7499:15;7520:58;7532:7;7541:4;7547:10;7559:5;7566:11;7520;:58::i;:::-;-1:-1:-1;7498:80:0;;-1:-1:-1;7593:14:0;;-1:-1:-1;;;;;;7593:14:0;7326:584;7642:12;7656:18;7676:13;7693:20;7705:7;7693:11;:20::i;:::-;7639:74;;;;;;;7727:19;7749:10;:8;:10::i;:::-;7727:32;;7776:23;7804:58;7816:7;7825:4;7831:10;7843:5;7850:11;7804;:58::i;:::-;-1:-1:-1;7773:89:0;-1:-1:-1;7877:22:0;;-1:-1:-1;;;;;;7877:22:0;8175:326;3152:6:1;;-1:-1:-1;;;;;3152:6:1;169:10;3152:22;3144:67;;;;-1:-1:-1;;;3144:67:1;;;;;;;:::i;:::-;-1:-1:-1;;;;;8255:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;8254:21;8246:61;;;::::0;-1:-1:-1;;;8246:61:0;;6956:2:2;8246:61:0::1;::::0;::::1;6938:21:2::0;6995:2;6975:18;;;6968:30;7034:29;7014:18;;;7007:57;7081:18;;8246:61:0::1;6928:177:2::0;8246:61:0::1;-1:-1:-1::0;;;;;8322:16:0;::::1;8341:1;8322:16:::0;;;:7:::1;:16;::::0;;;;;:20;8318:107:::1;;-1:-1:-1::0;;;;;8397:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;8377:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;8358:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;8318:107:::1;-1:-1:-1::0;;;;;8434:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;8434:27:0::1;8457:4;8434:27:::0;;::::1;::::0;;;8471:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;8471:23:0::1;::::0;;::::1;::::0;;8175:326::o;4754:195::-;-1:-1:-1;;;;;4843:20:0;;4820:7;4843:20;;;:11;:20;;;;;;;;4839:49;;;-1:-1:-1;;;;;;4872:16:0;;;;;:7;:16;;;;;;;4754:195::o;4839:49::-;-1:-1:-1;;;;;4925:16:0;;;;;;:7;:16;;;;;;4905:37;;:19;:37::i;3235:145:1:-;3152:6;;-1:-1:-1;;;;;3152:6:1;169:10;3152:22;3144:67;;;;-1:-1:-1;;;3144:67:1;;;;;;;:::i;:::-;3341:1:::1;3325:6:::0;;3304:40:::1;::::0;-1:-1:-1;;;;;3325:6:1;;::::1;::::0;-1:-1:-1;;;;;;;;;;;3304:40:1;3341:1;;3304:40:::1;3371:1;3354:19:::0;;-1:-1:-1;;;;;;3354:19:1::1;::::0;;3235:145::o;9485:118:0:-;3152:6:1;;-1:-1:-1;;;;;3152:6:1;169:10;3152:22;3144:67;;;;-1:-1:-1;;;3144:67:1;;;;;;;:::i;:::-;9568:13:0::1;:28:::0;9485:118::o;6302:266::-;6395:4;6411:129;169:10:1;6434:7:0;6443:96;6482:15;6443:96;;;;;;;;;;;;;;;;;169:10:1;6443:25:0;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6443:34:0;;;;;;;;;;;;:38;:96::i;3957:293:1:-;4008:14;;-1:-1:-1;;;;;4008:14:1;4026:10;4008:28;4000:76;;;;-1:-1:-1;;;4000:76:1;;10474:2:2;4000:76:1;;;10456:21:2;10513:2;10493:18;;;10486:30;10552:34;10532:18;;;10525:62;-1:-1:-1;;;10603:18:2;;;10596:33;10646:19;;4000:76:1;10446:225:2;4000:76:1;4112:9;;4094:15;:27;4086:65;;;;-1:-1:-1;;;4086:65:1;;5024:2:2;4086:65:1;;;5006:21:2;5063:2;5043:18;;;5036:30;5102:26;5082:18;;;5075:54;5146:18;;4086:65:1;4996:174:2;4086:65:1;4195:14;;;4187:6;;4166:44;;-1:-1:-1;;;;;4195:14:1;;;;4187:6;;;;-1:-1:-1;;;;;;;;;;;4166:44:1;;4229:14;;;4220:23;;-1:-1:-1;;;;;;4220:23:1;-1:-1:-1;;;;;4229:14:1;;;4220:23;;;;;;3957:293::o;4954:164:0:-;5032:4;5048:42;169:10:1;5072:9:0;5083:6;5048:9;:42::i;10582:175::-;3152:6:1;;-1:-1:-1;;;;;3152:6:1;169:10;3152:22;3144:67;;;;-1:-1:-1;;;3144:67:1;;;;;;;:::i;:::-;10716:16:0::1;:34:::0;;-1:-1:-1;;;;;10716:34:0;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;10716:34:0;;::::1;::::0;;;::::1;::::0;;10582:175::o;10025:166::-;3152:6:1;;-1:-1:-1;;;;;3152:6:1;169:10;3152:22;3144:67;;;;-1:-1:-1;;;3144:67:1;;;;;;;:::i;:::-;10100:22:0::1;:32:::0;;-1:-1:-1;;10100:32:0::1;::::0;::::1;;::::0;;::::1;::::0;;;10147:37:::1;::::0;3521:41:2;;;10147:37:0::1;::::0;3509:2:2;3494:18;10147:37:0::1;;;;;;;10025:166:::0;:::o;9608:98::-;3152:6:1;;-1:-1:-1;;;;;3152:6:1;169:10;3152:22;3144:67;;;;-1:-1:-1;;;3144:67:1;;;;;;;:::i;:::-;9681:8:0::1;:18:::0;9608:98::o;9711:132::-;3152:6:1;;-1:-1:-1;;;;;3152:6:1;169:10;3152:22;3144:67;;;;-1:-1:-1;;;3144:67:1;;;;;;;:::i;:::-;9802:34:0::1;9832:3;9802:25;9814:12;9802:7;;:11;;:25;;;;:::i;:34::-;9787:12;:49:::0;-1:-1:-1;9711:132:0:o;10762:89::-;3152:6:1;;-1:-1:-1;;;;;3152:6:1;169:10;3152:22;3144:67;;;;-1:-1:-1;;;3144:67:1;;;;;;;:::i;:::-;10826:14:0::1;:18:::0;;-1:-1:-1;;;;;;10826:18:0::1;-1:-1:-1::0;;;;;10826:18:0;;;::::1;::::0;;;::::1;::::0;;10762:89::o;3726:221:1:-;3152:6;;-1:-1:-1;;;;;3152:6:1;169:10;3152:22;3144:67;;;;-1:-1:-1;;;3144:67:1;;;;;;;:::i;:::-;3806:6:::1;::::0;;;3789:23;;-1:-1:-1;;;;;;3789:23:1;;::::1;-1:-1:-1::0;;;;;3806:6:1;::::1;3789:23;::::0;;;3822:19:::1;::::0;;3863:22:::1;3881:4:::0;3863:15:::1;:22;:::i;:::-;3851:9;:34:::0;3937:1:::1;3921:6:::0;;3900:40:::1;::::0;-1:-1:-1;;;;;3921:6:1;;::::1;::::0;-1:-1:-1;;;;;;;;;;;3900:40:1;3937:1;;3900:40:::1;3726:221:::0;:::o;9273:108:0:-;3152:6:1;;-1:-1:-1;;;;;3152:6:1;169:10;3152:22;3144:67;;;;-1:-1:-1;;;3144:67:1;;;;;;;:::i;:::-;-1:-1:-1;;;;;9339:27:0::1;9369:5;9339:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;9339:35:0::1;::::0;;9273:108::o;3386:240:1:-;3152:6;;-1:-1:-1;;;;;3152:6:1;169:10;3152:22;3144:67;;;;-1:-1:-1;;;3144:67:1;;;;;;;:::i;:::-;-1:-1:-1;;;;;3474:22:1;::::1;3466:73;;;::::0;-1:-1:-1;;;3466:73:1;;6193:2:2;3466:73:1::1;::::0;::::1;6175:21:2::0;6232:2;6212:18;;;6205:30;6271:34;6251:18;;;6244:62;-1:-1:-1;;;6322:18:2;;;6315:36;6368:19;;3466:73:1::1;6165:228:2::0;3466:73:1::1;3575:6;::::0;;3554:38:::1;::::0;-1:-1:-1;;;;;3554:38:1;;::::1;::::0;3575:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;3554:38:1;::::1;3602:6;:17:::0;;-1:-1:-1;;;;;;3602:17:1::1;-1:-1:-1::0;;;;;3602:17:1;;;::::1;::::0;;;::::1;::::0;;3386:240::o;5432:331:0:-;-1:-1:-1;;;;;5524:19:0;;5516:68;;;;-1:-1:-1;;;5516:68:0;;5377:2:2;5516:68:0;;;5359:21:2;5416:2;5396:18;;;5389:30;5455:34;5435:18;;;5428:62;-1:-1:-1;;;5506:18:2;;;5499:34;5550:19;;5516:68:0;5349:226:2;5516:68:0;-1:-1:-1;;;;;5602:21:0;;5594:68;;;;-1:-1:-1;;;5594:68:0;;10071:2:2;5594:68:0;;;10053:21:2;10110:2;10090:18;;;10083:30;10149:34;10129:18;;;10122:62;-1:-1:-1;;;10200:18:2;;;10193:32;10242:19;;5594:68:0;10043:224:2;5594:68:0;-1:-1:-1;;;;;5673:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5724:32;;10822:25:2;;;5724:32:0;;10795:18:2;5724:32:0;;;;;;;5432:331;;;:::o;10873:1524::-;-1:-1:-1;;;;;10990:18:0;;10982:68;;;;-1:-1:-1;;;10982:68:0;;4618:2:2;10982:68:0;;;4600:21:2;4657:2;4637:18;;;4630:30;4696:34;4676:18;;;4669:62;-1:-1:-1;;;4747:18:2;;;4740:35;4792:19;;10982:68:0;4590:227:2;10982:68:0;-1:-1:-1;;;;;11068:16:0;;11060:64;;;;-1:-1:-1;;;11060:64:0;;9254:2:2;11060:64:0;;;9236:21:2;9293:2;9273:18;;;9266:30;9332:34;9312:18;;;9305:62;-1:-1:-1;;;9383:18:2;;;9376:33;9426:19;;11060:64:0;9226:225:2;11060:64:0;11151:1;11142:6;:10;11134:64;;;;-1:-1:-1;;;11134:64:0;;8844:2:2;11134:64:0;;;8826:21:2;8883:2;8863:18;;;8856:30;8922:34;8902:18;;;8895:62;-1:-1:-1;;;8973:18:2;;;8966:39;9022:19;;11134:64:0;8816:231:2;11134:64:0;3068:7:1;3094:6;-1:-1:-1;;;;;11213:15:0;;;3094:6:1;;11213:15:0;;;;:32;;-1:-1:-1;3068:7:1;3094:6;-1:-1:-1;;;;;11232:13:0;;;3094:6:1;;11232:13:0;;11213:32;11209:138;;;11279:12;;11269:6;:22;;11261:75;;;;-1:-1:-1;;;11261:75:0;;7672:2:2;11261:75:0;;;7654:21:2;7711:2;7691:18;;;7684:30;7750:34;7730:18;;;7723:62;-1:-1:-1;;;7801:18:2;;;7794:38;7849:19;;11261:75:0;7644:230:2;11261:75:0;11666:28;11697:24;11715:4;11697:9;:24::i;:::-;11666:55;;11768:12;;11744:20;:36;11740:102;;-1:-1:-1;11819:12:0;;11740:102;11913:30;;11889:54;;;;;;;11970:55;;-1:-1:-1;12008:17:0;;;;;;;12007:18;11970:55;:107;;;;-1:-1:-1;;;;;;12042:35:0;;;;;;:29;:35;;;;;;;;12041:36;11970:107;:145;;;;-1:-1:-1;12093:22:0;;;;11970:145;11953:244;;;12140:46;12155:30;;12140:14;:46::i;:::-;-1:-1:-1;;;;;12248:24:0;;12215:12;12248:24;;;:18;:24;;;;;;12230:4;;12248:24;;;:50;;-1:-1:-1;;;;;;12276:22:0;;;;;;:18;:22;;;;;;;;12248:50;12244:96;;;-1:-1:-1;12324:5:0;12244:96;12349:41;12364:4;12370:2;12374:6;12382:7;12349:14;:41::i;:::-;10873:1524;;;;;;:::o;1439:187:1:-;1525:7;1560:12;1552:6;;;;1544:29;;;;-1:-1:-1;;;1544:29:1;;;;;;;;:::i;:::-;-1:-1:-1;1583:9:1;1595:5;1599:1;1595;:5;:::i;:::-;1583:17;1439:187;-1:-1:-1;;;;;1439:187:1:o;1632:221::-;1690:7;1713:6;1709:25;;-1:-1:-1;1730:1:1;1723:8;;1709:25;1744:9;1756:5;1760:1;1756;:5;:::i;:::-;1744:17;-1:-1:-1;1788:1:1;1779:5;1783:1;1744:17;1779:5;:::i;:::-;:10;1771:56;;;;-1:-1:-1;;;1771:56:1;;8081:2:2;1771:56:1;;;8063:21:2;8120:2;8100:18;;;8093:30;8159:34;8139:18;;;8132:62;-1:-1:-1;;;8210:18:2;;;8203:31;8251:19;;1771:56:1;8053:223:2;1859:130:1;1917:7;1943:39;1947:1;1950;1943:39;;;;;;;;;;;;;;;;;:3;:39::i;18935:160:0:-;18976:7;18996:15;19013;19032:19;:17;:19::i;:::-;18995:56;;-1:-1:-1;18995:56:0;-1:-1:-1;19068:20:0;18995:56;;19068:11;:20::i;:::-;19061:27;;;;18935:160;:::o;1117:176:1:-;1175:7;;1206:5;1210:1;1206;:5;:::i;:::-;1194:17;;1234:1;1229;:6;;1221:46;;;;-1:-1:-1;;;1221:46:1;;6600:2:2;1221:46:1;;;6582:21:2;6639:2;6619:18;;;6612:30;6678:29;6658:18;;;6651:57;6725:18;;1221:46:1;6572:177:2;17803:521:0;17863:7;17872;17881;17890;17909:12;17930:31;17955:5;17930:20;17942:7;;17930;:11;;:20;;;;:::i;:31::-;17909:52;;17971:18;17992:37;18023:5;17992:26;18004:13;;17992:7;:11;;:26;;;;:::i;:37::-;17971:58;;18039:13;18060:32;18086:5;18060:21;18072:8;;18060:7;:11;;:21;;;;:::i;:32::-;18039:53;-1:-1:-1;18102:23:0;18128:17;:7;18140:4;18128:11;:17::i;:::-;18102:43;-1:-1:-1;18173:31:0;18102:43;18193:10;18173:19;:31::i;:::-;18155:49;-1:-1:-1;18232:26:0;18155:49;18252:5;18232:19;:26::i;:::-;18214:44;18293:4;;-1:-1:-1;18299:10:0;;-1:-1:-1;18299:10:0;-1:-1:-1;17803:521:0;;-1:-1:-1;;;17803:521:0:o;18329:601::-;18459:7;;;;18518:24;:7;18530:11;18518;:24::i;:::-;18496:46;-1:-1:-1;18552:12:0;18574:21;:4;18583:11;18574:8;:21::i;:::-;18552:43;-1:-1:-1;18605:18:0;18627:27;:10;18642:11;18627:14;:27::i;:::-;18605:49;-1:-1:-1;18664:13:0;18686:22;:5;18696:11;18686:9;:22::i;:::-;18664:44;-1:-1:-1;18718:23:0;18744:17;:7;18756:4;18744:11;:17::i;:::-;18718:43;-1:-1:-1;18789:31:0;18718:43;18809:10;18789:19;:31::i;:::-;18771:49;-1:-1:-1;18848:26:0;18771:49;18868:5;18848:19;:26::i;:::-;18892:7;;;;-1:-1:-1;18918:4:0;;-1:-1:-1;18329:601:0;;-1:-1:-1;;;;;;;;;18329:601:0:o;1299:134:1:-;1357:7;1383:43;1387:1;1390;1383:43;;;;;;;;;;;;;;;;;:3;:43::i;12402:300:0:-;3360:17;:24;;-1:-1:-1;;3360:24:0;;;;;12477:29:::1;12494:11:::0;12477:16:::1;:29::i;:::-;12520:21;:25:::0;12516:180:::1;;12578:14;::::0;12566:50:::1;::::0;;-1:-1:-1;;;;;12578:14:0;;::::1;3276:51:2::0;;12594:21:0::1;3358:2:2::0;3343:18;;3336:34;12566:50:0::1;::::0;3249:18:2;12566:50:0::1;;;;;;;12638:14;::::0;12630:55:::1;::::0;-1:-1:-1;;;;;12638:14:0;;::::1;::::0;12663:21:::1;12630:55:::0;::::1;;;::::0;12638:14:::1;12630:55:::0;12638:14;12630:55;12663:21;12638:14;12630:55;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12516:180;-1:-1:-1::0;3405:17:0;:25;;-1:-1:-1;;3405:25:0;;;12402:300::o;13176:1174::-;13314:7;;13362:13;;13416:8;;13440:7;13435:118;;13479:1;13463:7;:17;;;13494:13;:17;;;13525:8;:17;13435:118;-1:-1:-1;;;;;13575:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;13599:22:0;;;;;;:11;:22;;;;;;;;13598:23;13575:46;13571:591;;;13637:48;13659:6;13667:9;13678:6;13637:21;:48::i;:::-;13571:591;;;-1:-1:-1;;;;;13708:19:0;;;;;;:11;:19;;;;;;;;13707:20;:46;;;;-1:-1:-1;;;;;;13731:22:0;;;;;;:11;:22;;;;;;;;13707:46;13703:459;;;13769:46;13789:6;13797:9;13808:6;13769:19;:46::i;13703:459::-;-1:-1:-1;;;;;13838:19:0;;;;;;:11;:19;;;;;;;;13837:20;:47;;;;-1:-1:-1;;;;;;13862:22:0;;;;;;:11;:22;;;;;;;;13861:23;13837:47;13833:329;;;13900:44;13918:6;13926:9;13937:6;13900:17;:44::i;13833:329::-;-1:-1:-1;;;;;13966:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;13989:22:0;;;;;;:11;:22;;;;;;;;13966:45;13962:200;;;14027:48;14049:6;14057:9;14068:6;14027:21;:48::i;13962:200::-;14107:44;14125:6;14133:9;14144:6;14107:17;:44::i;:::-;14185:7;14180:164;;14208:7;:30;;;14252:13;:36;;;14302:8;:31;;;14180:164;13176:1174;;;;;;;:::o;1995:272:1:-;2081:7;2115:12;2108:5;2100:28;;;;-1:-1:-1;;;2100:28:1;;;;;;;;:::i;:::-;-1:-1:-1;2138:9:1;2150:5;2154:1;2150;:5;:::i;19100:551:0:-;19196:7;;19231;;19150;;;;;19254:285;19278:9;:16;19274:20;;19254:285;;;19343:7;19319;:21;19327:9;19337:1;19327:12;;;;;;-1:-1:-1;;;19327:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19327:12:0;19319:21;;;;;;;;;;;;;:31;;:66;;;19378:7;19354;:21;19362:9;19372:1;19362:12;;;;;;-1:-1:-1;;;19362:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19362:12:0;19354:21;;;;;;;;;;;;;:31;19319:66;19315:97;;;19395:7;;19404;;19387:25;;;;;;;19100:551;;:::o;19315:97::-;19436:34;19448:7;:21;19456:9;19466:1;19456:12;;;;;;-1:-1:-1;;;19456:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19456:12:0;19448:21;;;;;;;;;;;;;19436:7;;:11;:34::i;:::-;19426:44;;19494:34;19506:7;:21;19514:9;19524:1;19514:12;;;;;;-1:-1:-1;;;19514:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19514:12:0;19506:21;;;;;;;;;;;;;19494:7;;:11;:34::i;:::-;19484:44;-1:-1:-1;19296:3:0;;;;:::i;:::-;;;;19254:285;;;-1:-1:-1;19574:7:0;;19562;;:20;;:11;:20::i;:::-;19552:7;:30;19548:61;;;19592:7;;19601;;19584:25;;;;;;19100:551;;:::o;19548:61::-;19627:7;;19636;;-1:-1:-1;19100:551:0;-1:-1:-1;19100:551:0:o;12707:463::-;12796:16;;;12810:1;12796:16;;;;;;;;12772:21;;12796:16;;;;;;;;;;-1:-1:-1;12796:16:0;12772:40;;12840:4;12822;12827:1;12822:7;;;;;;-1:-1:-1;;;12822:7:0;;;;;;;;;;;;;;:23;-1:-1:-1;;;;;12822:23:0;;;-1:-1:-1;;;;;12822:23:0;;;;;12865:16;;;;;;;;;-1:-1:-1;;;;;12865:16:0;-1:-1:-1;;;;;12865:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12855:4;12860:1;12855:7;;;;;;-1:-1:-1;;;12855:7:0;;;;;;;;;-1:-1:-1;;;;;12855:33:0;;;:7;;;;;;;;;:33;12931:16;;12899:63;;12916:4;;12931:16;;;;12950:11;12899:8;:63::i;:::-;12972:16;;:191;;-1:-1:-1;;;12972:191:0;;:16;;;;-1:-1:-1;;;;;12972:16:0;;:67;;:191;;13053:11;;13078:1;;13093:4;;13119;;13138:15;;12972:191;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16735:780;16837:23;16862:12;16876:18;16896:13;16913:20;16925:7;16913:11;:20::i;:::-;16836:97;;;;;;;;16943:19;16965:10;:8;:10::i;:::-;16943:32;;16986:15;17003:23;17028:12;17044:58;17056:7;17065:4;17071:10;17083:5;17090:11;17044;:58::i;:::-;16985:117;;-1:-1:-1;16985:117:0;-1:-1:-1;16985:117:0;-1:-1:-1;17112:13:0;17128:22;:5;17138:11;17128:9;:22::i;:::-;-1:-1:-1;;;;;17179:15:0;;;;;;:7;:15;;;;;;17112:38;;-1:-1:-1;17179:28:0;;17199:7;17179:19;:28::i;:::-;-1:-1:-1;;;;;17161:15:0;;;;;;:7;:15;;;;;;;;:46;;;;17235:7;:15;;;;:28;;17255:7;17235:19;:28::i;:::-;-1:-1:-1;;;;;17217:15:0;;;;;;;:7;:15;;;;;;:46;;;;17294:18;;;;;;;:39;;17317:15;17294:22;:39::i;:::-;-1:-1:-1;;;;;17273:18:0;;;;;;:7;:18;;;;;:60;17344:58;17371:4;17378:10;17390:11;17344:18;:58::i;:::-;17412:37;17424:4;17430:5;17437:4;17443:5;17412:11;:37::i;:::-;17481:9;-1:-1:-1;;;;;17464:44:0;17473:6;-1:-1:-1;;;;;17464:44:0;;17492:15;17464:44;;;;10822:25:2;;10810:2;10795:18;;10777:76;17464:44:0;;;;;;;;16735:780;;;;;;;;;;;;:::o;15938:792::-;16038:23;16063:12;16077:18;16097:13;16114:20;16126:7;16114:11;:20::i;:::-;16037:97;;;;;;;;16144:19;16166:10;:8;:10::i;:::-;16144:32;;16187:15;16204:23;16229:12;16245:58;16257:7;16266:4;16272:10;16284:5;16291:11;16245;:58::i;:::-;16186:117;;-1:-1:-1;16186:117:0;-1:-1:-1;16186:117:0;-1:-1:-1;16313:13:0;16329:22;:5;16339:11;16329:9;:22::i;:::-;-1:-1:-1;;;;;16380:15:0;;;;;;:7;:15;;;;;;16313:38;;-1:-1:-1;16380:28:0;;16400:7;16380:19;:28::i;:::-;-1:-1:-1;;;;;16362:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;16439:18;;;;;:7;:18;;;;;:39;;16462:15;16439:22;:39::i;:::-;-1:-1:-1;;;;;16418:18:0;;;;;;:7;:18;;;;;;;;:60;;;;16509:7;:18;;;;:39;;16532:15;16509:22;:39::i;14355:723::-;14453:23;14478:12;14492:18;14512:13;14529:20;14541:7;14529:11;:20::i;:::-;14452:97;;;;;;;;14559:19;14581:10;:8;:10::i;:::-;14559:32;;14602:15;14619:23;14644:12;14660:58;14672:7;14681:4;14687:10;14699:5;14706:11;14660;:58::i;:::-;14601:117;;-1:-1:-1;14601:117:0;-1:-1:-1;14601:117:0;-1:-1:-1;14728:13:0;14744:22;:5;14754:11;14744:9;:22::i;:::-;-1:-1:-1;;;;;14798:15:0;;;;;;:7;:15;;;;;;14728:38;;-1:-1:-1;14798:28:0;;14818:7;14798:19;:28::i;15083:850::-;15185:23;15210:12;15224:18;15244:13;15261:20;15273:7;15261:11;:20::i;:::-;15184:97;;;;;;;;15291:19;15313:10;:8;:10::i;:::-;15291:32;;15334:15;15351:23;15376:12;15392:58;15404:7;15413:4;15419:10;15431:5;15438:11;15392;:58::i;:::-;15333:117;;-1:-1:-1;15333:117:0;-1:-1:-1;15333:117:0;-1:-1:-1;15460:13:0;15476:22;:5;15486:11;15476:9;:22::i;:::-;-1:-1:-1;;;;;15527:15:0;;;;;;:7;:15;;;;;;15460:38;;-1:-1:-1;15527:28:0;;15547:7;15527:19;:28::i;:::-;-1:-1:-1;;;;;15509:15:0;;;;;;:7;:15;;;;;;;;:46;;;;15583:7;:15;;;;:28;;15603:7;15583:19;:28::i;19656:325::-;19767:1;19756:7;:12;19752:29;;19656:325;;;:::o;19752:29::-;19791:15;19809:24;:7;19821:11;19809;:24::i;:::-;-1:-1:-1;;;;;19857:11:0;;;;;;:7;:11;;;;;;19791:42;;-1:-1:-1;19857:24:0;;19791:42;19857:15;:24::i;:::-;-1:-1:-1;;;;;19843:11:0;;;;;;:7;:11;;;;;;;;:38;;;;19895:11;:15;;;;;;19891:84;;;-1:-1:-1;;;;;19940:11:0;;;;;;:7;:11;;;;;;:24;;19956:7;19940:15;:24::i;:::-;-1:-1:-1;;;;;19926:11:0;;;;;;:7;:11;;;;;:38;19891:84;19656:325;;;;:::o;17520:278::-;17631:28;17653:5;17631:17;17643:4;17631:7;;:11;;:17;;;;:::i;:::-;:21;;:28::i;:::-;17617:7;:42;17683:10;;:20;;17698:4;17683:14;:20::i;:::-;17669:10;:34;17727:11;;:22;;17743:5;17727:15;:22::i;:::-;17713:11;:36;17773:7;;:18;;17785:5;17773:11;:18::i;:::-;17759:7;:32;-1:-1:-1;;;;17520:278:0:o;14:160:2:-;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:2;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:2;1432:18;;1419:32;1460:33;1419:32;1460:33;:::i;:::-;1214:362;;1512:7;;-1:-1:-1;;;1566:2:2;1551:18;;;;1538:32;;1214:362::o;1581:325::-;1646:6;1654;1707:2;1695:9;1686:7;1682:23;1678:32;1675:2;;;1728:6;1720;1713:22;1675:2;1772:9;1759:23;1791:31;1816:5;1791:31;:::i;:::-;1841:5;-1:-1:-1;1865:35:2;1896:2;1881:18;;1865:35;:::i;:::-;1855:45;;1665:241;;;;;:::o;1911:325::-;1979:6;1987;2040:2;2028:9;2019:7;2015:23;2011:32;2008:2;;;2061:6;2053;2046:22;2008:2;2105:9;2092:23;2124:31;2149:5;2124:31;:::i;:::-;2174:5;2226:2;2211:18;;;;2198:32;;-1:-1:-1;;;1998:238:2:o;2241:190::-;2297:6;2350:2;2338:9;2329:7;2325:23;2321:32;2318:2;;;2371:6;2363;2356:22;2318:2;2399:26;2415:9;2399:26;:::i;2436:190::-;2495:6;2548:2;2536:9;2527:7;2523:23;2519:32;2516:2;;;2569:6;2561;2554:22;2516:2;-1:-1:-1;2597:23:2;;2506:120;-1:-1:-1;2506:120:2:o;2631:258::-;2696:6;2704;2757:2;2745:9;2736:7;2732:23;2728:32;2725:2;;;2778:6;2770;2763:22;2725:2;2819:9;2806:23;2796:33;;2848:35;2879:2;2868:9;2864:18;2848:35;:::i;3808:603::-;3920:4;3949:2;3978;3967:9;3960:21;4010:6;4004:13;4053:6;4048:2;4037:9;4033:18;4026:34;4078:4;4091:140;4105:6;4102:1;4099:13;4091:140;;;4200:14;;;4196:23;;4190:30;4166:17;;;4185:2;4162:26;4155:66;4120:10;;4091:140;;;4249:6;4246:1;4243:13;4240:2;;;4319:4;4314:2;4305:6;4294:9;4290:22;4286:31;4279:45;4240:2;-1:-1:-1;4395:2:2;4374:15;-1:-1:-1;;4370:29:2;4355:45;;;;4402:2;4351:54;;3929:482;-1:-1:-1;;;3929:482:2:o;8281:356::-;8483:2;8465:21;;;8502:18;;;8495:30;8561:34;8556:2;8541:18;;8534:62;8628:2;8613:18;;8455:182::o;10858:983::-;11120:4;11168:3;11157:9;11153:19;11199:6;11188:9;11181:25;11225:2;11263:6;11258:2;11247:9;11243:18;11236:34;11306:3;11301:2;11290:9;11286:18;11279:31;11330:6;11365;11359:13;11396:6;11388;11381:22;11434:3;11423:9;11419:19;11412:26;;11473:2;11465:6;11461:15;11447:29;;11494:4;11507:195;11521:6;11518:1;11515:13;11507:195;;;11586:13;;-1:-1:-1;;;;;11582:39:2;11570:52;;11677:15;;;;11642:12;;;;11618:1;11536:9;11507:195;;;-1:-1:-1;;;;;;;11758:32:2;;;;11753:2;11738:18;;11731:60;-1:-1:-1;;;11822:3:2;11807:19;11800:35;11719:3;11129:712;-1:-1:-1;;;11129:712:2:o;12035:128::-;12075:3;12106:1;12102:6;12099:1;12096:13;12093:2;;;12112:18;;:::i;:::-;-1:-1:-1;12148:9:2;;12083:80::o;12168:217::-;12208:1;12234;12224:2;;-1:-1:-1;;;12259:31:2;;12313:4;12310:1;12303:15;12341:4;12266:1;12331:15;12224:2;-1:-1:-1;12370:9:2;;12214:171::o;12390:168::-;12430:7;12496:1;12492;12488:6;12484:14;12481:1;12478:21;12473:1;12466:9;12459:17;12455:45;12452:2;;;12503:18;;:::i;:::-;-1:-1:-1;12543:9:2;;12442:116::o;12563:125::-;12603:4;12631:1;12628;12625:8;12622:2;;;12636:18;;:::i;:::-;-1:-1:-1;12673:9:2;;12612:76::o;12693:135::-;12732:3;-1:-1:-1;;12753:17:2;;12750:2;;;12773:18;;:::i;:::-;-1:-1:-1;12820:1:2;12809:13;;12740:88::o;12833:127::-;12894:10;12889:3;12885:20;12882:1;12875:31;12925:4;12922:1;12915:15;12949:4;12946:1;12939:15;12965:131;-1:-1:-1;;;;;13040:31:2;;13030:42;;13020:2;;13086:1;13083;13076:12;13020:2;13010:86;:::o

Swarm Source

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