Contract 0x5b1d1bbdcc432213f83b15214b93dc24d31855ef 2

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x6fcae96217989ee3d3964259659e2b49c5e313ffb7fb5da2bbf5ba45bc9856acSell118375132021-10-17 1:08:535 mins ago0x6373ee79f3e4fa845ec9eb0628d35702b3a19ce9 IN  0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0 BNB0.000386965
0xe2b1578f08182053fbf40669b56c381ab2369d69c65fb8dcc887a700ec3e38bfSell118371972021-10-17 0:53:0521 mins ago0xf17a65f467ff42cdcb67bd432b621f19481b026b IN  0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0 BNB0.000311905
0x56596dec4838a1df38280d163aa01a6ef3156fbd85a88377b8623a153b5058adSell118353462021-10-16 23:20:321 hr 54 mins ago0xe9c88debb48fddd2ec2879a657c49117bb93822f IN  0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0 BNB0.000311905
0xe075fd49969a3b08d04ed27145d6ad740166b8b7b0d917364f14a9010e1d823aTransfer118349012021-10-16 22:58:152 hrs 16 mins ago0x0d1070ac6b442db5e2265539e3b2489679e5c5ec IN  0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0.0104231 BNB0.0008109
0xba2f1319271e28307ec90c6efe9fa548ba76d45c799d01c2b15a1d0555700799Sell118348452021-10-16 22:55:272 hrs 19 mins ago0xf169f4be71155df80b665ca01b8cbf51f6ede0c3 IN  0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0 BNB0.000311905
0x47b16d86ce643eefa957f8d84d0479b7aadbe208c6faf78ab278d785d97cd092Sell118348332021-10-16 22:54:512 hrs 19 mins ago0x620d5ee63e9a11de2a0aefa900de54f22444659b IN  0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0 BNB0.000311905
0xc51374db92c7eac8ac42d37a1223672426dc23191e386fbb4135a595f0b968adTransfer118347512021-10-16 22:50:382 hrs 23 mins ago0xf169f4be71155df80b665ca01b8cbf51f6ede0c3 IN  0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0.0209 BNB0.00075048
0xb74fbe344f856739d22d90889abe855824c787272785ab4ffca25877f36f4774Transfer118347152021-10-16 22:48:472 hrs 25 mins ago0xf169f4be71155df80b665ca01b8cbf51f6ede0c3 IN  0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0.031649999999999 BNB0.0008109
0xd5ab4d29ab3429bf0e02bd53c79d32c74898d76f7abe583bf12f4b3ba6b54c0aSell118345682021-10-16 22:41:262 hrs 33 mins ago0x6ccb0df45870ca7cfe75a811ce3a37933f74c2ca IN  0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0 BNB0.000311905
0xbf77b18609636bad61071eadc2024f89eb83aa50545ed3c4a00dc62bf187e00eSell118329962021-10-16 21:22:503 hrs 51 mins ago0x4d999538a7b0580dcef1dc9d22537910c6f1bd4f IN  0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0 BNB0.000311905
0xfddb31037148d411284173cb67a9a6febed583dc2c323b7414465b1c1d78bf5cSell118327372021-10-16 21:09:534 hrs 4 mins ago0xac4a174e8b31cebc2506e299bc17b9721140d042 IN  0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0 BNB0.000311905
0x5239fb70473e98b6d6e97892c17d58540552e7bbd34b82aa89c7ba6010c228d4Sell118316822021-10-16 20:17:084 hrs 57 mins ago0xd1c24c2c5c188e39e5c5621bec5092b9b4f12d20 IN  0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0 BNB0.000236905
0x4f7924398da1ce36c99c981d72cc92e5e0c65f6dae006669003e71372150a78eTransfer118314992021-10-16 20:07:595 hrs 6 mins ago0xdd5d97b2b51a85c49c98dc652e6b0e12c888cb03 IN  0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0 BNB0.000206795
0x2a8cd8ef3df8ed97f5f02e5be636843ed5de09b7f754efe2981e141a45e572a8Sell118311562021-10-16 19:50:505 hrs 23 mins ago0xb956b375e9e86b909b73342d1b0982f101d7156f IN  0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0 BNB0.000311905
0xc40f80cade0384e2dd4281e62ed46585ef7c7230aaf3ddf6d738710792e120b1Sell118302092021-10-16 19:03:096 hrs 11 mins ago0x7f5622afb5cefba39f96ca3b2814ecf0e383aaa4 IN  0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0 BNB0.000236965
0x446c809ea55c7b6e0382d15a0ed4b862b52da91dca0bf5eff975abf653bc206cSell118288662021-10-16 17:54:167 hrs 20 mins ago0xa35d8628460d4ab8d4038394d57fa6bec53e41e9 IN  0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0 BNB0.000386845
0x7eb87cfff91c4cfafd30b976ae06e00ae887bc4d851abd87944ab0bd6a973305Sell118285502021-10-16 17:38:107 hrs 36 mins ago0xa955d0de6fc68ad181756b816d778c81f01abb73 IN  0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0 BNB0.000236905
0x3422ee1e7737960c1180c215412212ede7cb4cbab14a212fc5533ce3768f6f48Sell118270752021-10-16 16:22:408 hrs 51 mins ago0x9acf9e0131b5707ad5816296ee47a2521b75affb IN  0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0 BNB0.000311905
0xee386a32eefbee5c69683e74aadbaf491a83fb6bf0315de46857589cbf1c5e98Sell118263482021-10-16 15:46:179 hrs 28 mins ago0x64533f49b42afe148efa4d41653573d9204db174 IN  0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0 BNB0.000236965
0xe6ca9829f35d4660187ddecb23bd526c84072071a33a6dae9f0428a1487c2b75Transfer118249632021-10-16 14:35:5710 hrs 38 mins ago0xfb2c1321668937594381095b20521897d222bc18 IN  0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0.01 BNB0.00082548
0x77eaadf62cf3f42cc16e551fed97a67031b951e80f6212d617f66e02ff8bccb1Sell118236892021-10-16 13:32:1111 hrs 42 mins ago0x64d48c7592edb7a0d9d6b710c214693b4821a07d IN  0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0 BNB0.000311965
0x9d180c15b372e4b06637c548d653ff816a0f6131c393df0179760a2a87fd08dbTransfer118236752021-10-16 13:31:2911 hrs 43 mins ago0x9fc61e7ed34f5addd8047a578962a482614b2c73 IN  0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0.24974101 BNB0.00082548
0x8c7d38dbcbfe92dd52809626516c1d8e4523f72fa074116611638fb1a443c949Sell118232522021-10-16 13:10:0712 hrs 4 mins ago0x81eb1bbd58fdee37db7968aa1a8fd2ec6fc450c1 IN  0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0 BNB0.000236905
0xfd4170ae17ddad1dd93e8d8a151c1782faeb1c5e1f33ab3a3a4c6adf5095b71aSell118216112021-10-16 11:47:5313 hrs 26 mins ago0x54227c3d897192665a2339dd63eb9716e722ad41 IN  0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0 BNB0.000386905
0xe9fa73abe08e3ec9a4cc44fa493b1dd1cd78d6186b96428e1debac8ea19110deSell118206952021-10-16 11:02:0214 hrs 12 mins ago0x3db52868441a69f5933bfcc6f19a599e38d12efc IN  0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0 BNB0.000311905
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xe5686d7928a89da55db25733476808566ef55c355557dc9bcf67b6b07016bc5b118370282021-10-17 0:44:3829 mins ago 0x5b1d1bbdcc432213f83b15214b93dc24d31855ef PancakeSwap: Router v20.081577932698736849 BNB
0xe5686d7928a89da55db25733476808566ef55c355557dc9bcf67b6b07016bc5b118370282021-10-17 0:44:3829 mins ago 0xb3eff438e0ed127b0da9329ea84828171ede93cd 0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0.081577932698736849 BNB
0xe075fd49969a3b08d04ed27145d6ad740166b8b7b0d917364f14a9010e1d823a118349012021-10-16 22:58:152 hrs 16 mins ago 0x5b1d1bbdcc432213f83b15214b93dc24d31855ef PancakeSwap: Router v20.0104231 BNB
0xc51374db92c7eac8ac42d37a1223672426dc23191e386fbb4135a595f0b968ad118347512021-10-16 22:50:382 hrs 23 mins ago 0x5b1d1bbdcc432213f83b15214b93dc24d31855ef PancakeSwap: Router v20.0209 BNB
0xb74fbe344f856739d22d90889abe855824c787272785ab4ffca25877f36f4774118347152021-10-16 22:48:472 hrs 25 mins ago 0x5b1d1bbdcc432213f83b15214b93dc24d31855ef PancakeSwap: Router v20.031649999999999996 BNB
0xcd7811086030ff848c76176acd337884e5cc5f86535b69526b1bd2031f659a94118318392021-10-16 20:24:594 hrs 49 mins ago 0x5b1d1bbdcc432213f83b15214b93dc24d31855ef PancakeSwap: Router v20.031204346281584888 BNB
0xcd7811086030ff848c76176acd337884e5cc5f86535b69526b1bd2031f659a94118318392021-10-16 20:24:594 hrs 49 mins ago 0xb3eff438e0ed127b0da9329ea84828171ede93cd 0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0.031204346281584888 BNB
0xe6ca9829f35d4660187ddecb23bd526c84072071a33a6dae9f0428a1487c2b75118249632021-10-16 14:35:5710 hrs 38 mins ago 0x5b1d1bbdcc432213f83b15214b93dc24d31855ef PancakeSwap: Router v20.01 BNB
0x9d180c15b372e4b06637c548d653ff816a0f6131c393df0179760a2a87fd08db118236752021-10-16 13:31:2911 hrs 43 mins ago 0x5b1d1bbdcc432213f83b15214b93dc24d31855ef PancakeSwap: Router v20.24974101 BNB
0x2c3a50566e680c8f62be415168eec3c2a5a7cdf09f71d294a6f317d7d1783e43118191552021-10-16 9:44:4015 hrs 29 mins ago 0x5b1d1bbdcc432213f83b15214b93dc24d31855ef PancakeSwap: Router v20.040502369349946089 BNB
0x2c3a50566e680c8f62be415168eec3c2a5a7cdf09f71d294a6f317d7d1783e43118191552021-10-16 9:44:4015 hrs 29 mins ago 0xb3eff438e0ed127b0da9329ea84828171ede93cd 0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0.040502369349946089 BNB
0xa29ad6000a12089fa753a1a7a1e0e3be2d849de59c44b58ca81087affc44ee67118097122021-10-16 1:51:3223 hrs 23 mins ago 0x5b1d1bbdcc432213f83b15214b93dc24d31855ef PancakeSwap: Router v20.004188005 BNB
0x4ada072bf799603dc363b0a872685dd08d05c59852ce53dc2551e623ca280dbc118086152021-10-16 0:55:001 day 19 mins ago 0x5b1d1bbdcc432213f83b15214b93dc24d31855ef PancakeSwap: Router v25 BNB
0x4ada072bf799603dc363b0a872685dd08d05c59852ce53dc2551e623ca280dbc118086152021-10-16 0:55:001 day 19 mins ago 0x757450aefaf0baef158d2a4077d7c9f25996fb81 0x5b1d1bbdcc432213f83b15214b93dc24d31855ef5 BNB
0xaa79f95ee82b0b0f9c1b08c898e7d4c54b2abf75e658c7af9ad1ffebfb6786f5118008222021-10-15 18:24:001 day 6 hrs ago 0x5b1d1bbdcc432213f83b15214b93dc24d31855ef PancakeSwap: Router v20.039793296398610871 BNB
0xaa79f95ee82b0b0f9c1b08c898e7d4c54b2abf75e658c7af9ad1ffebfb6786f5118008222021-10-15 18:24:001 day 6 hrs ago 0xb3eff438e0ed127b0da9329ea84828171ede93cd 0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0.039793296398610871 BNB
0x11229e45b046dac6caf8a135032cebd2d5a594fd1be772c19d437de30c5b67af117988982021-10-15 16:47:471 day 8 hrs ago 0x5b1d1bbdcc432213f83b15214b93dc24d31855ef PancakeSwap: Router v20.25 BNB
0x9e19e18f2724d9aa49b2a1045cbf3f25276436c3af7e67d77f9e434dbe54c9eb117975282021-10-15 15:39:121 day 9 hrs ago 0x5b1d1bbdcc432213f83b15214b93dc24d31855ef PancakeSwap: Router v20.14 BNB
0x356fff128df802a3ccd9c3a77690eca26a9f274999a1278847a161cef13e3a53117968252021-10-15 15:04:031 day 10 hrs ago 0x5b1d1bbdcc432213f83b15214b93dc24d31855ef PancakeSwap: Router v20.085 BNB
0xb58974e7e43ff421e953c00d22a42802780cef49fc0fbad446625c4e325836e9117958642021-10-15 14:15:481 day 10 hrs ago 0x5b1d1bbdcc432213f83b15214b93dc24d31855ef PancakeSwap: Router v20.05 BNB
0x574fbd2357fe94e50e38c968962b0b1f09aaf4cd2a7311cfb8c97ea4545ed714117949702021-10-15 13:30:241 day 11 hrs ago 0x5b1d1bbdcc432213f83b15214b93dc24d31855ef PancakeSwap: Router v20.03 BNB
0xe9386aec6e11bab904bcb26ab4f866e656feebd3323491b9b65b519b641a51f8117941922021-10-15 12:51:301 day 12 hrs ago 0x5b1d1bbdcc432213f83b15214b93dc24d31855ef PancakeSwap: Router v20.007805608703930586 BNB
0x86fc5a87219b20e0f062c910f0bc07efd692f6b6c851ab8a73deab3bdb7d51c6117938222021-10-15 12:33:001 day 12 hrs ago 0x5b1d1bbdcc432213f83b15214b93dc24d31855ef PancakeSwap: Router v20.0005 BNB
0x752ae41157b0dbab98b90f1ada2adc8ec8e46c5fd0d9879ac457c244007e4377117934902021-10-15 12:16:241 day 12 hrs ago 0x5b1d1bbdcc432213f83b15214b93dc24d31855ef PancakeSwap: Router v20.16187707718203313 BNB
0x752ae41157b0dbab98b90f1ada2adc8ec8e46c5fd0d9879ac457c244007e4377117934902021-10-15 12:16:241 day 12 hrs ago 0xb3eff438e0ed127b0da9329ea84828171ede93cd 0x5b1d1bbdcc432213f83b15214b93dc24d31855ef0.16187707718203313 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Similar Match)
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0xf7ADC94A7a6dd54D0c71FDb334D30E5684eb8e08

Contract Name:
NativeSurge

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity Multiple files format)

File 1 of 8: NativeSurge.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.6;

import "./Context.sol";
import "./Ownable.sol";
import "./SafeMath.sol";
import "./Address.sol";
import "./IUniswapV2Router02.sol";
import "./IERC20.sol";

/**
 * Contract Created by Markymark (aka SafemoonMark)
 * No need for LPs, Private Sales, or Presales, Rug pulls, Whale problems
 * Price of this token will always increase when compared to its underlying asset
 */




/**
 * Contract: Surge Token
 * Developed By: Markymark (aka SafemoonMark)
 *
 * Liquidity-less Token, DEX built into Contract
 * Send BNB to contract and it mints Surge Token to your receive Address
 * Sell this token by interacting with contract directly
 * Price is calculated as a ratio between Total Supply and underlying asset in Contract
 *
 */
contract NativeSurge is  Context, Ownable, IERC20 {
    using SafeMath for uint256;
    using SafeMath for uint8;
    using Address for address;

    // Address for Token
    address public _token;
    // Address for Pancakeswap Router V2
    IUniswapV2Router02 router;
    // token data
    string _name = "NativeSurgeToken";
    string _symbol = "S-Asset";
    uint8 constant _decimals = 0;
    // 1 Billion Total Supply
    uint256 _totalSupply = 1 * 10**9;
    // balances
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    // fees
    uint256 public sellFee = 94;
    uint256 public buyFee = 94;
    uint256 public transferFee = 98;
    // events
    event ErasedTokens(address who, uint256 nTokens);
    // initialize
    constructor ( address peggedToken, string memory thename, string memory thesymbol, uint256 _sellFee, uint256 _buyFee, uint256 _transferFee
    ) {
        _name = thename;
        _symbol = thesymbol;
        router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        _token = peggedToken;
        sellFee = _sellFee;
        buyFee = _buyFee;
        transferFee = _transferFee;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }
    // token functions
    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

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

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

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    /** Transfer Function */
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    /** Transfer Function */
    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(sender == msg.sender, 'cannot move funds for other accounts with SURGE :D');
        return _transferFrom(sender, recipient, amount);
    }

    /** Internal Transfer */
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        // make standard checks
        require(recipient != address(0), "BEP20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        // subtract form sender, give to receiver, burn the fee
        uint256 tAmount = amount.mul(transferFee).div(10**2);
        uint256 tax = amount.sub(tAmount);
        // subtract from sender
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        // give reduced amount to receiver
        _balances[recipient] = _balances[recipient].add(tAmount);
        // burn the tax
        _totalSupply = _totalSupply.sub(tax);
        // Transfer Event
        emit Transfer(sender, recipient, tAmount);
        return true;
    }

    /** Purchases SURGE Tokens and Deposits Them in Sender's Address */
    function purchase(address buyer, uint256 bnbAmount) private returns (bool) {
        // make sure we don't buy more than the bnb in this contract
        require(bnbAmount <= address(this).balance, 'purchase not included in balance');
        // previous amount of Tokens before we received any
        uint256 prevTokenAmount = IERC20(_token).balanceOf(address(this));
        // buy Tokens with the BNB we received
        buyToken(bnbAmount);
        // if this is the first purchase, use current balance
        uint256 currentTokenAmount = IERC20(_token).balanceOf(address(this));
        // number of Tokens we have purchased
        uint256 difference = currentTokenAmount.sub(prevTokenAmount);
        // if this is the first purchase, use new amount
        prevTokenAmount = prevTokenAmount == 0 ? currentTokenAmount : prevTokenAmount;
        // make sure total supply is greater than zero
        uint256 calculatedTotalSupply = _totalSupply == 0 ? _totalSupply.add(1) : _totalSupply;
        // find the number of tokens we should mint to keep up with the current price
        uint256 nShouldPurchase = calculatedTotalSupply.mul(difference).div(prevTokenAmount);
        // apply our spread to tokens to inflate price relative to total supply
        uint256 tokensToSend = nShouldPurchase.mul(buyFee).div(10**2);
        // revert if under 1
        if (tokensToSend < 1) {
            revert('Must Buy At Least One Surge');
        }

        // mint the tokens we need to the buyer
        mint(buyer, tokensToSend);
        emit Transfer(address(this), buyer, tokensToSend);
        return true;
    }

    /** Sells SURGE Tokens And Deposits the BNB into Seller's Address */
    function sell(uint256 tokenAmount) public returns (bool) {

        // make sure seller has this balance
        require(_balances[msg.sender] >= tokenAmount, 'cannot sell above token amount');

        // calculate the sell fee from this transaction
        uint256 tokensToSwap = tokenAmount.mul(sellFee).div(10**2);

        // how much are these tokens worth?
        uint256 amountToken = tokensToSwap.mul(calculatePrice());

        // send Token to Seller
        bool successful = IERC20(_token).transfer(msg.sender, amountToken);
        if (successful) {
            // subtract full amount from sender
            _balances[msg.sender] = _balances[msg.sender].sub(tokenAmount, 'sender does not have this amount to sell');
            // if successful, remove tokens from supply
            _totalSupply = _totalSupply.sub(tokenAmount, 'total supply cannot be negative');
        } else {
            revert();
        }
        emit Transfer(msg.sender, address(this), tokenAmount);
        return true;
    }

    /**
     * Buys Token with BNB, storing in the contract
     */
    function buyToken(uint256 amount) private {
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = _token;

        try router.swapExactETHForTokens{value: amount}(
            0,
            path,
            address(this),
            block.timestamp.add(30)
        ) {} catch {revert();}

    }
    
    /** Sells tokens mistakingly sent to contract for underlying asset */
    function sellTokenForBNB(address sToken, uint256 bal) private {

        address[] memory path = new address[](2);
        path[0] = sToken;
        path[1] = router.WETH();

        try router.swapExactTokensForETH(
            bal,
            0,
            path,
            address(this),
            block.timestamp.add(30)
        ) {} catch {revert();}
    }

    /** Returns the Current Price of the Token */
    function calculatePrice() public view returns (uint256) {
        uint256 tokenBalance = IERC20(_token).balanceOf(address(this));
        return tokenBalance.div(_totalSupply);
    }

    /** Mints Tokens to the Receivers Address */
    function mint(address receiver, uint amount) private {
        _balances[receiver] = _balances[receiver].add(amount);
        _totalSupply = _totalSupply.add(amount);
    }

    /** Amount of BNB in Contract */
    function getTokenQuantityInContract() public view returns(uint256){
        return IERC20(_token).balanceOf(address(this));
    }

    /** Returns the value of your holdings before the 6% sell fee */
    function getValueOfHoldings(address holder) public view returns(uint256) {
        return _balances[holder].mul(calculatePrice());
    }

    /** Incase Pancakeswap Upgrades To V3 */
    function changePancakeswapRouterAddress(address newPCSAddress) public onlyOwner {
        router = IUniswapV2Router02(newPCSAddress);
    }

    /** Sell Fee */
    function getSellFee() public view returns(uint256) {
        return sellFee;
    }

    /** Buy Fee */
    function getBuyFee() public view returns(uint256) {
        return buyFee;
    }

    /** Transfer Fee */
    function getTransferFee() public view returns(uint256) {
        return transferFee;
    }
    
    /** List all fees */
    function getFees() public view returns(uint256, uint256, uint256) {
        return (buyFee,sellFee,transferFee);
    }
    
    /** Liquifies tokens that were incorrectly sent to contract */
    function liquifyTheMistakesOfOthers(address tokenToWithdraw) public onlyOwner {
        require(tokenToWithdraw != _token && tokenToWithdraw != router.WETH(), 'cannot withdraw underlying assets');
        // balance of token in contract
        uint256 bal = IERC20(tokenToWithdraw).balanceOf(address(this));
        require(bal > 0, 'cannot withdraw 0 tokens');
        // previous bnb balance
        uint256 pBal = address(this).balance;
        // sell tokens for bnb
        sellTokenForBNB(tokenToWithdraw, bal);
        // difference between
        uint256 dif = address(this).balance.sub(pBal);
        if (dif > 0) {
            buyToken(dif);
        }
    }
    
    /** Make Sure there's no Native Tokens in contract */
    function checkGarbageCollector() internal {
        uint256 bal = _balances[address(this)];
        if (bal > 1000) {
            // subtract full amount from sender
            _balances[address(this)] = 0;
            // if successful, remove tokens from supply
            _totalSupply = _totalSupply.sub(bal, 'total supply cannot be negative');
        }
    }

    receive() external payable {
        checkGarbageCollector();
        purchase(msg.sender, msg.value);
    }
}

File 2 of 8: Address.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;


library Address {

    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain`call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }

}

File 3 of 8: Context.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

File 4 of 8: IERC20.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IERC20 {

    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);
    
    /**
     * @dev Returns the number of decimal places
     */
    function decimals() external view returns (uint8);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

File 5 of 8: IUniswapV2Router02.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;


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;
}

File 6 of 8: Ownable.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "./Context.sol";

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 msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

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

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

    //Locks the contract for owner for the amount of time provided
    function lock(uint256 time) public virtual onlyOwner {
        _previousOwner = _owner;
        _owner = address(0);
        _lockTime = block.timestamp + time;
        emit OwnershipTransferred(_owner, address(0));
    }

    //Unlocks the contract for owner when _lockTime is exceeds
    function unlock() public virtual {
        require(_previousOwner == msg.sender, "You don't have permission to unlock");
        require(block.timestamp > _lockTime , "Contract is locked");
        emit OwnershipTransferred(_owner, _previousOwner);
        _owner = _previousOwner;
    }
}

File 7 of 8: ReentrantGuard.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.6;

abstract contract ReentrancyGuard {
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;
    uint256 private _status;
    constructor () {
        _status = _NOT_ENTERED;
    }

    modifier nonReentrant() {
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
        _status = _ENTERED;
        _;
        _status = _NOT_ENTERED;
    }
}

File 8 of 8: SafeMath.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be 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;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"peggedToken","type":"address"},{"internalType":"string","name":"thename","type":"string"},{"internalType":"string","name":"thesymbol","type":"string"},{"internalType":"uint256","name":"_sellFee","type":"uint256"},{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_transferFee","type":"uint256"}],"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":"who","type":"address"},{"indexed":false,"internalType":"uint256","name":"nTokens","type":"uint256"}],"name":"ErasedTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"calculatePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newPCSAddress","type":"address"}],"name":"changePancakeswapRouterAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"geUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTokenQuantityInContract","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTransferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"getValueOfHoldings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenToWithdraw","type":"address"}],"name":"liquifyTheMistakesOfOthers","outputs":[],"stateMutability":"nonpayable","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":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"sell","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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":[],"name":"transferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"}]

60806040526040518060400160405280601081526020017f4e61746976655375726765546f6b656e0000000000000000000000000000000081525060059080519060200190620000519291906200033b565b506040518060400160405280600781526020017f532d417373657400000000000000000000000000000000000000000000000000815250600690805190602001906200009f9291906200033b565b50633b9aca00600755605e600a55605e600b556062600c55348015620000c457600080fd5b5060405162004217380380620042178339818101604052810190620000ea919062000497565b6000620000fc6200033360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508460059080519060200190620001b29291906200033b565b508360069080519060200190620001cb9291906200033b565b507310ed43c718714eb63d5aa57b78b54704e256024e600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600a8190555081600b8190555080600c81905550600754600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6007546040516200031f919062000582565b60405180910390a350505050505062000795565b600033905090565b828054620003499062000672565b90600052602060002090601f0160209004810192826200036d5760008555620003b9565b82601f106200038857805160ff1916838001178555620003b9565b82800160010185558215620003b9579182015b82811115620003b85782518255916020019190600101906200039b565b5b509050620003c89190620003cc565b5090565b5b80821115620003e7576000816000905550600101620003cd565b5090565b600062000402620003fc84620005c8565b6200059f565b90508281526020810184848401111562000421576200042062000741565b5b6200042e8482856200063c565b509392505050565b600081519050620004478162000761565b92915050565b600082601f8301126200046557620004646200073c565b5b815162000477848260208601620003eb565b91505092915050565b60008151905062000491816200077b565b92915050565b60008060008060008060c08789031215620004b757620004b66200074b565b5b6000620004c789828a0162000436565b965050602087015167ffffffffffffffff811115620004eb57620004ea62000746565b5b620004f989828a016200044d565b955050604087015167ffffffffffffffff8111156200051d576200051c62000746565b5b6200052b89828a016200044d565b94505060606200053e89828a0162000480565b93505060806200055189828a0162000480565b92505060a06200056489828a0162000480565b9150509295509295509295565b6200057c8162000632565b82525050565b600060208201905062000599600083018462000571565b92915050565b6000620005ab620005be565b9050620005b98282620006a8565b919050565b6000604051905090565b600067ffffffffffffffff821115620005e657620005e56200070d565b5b620005f18262000750565b9050602081019050919050565b60006200060b8262000612565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b838110156200065c5780820151818401526020810190506200063f565b838111156200066c576000848401525b50505050565b600060028204905060018216806200068b57607f821691505b60208210811415620006a257620006a1620006de565b5b50919050565b620006b38262000750565b810181811067ffffffffffffffff82111715620006d557620006d46200070d565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6200076c81620005fe565b81146200077857600080fd5b50565b620007868162000632565b81146200079257600080fd5b50565b613a7280620007a56000396000f3fe6080604052600436106101c65760003560e01c806391eb49db116100f7578063b6c5232411610095578063dd62ed3e11610064578063dd62ed3e14610646578063e4849b3214610683578063ecd0c0c3146106c0578063f2fde38b146106eb576101e0565b8063b6c523241461059a578063d348b409146105c5578063db8d55f1146105f0578063dd4670641461061d576101e0565b8063a4f7394e116100d1578063a4f7394e146104f0578063a69df4b51461051b578063a9059cbb14610532578063acb2ad6f1461056f576101e0565b806391eb49db1461047157806395d89b411461049a5780639a17d8c1146104c5576101e0565b8063313ce5671161016457806370a082311161013e57806370a08231146103c7578063715018a6146104045780638da5cb5b1461041b5780638f818b9014610446576101e0565b8063313ce5671461034857806347062402146103735780636d780cc31461039e576101e0565b80631f02a29c116101a05780631f02a29c1461027857806323b872dd146102b5578063289af0d8146102f25780632b14ca561461031d576101e0565b806306fdde03146101e5578063095ea7b31461021057806318160ddd1461024d576101e0565b366101e0576101d3610714565b6101dd33346107fd565b50005b600080fd5b3480156101f157600080fd5b506101fa610b16565b6040516102079190613016565b60405180910390f35b34801561021c57600080fd5b5061023760048036038101906102329190612b68565b610ba8565b6040516102449190612faf565b60405180910390f35b34801561025957600080fd5b50610262610c9a565b60405161026f91906131f8565b60405180910390f35b34801561028457600080fd5b5061029f600480360381019061029a9190612a7b565b610ca4565b6040516102ac91906131f8565b60405180910390f35b3480156102c157600080fd5b506102dc60048036038101906102d79190612b15565b610d06565b6040516102e99190612faf565b60405180910390f35b3480156102fe57600080fd5b50610307610d8a565b60405161031491906131f8565b60405180910390f35b34801561032957600080fd5b50610332610d94565b60405161033f91906131f8565b60405180910390f35b34801561035457600080fd5b5061035d610d9a565b60405161036a91906132a4565b60405180910390f35b34801561037f57600080fd5b50610388610d9f565b60405161039591906131f8565b60405180910390f35b3480156103aa57600080fd5b506103c560048036038101906103c09190612a7b565b610da5565b005b3480156103d357600080fd5b506103ee60048036038101906103e99190612a7b565b6110b1565b6040516103fb91906131f8565b60405180910390f35b34801561041057600080fd5b506104196110fa565b005b34801561042757600080fd5b5061043061124d565b60405161043d9190612f6b565b60405180910390f35b34801561045257600080fd5b5061045b611276565b60405161046891906131f8565b60405180910390f35b34801561047d57600080fd5b5061049860048036038101906104939190612a7b565b611280565b005b3480156104a657600080fd5b506104af611359565b6040516104bc9190613016565b60405180910390f35b3480156104d157600080fd5b506104da6113eb565b6040516104e791906131f8565b60405180910390f35b3480156104fc57600080fd5b506105056113f5565b60405161051291906131f8565b60405180910390f35b34801561052757600080fd5b506105306114a7565b005b34801561053e57600080fd5b5061055960048036038101906105549190612b68565b61167b565b6040516105669190612faf565b60405180910390f35b34801561057b57600080fd5b50610584611690565b60405161059191906131f8565b60405180910390f35b3480156105a657600080fd5b506105af611696565b6040516105bc91906131f8565b60405180910390f35b3480156105d157600080fd5b506105da6116a0565b6040516105e791906131f8565b60405180910390f35b3480156105fc57600080fd5b5061060561176b565b6040516106149392919061326d565b60405180910390f35b34801561062957600080fd5b50610644600480360381019061063f9190612c1e565b611784565b005b34801561065257600080fd5b5061066d60048036038101906106689190612ad5565b61194b565b60405161067a91906131f8565b60405180910390f35b34801561068f57600080fd5b506106aa60048036038101906106a59190612c1e565b6119d2565b6040516106b79190612faf565b60405180910390f35b3480156106cc57600080fd5b506106d5611cd5565b6040516106e29190612f6b565b60405180910390f35b3480156106f757600080fd5b50610712600480360381019061070d9190612a7b565b611cfb565b005b6000600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506103e88111156107fa576000600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506107f3816040518060400160405280601f81526020017f746f74616c20737570706c792063616e6e6f74206265206e6567617469766500815250600754611ebd9092919063ffffffff16565b6007819055505b50565b600047821115610842576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610839906130f8565b60405180910390fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161089f9190612f6b565b60206040518083038186803b1580156108b757600080fd5b505afa1580156108cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ef9190612c4b565b90506108fa83611f21565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109579190612f6b565b60206040518083038186803b15801561096f57600080fd5b505afa158015610983573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a79190612c4b565b905060006109be83836121a290919063ffffffff16565b9050600083146109ce57826109d0565b815b9250600080600754146109e5576007546109fc565b6109fb60016007546121ec90919063ffffffff16565b5b90506000610a2585610a17858561224a90919063ffffffff16565b6122c590919063ffffffff16565b90506000610a516064610a43600b548561224a90919063ffffffff16565b6122c590919063ffffffff16565b90506001811015610a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8e906130d8565b60405180910390fd5b610aa1898261230f565b8873ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610afe91906131f8565b60405180910390a36001965050505050505092915050565b606060058054610b2590613514565b80601f0160208091040260200160405190810160405280929190818152602001828054610b5190613514565b8015610b9e5780601f10610b7357610100808354040283529160200191610b9e565b820191906000526020600020905b815481529060010190602001808311610b8157829003601f168201915b5050505050905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c8891906131f8565b60405180910390a36001905092915050565b6000600754905090565b6000610cff610cb16116a0565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461224a90919063ffffffff16565b9050919050565b60003373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6d90613038565b60405180910390fd5b610d818484846123c3565b90509392505050565b6000600a54905090565b600a5481565b600090565b600b5481565b610dad6126a8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3190613138565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610f635750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610efb57600080fd5b505afa158015610f0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f339190612aa8565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b610fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9990613198565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610fdd9190612f6b565b60206040518083038186803b158015610ff557600080fd5b505afa158015611009573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102d9190612c4b565b905060008111611072576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106990613098565b60405180910390fd5b600047905061108183836126b0565b600061109682476121a290919063ffffffff16565b905060008111156110ab576110aa81611f21565b5b50505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111026126a8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461118f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118690613138565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600b54905090565b6112886126a8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130c90613138565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606006805461136890613514565b80601f016020809104026020016040519081016040528092919081815260200182805461139490613514565b80156113e15780601f106113b6576101008083540402835291602001916113e1565b820191906000526020600020905b8154815290600101906020018083116113c457829003601f168201915b5050505050905090565b6000600c54905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016114529190612f6b565b60206040518083038186803b15801561146a57600080fd5b505afa15801561147e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a29190612c4b565b905090565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611537576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152e906131d8565b60405180910390fd5b600254421161157b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611572906131b8565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006116883384846123c3565b905092915050565b600c5481565b6000600254905090565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116fe9190612f6b565b60206040518083038186803b15801561171657600080fd5b505afa15801561172a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174e9190612c4b565b9050611765600754826122c590919063ffffffff16565b91505090565b6000806000600b54600a54600c54925092509250909192565b61178c6126a8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181090613138565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080426118c79190613365565b600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611a56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4d906130b8565b60405180910390fd5b6000611a806064611a72600a548661224a90919063ffffffff16565b6122c590919063ffffffff16565b90506000611a9e611a8f6116a0565b8361224a90919063ffffffff16565b90506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611aff929190612f86565b602060405180830381600087803b158015611b1957600080fd5b505af1158015611b2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b519190612bf1565b90508015611c5f57611bc585604051806060016040528060288152602001613a1560289139600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ebd9092919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c54856040518060400160405280601f81526020017f746f74616c20737570706c792063616e6e6f74206265206e6567617469766500815250600754611ebd9092919063ffffffff16565b600781905550611c64565b600080fd5b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051611cc191906131f8565b60405180910390a360019350505050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d036126a8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8790613138565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df790613058565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000838311158290611f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efc9190613016565b60405180910390fd5b5060008385611f149190613446565b9050809150509392505050565b6000600267ffffffffffffffff811115611f3e57611f3d613633565b5b604051908082528060200260200182016040528015611f6c5781602001602082028036833780820191505090505b509050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611fd757600080fd5b505afa158015611feb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061200f9190612aa8565b8160008151811061202357612022613604565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061209457612093613604565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637ff36ab58360008430612125601e426121ec90919063ffffffff16565b6040518663ffffffff1660e01b81526004016121449493929190612fca565b6000604051808303818588803b15801561215d57600080fd5b505af19350505050801561219457506040513d6000823e3d601f19601f820116820180604052508101906121919190612ba8565b60015b61219d57600080fd5b505050565b60006121e483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ebd565b905092915050565b60008082846121fb9190613365565b905083811015612240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223790613078565b60405180910390fd5b8091505092915050565b60008083141561225d57600090506122bf565b6000828461226b91906133ec565b905082848261227a91906133bb565b146122ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b190613118565b60405180910390fd5b809150505b92915050565b600061230783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612911565b905092915050565b61236181600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121ec90919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123b9816007546121ec90919063ffffffff16565b6007819055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612434576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242b90613178565b60405180910390fd5b60008211612477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246e90613158565b60405180910390fd5b60006124a16064612493600c548661224a90919063ffffffff16565b6122c590919063ffffffff16565b905060006124b882856121a290919063ffffffff16565b9050612543846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ebd9092919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125d882600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121ec90919063ffffffff16565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612630816007546121a290919063ffffffff16565b6007819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161269391906131f8565b60405180910390a36001925050509392505050565b600033905090565b6000600267ffffffffffffffff8111156126cd576126cc613633565b5b6040519080825280602002602001820160405280156126fb5781602001602082028036833780820191505090505b509050828160008151811061271357612712613604565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156127b557600080fd5b505afa1580156127c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127ed9190612aa8565b8160018151811061280157612800613604565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318cbafe58360008430612892601e426121ec90919063ffffffff16565b6040518663ffffffff1660e01b81526004016128b2959493929190613213565b600060405180830381600087803b1580156128cc57600080fd5b505af192505050801561290257506040513d6000823e3d601f19601f820116820180604052508101906128ff9190612ba8565b60015b61290b57600080fd5b50505050565b60008083118290612958576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294f9190613016565b60405180910390fd5b506000838561296791906133bb565b9050809150509392505050565b6000612987612982846132e4565b6132bf565b905080838252602082019050828560208602820111156129aa576129a9613667565b5b60005b858110156129da57816129c08882612a66565b8452602084019350602083019250506001810190506129ad565b5050509392505050565b6000813590506129f3816139cf565b92915050565b600081519050612a08816139cf565b92915050565b600082601f830112612a2357612a22613662565b5b8151612a33848260208601612974565b91505092915050565b600081519050612a4b816139e6565b92915050565b600081359050612a60816139fd565b92915050565b600081519050612a75816139fd565b92915050565b600060208284031215612a9157612a90613671565b5b6000612a9f848285016129e4565b91505092915050565b600060208284031215612abe57612abd613671565b5b6000612acc848285016129f9565b91505092915050565b60008060408385031215612aec57612aeb613671565b5b6000612afa858286016129e4565b9250506020612b0b858286016129e4565b9150509250929050565b600080600060608486031215612b2e57612b2d613671565b5b6000612b3c868287016129e4565b9350506020612b4d868287016129e4565b9250506040612b5e86828701612a51565b9150509250925092565b60008060408385031215612b7f57612b7e613671565b5b6000612b8d858286016129e4565b9250506020612b9e85828601612a51565b9150509250929050565b600060208284031215612bbe57612bbd613671565b5b600082015167ffffffffffffffff811115612bdc57612bdb61366c565b5b612be884828501612a0e565b91505092915050565b600060208284031215612c0757612c06613671565b5b6000612c1584828501612a3c565b91505092915050565b600060208284031215612c3457612c33613671565b5b6000612c4284828501612a51565b91505092915050565b600060208284031215612c6157612c60613671565b5b6000612c6f84828501612a66565b91505092915050565b6000612c848383612c90565b60208301905092915050565b612c998161347a565b82525050565b612ca88161347a565b82525050565b6000612cb982613320565b612cc38185613343565b9350612cce83613310565b8060005b83811015612cff578151612ce68882612c78565b9750612cf183613336565b925050600181019050612cd2565b5085935050505092915050565b612d158161348c565b82525050565b612d24816134cf565b82525050565b6000612d358261332b565b612d3f8185613354565b9350612d4f8185602086016134e1565b612d5881613676565b840191505092915050565b6000612d70603283613354565b9150612d7b82613687565b604082019050919050565b6000612d93602683613354565b9150612d9e826136d6565b604082019050919050565b6000612db6601b83613354565b9150612dc182613725565b602082019050919050565b6000612dd9601883613354565b9150612de48261374e565b602082019050919050565b6000612dfc601e83613354565b9150612e0782613777565b602082019050919050565b6000612e1f601b83613354565b9150612e2a826137a0565b602082019050919050565b6000612e42602083613354565b9150612e4d826137c9565b602082019050919050565b6000612e65602183613354565b9150612e70826137f2565b604082019050919050565b6000612e88602083613354565b9150612e9382613841565b602082019050919050565b6000612eab602983613354565b9150612eb68261386a565b604082019050919050565b6000612ece602383613354565b9150612ed9826138b9565b604082019050919050565b6000612ef1602183613354565b9150612efc82613908565b604082019050919050565b6000612f14601283613354565b9150612f1f82613957565b602082019050919050565b6000612f37602383613354565b9150612f4282613980565b604082019050919050565b612f56816134b8565b82525050565b612f65816134c2565b82525050565b6000602082019050612f806000830184612c9f565b92915050565b6000604082019050612f9b6000830185612c9f565b612fa86020830184612f4d565b9392505050565b6000602082019050612fc46000830184612d0c565b92915050565b6000608082019050612fdf6000830187612d1b565b8181036020830152612ff18186612cae565b90506130006040830185612c9f565b61300d6060830184612f4d565b95945050505050565b600060208201905081810360008301526130308184612d2a565b905092915050565b6000602082019050818103600083015261305181612d63565b9050919050565b6000602082019050818103600083015261307181612d86565b9050919050565b6000602082019050818103600083015261309181612da9565b9050919050565b600060208201905081810360008301526130b181612dcc565b9050919050565b600060208201905081810360008301526130d181612def565b9050919050565b600060208201905081810360008301526130f181612e12565b9050919050565b6000602082019050818103600083015261311181612e35565b9050919050565b6000602082019050818103600083015261313181612e58565b9050919050565b6000602082019050818103600083015261315181612e7b565b9050919050565b6000602082019050818103600083015261317181612e9e565b9050919050565b6000602082019050818103600083015261319181612ec1565b9050919050565b600060208201905081810360008301526131b181612ee4565b9050919050565b600060208201905081810360008301526131d181612f07565b9050919050565b600060208201905081810360008301526131f181612f2a565b9050919050565b600060208201905061320d6000830184612f4d565b92915050565b600060a0820190506132286000830188612f4d565b6132356020830187612d1b565b81810360408301526132478186612cae565b90506132566060830185612c9f565b6132636080830184612f4d565b9695505050505050565b60006060820190506132826000830186612f4d565b61328f6020830185612f4d565b61329c6040830184612f4d565b949350505050565b60006020820190506132b96000830184612f5c565b92915050565b60006132c96132da565b90506132d58282613546565b919050565b6000604051905090565b600067ffffffffffffffff8211156132ff576132fe613633565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613370826134b8565b915061337b836134b8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156133b0576133af613577565b5b828201905092915050565b60006133c6826134b8565b91506133d1836134b8565b9250826133e1576133e06135a6565b5b828204905092915050565b60006133f7826134b8565b9150613402836134b8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561343b5761343a613577565b5b828202905092915050565b6000613451826134b8565b915061345c836134b8565b92508282101561346f5761346e613577565b5b828203905092915050565b600061348582613498565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006134da826134b8565b9050919050565b60005b838110156134ff5780820151818401526020810190506134e4565b8381111561350e576000848401525b50505050565b6000600282049050600182168061352c57607f821691505b602082108114156135405761353f6135d5565b5b50919050565b61354f82613676565b810181811067ffffffffffffffff8211171561356e5761356d613633565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f63616e6e6f74206d6f76652066756e647320666f72206f74686572206163636f60008201527f756e74732077697468205355524745203a440000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f63616e6e6f74207769746864726177203020746f6b656e730000000000000000600082015250565b7f63616e6e6f742073656c6c2061626f766520746f6b656e20616d6f756e740000600082015250565b7f4d75737420427579204174204c65617374204f6e652053757267650000000000600082015250565b7f7075726368617365206e6f7420696e636c7564656420696e2062616c616e6365600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f63616e6e6f7420776974686472617720756e6465726c79696e6720617373657460008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f436f6e7472616374206973206c6f636b65640000000000000000000000000000600082015250565b7f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60008201527f6f636b0000000000000000000000000000000000000000000000000000000000602082015250565b6139d88161347a565b81146139e357600080fd5b50565b6139ef8161348c565b81146139fa57600080fd5b50565b613a06816134b8565b8114613a1157600080fd5b5056fe73656e64657220646f6573206e6f742068617665207468697320616d6f756e7420746f2073656c6ca264697066735822122033feaeafceba643e112197c45fd1ca8c4f110f7b89ff413dba032a9b5b5bb9cd64736f6c634300080600330000000000000000000000002170ed0880ac9a755fd29b2688956bd959f933f800000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000005e000000000000000000000000000000000000000000000000000000000000005e00000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000008537572676545544800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045345544800000000000000000000000000000000000000000000000000000000

Deployed ByteCode Sourcemap

784:10019:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10730:23;:21;:23::i;:::-;10763:31;10772:10;10784:9;10763:8;:31::i;:::-;;784:10019;;;;;2460:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2734:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2118:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8697:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3170:263;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9049:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1388:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2638:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1421:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9586:669;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2211:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1245:145:5;;;;;;;;;;;;;:::i;:::-;;622:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9156:80:4;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8884:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2547:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9266:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8493:129;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2235:287:5;;;;;;;;;;;;;:::i;:::-;;2981:154:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1453:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1785:87:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8041:182:4;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9391:118;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;1945:221:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2321:133:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6097:1020;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;959:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1539:240:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10323:364:4;10375:11;10389:9;:24;10407:4;10389:24;;;;;;;;;;;;;;;;10375:38;;10433:4;10427:3;:10;10423:258;;;10528:1;10501:9;:24;10519:4;10501:24;;;;;;;;;;;;;;;:28;;;;10614:56;10631:3;10614:56;;;;;;;;;;;;;;;;;:12;;:16;;:56;;;;;:::i;:::-;10599:12;:71;;;;10423:258;10365:322;10323:364::o;4399:1619::-;4468:4;4574:21;4561:9;:34;;4553:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4702:23;4735:6;;;;;;;;;;;4728:24;;;4761:4;4728:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4702:65;;4824:19;4833:9;4824:8;:19::i;:::-;4915:26;4951:6;;;;;;;;;;;4944:24;;;4977:4;4944:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4915:68;;5039:18;5060:39;5083:15;5060:18;:22;;:39;;;;:::i;:::-;5039:60;;5203:1;5184:15;:20;:59;;5228:15;5184:59;;;5207:18;5184:59;5166:77;;5308:29;5356:1;5340:12;;:17;:54;;5382:12;;5340:54;;;5360:19;5377:1;5360:12;;:16;;:19;;;;:::i;:::-;5340:54;5308:86;;5490:23;5516:58;5558:15;5516:37;5542:10;5516:21;:25;;:37;;;;:::i;:::-;:41;;:58;;;;:::i;:::-;5490:84;;5664:20;5687:38;5719:5;5687:27;5707:6;;5687:15;:19;;:27;;;;:::i;:::-;:31;;:38;;;;:::i;:::-;5664:61;;5783:1;5768:12;:16;5764:84;;;5800:37;;;;;;;;;;:::i;:::-;;;;;;;;5764:84;5906:25;5911:5;5918:12;5906:4;:25::i;:::-;5970:5;5946:44;;5963:4;5946:44;;;5977:12;5946:44;;;;;;:::i;:::-;;;;;;;;6007:4;6000:11;;;;;;;;4399:1619;;;;:::o;2460:81::-;2497:13;2529:5;2522:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2460:81;:::o;2734:212::-;2809:4;2860:6;2825:11;:23;2837:10;2825:23;;;;;;;;;;;;;;;:32;2849:7;2825:32;;;;;;;;;;;;;;;:41;;;;2902:7;2881:37;;2890:10;2881:37;;;2911:6;2881:37;;;;;;:::i;:::-;;;;;;;;2935:4;2928:11;;2734:212;;;;:::o;2118:88::-;2173:7;2191:12;;2184:19;;2118:88;:::o;8697:136::-;8761:7;8787:39;8809:16;:14;:16::i;:::-;8787:9;:17;8797:6;8787:17;;;;;;;;;;;;;;;;:21;;:39;;;;:::i;:::-;8780:46;;8697:136;;;:::o;3170:263::-;3270:4;3304:10;3294:20;;:6;:20;;;3286:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;3386:40;3400:6;3408:9;3419:6;3386:13;:40::i;:::-;3379:47;;3170:263;;;;;:::o;9049:82::-;9091:7;9117;;9110:14;;9049:82;:::o;1388:27::-;;;;:::o;2638:90::-;2688:5;2638:90;:::o;1421:26::-;;;;:::o;9586:669::-;836:12:5;:10;:12::i;:::-;826:22;;:6;;;;;;;;;;:22;;;818:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9701:6:4::1;;;;;;;;;;;9682:25;;:15;:25;;;;:61;;;;;9730:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9711:32;;:15;:32;;;;9682:61;9674:107;;;;;;;;;;;;:::i;:::-;;;;;;;;;9831:11;9852:15;9845:33;;;9887:4;9845:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9831:62;;9917:1;9911:3;:7;9903:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;9989:12;10004:21;9989:36;;10066:37;10082:15;10099:3;10066:15;:37::i;:::-;10143:11;10157:31;10183:4;10157:21;:25;;:31;;;;:::i;:::-;10143:45;;10208:1;10202:3;:7;10198:51;;;10225:13;10234:3;10225:8;:13::i;:::-;10198:51;9664:591;;;9586:669:::0;:::o;2211:105::-;2277:7;2295:9;:18;2305:7;2295:18;;;;;;;;;;;;;;;;2288:25;;2211:105;;;:::o;1245:145:5:-;836:12;:10;:12::i;:::-;826:22;;:6;;;;;;;;;;:22;;;818:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1351:1:::1;1314:40;;1335:6;::::0;::::1;;;;;;;;1314:40;;;;;;;;;;;;1381:1;1364:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1245:145::o:0;622:77::-;660:7;686:6;;;;;;;;;;;679:13;;622:77;:::o;9156:80:4:-;9197:7;9223:6;;9216:13;;9156:80;:::o;8884:139::-;836:12:5;:10;:12::i;:::-;826:22;;:6;;;;;;;;;;:22;;;818:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9002:13:4::1;8974:6;;:42;;;;;;;;;;;;;;;;;;8884:139:::0;:::o;2547:85::-;2586:13;2618:7;2611:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2547:85;:::o;9266:90::-;9312:7;9338:11;;9331:18;;9266:90;:::o;8493:129::-;8551:7;8583:6;;;;;;;;;;;8576:24;;;8609:4;8576:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8569:46;;8493:129;:::o;2235:287:5:-;2304:10;2286:28;;:14;;;;;;;;;;;:28;;;2278:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;2390:9;;2372:15;:27;2364:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;2467:14;;;;;;;;;;;2438:44;;2459:6;;;;;;;;;;2438:44;;;;;;;;;;;;2501:14;;;;;;;;;;;2492:6;;:23;;;;;;;;;;;;;;;;;;2235:287::o;2981:154:4:-;3061:4;3084:44;3098:10;3110:9;3121:6;3084:13;:44::i;:::-;3077:51;;2981:154;;;;:::o;1453:31::-;;;;:::o;1785:87:5:-;1830:7;1856:9;;1849:16;;1785:87;:::o;8041:182:4:-;8088:7;8107:20;8137:6;;;;;;;;;;;8130:24;;;8163:4;8130:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8107:62;;8186:30;8203:12;;8186;:16;;:30;;;;:::i;:::-;8179:37;;;8041:182;:::o;9391:118::-;9430:7;9439;9448;9475:6;;9482:7;;9490:11;;9467:35;;;;;;9391:118;;;:::o;1945:221:5:-;836:12;:10;:12::i;:::-;826:22;;:6;;;;;;;;;;:22;;;818:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2025:6:::1;::::0;::::1;;;;;;;;2008:14;;:23;;;;;;;;;;;;;;;;;;2058:1;2041:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2100:4;2082:15;:22;;;;:::i;:::-;2070:9;:34;;;;2156:1;2119:40;;2140:6;::::0;::::1;;;;;;;;2119:40;;;;;;;;;;;;1945:221:::0;:::o;2321:133:4:-;2405:7;2423:11;:19;2435:6;2423:19;;;;;;;;;;;;;;;:28;2443:7;2423:28;;;;;;;;;;;;;;;;2416:35;;2321:133;;;;:::o;6097:1020::-;6148:4;6243:11;6218:9;:21;6228:10;6218:21;;;;;;;;;;;;;;;;:36;;6210:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;6356:20;6379:35;6408:5;6379:24;6395:7;;6379:11;:15;;:24;;;;:::i;:::-;:28;;:35;;;;:::i;:::-;6356:58;;6469:19;6491:34;6508:16;:14;:16::i;:::-;6491:12;:16;;:34;;;;:::i;:::-;6469:56;;6568:15;6593:6;;;;;;;;;;;6586:23;;;6610:10;6622:11;6586:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6568:66;;6648:10;6644:383;;;6746:82;6772:11;6746:82;;;;;;;;;;;;;;;;;:9;:21;6756:10;6746:21;;;;;;;;;;;;;;;;:25;;:82;;;;;:::i;:::-;6722:9;:21;6732:10;6722:21;;;;;;;;;;;;;;;:106;;;;6913:64;6930:11;6913:64;;;;;;;;;;;;;;;;;:12;;:16;;:64;;;;;:::i;:::-;6898:12;:79;;;;6644:383;;;7008:8;;;6644:383;7070:4;7041:48;;7050:10;7041:48;;;7077:11;7041:48;;;;;;:::i;:::-;;;;;;;;7106:4;7099:11;;;;;6097:1020;;;:::o;959:21::-;;;;;;;;;;;;;:::o;1539:240:5:-;836:12;:10;:12::i;:::-;826:22;;:6;;;;;;;;;;:22;;;818:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1647:1:::1;1627:22;;:8;:22;;;;1619:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1736:8;1707:38;;1728:6;::::0;::::1;;;;;;;;1707:38;;;;;;;;;;;;1764:8;1755:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1539:240:::0;:::o;1180:187:7:-;1266:7;1298:1;1293;:6;;1301:12;1285:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1324:9;1340:1;1336;:5;;;;:::i;:::-;1324:17;;1359:1;1352:8;;;1180:187;;;;;:::o;7191:344:4:-;7243:21;7281:1;7267:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7243:40;;7303:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7293:4;7298:1;7293:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;7336:6;;;;;;;;;;;7326:4;7331:1;7326:7;;;;;;;;:::i;:::-;;;;;;;:16;;;;;;;;;;;7357:6;;;;;;;;;;;:28;;;7393:6;7414:1;7429:4;7455;7474:23;7494:2;7474:15;:19;;:23;;;;:::i;:::-;7357:150;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;7353:175;;7518:8;;;7353:175;;7233:302;7191:344;:::o;755:134:7:-;813:7;839:43;843:1;846;839:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;832:50;;755:134;;;;:::o;308:176::-;366:7;385:9;401:1;397;:5;;;;:::i;:::-;385:17;;425:1;420;:6;;412:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;476:1;469:8;;;308:176;;;;:::o;1614:459::-;1672:7;1918:1;1913;:6;1909:45;;;1942:1;1935:8;;;;1909:45;1964:9;1980:1;1976;:5;;;;:::i;:::-;1964:17;;2008:1;2003;1999;:5;;;;:::i;:::-;:10;1991:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2065:1;2058:8;;;1614:459;;;;;:::o;2535:130::-;2593:7;2619:39;2623:1;2626;2619:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2612:46;;2535:130;;;;:::o;8278:172:4:-;8363:31;8387:6;8363:9;:19;8373:8;8363:19;;;;;;;;;;;;;;;;:23;;:31;;;;:::i;:::-;8341:9;:19;8351:8;8341:19;;;;;;;;;;;;;;;:53;;;;8419:24;8436:6;8419:12;;:16;;:24;;;;:::i;:::-;8404:12;:39;;;;8278:172;;:::o;3468:853::-;3560:4;3637:1;3616:23;;:9;:23;;;;3608:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;3706:1;3697:6;:10;3689:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;3827:15;3845:34;3873:5;3845:23;3856:11;;3845:6;:10;;:23;;;;:::i;:::-;:27;;:34;;;;:::i;:::-;3827:52;;3889:11;3903:19;3914:7;3903:6;:10;;:19;;;;:::i;:::-;3889:33;;3984:53;4006:6;3984:53;;;;;;;;;;;;;;;;;:9;:17;3994:6;3984:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;3964:9;:17;3974:6;3964:17;;;;;;;;;;;;;;;:73;;;;4113:33;4138:7;4113:9;:20;4123:9;4113:20;;;;;;;;;;;;;;;;:24;;:33;;;;:::i;:::-;4090:9;:20;4100:9;4090:20;;;;;;;;;;;;;;;:56;;;;4195:21;4212:3;4195:12;;:16;;:21;;;;:::i;:::-;4180:12;:36;;;;4274:9;4257:36;;4266:6;4257:36;;;4285:7;4257:36;;;;;;:::i;:::-;;;;;;;;4310:4;4303:11;;;;3468:853;;;;;:::o;88:113:1:-;141:15;183:10;168:26;;88:113;:::o;7619:366:4:-;7692:21;7730:1;7716:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7692:40;;7752:6;7742:4;7747:1;7742:7;;;;;;;;:::i;:::-;;;;;;;:16;;;;;;;;;;;7778:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7768:4;7773:1;7768:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;7806:6;;;;;;;;;;;:28;;;7848:3;7865:1;7880:4;7906;7925:23;7945:2;7925:15;:19;;:23;;;;:::i;:::-;7806:152;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;7802:177;;7969:8;;;7802:177;;7681:304;7619:366;;:::o;3147:272:7:-;3233:7;3264:1;3260;:5;3267:12;3252:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3290:9;3306:1;3302;:5;;;;:::i;:::-;3290:17;;3411:1;3404:8;;;3147:272;;;;;:::o;24:744:8:-;131:5;156:81;172:64;229:6;172:64;:::i;:::-;156:81;:::i;:::-;147:90;;257:5;286:6;279:5;272:21;320:4;313:5;309:16;302:23;;346:6;396:3;388:4;380:6;376:17;371:3;367:27;364:36;361:2;;;415:79;;:::i;:::-;361:2;528:1;513:249;538:6;535:1;532:13;513:249;;;606:3;635:48;679:3;667:10;635:48;:::i;:::-;630:3;623:61;713:4;708:3;704:14;697:21;;747:4;742:3;738:14;731:21;;573:189;560:1;557;553:9;548:14;;513:249;;;517:14;137:631;;;;;;;:::o;774:139::-;820:5;858:6;845:20;836:29;;874:33;901:5;874:33;:::i;:::-;826:87;;;;:::o;919:143::-;976:5;1007:6;1001:13;992:22;;1023:33;1050:5;1023:33;:::i;:::-;982:80;;;;:::o;1085:385::-;1167:5;1216:3;1209:4;1201:6;1197:17;1193:27;1183:2;;1224:79;;:::i;:::-;1183:2;1334:6;1328:13;1359:105;1460:3;1452:6;1445:4;1437:6;1433:17;1359:105;:::i;:::-;1350:114;;1173:297;;;;;:::o;1476:137::-;1530:5;1561:6;1555:13;1546:22;;1577:30;1601:5;1577:30;:::i;:::-;1536:77;;;;:::o;1619:139::-;1665:5;1703:6;1690:20;1681:29;;1719:33;1746:5;1719:33;:::i;:::-;1671:87;;;;:::o;1764:143::-;1821:5;1852:6;1846:13;1837:22;;1868:33;1895:5;1868:33;:::i;:::-;1827:80;;;;:::o;1913:329::-;1972:6;2021:2;2009:9;2000:7;1996:23;1992:32;1989:2;;;2027:79;;:::i;:::-;1989:2;2147:1;2172:53;2217:7;2208:6;2197:9;2193:22;2172:53;:::i;:::-;2162:63;;2118:117;1979:263;;;;:::o;2248:351::-;2318:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:2;;;2373:79;;:::i;:::-;2335:2;2493:1;2518:64;2574:7;2565:6;2554:9;2550:22;2518:64;:::i;:::-;2508:74;;2464:128;2325:274;;;;:::o;2605:474::-;2673:6;2681;2730:2;2718:9;2709:7;2705:23;2701:32;2698:2;;;2736:79;;:::i;:::-;2698:2;2856:1;2881:53;2926:7;2917:6;2906:9;2902:22;2881:53;:::i;:::-;2871:63;;2827:117;2983:2;3009:53;3054:7;3045:6;3034:9;3030:22;3009:53;:::i;:::-;2999:63;;2954:118;2688:391;;;;;:::o;3085:619::-;3162:6;3170;3178;3227:2;3215:9;3206:7;3202:23;3198:32;3195:2;;;3233:79;;:::i;:::-;3195:2;3353:1;3378:53;3423:7;3414:6;3403:9;3399:22;3378:53;:::i;:::-;3368:63;;3324:117;3480:2;3506:53;3551:7;3542:6;3531:9;3527:22;3506:53;:::i;:::-;3496:63;;3451:118;3608:2;3634:53;3679:7;3670:6;3659:9;3655:22;3634:53;:::i;:::-;3624:63;;3579:118;3185:519;;;;;:::o;3710:474::-;3778:6;3786;3835:2;3823:9;3814:7;3810:23;3806:32;3803:2;;;3841:79;;:::i;:::-;3803:2;3961:1;3986:53;4031:7;4022:6;4011:9;4007:22;3986:53;:::i;:::-;3976:63;;3932:117;4088:2;4114:53;4159:7;4150:6;4139:9;4135:22;4114:53;:::i;:::-;4104:63;;4059:118;3793:391;;;;;:::o;4190:554::-;4285:6;4334:2;4322:9;4313:7;4309:23;4305:32;4302:2;;;4340:79;;:::i;:::-;4302:2;4481:1;4470:9;4466:17;4460:24;4511:18;4503:6;4500:30;4497:2;;;4533:79;;:::i;:::-;4497:2;4638:89;4719:7;4710:6;4699:9;4695:22;4638:89;:::i;:::-;4628:99;;4431:306;4292:452;;;;:::o;4750:345::-;4817:6;4866:2;4854:9;4845:7;4841:23;4837:32;4834:2;;;4872:79;;:::i;:::-;4834:2;4992:1;5017:61;5070:7;5061:6;5050:9;5046:22;5017:61;:::i;:::-;5007:71;;4963:125;4824:271;;;;:::o;5101:329::-;5160:6;5209:2;5197:9;5188:7;5184:23;5180:32;5177:2;;;5215:79;;:::i;:::-;5177:2;5335:1;5360:53;5405:7;5396:6;5385:9;5381:22;5360:53;:::i;:::-;5350:63;;5306:117;5167:263;;;;:::o;5436:351::-;5506:6;5555:2;5543:9;5534:7;5530:23;5526:32;5523:2;;;5561:79;;:::i;:::-;5523:2;5681:1;5706:64;5762:7;5753:6;5742:9;5738:22;5706:64;:::i;:::-;5696:74;;5652:128;5513:274;;;;:::o;5793:179::-;5862:10;5883:46;5925:3;5917:6;5883:46;:::i;:::-;5961:4;5956:3;5952:14;5938:28;;5873:99;;;;:::o;5978:108::-;6055:24;6073:5;6055:24;:::i;:::-;6050:3;6043:37;6033:53;;:::o;6092:118::-;6179:24;6197:5;6179:24;:::i;:::-;6174:3;6167:37;6157:53;;:::o;6246:732::-;6365:3;6394:54;6442:5;6394:54;:::i;:::-;6464:86;6543:6;6538:3;6464:86;:::i;:::-;6457:93;;6574:56;6624:5;6574:56;:::i;:::-;6653:7;6684:1;6669:284;6694:6;6691:1;6688:13;6669:284;;;6770:6;6764:13;6797:63;6856:3;6841:13;6797:63;:::i;:::-;6790:70;;6883:60;6936:6;6883:60;:::i;:::-;6873:70;;6729:224;6716:1;6713;6709:9;6704:14;;6669:284;;;6673:14;6969:3;6962:10;;6370:608;;;;;;;:::o;6984:109::-;7065:21;7080:5;7065:21;:::i;:::-;7060:3;7053:34;7043:50;;:::o;7099:147::-;7194:45;7233:5;7194:45;:::i;:::-;7189:3;7182:58;7172:74;;:::o;7252:364::-;7340:3;7368:39;7401:5;7368:39;:::i;:::-;7423:71;7487:6;7482:3;7423:71;:::i;:::-;7416:78;;7503:52;7548:6;7543:3;7536:4;7529:5;7525:16;7503:52;:::i;:::-;7580:29;7602:6;7580:29;:::i;:::-;7575:3;7571:39;7564:46;;7344:272;;;;;:::o;7622:366::-;7764:3;7785:67;7849:2;7844:3;7785:67;:::i;:::-;7778:74;;7861:93;7950:3;7861:93;:::i;:::-;7979:2;7974:3;7970:12;7963:19;;7768:220;;;:::o;7994:366::-;8136:3;8157:67;8221:2;8216:3;8157:67;:::i;:::-;8150:74;;8233:93;8322:3;8233:93;:::i;:::-;8351:2;8346:3;8342:12;8335:19;;8140:220;;;:::o;8366:366::-;8508:3;8529:67;8593:2;8588:3;8529:67;:::i;:::-;8522:74;;8605:93;8694:3;8605:93;:::i;:::-;8723:2;8718:3;8714:12;8707:19;;8512:220;;;:::o;8738:366::-;8880:3;8901:67;8965:2;8960:3;8901:67;:::i;:::-;8894:74;;8977:93;9066:3;8977:93;:::i;:::-;9095:2;9090:3;9086:12;9079:19;;8884:220;;;:::o;9110:366::-;9252:3;9273:67;9337:2;9332:3;9273:67;:::i;:::-;9266:74;;9349:93;9438:3;9349:93;:::i;:::-;9467:2;9462:3;9458:12;9451:19;;9256:220;;;:::o;9482:366::-;9624:3;9645:67;9709:2;9704:3;9645:67;:::i;:::-;9638:74;;9721:93;9810:3;9721:93;:::i;:::-;9839:2;9834:3;9830:12;9823:19;;9628:220;;;:::o;9854:366::-;9996:3;10017:67;10081:2;10076:3;10017:67;:::i;:::-;10010:74;;10093:93;10182:3;10093:93;:::i;:::-;10211:2;10206:3;10202:12;10195:19;;10000:220;;;:::o;10226:366::-;10368:3;10389:67;10453:2;10448:3;10389:67;:::i;:::-;10382:74;;10465:93;10554:3;10465:93;:::i;:::-;10583:2;10578:3;10574:12;10567:19;;10372:220;;;:::o;10598:366::-;10740:3;10761:67;10825:2;10820:3;10761:67;:::i;:::-;10754:74;;10837:93;10926:3;10837:93;:::i;:::-;10955:2;10950:3;10946:12;10939:19;;10744:220;;;:::o;10970:366::-;11112:3;11133:67;11197:2;11192:3;11133:67;:::i;:::-;11126:74;;11209:93;11298:3;11209:93;:::i;:::-;11327:2;11322:3;11318:12;11311:19;;11116:220;;;:::o;11342:366::-;11484:3;11505:67;11569:2;11564:3;11505:67;:::i;:::-;11498:74;;11581:93;11670:3;11581:93;:::i;:::-;11699:2;11694:3;11690:12;11683:19;;11488:220;;;:::o;11714:366::-;11856:3;11877:67;11941:2;11936:3;11877:67;:::i;:::-;11870:74;;11953:93;12042:3;11953:93;:::i;:::-;12071:2;12066:3;12062:12;12055:19;;11860:220;;;:::o;12086:366::-;12228:3;12249:67;12313:2;12308:3;12249:67;:::i;:::-;12242:74;;12325:93;12414:3;12325:93;:::i;:::-;12443:2;12438:3;12434:12;12427:19;;12232:220;;;:::o;12458:366::-;12600:3;12621:67;12685:2;12680:3;12621:67;:::i;:::-;12614:74;;12697:93;12786:3;12697:93;:::i;:::-;12815:2;12810:3;12806:12;12799:19;;12604:220;;;:::o;12830:118::-;12917:24;12935:5;12917:24;:::i;:::-;12912:3;12905:37;12895:53;;:::o;12954:112::-;13037:22;13053:5;13037:22;:::i;:::-;13032:3;13025:35;13015:51;;:::o;13072:222::-;13165:4;13203:2;13192:9;13188:18;13180:26;;13216:71;13284:1;13273:9;13269:17;13260:6;13216:71;:::i;:::-;13170:124;;;;:::o;13300:332::-;13421:4;13459:2;13448:9;13444:18;13436:26;;13472:71;13540:1;13529:9;13525:17;13516:6;13472:71;:::i;:::-;13553:72;13621:2;13610:9;13606:18;13597:6;13553:72;:::i;:::-;13426:206;;;;;:::o;13638:210::-;13725:4;13763:2;13752:9;13748:18;13740:26;;13776:65;13838:1;13827:9;13823:17;13814:6;13776:65;:::i;:::-;13730:118;;;;:::o;13854:720::-;14089:4;14127:3;14116:9;14112:19;14104:27;;14141:79;14217:1;14206:9;14202:17;14193:6;14141:79;:::i;:::-;14267:9;14261:4;14257:20;14252:2;14241:9;14237:18;14230:48;14295:108;14398:4;14389:6;14295:108;:::i;:::-;14287:116;;14413:72;14481:2;14470:9;14466:18;14457:6;14413:72;:::i;:::-;14495;14563:2;14552:9;14548:18;14539:6;14495:72;:::i;:::-;14094:480;;;;;;;:::o;14580:313::-;14693:4;14731:2;14720:9;14716:18;14708:26;;14780:9;14774:4;14770:20;14766:1;14755:9;14751:17;14744:47;14808:78;14881:4;14872:6;14808:78;:::i;:::-;14800:86;;14698:195;;;;:::o;14899:419::-;15065:4;15103:2;15092:9;15088:18;15080:26;;15152:9;15146:4;15142:20;15138:1;15127:9;15123:17;15116:47;15180:131;15306:4;15180:131;:::i;:::-;15172:139;;15070:248;;;:::o;15324:419::-;15490:4;15528:2;15517:9;15513:18;15505:26;;15577:9;15571:4;15567:20;15563:1;15552:9;15548:17;15541:47;15605:131;15731:4;15605:131;:::i;:::-;15597:139;;15495:248;;;:::o;15749:419::-;15915:4;15953:2;15942:9;15938:18;15930:26;;16002:9;15996:4;15992:20;15988:1;15977:9;15973:17;15966:47;16030:131;16156:4;16030:131;:::i;:::-;16022:139;;15920:248;;;:::o;16174:419::-;16340:4;16378:2;16367:9;16363:18;16355:26;;16427:9;16421:4;16417:20;16413:1;16402:9;16398:17;16391:47;16455:131;16581:4;16455:131;:::i;:::-;16447:139;;16345:248;;;:::o;16599:419::-;16765:4;16803:2;16792:9;16788:18;16780:26;;16852:9;16846:4;16842:20;16838:1;16827:9;16823:17;16816:47;16880:131;17006:4;16880:131;:::i;:::-;16872:139;;16770:248;;;:::o;17024:419::-;17190:4;17228:2;17217:9;17213:18;17205:26;;17277:9;17271:4;17267:20;17263:1;17252:9;17248:17;17241:47;17305:131;17431:4;17305:131;:::i;:::-;17297:139;;17195:248;;;:::o;17449:419::-;17615:4;17653:2;17642:9;17638:18;17630:26;;17702:9;17696:4;17692:20;17688:1;17677:9;17673:17;17666:47;17730:131;17856:4;17730:131;:::i;:::-;17722:139;;17620:248;;;:::o;17874:419::-;18040:4;18078:2;18067:9;18063:18;18055:26;;18127:9;18121:4;18117:20;18113:1;18102:9;18098:17;18091:47;18155:131;18281:4;18155:131;:::i;:::-;18147:139;;18045:248;;;:::o;18299:419::-;18465:4;18503:2;18492:9;18488:18;18480:26;;18552:9;18546:4;18542:20;18538:1;18527:9;18523:17;18516:47;18580:131;18706:4;18580:131;:::i;:::-;18572:139;;18470:248;;;:::o;18724:419::-;18890:4;18928:2;18917:9;18913:18;18905:26;;18977:9;18971:4;18967:20;18963:1;18952:9;18948:17;18941:47;19005:131;19131:4;19005:131;:::i;:::-;18997:139;;18895:248;;;:::o;19149:419::-;19315:4;19353:2;19342:9;19338:18;19330:26;;19402:9;19396:4;19392:20;19388:1;19377:9;19373:17;19366:47;19430:131;19556:4;19430:131;:::i;:::-;19422:139;;19320:248;;;:::o;19574:419::-;19740:4;19778:2;19767:9;19763:18;19755:26;;19827:9;19821:4;19817:20;19813:1;19802:9;19798:17;19791:47;19855:131;19981:4;19855:131;:::i;:::-;19847:139;;19745:248;;;:::o;19999:419::-;20165:4;20203:2;20192:9;20188:18;20180:26;;20252:9;20246:4;20242:20;20238:1;20227:9;20223:17;20216:47;20280:131;20406:4;20280:131;:::i;:::-;20272:139;;20170:248;;;:::o;20424:419::-;20590:4;20628:2;20617:9;20613:18;20605:26;;20677:9;20671:4;20667:20;20663:1;20652:9;20648:17;20641:47;20705:131;20831:4;20705:131;:::i;:::-;20697:139;;20595:248;;;:::o;20849:222::-;20942:4;20980:2;20969:9;20965:18;20957:26;;20993:71;21061:1;21050:9;21046:17;21037:6;20993:71;:::i;:::-;20947:124;;;;:::o;21077:831::-;21340:4;21378:3;21367:9;21363:19;21355:27;;21392:71;21460:1;21449:9;21445:17;21436:6;21392:71;:::i;:::-;21473:80;21549:2;21538:9;21534:18;21525:6;21473:80;:::i;:::-;21600:9;21594:4;21590:20;21585:2;21574:9;21570:18;21563:48;21628:108;21731:4;21722:6;21628:108;:::i;:::-;21620:116;;21746:72;21814:2;21803:9;21799:18;21790:6;21746:72;:::i;:::-;21828:73;21896:3;21885:9;21881:19;21872:6;21828:73;:::i;:::-;21345:563;;;;;;;;:::o;21914:442::-;22063:4;22101:2;22090:9;22086:18;22078:26;;22114:71;22182:1;22171:9;22167:17;22158:6;22114:71;:::i;:::-;22195:72;22263:2;22252:9;22248:18;22239:6;22195:72;:::i;:::-;22277;22345:2;22334:9;22330:18;22321:6;22277:72;:::i;:::-;22068:288;;;;;;:::o;22362:214::-;22451:4;22489:2;22478:9;22474:18;22466:26;;22502:67;22566:1;22555:9;22551:17;22542:6;22502:67;:::i;:::-;22456:120;;;;:::o;22582:129::-;22616:6;22643:20;;:::i;:::-;22633:30;;22672:33;22700:4;22692:6;22672:33;:::i;:::-;22623:88;;;:::o;22717:75::-;22750:6;22783:2;22777:9;22767:19;;22757:35;:::o;22798:311::-;22875:4;22965:18;22957:6;22954:30;22951:2;;;22987:18;;:::i;:::-;22951:2;23037:4;23029:6;23025:17;23017:25;;23097:4;23091;23087:15;23079:23;;22880:229;;;:::o;23115:132::-;23182:4;23205:3;23197:11;;23235:4;23230:3;23226:14;23218:22;;23187:60;;;:::o;23253:114::-;23320:6;23354:5;23348:12;23338:22;;23327:40;;;:::o;23373:99::-;23425:6;23459:5;23453:12;23443:22;;23432:40;;;:::o;23478:113::-;23548:4;23580;23575:3;23571:14;23563:22;;23553:38;;;:::o;23597:184::-;23696:11;23730:6;23725:3;23718:19;23770:4;23765:3;23761:14;23746:29;;23708:73;;;;:::o;23787:169::-;23871:11;23905:6;23900:3;23893:19;23945:4;23940:3;23936:14;23921:29;;23883:73;;;;:::o;23962:305::-;24002:3;24021:20;24039:1;24021:20;:::i;:::-;24016:25;;24055:20;24073:1;24055:20;:::i;:::-;24050:25;;24209:1;24141:66;24137:74;24134:1;24131:81;24128:2;;;24215:18;;:::i;:::-;24128:2;24259:1;24256;24252:9;24245:16;;24006:261;;;;:::o;24273:185::-;24313:1;24330:20;24348:1;24330:20;:::i;:::-;24325:25;;24364:20;24382:1;24364:20;:::i;:::-;24359:25;;24403:1;24393:2;;24408:18;;:::i;:::-;24393:2;24450:1;24447;24443:9;24438:14;;24315:143;;;;:::o;24464:348::-;24504:7;24527:20;24545:1;24527:20;:::i;:::-;24522:25;;24561:20;24579:1;24561:20;:::i;:::-;24556:25;;24749:1;24681:66;24677:74;24674:1;24671:81;24666:1;24659:9;24652:17;24648:105;24645:2;;;24756:18;;:::i;:::-;24645:2;24804:1;24801;24797:9;24786:20;;24512:300;;;;:::o;24818:191::-;24858:4;24878:20;24896:1;24878:20;:::i;:::-;24873:25;;24912:20;24930:1;24912:20;:::i;:::-;24907:25;;24951:1;24948;24945:8;24942:2;;;24956:18;;:::i;:::-;24942:2;25001:1;24998;24994:9;24986:17;;24863:146;;;;:::o;25015:96::-;25052:7;25081:24;25099:5;25081:24;:::i;:::-;25070:35;;25060:51;;;:::o;25117:90::-;25151:7;25194:5;25187:13;25180:21;25169:32;;25159:48;;;:::o;25213:126::-;25250:7;25290:42;25283:5;25279:54;25268:65;;25258:81;;;:::o;25345:77::-;25382:7;25411:5;25400:16;;25390:32;;;:::o;25428:86::-;25463:7;25503:4;25496:5;25492:16;25481:27;;25471:43;;;:::o;25520:121::-;25578:9;25611:24;25629:5;25611:24;:::i;:::-;25598:37;;25588:53;;;:::o;25647:307::-;25715:1;25725:113;25739:6;25736:1;25733:13;25725:113;;;25824:1;25819:3;25815:11;25809:18;25805:1;25800:3;25796:11;25789:39;25761:2;25758:1;25754:10;25749:15;;25725:113;;;25856:6;25853:1;25850:13;25847:2;;;25936:1;25927:6;25922:3;25918:16;25911:27;25847:2;25696:258;;;;:::o;25960:320::-;26004:6;26041:1;26035:4;26031:12;26021:22;;26088:1;26082:4;26078:12;26109:18;26099:2;;26165:4;26157:6;26153:17;26143:27;;26099:2;26227;26219:6;26216:14;26196:18;26193:38;26190:2;;;26246:18;;:::i;:::-;26190:2;26011:269;;;;:::o;26286:281::-;26369:27;26391:4;26369:27;:::i;:::-;26361:6;26357:40;26499:6;26487:10;26484:22;26463:18;26451:10;26448:34;26445:62;26442:2;;;26510:18;;:::i;:::-;26442:2;26550:10;26546:2;26539:22;26329:238;;;:::o;26573:180::-;26621:77;26618:1;26611:88;26718:4;26715:1;26708:15;26742:4;26739:1;26732:15;26759:180;26807:77;26804:1;26797:88;26904:4;26901:1;26894:15;26928:4;26925:1;26918:15;26945:180;26993:77;26990:1;26983:88;27090:4;27087:1;27080:15;27114:4;27111:1;27104:15;27131:180;27179:77;27176:1;27169:88;27276:4;27273:1;27266:15;27300:4;27297:1;27290:15;27317:180;27365:77;27362:1;27355:88;27462:4;27459:1;27452:15;27486:4;27483:1;27476:15;27503:117;27612:1;27609;27602:12;27626:117;27735:1;27732;27725:12;27749:117;27858:1;27855;27848:12;27872:117;27981:1;27978;27971:12;27995:102;28036:6;28087:2;28083:7;28078:2;28071:5;28067:14;28063:28;28053:38;;28043:54;;;:::o;28103:237::-;28243:34;28239:1;28231:6;28227:14;28220:58;28312:20;28307:2;28299:6;28295:15;28288:45;28209:131;:::o;28346:225::-;28486:34;28482:1;28474:6;28470:14;28463:58;28555:8;28550:2;28542:6;28538:15;28531:33;28452:119;:::o;28577:177::-;28717:29;28713:1;28705:6;28701:14;28694:53;28683:71;:::o;28760:174::-;28900:26;28896:1;28888:6;28884:14;28877:50;28866:68;:::o;28940:180::-;29080:32;29076:1;29068:6;29064:14;29057:56;29046:74;:::o;29126:177::-;29266:29;29262:1;29254:6;29250:14;29243:53;29232:71;:::o;29309:182::-;29449:34;29445:1;29437:6;29433:14;29426:58;29415:76;:::o;29497:220::-;29637:34;29633:1;29625:6;29621:14;29614:58;29706:3;29701:2;29693:6;29689:15;29682:28;29603:114;:::o;29723:182::-;29863:34;29859:1;29851:6;29847:14;29840:58;29829:76;:::o;29911:228::-;30051:34;30047:1;30039:6;30035:14;30028:58;30120:11;30115:2;30107:6;30103:15;30096:36;30017:122;:::o;30145:222::-;30285:34;30281:1;30273:6;30269:14;30262:58;30354:5;30349:2;30341:6;30337:15;30330:30;30251:116;:::o;30373:220::-;30513:34;30509:1;30501:6;30497:14;30490:58;30582:3;30577:2;30569:6;30565:15;30558:28;30479:114;:::o;30599:168::-;30739:20;30735:1;30727:6;30723:14;30716:44;30705:62;:::o;30773:222::-;30913:34;30909:1;30901:6;30897:14;30890:58;30982:5;30977:2;30969:6;30965:15;30958:30;30879:116;:::o;31001:122::-;31074:24;31092:5;31074:24;:::i;:::-;31067:5;31064:35;31054:2;;31113:1;31110;31103:12;31054:2;31044:79;:::o;31129:116::-;31199:21;31214:5;31199:21;:::i;:::-;31192:5;31189:32;31179:2;;31235:1;31232;31225:12;31179:2;31169:76;:::o;31251:122::-;31324:24;31342:5;31324:24;:::i;:::-;31317:5;31314:35;31304:2;;31363:1;31360;31353:12;31304:2;31294:79;:::o

Swarm Source

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