Contract 0x30d70c93c4163f64dae04ae8609a73c4a8f14dc6

 

Contract Overview

Balance:
0 BNB

BNB Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x9575b776e8cc983fa600f2514b12843346847566b2f74e2ac4d5b5f2d80a34a0Approve128732232021-11-22 22:09:1514 days 10 hrs ago0xf0dddfdbb6c1595aa846b32616afdc5679c74c85 IN  0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60 BNB0.000222145
0x1d6ffa545118e73cb0fa4f122c7fd6f2bc58089d5fe823d4f2b68dc7798a41f0Set Tx Limit116940532021-10-12 0:42:4656 days 7 hrs ago0xd5dddab894dbb70e7cbc8a708192eabf939dad6b IN  0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60 BNB0.000142795
0x304e9ae536dd681fdbb188227e563b2222a8a0f0322366c6e54363118352dd6dSet Max Wallet116940502021-10-12 0:42:3756 days 7 hrs ago0xd5dddab894dbb70e7cbc8a708192eabf939dad6b IN  0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60 BNB0.000142365
0xf17980db4a3455c4f6ec9d7f749711b1ae0edbd7f91f295da922595ce5206984Manual Send114926352021-10-04 23:49:5563 days 8 hrs ago0xd5dddab894dbb70e7cbc8a708192eabf939dad6b IN  0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60 BNB0.00015265
0x1e661388944f60ac12e67a880dacde6444e21c1dfd4bbd3dbaef6313b80d6a28Approve114241512021-10-02 14:30:0165 days 17 hrs ago0x680812d0ae15f872dccc1ef2205d8ea8cb0dbde4 IN  0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60 BNB0.000222145
0x335c4de2a8db57c9ff1e7917986e7d64d001e3950fa04368b6ae3e3f14a0c5d8Approve114239552021-10-02 14:20:1365 days 18 hrs ago0x974d2dbc805acd5e3801b32312eb81adab07920d IN  0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60 BNB0.000222145
0x4501e7261252b3d2fed4965bdbc8a4e5cedc31105f549709555da6cb2fe06fbdApprove113414042021-09-29 16:47:0968 days 15 hrs ago0x13274a88e0b9634442b6d4eee7cf0177aa58c6b1 IN  0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60 BNB0.000222145
0xdd32de865bd8de1d454c4d266f7d5b1d217f96bd42e16cb4dc4deef0a7d8cb7cApprove113388672021-09-29 14:39:5068 days 17 hrs ago0xb5c15fe04b64aeba00829e037e91febf3465c8bf IN  0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60 BNB0.000266574
0x420f6cf3f89f150c90f9f10d7a5300f3472e8dcd22e807211b29e7263eba8f06Approve113286912021-09-29 6:05:1369 days 2 hrs ago0xc4e7538539be71e9358cea176c0c859b844c905b IN  0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60 BNB0.000222145
0xe5b87bef7827e179bbc8b369cc78f9a9b998caf667d6597409247d2c61454771Approve112569792021-09-26 17:40:4571 days 14 hrs ago0x666acf61b9f1df4e20242a68c5745a3a39cf5ac2 IN  0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60 BNB0.000266574
0xe46c88a942ca8cb5a02c6f6a71737bfd2fac324f2bea8fbfe311458fa5ad50c8Approve112569532021-09-26 17:39:2771 days 14 hrs ago0x48931ba9228b7996cba6c53e77707381b8caeff2 IN  0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60 BNB0.000266574
0x1996090a780cb3cbe8ad25af94fc2c58fd2ba51855290fd22898b72b9ada874eApprove110559942021-09-19 17:17:5078 days 15 hrs ago0xe233a3548f3d361188a38d0e124597c418fe944a IN  0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60 BNB0.000222145
0x077495f56da1cb02832d903def79c5b144ce9dbc7e5c13be5ff18ab9bd338e8eApprove110512082021-09-19 13:18:3078 days 19 hrs ago0x19024d6ebde95cd932e8a033846e81d5d1e7ffb5 IN  0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60 BNB0.000311003
0xb4a93215094429a9bcac475856f4113006829d75f80da8fa4070771264e6cc5bApprove110457432021-09-19 8:31:3878 days 23 hrs ago0xb29f0baa9f750fabd678acc6e0cc5e762ae329fb IN  0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60 BNB0.000222145
0xf1bf71122af3d5be09f37f9cca5dd8ed696efdd3e1a23bcdf220c8dc6fadb888Approve110333732021-09-18 22:12:0779 days 10 hrs ago0x09044cb16ff68ac289b1d272f24bc1d7dc0910fe IN  0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60 BNB0.000222145
0xceecca918318434f03130335299a374be0d8e869d6a876b638d49b127338ee5cApprove109832162021-09-17 4:18:3981 days 4 hrs ago0x8cc7bc33f5188b1fb683bedc4dbffa77b136833b IN  0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60 BNB0.000124705
0xc9a074ebd24d554f7ce03677ddbea53c79bca70024ae1a0004fa5b436cf03c88Approve109832122021-09-17 4:18:2781 days 4 hrs ago0x8cc7bc33f5188b1fb683bedc4dbffa77b136833b IN  0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60 BNB0.000220705
0x1c9bd996096e2ac68932b7123efce82163ceb46edb224c134ddd2e974ded56cbApprove109507692021-09-16 1:13:0282 days 7 hrs ago0x87c43883c27a739bcbf76b799774f2f6bfbf147b IN  0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60 BNB0.000072615
0xb9958b4b2ff552a1a6800f5cda6a8322f0aa3f4bebf5f90a18210d34029ee8c2Approve109493492021-09-16 0:02:0282 days 8 hrs ago0x0aa08c0fe177dc3af3d14b702f64d4482cec25a4 IN  0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60 BNB0.000222145
0x2c8b0d6b39fcd71cf70e7c6591085b8694981e94c0fd72a8d5444bae5eb01f88Approve109311542021-09-15 8:50:1082 days 23 hrs ago0xebebc2843c4273fe43cdd95605908ee046f7abf6 IN  0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60 BNB0.000222145
0xc54301670b1766ea633c5bf7c2d03f5342d0b0dc8245fd18f66b60eeca347ee4Approve109227302021-09-15 1:44:4183 days 6 hrs ago0x4b4c132c9774176e01815badfe9e55cbd3ebb86e IN  0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60 BNB0.000222145
0xfedcbd8759a5587c1470d6f6ffeffd75768aa1095487c11371b6a9132e23117cApprove109061482021-09-14 11:52:5583 days 20 hrs ago0x8a9bd1ea3a5a0e5af8df4b20c4c74a302db70668 IN  0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60 BNB0.000222145
0x2efdd5e9db30cd7c8bf0766dea9a7cbace64dce71b00e576a75df2a5879310b1Approve108835562021-09-13 17:02:2184 days 15 hrs ago0x877074b0e2517f40e94127fd392bb747f8a317be IN  0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60 BNB0.000222145
0x51fd74a396bf14d21d71e130e614d4e9b058bf86366da185451642ff8c014953Approve108809702021-09-13 14:53:0084 days 17 hrs ago0xed163360d3c814dd1995932fa542d0e75648a3e9 IN  0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60 BNB0.000222145
0xf3c28eace0fc9669c32e51528daf13bc375ce7a544548d618da277405e0dc882Approve108733702021-09-13 8:30:2184 days 23 hrs ago0x6f99d35164d0483a1056fb1d932cd2325a4587e4 IN  0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60 BNB0.000222145
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xf17980db4a3455c4f6ec9d7f749711b1ae0edbd7f91f295da922595ce5206984114926352021-10-04 23:49:5563 days 8 hrs ago 0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60x787a4fa1ca7037a9c78be320279d82b17b2582660.081151080177735998 BNB
0xd21fa158dbea6c071a24ba5fe8b82784e7fd0f84a767d936f54913ac9f9967a3114343512021-10-02 23:06:4265 days 9 hrs ago PancakeSwap: Router v2 0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60.000010390491918021 BNB
0xd21fa158dbea6c071a24ba5fe8b82784e7fd0f84a767d936f54913ac9f9967a3114343512021-10-02 23:06:4265 days 9 hrs ago 0x30d70c93c4163f64dae04ae8609a73c4a8f14dc6 PancakeSwap: Router v20.002785114638012254 BNB
0xd21fa158dbea6c071a24ba5fe8b82784e7fd0f84a767d936f54913ac9f9967a3114343512021-10-02 23:06:4265 days 9 hrs ago 0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60x787a4fa1ca7037a9c78be320279d82b17b2582660.005570229276024508 BNB
0xd21fa158dbea6c071a24ba5fe8b82784e7fd0f84a767d936f54913ac9f9967a3114343512021-10-02 23:06:4265 days 9 hrs ago 0x30d70c93c4163f64dae04ae8609a73c4a8f14dc6 0x1fdfb5138ff5bff2a9a76727b2028c6f9dc0ea020.011140458552049016 BNB
0xd21fa158dbea6c071a24ba5fe8b82784e7fd0f84a767d936f54913ac9f9967a3114343512021-10-02 23:06:4265 days 9 hrs ago PancakeSwap: Router v2 0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60.019495802466085778 BNB
0xc7d773165cfe5d429dde54b662e95d20d6b1355053cdc6a3a93c761393b4ee90114241592021-10-02 14:30:2565 days 17 hrs ago PancakeSwap: Router v2 0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60.000031963111077625 BNB
0xc7d773165cfe5d429dde54b662e95d20d6b1355053cdc6a3a93c761393b4ee90114241592021-10-02 14:30:2565 days 17 hrs ago 0x30d70c93c4163f64dae04ae8609a73c4a8f14dc6 PancakeSwap: Router v20.004473389676667128 BNB
0xc7d773165cfe5d429dde54b662e95d20d6b1355053cdc6a3a93c761393b4ee90114241592021-10-02 14:30:2565 days 17 hrs ago 0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60x787a4fa1ca7037a9c78be320279d82b17b2582660.008946779353334257 BNB
0xc7d773165cfe5d429dde54b662e95d20d6b1355053cdc6a3a93c761393b4ee90114241592021-10-02 14:30:2565 days 17 hrs ago 0x30d70c93c4163f64dae04ae8609a73c4a8f14dc6 0x1fdfb5138ff5bff2a9a76727b2028c6f9dc0ea020.017893558706668514 BNB
0xc7d773165cfe5d429dde54b662e95d20d6b1355053cdc6a3a93c761393b4ee90114241592021-10-02 14:30:2565 days 17 hrs ago PancakeSwap: Router v2 0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60.0313137277366699 BNB
0x38d1d7824693e12565e82ebbf7541a2b838668ba9b6edece6fe17561de6d0e05113962012021-10-01 14:54:0266 days 17 hrs ago PancakeSwap: Router v2 0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60.000010897119493033 BNB
0x38d1d7824693e12565e82ebbf7541a2b838668ba9b6edece6fe17561de6d0e05113962012021-10-01 14:54:0266 days 17 hrs ago 0x30d70c93c4163f64dae04ae8609a73c4a8f14dc6 PancakeSwap: Router v20.002995523898601871 BNB
0x38d1d7824693e12565e82ebbf7541a2b838668ba9b6edece6fe17561de6d0e05113962012021-10-01 14:54:0266 days 17 hrs ago 0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60x787a4fa1ca7037a9c78be320279d82b17b2582660.005991047797203743 BNB
0x38d1d7824693e12565e82ebbf7541a2b838668ba9b6edece6fe17561de6d0e05113962012021-10-01 14:54:0266 days 17 hrs ago 0x30d70c93c4163f64dae04ae8609a73c4a8f14dc6 0x1fdfb5138ff5bff2a9a76727b2028c6f9dc0ea020.011982095594407486 BNB
0x38d1d7824693e12565e82ebbf7541a2b838668ba9b6edece6fe17561de6d0e05113962012021-10-01 14:54:0266 days 17 hrs ago PancakeSwap: Router v2 0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60.020968667290213101 BNB
0x76ed8b80187362d249296910bb3a1253aec0fd9aefdb0682620cb0758bbfe57f113600092021-09-30 8:25:3168 days 2 mins ago PancakeSwap: Router v2 0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60.000003994658375204 BNB
0x76ed8b80187362d249296910bb3a1253aec0fd9aefdb0682620cb0758bbfe57f113600092021-09-30 8:25:3168 days 2 mins ago 0x30d70c93c4163f64dae04ae8609a73c4a8f14dc6 PancakeSwap: Router v20.002183225671446752 BNB
0x76ed8b80187362d249296910bb3a1253aec0fd9aefdb0682620cb0758bbfe57f113600092021-09-30 8:25:3168 days 2 mins ago 0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60x787a4fa1ca7037a9c78be320279d82b17b2582660.004366451342893505 BNB
0x76ed8b80187362d249296910bb3a1253aec0fd9aefdb0682620cb0758bbfe57f113600092021-09-30 8:25:3168 days 2 mins ago 0x30d70c93c4163f64dae04ae8609a73c4a8f14dc6 0x1fdfb5138ff5bff2a9a76727b2028c6f9dc0ea020.00873290268578701 BNB
0x76ed8b80187362d249296910bb3a1253aec0fd9aefdb0682620cb0758bbfe57f113600092021-09-30 8:25:3168 days 2 mins ago PancakeSwap: Router v2 0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60.015282579700127268 BNB
0x6800f724a1cb37f4fa73d5bdeeda4bcc59004f83aab549b432175d8215e8c7f4113388772021-09-29 14:40:2068 days 17 hrs ago PancakeSwap: Router v2 0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60.000002362359758645 BNB
0x6800f724a1cb37f4fa73d5bdeeda4bcc59004f83aab549b432175d8215e8c7f4113388772021-09-29 14:40:2068 days 17 hrs ago 0x30d70c93c4163f64dae04ae8609a73c4a8f14dc6 PancakeSwap: Router v20.00192422630695043 BNB
0x6800f724a1cb37f4fa73d5bdeeda4bcc59004f83aab549b432175d8215e8c7f4113388772021-09-29 14:40:2068 days 17 hrs ago 0x30d70c93c4163f64dae04ae8609a73c4a8f14dc60x787a4fa1ca7037a9c78be320279d82b17b2582660.00384845261390086 BNB
0x6800f724a1cb37f4fa73d5bdeeda4bcc59004f83aab549b432175d8215e8c7f4113388772021-09-29 14:40:2068 days 17 hrs ago 0x30d70c93c4163f64dae04ae8609a73c4a8f14dc6 0x1fdfb5138ff5bff2a9a76727b2028c6f9dc0ea020.007696905227801721 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MechADA

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-09-03
*/

//SPDX-License-Identifier: MIT
//   
/*


Tokenomics: 8% REWARDS 4% Back to Liquidity 4% Marketing
ADA Address : 0x3EE2200Efb3400fAbB9AacF31297cBdD1d435D47
Max wallet 3% of total supply
TG MechADA
*/



pragma solidity ^0.8.5;

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

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

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

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

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        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;
    }
}

/**
 * BEP20 standard interface.
 */
interface IBEP20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}


/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    /**
     * Function modifier to require caller to be contract owner
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    /**
     * Function modifier to require caller to be authorized
     */
    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    /**
     * Authorize address. Owner only
     */
    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    /**
     * Remove address' authorization. Owner only
     */
    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Return address' authorization status
     */
    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    /**
     * Transfer ownership to new address. Caller must be owner. Leaves old owner authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    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 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;
}

interface IDividendDistributor {
    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external;
    function setShare(address shareholder, uint256 amount) external;
    function deposit() external payable;
    function process(uint256 gas) external;
}

contract DividendDistributor is IDividendDistributor {
    using SafeMath for uint256;

    address _token;

    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalRealised;
    }

    IBEP20 ADA = IBEP20(0x3EE2200Efb3400fAbB9AacF31297cBdD1d435D47);
    address WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
    IDEXRouter router;

    address[] shareholders;
    mapping (address => uint256) shareholderIndexes;
    mapping (address => uint256) shareholderClaims;

    mapping (address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalDistributed;
    uint256 public dividendsPerShare;
    uint256 public dividendsPerShareAccuracyFactor = 10 ** 36;

    uint256 public minPeriod = 1 hours;
    uint256 public minDistribution = 1 * (10 ** 8);

    uint256 currentIndex;

    bool initialized;
    modifier initialization() {
        require(!initialized);
        _;
        initialized = true;
    }

    modifier onlyToken() {
        require(msg.sender == _token); _;
    }

    constructor (address _router) {
        router = _router != address(0)
            ? IDEXRouter(_router)
            : IDEXRouter(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        _token = msg.sender;
    }

    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external override onlyToken {
        minPeriod = _minPeriod;
        minDistribution = _minDistribution;
    }

    function setShare(address shareholder, uint256 amount) external override onlyToken {
        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

        if(amount > 0 && shares[shareholder].amount == 0){
            addShareholder(shareholder);
        }else if(amount == 0 && shares[shareholder].amount > 0){
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
    }

    function deposit() external payable override onlyToken {
        uint256 balanceBefore = ADA.balanceOf(address(this));

        address[] memory path = new address[](2);
        path[0] = WBNB;
        path[1] = address(ADA);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}(
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amount = ADA.balanceOf(address(this)).sub(balanceBefore);

        totalDividends = totalDividends.add(amount);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
    }

    function process(uint256 gas) external override onlyToken {
        uint256 shareholderCount = shareholders.length;

        if(shareholderCount == 0) { return; }

        uint256 gasUsed = 0;
        uint256 gasLeft = gasleft();

        uint256 iterations = 0;

        while(gasUsed < gas && iterations < shareholderCount) {
            if(currentIndex >= shareholderCount){
                currentIndex = 0;
            }

            if(shouldDistribute(shareholders[currentIndex])){
                distributeDividend(shareholders[currentIndex]);
            }

            gasUsed = gasUsed.add(gasLeft.sub(gasleft()));
            gasLeft = gasleft();
            currentIndex++;
            iterations++;
        }
    }
    
    function shouldDistribute(address shareholder) internal view returns (bool) {
        return shareholderClaims[shareholder] + minPeriod < block.timestamp
                && getUnpaidEarnings(shareholder) > minDistribution;
    }

    function distributeDividend(address shareholder) internal {
        if(shares[shareholder].amount == 0){ return; }

        uint256 amount = getUnpaidEarnings(shareholder);
        if(amount > 0){
            totalDistributed = totalDistributed.add(amount);
            ADA.transfer(shareholder, amount);
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }
    
    function claimDividend(address shareholder) external onlyToken{
        distributeDividend(shareholder);
    }

    function getUnpaidEarnings(address shareholder) public view returns (uint256) {
        if(shares[shareholder].amount == 0){ return 0; }

        uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;

        if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(uint256 share) internal view returns (uint256) {
        return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
        shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
        shareholders.pop();
    }
}

contract MechADA is IBEP20, Auth {
    using SafeMath for uint256;

    address ADA = 0x3EE2200Efb3400fAbB9AacF31297cBdD1d435D47;
    address WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "MechADA";
    string constant _symbol = "MADA";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 100000000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply; 
    uint256 public _maxWalletSize = (_totalSupply * 3) / 100; 

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping (address => bool) isDividendExempt;

    uint256 liquidityFee = 4;
    uint256 reflectionFee = 8;
    uint256 marketingFee = 4;
    uint256 totalFee = 16;
    uint256 feeDenominator = 100;
    
    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;

    DividendDistributor distributor;
    uint256 distributorGas = 500000;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000 * 3; // 0.3%
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor (address payable marketing, address payable liqwallet) Auth(msg.sender) {
        router = IDEXRouter(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        pair = IDEXFactory(router.factory()).createPair(WBNB, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        distributor = new DividendDistributor(address(router));
        
        address _presaler = owner;
        isFeeExempt[_presaler] = true;
        isTxLimitExempt[_presaler] = true;
        isDividendExempt[pair] = true;
        isDividendExempt[DEAD] = true;

        autoLiquidityReceiver = liqwallet;
        marketingFeeReceiver = marketing;

        _balances[_presaler] = _totalSupply;
        emit Transfer(address(0), _presaler, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function 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 approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

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

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        checkTxLimit(sender, amount);
        
        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletSize, "Transfer amount exceeds the bag size.");
        }
        
        if(shouldSwapBack()){ swapBack(); }

        if(!launched() && recipient == pair){ require(_balances[sender] > 0); launch(); }

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        if(!isDividendExempt[sender]){ try distributor.setShare(sender, _balances[sender]) {} catch {} }
        if(!isDividendExempt[recipient]){ try distributor.setShare(recipient, _balances[recipient]) {} catch {} }

        try distributor.process(distributorGas) {} catch {}

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }
    
    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function getTotalFee(bool selling) public view returns (uint256) {
        if(launchedAt + 1 >= block.number){ return feeDenominator.sub(1); }
        if(selling) { return totalFee.add(liquidityFee); }
        return totalFee;
    }

    function takeFee(address sender, address receiver, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(getTotalFee(receiver == pair)).div(feeDenominator);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 amountToLiquify = contractTokenBalance.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WBNB;

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountBNB = address(this).balance.sub(balanceBefore);
        uint256 totalBNBFee = totalFee.sub(liquidityFee.div(2));
        uint256 amountBNBLiquidity = amountBNB.mul(liquidityFee).div(totalBNBFee).div(2);
        uint256 amountBNBReflection = amountBNB.mul(reflectionFee).div(totalBNBFee);
        uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(totalBNBFee);

        try distributor.deposit{value: amountBNBReflection}() {} catch {}
        (bool success, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountBNBMarketing, gas: 30000}("");
        require(success, "receiver rejected ETH transfer");

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountBNBLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountBNBLiquidity, amountToLiquify);
        }
    }

    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = WBNB;
        path[1] = address(this);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            to,
            block.timestamp
        );
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
    }

    function setTxLimit(uint256 amount) external authorized {
        require(amount >= _totalSupply / 1000);
        _maxTxAmount = amount;
    }

   function setMaxWallet(uint256 amount) external onlyOwner() {
        require(amount >= _totalSupply / 1000 );
        _maxWalletSize = amount;
    }    

    function setIsDividendExempt(address holder, bool exempt) external authorized {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if(exempt){
            distributor.setShare(holder, 0);
        }else{
            distributor.setShare(holder, _balances[holder]);
        }
    }

    function setIsFeeExempt(address holder, bool exempt) external authorized {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external authorized {
        isTxLimitExempt[holder] = exempt;
    }

    function setFees(uint256 _liquidityFee, uint256 _reflectionFee, uint256 _marketingFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        reflectionFee = _reflectionFee;
        marketingFee = _marketingFee;
        totalFee = _liquidityFee.add(_reflectionFee).add(_marketingFee);
        feeDenominator = _feeDenominator;
    }

    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver) external authorized {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function manualSend() external authorized {
        uint256 contractETHBalance = address(this).balance;
        payable(marketingFeeReceiver).transfer(contractETHBalance);
    }

    function transferForeignToken(address _token) public authorized {
        require(_token != address(this), "Can't let you take all native token");
        uint256 _contractBalance = IBEP20(_token).balanceOf(address(this));
        payable(marketingFeeReceiver).transfer(_contractBalance);
    }
    
    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external authorized {
        distributor.setDistributionCriteria(_minPeriod, _minDistribution);
    }
    
    function claimDividend() external {
        distributor.claimDividend(msg.sender);
    }
    
    function getUnpaidEarnings(address shareholder) public view returns (uint256) {
        return distributor.getUnpaidEarnings(shareholder);
    } 

    function setDistributorSettings(uint256 gas) external authorized {
        require(gas < 750000);
        distributorGas = gas;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }
    
    event AutoLiquify(uint256 amountBNB, uint256 amountBOG);
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"marketing","type":"address"},{"internalType":"address payable","name":"liqwallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"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":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getUnpaidEarnings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"transferForeignToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b0319908116733ee2200efb3400fabb9aacf31297cbdd1d435d471790915560038054821673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c17905560048054821661dead1790556005805490911690556200006e6009600a620004b6565b6200007f9064174876e80062000577565b600655600654600755606460065460036200009b919062000577565b620000a791906200044a565b60089081556004600e819055600f91909155601090815560115560646012556207a120601955601a805460ff19166001179055600654620000ec906103e8906200044a565b620000f990600362000577565b601b553480156200010957600080fd5b50604051620037dc380380620037dc8339810160408190526200012c916200040b565b60008054336001600160a01b031991821681178355825260016020818152604093849020805460ff1916909217909155601580547310ed43c718714eb63d5aa57b78b54704e256024e931683179055825163c45a015560e01b81529251919263c45a01559260048083019392829003018186803b158015620001ad57600080fd5b505afa158015620001c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e89190620003e4565b6003546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c6539690604401602060405180830381600087803b1580156200023557600080fd5b505af11580156200024a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002709190620003e4565b601680546001600160a01b0319166001600160a01b03928316179055306000908152600a6020908152604080832060158054861685529252918290206000199055549051911690620002c290620003d6565b6001600160a01b039091168152602001604051809103906000f080158015620002ef573d6000803e3d6000fd5b50601880546001600160a01b03199081166001600160a01b0393841617909155600080548316808252600b60209081526040808420805460ff199081166001908117909255600c8452828620805482168317905560165488168652600d84528286208054821683179055600454881686528286208054909116909117905560138054861688881617905560148054909516958816959095179093556006548183526009845284832081905593519384529283927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050620005c8565b611067806200277583390190565b600060208284031215620003f757600080fd5b81516200040481620005af565b9392505050565b600080604083850312156200041f57600080fd5b82516200042c81620005af565b60208401519092506200043f81620005af565b809150509250929050565b6000826200046857634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115620004ae57816000190482111562000492576200049262000599565b80851615620004a057918102915b93841c939080029062000472565b509250929050565b60006200040460ff841683600082620004d25750600162000571565b81620004e15750600062000571565b8160018114620004fa5760028114620005055762000525565b600191505062000571565b60ff84111562000519576200051962000599565b50506001821b62000571565b5060208310610133831016604e8410600b84101617156200054a575081810a62000571565b6200055683836200046d565b80600019048211156200056d576200056d62000599565b0290505b92915050565b600081600019048311821515161562000594576200059462000599565b500290565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114620005c557600080fd5b50565b61219d80620005d86000396000f3fe60806040526004361061024a5760003560e01c80638f9a55c011610139578063dd62ed3e116100b6578063f2fde38b1161007a578063f2fde38b1461070b578063f42938901461072b578063f708a64f14610740578063f84ba65d14610760578063f887ea4014610780578063fe9fbb80146107a057600080fd5b8063dd62ed3e14610650578063df20fd4914610696578063f0b37c04146106b6578063f0fc6bca146106d6578063f1f3bca3146106eb57600080fd5b8063a9059cbb116100fd578063a9059cbb146105ba578063b6a5d7de146105da578063bf56b371146105fa578063d51ed1c814610610578063dc93cf701461063057600080fd5b80638f9a55c01461051757806395d89b411461052d5780639d1944f51461055a578063a4b45c001461057a578063a8aa1b311461059a57600080fd5b8063313ce567116101c75780636ddd17131161018b5780636ddd17131461045f5780636fcba3771461047957806370a08231146104995780637d1db4a5146104cf578063893d20e8146104e557600080fd5b8063313ce567146103c3578063571ac8b0146103df5780635c85974f146103ff5780635d0044ca1461041f578063658d4b7f1461043f57600080fd5b806323b872dd1161020e57806323b872dd1461031d57806328fd31981461033d5780632b112e491461035d5780632d48e896146103725780632f54bf6e1461039457600080fd5b80630445b6671461025657806306fdde031461027f578063095ea7b3146102b85780631161ae39146102e857806318160ddd1461030857600080fd5b3661025157005b600080fd5b34801561026257600080fd5b5061026c601b5481565b6040519081526020015b60405180910390f35b34801561028b57600080fd5b506040805180820190915260078152664d65636841444160c81b60208201525b6040516102769190611fa8565b3480156102c457600080fd5b506102d86102d3366004611e91565b6107c0565b6040519015158152602001610276565b3480156102f457600080fd5b506102d8610303366004611f26565b61082d565b34801561031457600080fd5b5060065461026c565b34801561032957600080fd5b506102d8610338366004611e1b565b610841565b34801561034957600080fd5b5061026c610358366004611dc5565b610903565b34801561036957600080fd5b5061026c610981565b34801561037e57600080fd5b5061039261038d366004611f26565b6109d3565b005b3480156103a057600080fd5b506102d86103af366004611dc5565b6000546001600160a01b0391821691161490565b3480156103cf57600080fd5b5060405160098152602001610276565b3480156103eb57600080fd5b506102d86103fa366004611dc5565b610a6b565b34801561040b57600080fd5b5061039261041a366004611ef4565b610a79565b34801561042b57600080fd5b5061039261043a366004611ef4565b610abf565b34801561044b57600080fd5b5061039261045a366004611e5c565b610b0a565b34801561046b57600080fd5b50601a546102d89060ff1681565b34801561048557600080fd5b50610392610494366004611f76565b610b5a565b3480156104a557600080fd5b5061026c6104b4366004611dc5565b6001600160a01b031660009081526009602052604090205490565b3480156104db57600080fd5b5061026c60075481565b3480156104f157600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610276565b34801561052357600080fd5b5061026c60085481565b34801561053957600080fd5b506040805180820190915260048152634d41444160e01b60208201526102ab565b34801561056657600080fd5b50610392610575366004611ef4565b610bad565b34801561058657600080fd5b50610392610595366004611de2565b610be6565b3480156105a657600080fd5b506016546104ff906001600160a01b031681565b3480156105c657600080fd5b506102d86105d5366004611e91565b610c39565b3480156105e657600080fd5b506103926105f5366004611dc5565b610c46565b34801561060657600080fd5b5061026c60175481565b34801561061c57600080fd5b5061026c61062b366004611ef4565b610c97565b34801561063c57600080fd5b5061039261064b366004611dc5565b610cdb565b34801561065c57600080fd5b5061026c61066b366004611de2565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b3480156106a257600080fd5b506103926106b1366004611ed8565b610e1f565b3480156106c257600080fd5b506103926106d1366004611dc5565b610e5b565b3480156106e257600080fd5b50610392610ea6565b3480156106f757600080fd5b5061026c610706366004611ebd565b610f05565b34801561071757600080fd5b50610392610726366004611dc5565b610f47565b34801561073757600080fd5b50610392610fdd565b34801561074c57600080fd5b5061039261075b366004611e5c565b611040565b34801561076c57600080fd5b5061039261077b366004611e5c565b611144565b34801561078c57600080fd5b506015546104ff906001600160a01b031681565b3480156107ac57600080fd5b506102d86107bb366004611dc5565b611194565b336000818152600a602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061081b9086815260200190565b60405180910390a35060015b92915050565b60008261083983610c97565b119392505050565b6001600160a01b0383166000908152600a60209081526040808320338452909152812054600019146108ee576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600a825283812033825290915291909120546108c99184906111b2565b6001600160a01b0385166000908152600a602090815260408083203384529091529020555b6108f98484846111ec565b90505b9392505050565b60185460405163051fa63360e31b81526001600160a01b03838116600483015260009216906328fd31989060240160206040518083038186803b15801561094957600080fd5b505afa15801561095d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108279190611f0d565b6005546001600160a01b03166000908152600960205260408120546109ce906004546001600160a01b03166000908152600960205260409020546109c890600654906115f8565b906115f8565b905090565b6109dc33611194565b610a015760405162461bcd60e51b81526004016109f89061201d565b60405180910390fd5b6018546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b158015610a4f57600080fd5b505af1158015610a63573d6000803e3d6000fd5b505050505050565b6000610827826000196107c0565b610a8233611194565b610a9e5760405162461bcd60e51b81526004016109f89061201d565b6103e8600654610aae91906120cb565b811015610aba57600080fd5b600755565b6000546001600160a01b03163314610ae95760405162461bcd60e51b81526004016109f890611ffd565b6103e8600654610af991906120cb565b811015610b0557600080fd5b600855565b610b1333611194565b610b2f5760405162461bcd60e51b81526004016109f89061201d565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b610b6333611194565b610b7f5760405162461bcd60e51b81526004016109f89061201d565b600e849055600f8390556010829055610ba282610b9c868661163a565b9061163a565b601155601255505050565b610bb633611194565b610bd25760405162461bcd60e51b81526004016109f89061201d565b620b71b08110610be157600080fd5b601955565b610bef33611194565b610c0b5760405162461bcd60e51b81526004016109f89061201d565b601380546001600160a01b039384166001600160a01b03199182161790915560148054929093169116179055565b60006108fc3384846111ec565b6000546001600160a01b03163314610c705760405162461bcd60e51b81526004016109f890611ffd565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000610827610ca4610981565b6016546001600160a01b0316600090815260096020526040902054610cd590610cce906002611699565b8590611699565b90611718565b610ce433611194565b610d005760405162461bcd60e51b81526004016109f89061201d565b6001600160a01b038116301415610d655760405162461bcd60e51b815260206004820152602360248201527f43616e2774206c657420796f752074616b6520616c6c206e617469766520746f60448201526235b2b760e91b60648201526084016109f8565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a082319060240160206040518083038186803b158015610da757600080fd5b505afa158015610dbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddf9190611f0d565b6014546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610e1a573d6000803e3d6000fd5b505050565b610e2833611194565b610e445760405162461bcd60e51b81526004016109f89061201d565b601a805460ff191692151592909217909155601b55565b6000546001600160a01b03163314610e855760405162461bcd60e51b81526004016109f890611ffd565b6001600160a01b03166000908152600160205260409020805460ff19169055565b601854604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b158015610eeb57600080fd5b505af1158015610eff573d6000803e3d6000fd5b50505050565b6000436017546001610f1791906120b3565b10610f2a576012546108279060016115f8565b8115610f3f57600e546011546108279161163a565b505060115490565b6000546001600160a01b03163314610f715760405162461bcd60e51b81526004016109f890611ffd565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b610fe633611194565b6110025760405162461bcd60e51b81526004016109f89061201d565b60145460405147916001600160a01b03169082156108fc029083906000818181858888f1935050505015801561103c573d6000803e3d6000fd5b5050565b61104933611194565b6110655760405162461bcd60e51b81526004016109f89061201d565b6001600160a01b038216301480159061108c57506016546001600160a01b03838116911614155b61109557600080fd5b6001600160a01b0382166000908152600d60205260409020805460ff191682158015919091179091556110fb57601854604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca9690604401610a35565b6018546001600160a01b0383811660008181526009602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401610a35565b61114d33611194565b6111695760405162461bcd60e51b81526004016109f89061201d565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b600081848411156111d65760405162461bcd60e51b81526004016109f89190611fa8565b5060006111e3848661210c565b95945050505050565b601c5460009060ff161561120c5761120584848461175a565b90506108fc565b6112168483611840565b6016546001600160a01b0384811691161480159061124257506004546001600160a01b03848116911614155b156112ed576001600160a01b0383166000908152600c602052604090205460ff168061129357506008546001600160a01b0384166000908152600960205260409020546112909084906120b3565b11155b6112ed5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016109f8565b6112f56118a9565b15611302576113026118f8565b60175415801561131f57506016546001600160a01b038481169116145b1561134f576001600160a01b03841660009081526009602052604090205461134657600080fd5b61134f43601755565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600990915291909120546113a19184906111b2565b6001600160a01b038516600090815260096020908152604080832093909355600b90529081205460ff16156113d657826113e1565b6113e1858585611cd0565b6001600160a01b038516600090815260096020526040902054909150611407908261163a565b6001600160a01b038086166000908152600960209081526040808320949094559188168152600d909152205460ff166114ab576018546001600160a01b0386811660008181526009602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561149857600080fd5b505af19250505080156114a9575060015b505b6001600160a01b0384166000908152600d602052604090205460ff1661153c576018546001600160a01b0385811660008181526009602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561152957600080fd5b505af192505050801561153a575060015b505b6018546019546040516001624d3b8760e01b031981526001600160a01b039092169163ffb2c479916115749160040190815260200190565b600060405180830381600087803b15801561158e57600080fd5b505af192505050801561159f575060015b50836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115e591815260200190565b60405180910390a3506001949350505050565b60006108fc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111b2565b60008061164783856120b3565b9050838110156108fc5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109f8565b6000826116a857506000610827565b60006116b483856120ed565b9050826116c185836120cb565b146108fc5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109f8565b60006108fc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d82565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526009909152918220546117ab9184906111b2565b6001600160a01b0380861660009081526009602052604080822093909355908516815220546117da908361163a565b6001600160a01b0380851660008181526009602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061182e9086815260200190565b60405180910390a35060019392505050565b6007548111158061186957506001600160a01b0382166000908152600c602052604090205460ff165b61103c5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016109f8565b6016546000906001600160a01b031633148015906118ca5750601c5460ff16155b80156118d85750601a5460ff165b80156109ce575050601b5430600090815260096020526040902054101590565b601c805460ff1916600117905530600090815260096020526040812054905060006119396002610cd5601154610cd5600e548761169990919063ffffffff16565b9050600061194783836115f8565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061198157611981612139565b6001600160a01b0392831660209182029290920101526003548251911690829060019081106119b2576119b2612139565b6001600160a01b03928316602091820292909201015260155460405163791ac94760e01b81524792919091169063791ac947906119fc908690600090879030904290600401612042565b600060405180830381600087803b158015611a1657600080fd5b505af1158015611a2a573d6000803e3d6000fd5b505050506000611a4382476115f890919063ffffffff16565b90506000611a69611a606002600e5461171890919063ffffffff16565b601154906115f8565b90506000611a8b6002610cd584610cd5600e548861169990919063ffffffff16565b90506000611aa883610cd5600f548761169990919063ffffffff16565b90506000611ac584610cd56010548861169990919063ffffffff16565b9050601860009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015611b1757600080fd5b505af193505050508015611b29575060015b506014546040516000916001600160a01b03169061753090849084818181858888f193505050503d8060008114611b7c576040519150601f19603f3d011682016040523d82523d6000602084013e611b81565b606091505b5050905080611bd25760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e73666572000060448201526064016109f8565b8915611cb95760155460135460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990869060c4016060604051808303818588803b158015611c4357600080fd5b505af1158015611c57573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611c7c9190611f48565b505060408051868152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601c805460ff19169055505050505050505050565b6012546016546000918291611d029190610cd590611cfb906001600160a01b03898116911614610f05565b8690611699565b30600090815260096020526040902054909150611d1f908261163a565b30600081815260096020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d709085815260200190565b60405180910390a36111e383826115f8565b60008183611da35760405162461bcd60e51b81526004016109f89190611fa8565b5060006111e384866120cb565b80358015158114611dc057600080fd5b919050565b600060208284031215611dd757600080fd5b81356108fc8161214f565b60008060408385031215611df557600080fd5b8235611e008161214f565b91506020830135611e108161214f565b809150509250929050565b600080600060608486031215611e3057600080fd5b8335611e3b8161214f565b92506020840135611e4b8161214f565b929592945050506040919091013590565b60008060408385031215611e6f57600080fd5b8235611e7a8161214f565b9150611e8860208401611db0565b90509250929050565b60008060408385031215611ea457600080fd5b8235611eaf8161214f565b946020939093013593505050565b600060208284031215611ecf57600080fd5b6108fc82611db0565b60008060408385031215611eeb57600080fd5b611eaf83611db0565b600060208284031215611f0657600080fd5b5035919050565b600060208284031215611f1f57600080fd5b5051919050565b60008060408385031215611f3957600080fd5b50508035926020909101359150565b600080600060608486031215611f5d57600080fd5b8351925060208401519150604084015190509250925092565b60008060008060808587031215611f8c57600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b81811015611fd557858101830151858201604001528201611fb9565b81811115611fe7576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120925784516001600160a01b03168352938301939183019160010161206d565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156120c6576120c6612123565b500190565b6000826120e857634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561210757612107612123565b500290565b60008282101561211e5761211e612123565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461216457600080fd5b5056fea2646970667358221220d942b458f7751948d3cf10149eeddf1d0e6526797f5a54a0c249a74b8b942a9164736f6c634300080500336080604052600180546001600160a01b0319908116733ee2200efb3400fabb9aacf31297cbdd1d435d47179091556002805490911673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c1790556ec097ce7bc90715b34b9f1000000000600c55610e10600d556305f5e100600e5534801561007957600080fd5b50604051611067380380611067833981016040819052610098916100f2565b6001600160a01b0381166100c0577310ed43c718714eb63d5aa57b78b54704e256024e6100c2565b805b600380546001600160a01b03929092166001600160a01b0319928316179055600080549091163317905550610122565b60006020828403121561010457600080fd5b81516001600160a01b038116811461011b57600080fd5b9392505050565b610f36806101316000396000f3fe6080604052600436106100dd5760003560e01c8063997664d71161007f578063e2d2e21911610059578063e2d2e2191461022e578063efca2eed14610244578063ffb2c4791461025a578063ffd49c841461027a57600080fd5b8063997664d7146101b9578063ce7c2ac2146101cf578063d0e30db01461022657600080fd5b806328fd3198116100bb57806328fd31981461014d5780632d48e8961461016d5780633a98ef391461018d5780634fab0ae8146101a357600080fd5b806311ce023d146100e257806314b6ca961461010b57806315f7e05e1461012d575b600080fd5b3480156100ee57600080fd5b506100f8600c5481565b6040519081526020015b60405180910390f35b34801561011757600080fd5b5061012b610126366004610cd4565b610290565b005b34801561013957600080fd5b5061012b610148366004610cb9565b610408565b34801561015957600080fd5b506100f8610168366004610cb9565b61042b565b34801561017957600080fd5b5061012b610188366004610d52565b6104b4565b34801561019957600080fd5b506100f860085481565b3480156101af57600080fd5b506100f8600e5481565b3480156101c557600080fd5b506100f860095481565b3480156101db57600080fd5b5061020b6101ea366004610cb9565b60076020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610102565b61012b6104d6565b34801561023a57600080fd5b506100f8600b5481565b34801561025057600080fd5b506100f8600a5481565b34801561026657600080fd5b5061012b610275366004610d20565b610723565b34801561028657600080fd5b506100f8600d5481565b6000546001600160a01b031633146102a757600080fd5b6001600160a01b038216600090815260076020526040902054156102ce576102ce82610823565b6000811180156102f457506001600160a01b038216600090815260076020526040902054155b1561035a57600480546001600160a01b0384166000818152600560205260408120839055600183018455929092527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b031916909117905561038d565b8015801561037f57506001600160a01b03821660009081526007602052604090205415155b1561038d5761038d8261094e565b6001600160a01b0382166000908152600760205260409020546008546103be9183916103b891610a63565b90610aae565b6008556001600160a01b03821660009081526007602052604090208190556103e581610b12565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6000546001600160a01b0316331461041f57600080fd5b61042881610823565b50565b6001600160a01b03811660009081526007602052604081205461045057506000919050565b6001600160a01b03821660009081526007602052604081205461047290610b12565b6001600160a01b0384166000908152600760205260409020600101549091508082116104a2575060009392505050565b6104ac8282610a63565b949350505050565b6000546001600160a01b031633146104cb57600080fd5b600d91909155600e55565b6000546001600160a01b031633146104ed57600080fd5b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561053157600080fd5b505afa158015610545573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105699190610d39565b6040805160028082526060820183529293506000929091602083019080368337505060025482519293506001600160a01b0316918391506000906105af576105af610eea565b6001600160a01b03928316602091820292909201015260018054835192169183919081106105df576105df610eea565b6001600160a01b03928316602091820292909201015260035460405163b6f9de9560e01b815291169063b6f9de9590349061062590600090869030904290600401610d74565b6000604051808303818588803b15801561063e57600080fd5b505af1158015610652573d6000803e3d6000fd5b50506001546040516370a0823160e01b8152306004820152600094506106e193508692506001600160a01b03909116906370a082319060240160206040518083038186803b1580156106a357600080fd5b505afa1580156106b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106db9190610d39565b90610a63565b6009549091506106f19082610aae565b600955600854600c5461071b916107129161070c9085610b2f565b90610bae565b600b5490610aae565b600b55505050565b6000546001600160a01b0316331461073a57600080fd5b60045480610746575050565b6000805a905060005b848310801561075d57508381105b1561081c5783600f5410610771576000600f555b6107a36004600f548154811061078957610789610eea565b6000918252602090912001546001600160a01b0316610bf0565b156107da576107da6004600f54815481106107c0576107c0610eea565b6000918252602090912001546001600160a01b0316610823565b6107ef6107e85a8490610a63565b8490610aae565b92505a600f8054919350600061080483610ea3565b9190505550808061081490610ea3565b91505061074f565b5050505050565b6001600160a01b0381166000908152600760205260409020546108435750565b600061084e8261042b565b9050801561094a57600a546108639082610aae565b600a5560015460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b1580156108b457600080fd5b505af11580156108c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ec9190610cfe565b506001600160a01b038216600090815260066020908152604080832042905560079091529020600201546109209082610aae565b6001600160a01b03831660009081526007602052604090206002810191909155546103e590610b12565b5050565b6004805461095e90600190610e8c565b8154811061096e5761096e610eea565b60009182526020808320909101546001600160a01b03848116845260059092526040909220546004805492909316929181106109ac576109ac610eea565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600591829052604081205460048054919392916109f890600190610e8c565b81548110610a0857610a08610eea565b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610a3e57610a3e610ed4565b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610aa583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c35565b90505b92915050565b600080610abb8385610e33565b905083811015610aa55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b6000610aa8600c5461070c600b5485610b2f90919063ffffffff16565b600082610b3e57506000610aa8565b6000610b4a8385610e6d565b905082610b578583610e4b565b14610aa55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b09565b6000610aa583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610c6f565b600d546001600160a01b03821660009081526006602052604081205490914291610c1a9190610e33565b108015610aa85750600e54610c2e8361042b565b1192915050565b60008184841115610c595760405162461bcd60e51b8152600401610b099190610dde565b506000610c668486610e8c565b95945050505050565b60008183610c905760405162461bcd60e51b8152600401610b099190610dde565b506000610c668486610e4b565b80356001600160a01b0381168114610cb457600080fd5b919050565b600060208284031215610ccb57600080fd5b610aa582610c9d565b60008060408385031215610ce757600080fd5b610cf083610c9d565b946020939093013593505050565b600060208284031215610d1057600080fd5b81518015158114610aa557600080fd5b600060208284031215610d3257600080fd5b5035919050565b600060208284031215610d4b57600080fd5b5051919050565b60008060408385031215610d6557600080fd5b50508035926020909101359150565b600060808201868352602060808185015281875180845260a086019150828901935060005b81811015610dbe5784516001600160a01b031683529383019391830191600101610d99565b50506001600160a01b039690961660408501525050506060015292915050565b600060208083528351808285015260005b81811015610e0b57858101830151858201604001528201610def565b81811115610e1d576000604083870101525b50601f01601f1916929092016040019392505050565b60008219821115610e4657610e46610ebe565b500190565b600082610e6857634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615610e8757610e87610ebe565b500290565b600082821015610e9e57610e9e610ebe565b500390565b6000600019821415610eb757610eb7610ebe565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea26469706673582212207366e3a5bc62847d4556b6da803ef26c344b20fba81749d18def4836ee7e778c64736f6c63430008050033000000000000000000000000787a4fa1ca7037a9c78be320279d82b17b258266000000000000000000000000d5dddab894dbb70e7cbc8a708192eabf939dad6b

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

000000000000000000000000787a4fa1ca7037a9c78be320279d82b17b258266000000000000000000000000d5dddab894dbb70e7cbc8a708192eabf939dad6b

-----Decoded View---------------
Arg [0] : marketing (address): 0x787a4fa1ca7037a9c78be320279d82b17b258266
Arg [1] : liqwallet (address): 0xd5dddab894dbb70e7cbc8a708192eabf939dad6b

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000787a4fa1ca7037a9c78be320279d82b17b258266
Arg [1] : 000000000000000000000000d5dddab894dbb70e7cbc8a708192eabf939dad6b


Deployed ByteCode Sourcemap

11690:12241:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13034:54;;;;;;;;;;;;;;;;;;;9876:25:1;;;9864:2;9849:18;13034:54:0;;;;;;;;14296:80;;;;;;;;;;-1:-1:-1;14368:5:0;;;;;;;;;;;;-1:-1:-1;;;14368:5:0;;;;14296:80;;;;;;;:::i;14718:216::-;;;;;;;;;;-1:-1:-1;14718:216:0;;;;;:::i;:::-;;:::i;:::-;;;5928:14:1;;5921:22;5903:41;;5891:2;5876:18;14718:216:0;5858:92:1;23710:150:0;;;;;;;;;;-1:-1:-1;23710:150:0;;;;;:::i;:::-;;:::i;14026:88::-;;;;;;;;;;-1:-1:-1;14099:12:0;;14026:88;;15236:370;;;;;;;;;;-1:-1:-1;15236:370:0;;;;;:::i;:::-;;:::i;23082:146::-;;;;;;;;;;-1:-1:-1;23082:146:0;;;;;:::i;:::-;;:::i;23385:142::-;;;;;;;;;;;;;:::i;22785:183::-;;;;;;;;;;-1:-1:-1;22785:183:0;;;;;:::i;:::-;;:::i;:::-;;3539:103;;;;;;;;;;-1:-1:-1;3539:103:0;;;;;:::i;:::-;3594:4;3629:5;-1:-1:-1;;;;;3618:16:0;;;3629:5;;3618:16;;3539:103;14120:80;;;;;;;;;;-1:-1:-1;14120:80:0;;12128:1;11292:36:1;;11280:2;11265:18;14120:80:0;11247:87:1;14942:122:0;;;;;;;;;;-1:-1:-1;14942:122:0;;;;;:::i;:::-;;:::i;20569:145::-;;;;;;;;;;-1:-1:-1;20569:145:0;;;;;:::i;:::-;;:::i;20721:151::-;;;;;;;;;;-1:-1:-1;20721:151:0;;;;;:::i;:::-;;:::i;21239:120::-;;;;;;;;;;-1:-1:-1;21239:120:0;;;;;:::i;:::-;;:::i;12997:30::-;;;;;;;;;;-1:-1:-1;12997:30:0;;;;;;;;21503:376;;;;;;;;;;-1:-1:-1;21503:376:0;;;;;:::i;:::-;;:::i;14466:105::-;;;;;;;;;;-1:-1:-1;14466:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;14550:18:0;14532:7;14550:18;;;:9;:18;;;;;;;14466:105;12200:42;;;;;;;;;;;;;;;;14382:78;;;;;;;;;;-1:-1:-1;14434:7:0;14452:5;-1:-1:-1;;;;;14452:5:0;14382:78;;;-1:-1:-1;;;;;4325:32:1;;;4307:51;;4295:2;4280:18;14382:78:0;4262:102:1;12250:56:0;;;;;;;;;;;;;;;;14206:84;;;;;;;;;;-1:-1:-1;14280:7:0;;;;;;;;;;;;-1:-1:-1;;;14280:7:0;;;;14206:84;;23237:136;;;;;;;;;;-1:-1:-1;23237:136:0;;;;;:::i;:::-;;:::i;21887:228::-;;;;;;;;;;-1:-1:-1;21887:228:0;;;;;:::i;:::-;;:::i;12857:19::-;;;;;;;;;;-1:-1:-1;12857:19:0;;;;-1:-1:-1;;;;;12857:19:0;;;15072:156;;;;;;;;;;-1:-1:-1;15072:156:0;;;;;:::i;:::-;;:::i;3212:94::-;;;;;;;;;;-1:-1:-1;3212:94:0;;;;;:::i;:::-;;:::i;12885:25::-;;;;;;;;;;;;;;;;23535:167;;;;;;;;;;-1:-1:-1;23535:167:0;;;;;:::i;:::-;;:::i;22475:298::-;;;;;;;;;;-1:-1:-1;22475:298:0;;;;;:::i;:::-;;:::i;14577:133::-;;;;;;;;;;-1:-1:-1;14577:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;14679:19:0;;;14661:7;14679:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;14577:133;22123:156;;;;;;;;;;-1:-1:-1;22123:156:0;;;;;:::i;:::-;;:::i;3382:97::-;;;;;;;;;;-1:-1:-1;3382:97:0;;;;;:::i;:::-;;:::i;22980:90::-;;;;;;;;;;;;;:::i;17492:236::-;;;;;;;;;;-1:-1:-1;17492:236:0;;;;;:::i;:::-;;:::i;3939:173::-;;;;;;;;;;-1:-1:-1;3939:173:0;;;;;:::i;:::-;;:::i;22287:180::-;;;;;;;;;;;;;:::i;20884:347::-;;;;;;;;;;-1:-1:-1;20884:347:0;;;;;:::i;:::-;;:::i;21367:128::-;;;;;;;;;;-1:-1:-1;21367:128:0;;;;;:::i;:::-;;:::i;12826:24::-;;;;;;;;;;-1:-1:-1;12826:24:0;;;;-1:-1:-1;;;;;12826:24:0;;;3713:107;;;;;;;;;;-1:-1:-1;3713:107:0;;;;;:::i;:::-;;:::i;14718:216::-;14822:10;14793:4;14810:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;14810:32:0;;;;;;;;;;:41;;;14867:37;14793:4;;14810:32;;14867:37;;;;14845:6;9876:25:1;;9864:2;9849:18;;9831:76;14867:37:0;;;;;;;;-1:-1:-1;14922:4:0;14718:216;;;;;:::o;23710:150::-;23790:4;23846:6;23814:29;23834:8;23814:19;:29::i;:::-;:38;;23710:150;-1:-1:-1;;;23710:150:0:o;15236:370::-;-1:-1:-1;;;;;15356:19:0;;15336:4;15356:19;;;:11;:19;;;;;;;;15376:10;15356:31;;;;;;;;-1:-1:-1;;15356:52:0;15353:186;;15458:69;;;;;;;;;;;-1:-1:-1;;;15458:69:0;;;;;;;;-1:-1:-1;;;;;15458:19:0;;-1:-1:-1;15458:19:0;;;:11;:19;;;;;15478:10;15458:31;;;;;;;;;;:69;;15494:6;;15458:35;:69::i;:::-;-1:-1:-1;;;;;15424:19:0;;;;;;:11;:19;;;;;;;;15444:10;15424:31;;;;;;;:103;15353:186;15558:40;15572:6;15580:9;15591:6;15558:13;:40::i;:::-;15551:47;;15236:370;;;;;;:::o;23082:146::-;23178:11;;:42;;-1:-1:-1;;;23178:42:0;;-1:-1:-1;;;;;4325:32:1;;;23178:42:0;;;4307:51:1;23151:7:0;;23178:11;;:29;;4280:18:1;;23178:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;23385:142::-;23513:4;;-1:-1:-1;;;;;23513:4:0;23438:7;14550:18;;;:9;:18;;;;;;23465:54;;23492:4;;-1:-1:-1;;;;;23492:4:0;14532:7;14550:18;;;:9;:18;;;;;;23465:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;23458:61;;23385:142;:::o;22785:183::-;3097:24;3110:10;3097:12;:24::i;:::-;3089:48;;;;-1:-1:-1;;;3089:48:0;;;;;;;:::i;:::-;;;;;;;;;22895:11:::1;::::0;:65:::1;::::0;-1:-1:-1;;;22895:65:0;;::::1;::::0;::::1;11071:25:1::0;;;11112:18;;;11105:34;;;-1:-1:-1;;;;;22895:11:0;;::::1;::::0;:35:::1;::::0;11044:18:1;;22895:65:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22785:183:::0;;:::o;14942:122::-;14997:4;15021:35;15029:7;-1:-1:-1;;15021:7:0;:35::i;20569:145::-;3097:24;3110:10;3097:12;:24::i;:::-;3089:48;;;;-1:-1:-1;;;3089:48:0;;;;;;;:::i;:::-;20669:4:::1;20654:12;;:19;;;;:::i;:::-;20644:6;:29;;20636:38;;;::::0;::::1;;20685:12;:21:::0;20569:145::o;20721:151::-;3594:4;3629:5;-1:-1:-1;;;;;3629:5:0;2936:10;3618:16;2920:38;;;;-1:-1:-1;;;2920:38:0;;;;;;;:::i;:::-;20824:4:::1;20809:12;;:19;;;;:::i;:::-;20799:6;:29;;20791:39;;;::::0;::::1;;20841:14;:23:::0;20721:151::o;21239:120::-;3097:24;3110:10;3097:12;:24::i;:::-;3089:48;;;;-1:-1:-1;;;3089:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21323:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;21323:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21239:120::o;21503:376::-;3097:24;3110:10;3097:12;:24::i;:::-;3089:48;;;;-1:-1:-1;;;3089:48:0;;;;;;;:::i;:::-;21646:12:::1;:28:::0;;;21685:13:::1;:30:::0;;;21726:12:::1;:28:::0;;;21776:52:::1;21741:13:::0;21776:33:::1;21661:13:::0;21701:14;21776:17:::1;:33::i;:::-;:37:::0;::::1;:52::i;:::-;21765:8;:63:::0;21839:14:::1;:32:::0;-1:-1:-1;;;21503:376:0:o;23237:136::-;3097:24;3110:10;3097:12;:24::i;:::-;3089:48;;;;-1:-1:-1;;;3089:48:0;;;;;;;:::i;:::-;23327:6:::1;23321:3;:12;23313:21;;;::::0;::::1;;23345:14;:20:::0;23237:136::o;21887:228::-;3097:24;3110:10;3097:12;:24::i;:::-;3089:48;;;;-1:-1:-1;;;3089:48:0;;;;;;;:::i;:::-;22006:21:::1;:46:::0;;-1:-1:-1;;;;;22006:46:0;;::::1;-1:-1:-1::0;;;;;;22006:46:0;;::::1;;::::0;;;22063:20:::1;:44:::0;;;;;::::1;::::0;::::1;;::::0;;21887:228::o;15072:156::-;15152:4;15176:44;15190:10;15202:9;15213:6;15176:13;:44::i;3212:94::-;3594:4;3629:5;-1:-1:-1;;;;;3629:5:0;2936:10;3618:16;2920:38;;;;-1:-1:-1;;;2920:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3272:19:0::1;;::::0;;;3294:4:::1;3272:19;::::0;;;;;;;:26;;-1:-1:-1;;3272:26:0::1;::::0;;::::1;::::0;;3212:94::o;23535:167::-;23603:7;23630:64;23671:22;:20;:22::i;:::-;23653:4;;-1:-1:-1;;;;;23653:4:0;14532:7;14550:18;;;:9;:18;;;;;;23630:36;;23643:22;;23663:1;23643:19;:22::i;:::-;23630:8;;:12;:36::i;:::-;:40;;:64::i;22475:298::-;3097:24;3110:10;3097:12;:24::i;:::-;3089:48;;;;-1:-1:-1;;;3089:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22558:23:0;::::1;22576:4;22558:23;;22550:71;;;::::0;-1:-1:-1;;;22550:71:0;;7737:2:1;22550:71:0::1;::::0;::::1;7719:21:1::0;7776:2;7756:18;;;7749:30;7815:34;7795:18;;;7788:62;-1:-1:-1;;;7866:18:1;;;7859:33;7909:19;;22550:71:0::1;7709:225:1::0;22550:71:0::1;22659:39;::::0;-1:-1:-1;;;22659:39:0;;22692:4:::1;22659:39;::::0;::::1;4307:51:1::0;22632:24:0::1;::::0;-1:-1:-1;;;;;22659:24:0;::::1;::::0;::::1;::::0;4280:18:1;;22659:39:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22717:20;::::0;22709:56:::1;::::0;22632:66;;-1:-1:-1;;;;;;22717:20:0::1;::::0;22709:56;::::1;;;::::0;22632:66;;22717:20:::1;22709:56:::0;22717:20;22709:56;22632:66;22717:20;22709:56;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22539:234;22475:298:::0;:::o;22123:156::-;3097:24;3110:10;3097:12;:24::i;:::-;3089:48;;;;-1:-1:-1;;;3089:48:0;;;;;;;:::i;:::-;22215:11:::1;:22:::0;;-1:-1:-1;;22215:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;22248:13:::1;:23:::0;22123:156::o;3382:97::-;3594:4;3629:5;-1:-1:-1;;;;;3629:5:0;2936:10;3618:16;2920:38;;;;-1:-1:-1;;;2920:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3444:19:0::1;3466:5;3444:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;3444:27:0::1;::::0;;3382:97::o;22980:90::-;23025:11;;:37;;-1:-1:-1;;;23025:37:0;;23051:10;23025:37;;;4307:51:1;-1:-1:-1;;;;;23025:11:0;;;;:25;;4280:18:1;;23025:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22980:90::o;17492:236::-;17548:7;17589:12;17571:10;;17584:1;17571:14;;;;:::i;:::-;:30;17568:67;;17611:14;;:21;;17630:1;17611:18;:21::i;17568:67::-;17648:7;17645:50;;;17679:12;;17666:8;;:26;;:12;:26::i;17645:50::-;-1:-1:-1;;17712:8:0;;;17492:236::o;3939:173::-;3594:4;3629:5;-1:-1:-1;;;;;3629:5:0;2936:10;3618:16;2920:38;;;;-1:-1:-1;;;2920:38:0;;;;;;;:::i;:::-;4015:5:::1;:11:::0;;-1:-1:-1;;;;;;4015:11:0::1;-1:-1:-1::0;;;;;4015:11:0;::::1;::::0;;::::1;::::0;;4037:19;;;-1:-1:-1;4037:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;4037:26:0::1;::::0;;::::1;::::0;;;4079:25;;4307:51:1;;;4079:25:0::1;::::0;4280:18:1;4079:25:0::1;;;;;;;3939:173:::0;:::o;22287:180::-;3097:24;3110:10;3097:12;:24::i;:::-;3089:48;;;;-1:-1:-1;;;3089:48:0;;;;;;;:::i;:::-;22409:20:::1;::::0;22401:58:::1;::::0;22369:21:::1;::::0;-1:-1:-1;;;;;22409:20:0::1;::::0;22401:58;::::1;;;::::0;22369:21;;22340:26:::1;22401:58:::0;22340:26;22401:58;22369:21;22409:20;22401:58;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22329:138;22287:180::o:0;20884:347::-;3097:24;3110:10;3097:12;:24::i;:::-;3089:48;;;;-1:-1:-1;;;3089:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20981:23:0;::::1;20999:4;20981:23;::::0;::::1;::::0;:41:::1;;-1:-1:-1::0;21018:4:0::1;::::0;-1:-1:-1;;;;;21008:14:0;;::::1;21018:4:::0;::::1;21008:14;;20981:41;20973:50;;;::::0;::::1;;-1:-1:-1::0;;;;;21034:24:0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;21034:33:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;21078:146:::1;;21103:11;::::0;:31:::1;::::0;-1:-1:-1;;;21103:31:0;;-1:-1:-1;;;;;4785:32:1;;;21103:31:0::1;::::0;::::1;4767:51:1::0;21103:11:0::1;4834:18:1::0;;;4827:34;21103:11:0;;::::1;::::0;:20:::1;::::0;4740:18:1;;21103:31:0::1;4722:145:1::0;21078:146:0::1;21165:11;::::0;-1:-1:-1;;;;;21194:17:0;;::::1;21165:11;21194:17:::0;;;:9:::1;:17;::::0;;;;;;;21165:47;;-1:-1:-1;;;21165:47:0;;::::1;::::0;::::1;4767:51:1::0;;;;4834:18;;;4827:34;21165:11:0;::::1;::::0;:20:::1;::::0;4740:18:1;;21165:47:0::1;4722:145:1::0;21367:128:0;3097:24;3110:10;3097:12;:24::i;:::-;3089:48;;;;-1:-1:-1;;;3089:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21455:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;21455:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21367:128::o;3713:107::-;-1:-1:-1;;;;;3793:19:0;3769:4;3793:19;;;:14;:19;;;;;;;;;3713:107::o;596:192::-;682:7;718:12;710:6;;;;702:29;;;;-1:-1:-1;;;702:29:0;;;;;;;;:::i;:::-;-1:-1:-1;742:9:0;754:5;758:1;754;:5;:::i;:::-;742:17;596:192;-1:-1:-1;;;;;596:192:0:o;15614:1228::-;15726:6;;15706:4;;15726:6;;15723:63;;;15742:41;15757:6;15765:9;15776:6;15742:14;:41::i;:::-;15735:48;;;;15723:63;15806:28;15819:6;15827;15806:12;:28::i;:::-;15872:4;;-1:-1:-1;;;;;15859:17:0;;;15872:4;;15859:17;;;;:38;;-1:-1:-1;15893:4:0;;-1:-1:-1;;;;;15880:17:0;;;15893:4;;15880:17;;15859:38;15855:198;;;-1:-1:-1;;;;;15922:26:0;;;;;;:15;:26;;;;;;;;;:77;;-1:-1:-1;15985:14:0;;-1:-1:-1;;;;;15952:20:0;;;;;;:9;:20;;;;;;:29;;15975:6;;15952:29;:::i;:::-;:47;;15922:77;15914:127;;;;-1:-1:-1;;;15914:127:0;;6985:2:1;15914:127:0;;;6967:21:1;7024:2;7004:18;;;6997:30;7063:34;7043:18;;;7036:62;-1:-1:-1;;;7114:18:1;;;7107:35;7159:19;;15914:127:0;6957:227:1;15914:127:0;16076:16;:14;:16::i;:::-;16073:35;;;16095:10;:8;:10::i;:::-;20459;;:15;;;16123:32;;-1:-1:-1;16151:4:0;;-1:-1:-1;;;;;16138:17:0;;;16151:4;;16138:17;16123:32;16120:81;;;-1:-1:-1;;;;;16166:17:0;;16186:1;16166:17;;;:9;:17;;;;;;16158:30;;;;;;16190:8;20541:12;20528:10;:25;20490:71;16190:8;16233:53;;;;;;;;;;;-1:-1:-1;;;16233:53:0;;;;;;;;-1:-1:-1;;;;;16233:17:0;;-1:-1:-1;16233:17:0;;;:9;:17;;;;;;;;:53;;16255:6;;16233:21;:53::i;:::-;-1:-1:-1;;;;;16213:17:0;;;;;;:9;:17;;;;;;;;:73;;;;17457:11;:19;;;;;;;;17456:20;16324:67;;16385:6;16324:67;;;16348:34;16356:6;16364:9;16375:6;16348:7;:34::i;:::-;-1:-1:-1;;;;;16425:20:0;;;;;;:9;:20;;;;;;16299:92;;-1:-1:-1;16425:40:0;;16299:92;16425:24;:40::i;:::-;-1:-1:-1;;;;;16402:20:0;;;;;;;:9;:20;;;;;;;;:63;;;;16482:24;;;;;:16;:24;;;;;;;16478:96;;16513:11;;-1:-1:-1;;;;;16542:17:0;;;16513:11;16542:17;;;:9;:17;;;;;;;;16513:47;;-1:-1:-1;;;16513:47:0;;;;;4767:51:1;;;;4834:18;;;4827:34;16513:11:0;;;:20;;4740:18:1;;16513:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16509:63;;-1:-1:-1;;;;;16588:27:0;;;;;;:16;:27;;;;;;;;16584:105;;16622:11;;-1:-1:-1;;;;;16654:20:0;;;16622:11;16654:20;;;:9;:20;;;;;;;;16622:53;;-1:-1:-1;;;16622:53:0;;;;;4767:51:1;;;;4834:18;;;4827:34;16622:11:0;;;:20;;4740:18:1;;16622:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16618:69;;16705:11;;16725:14;;16705:35;;-1:-1:-1;;;;;;16705:35:0;;-1:-1:-1;;;;;16705:11:0;;;;:19;;:35;;;;9876:25:1;;;9864:2;9849:18;;9831:76;16705:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16701:51;16786:9;-1:-1:-1;;;;;16769:43:0;16778:6;-1:-1:-1;;;;;16769:43:0;;16797:14;16769:43;;;;9876:25:1;;9864:2;9849:18;;9831:76;16769:43:0;;;;;;;;-1:-1:-1;16830:4:0;;15614:1228;-1:-1:-1;;;;15614:1228:0:o;454:136::-;512:7;539:43;543:1;546;539:43;;;;;;;;;;;;;;;;;:3;:43::i;267:181::-;325:7;;357:5;361:1;357;:5;:::i;:::-;345:17;;386:1;381;:6;;373:46;;;;-1:-1:-1;;;373:46:0;;8141:2:1;373:46:0;;;8123:21:1;8180:2;8160:18;;;8153:30;8219:29;8199:18;;;8192:57;8266:18;;373:46:0;8113:177:1;794:250:0;852:7;876:6;872:47;;-1:-1:-1;906:1:0;899:8;;872:47;931:9;943:5;947:1;943;:5;:::i;:::-;931:17;-1:-1:-1;976:1:0;967:5;971:1;931:17;967:5;:::i;:::-;:10;959:56;;;;-1:-1:-1;;;959:56:0;;8856:2:1;959:56:0;;;8838:21:1;8895:2;8875:18;;;8868:30;8934:34;8914:18;;;8907:62;-1:-1:-1;;;8985:18:1;;;8978:31;9026:19;;959:56:0;8828:223:1;1050:132:0;1108:7;1135:39;1139:1;1142;1135:39;;;;;;;;;;;;;;;;;:3;:39::i;16854:330::-;16984:53;;;;;;;;;;;-1:-1:-1;;;16984:53:0;;;;;;;;-1:-1:-1;;;;;16984:17:0;;16947:4;16984:17;;;:9;:17;;;;;;;:53;;17006:6;;16984:21;:53::i;:::-;-1:-1:-1;;;;;16964:17:0;;;;;;;:9;:17;;;;;;:73;;;;17071:20;;;;;;;:32;;17096:6;17071:24;:32::i;:::-;-1:-1:-1;;;;;17048:20:0;;;;;;;:9;:20;;;;;;;:55;;;;17119:35;;;;;;;;;;17147:6;9876:25:1;;9864:2;9849:18;;9831:76;17119:35:0;;;;;;;;-1:-1:-1;17172:4:0;16854:330;;;;;:::o;17192:166::-;17289:12;;17279:6;:22;;:49;;;-1:-1:-1;;;;;;17305:23:0;;;;;;:15;:23;;;;;;;;17279:49;17271:79;;;;-1:-1:-1;;;17271:79:0;;7391:2:1;17271:79:0;;;7373:21:1;7430:2;7410:18;;;7403:30;-1:-1:-1;;;7449:18:1;;;7442:47;7506:18;;17271:79:0;7363:167:1;18116:197:0;18203:4;;18165;;-1:-1:-1;;;;;18203:4:0;18189:10;:18;;;;:38;;-1:-1:-1;18221:6:0;;;;18220:7;18189:38;:62;;;;-1:-1:-1;18240:11:0;;;;18189:62;:116;;;;-1:-1:-1;;18292:13:0;;18282:4;18264:24;;;;:9;:24;;;;;;:41;;;18116:197::o;18321:1694::-;13143:6;:13;;-1:-1:-1;;13143:13:0;13152:4;13143:13;;;18419:4:::1;-1:-1:-1::0;14550:18:0;;;:9;:18;;;;;;18370:55:::1;;18436:23;18462:59;18519:1;18462:52;18505:8;;18462:38;18487:12;;18462:20;:24;;:38;;;;:::i;:59::-;18436:85:::0;-1:-1:-1;18532:20:0::1;18555:41;:20:::0;18436:85;18555:24:::1;:41::i;:::-;18633:16;::::0;;18647:1:::1;18633:16:::0;;;;;::::1;::::0;;18532:64;;-1:-1:-1;18609:21:0::1;::::0;18633:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;18633:16:0::1;18609:40;;18678:4;18660;18665:1;18660:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18660:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;18704:4:::1;::::0;18694:7;;18704:4;::::1;::::0;18694;;18704;;18694:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;18694:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;18779:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;18779:188:0;;18745:21:::1;::::0;18779:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;18851:12;;18721:21:::1;::::0;18894:4;;18921::::1;::::0;18941:15:::1;::::0;18779:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18978:17;18998:40;19024:13;18998:21;:25;;:40;;;;:::i;:::-;18978:60;;19049:19;19071:33;19084:19;19101:1;19084:12;;:16;;:19;;;;:::i;:::-;19071:8;::::0;;:12:::1;:33::i;:::-;19049:55;;19115:26;19144:51;19193:1;19144:44;19176:11;19144:27;19158:12;;19144:9;:13;;:27;;;;:::i;:51::-;19115:80;;19206:27;19236:45;19269:11;19236:28;19250:13;;19236:9;:13;;:28;;;;:::i;:45::-;19206:75;;19292:26;19321:44;19353:11;19321:27;19335:12;;19321:9;:13;;:27;;;;:::i;:44::-;19292:73;;19382:11;;;;;;;;;-1:-1:-1::0;;;;;19382:11:0::1;-1:-1:-1::0;;;;;19382:19:0::1;;19409;19382:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;-1:-1:-1::0;19503:20:0::1;::::0;19495:77:::1;::::0;19454:12:::1;::::0;-1:-1:-1;;;;;19503:20:0::1;::::0;19562:5:::1;::::0;19537:18;;19454:12;19495:77;19454:12;19495:77;19537:18;19503:20;19562:5;19495:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19453:119;;;19591:7;19583:50;;;::::0;-1:-1:-1;;;19583:50:0;;8497:2:1;19583:50:0::1;::::0;::::1;8479:21:1::0;8536:2;8516:18;;;8509:30;8575:32;8555:18;;;8548:60;8625:18;;19583:50:0::1;8469:180:1::0;19583:50:0::1;19649:19:::0;;19646:362:::1;;19684:6;::::0;19858:21:::1;::::0;19684:244:::1;::::0;-1:-1:-1;;;19684:244:0;;19760:4:::1;19684:244;::::0;::::1;5492:34:1::0;5542:18;;;5535:34;;;19684:6:0::1;5585:18:1::0;;;5578:34;;;5628:18;;;5621:34;-1:-1:-1;;;;;19858:21:0;;::::1;5671:19:1::0;;;5664:44;19898:15:0::1;5724:19:1::0;;;5717:35;19684:6:0;::::1;::::0;:22:::1;::::0;19714:18;;5426:19:1;;19684:244:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;19948:48:0::1;::::0;;11071:25:1;;;11127:2;11112:18;;11105:34;;;19948:48:0::1;::::0;-1:-1:-1;11044:18:1;19948:48:0::1;;;;;;;19646:362;-1:-1:-1::0;;13161:6:0;:14;;-1:-1:-1;;13161:14:0;;;-1:-1:-1;;;;;;;;;18321:1694:0:o;17736:372::-;17907:14;;17896:4;;17821:7;;;;17861:61;;17907:14;17861:41;;17872:29;;-1:-1:-1;;;;;17884:16:0;;;17896:4;;17884:16;17872:11;:29::i;:::-;17861:6;;:10;:41::i;:61::-;17980:4;17962:24;;;;:9;:24;;;;;;17841:81;;-1:-1:-1;17962:39:0;;17841:81;17962:28;:39::i;:::-;17953:4;17935:24;;;;:9;:24;;;;;;;:66;;;;18017:42;;-1:-1:-1;;;;;18017:42:0;;;;;;;18049:9;9876:25:1;;9864:2;9849:18;;9831:76;18017:42:0;;;;;;;;18079:21;:6;18090:9;18079:10;:21::i;1188:345::-;1274:7;1376:12;1369:5;1361:28;;;;-1:-1:-1;;;1361:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1400:9:0;1412:5;1416:1;1412;:5;:::i;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:2;;164:1;161;154:12;108:2;60:114;;;:::o;179:247::-;238:6;291:2;279:9;270:7;266:23;262:32;259:2;;;307:1;304;297:12;259:2;346:9;333:23;365:31;390:5;365:31;:::i;691:388::-;759:6;767;820:2;808:9;799:7;795:23;791:32;788:2;;;836:1;833;826:12;788:2;875:9;862:23;894:31;919:5;894:31;:::i;:::-;944:5;-1:-1:-1;1001:2:1;986:18;;973:32;1014:33;973:32;1014:33;:::i;:::-;1066:7;1056:17;;;778:301;;;;;:::o;1084:456::-;1161:6;1169;1177;1230:2;1218:9;1209:7;1205:23;1201:32;1198:2;;;1246:1;1243;1236:12;1198:2;1285:9;1272:23;1304:31;1329:5;1304:31;:::i;:::-;1354:5;-1:-1:-1;1411:2:1;1396:18;;1383:32;1424:33;1383:32;1424:33;:::i;:::-;1188:352;;1476:7;;-1:-1:-1;;;1530:2:1;1515:18;;;;1502:32;;1188:352::o;1545:315::-;1610:6;1618;1671:2;1659:9;1650:7;1646:23;1642:32;1639:2;;;1687:1;1684;1677:12;1639:2;1726:9;1713:23;1745:31;1770:5;1745:31;:::i;:::-;1795:5;-1:-1:-1;1819:35:1;1850:2;1835:18;;1819:35;:::i;:::-;1809:45;;1629:231;;;;;:::o;1865:315::-;1933:6;1941;1994:2;1982:9;1973:7;1969:23;1965:32;1962:2;;;2010:1;2007;2000:12;1962:2;2049:9;2036:23;2068:31;2093:5;2068:31;:::i;:::-;2118:5;2170:2;2155:18;;;;2142:32;;-1:-1:-1;;;1952:228:1:o;2185:180::-;2241:6;2294:2;2282:9;2273:7;2269:23;2265:32;2262:2;;;2310:1;2307;2300:12;2262:2;2333:26;2349:9;2333:26;:::i;2370:248::-;2435:6;2443;2496:2;2484:9;2475:7;2471:23;2467:32;2464:2;;;2512:1;2509;2502:12;2464:2;2535:26;2551:9;2535:26;:::i;2623:180::-;2682:6;2735:2;2723:9;2714:7;2710:23;2706:32;2703:2;;;2751:1;2748;2741:12;2703:2;-1:-1:-1;2774:23:1;;2693:110;-1:-1:-1;2693:110:1:o;2808:184::-;2878:6;2931:2;2919:9;2910:7;2906:23;2902:32;2899:2;;;2947:1;2944;2937:12;2899:2;-1:-1:-1;2970:16:1;;2889:103;-1:-1:-1;2889:103:1:o;2997:248::-;3065:6;3073;3126:2;3114:9;3105:7;3101:23;3097:32;3094:2;;;3142:1;3139;3132:12;3094:2;-1:-1:-1;;3165:23:1;;;3235:2;3220:18;;;3207:32;;-1:-1:-1;3084:161:1:o;3250:306::-;3338:6;3346;3354;3407:2;3395:9;3386:7;3382:23;3378:32;3375:2;;;3423:1;3420;3413:12;3375:2;3452:9;3446:16;3436:26;;3502:2;3491:9;3487:18;3481:25;3471:35;;3546:2;3535:9;3531:18;3525:25;3515:35;;3365:191;;;;;:::o;3561:385::-;3647:6;3655;3663;3671;3724:3;3712:9;3703:7;3699:23;3695:33;3692:2;;;3741:1;3738;3731:12;3692:2;-1:-1:-1;;3764:23:1;;;3834:2;3819:18;;3806:32;;-1:-1:-1;3885:2:1;3870:18;;3857:32;;3936:2;3921:18;3908:32;;-1:-1:-1;3682:264:1;-1:-1:-1;3682:264:1:o;6181:597::-;6293:4;6322:2;6351;6340:9;6333:21;6383:6;6377:13;6426:6;6421:2;6410:9;6406:18;6399:34;6451:1;6461:140;6475:6;6472:1;6469:13;6461:140;;;6570:14;;;6566:23;;6560:30;6536:17;;;6555:2;6532:26;6525:66;6490:10;;6461:140;;;6619:6;6616:1;6613:13;6610:2;;;6689:1;6684:2;6675:6;6664:9;6660:22;6656:31;6649:42;6610:2;-1:-1:-1;6762:2:1;6741:15;-1:-1:-1;;6737:29:1;6722:45;;;;6769:2;6718:54;;6302:476;-1:-1:-1;;;6302:476:1:o;9056:329::-;9258:2;9240:21;;;9297:1;9277:18;;;9270:29;-1:-1:-1;;;9330:2:1;9315:18;;9308:36;9376:2;9361:18;;9230:155::o;9390:335::-;9592:2;9574:21;;;9631:2;9611:18;;;9604:30;-1:-1:-1;;;9665:2:1;9650:18;;9643:41;9716:2;9701:18;;9564:161::o;9912:980::-;10174:4;10222:3;10211:9;10207:19;10253:6;10242:9;10235:25;10279:2;10317:6;10312:2;10301:9;10297:18;10290:34;10360:3;10355:2;10344:9;10340:18;10333:31;10384:6;10419;10413:13;10450:6;10442;10435:22;10488:3;10477:9;10473:19;10466:26;;10527:2;10519:6;10515:15;10501:29;;10548:1;10558:195;10572:6;10569:1;10566:13;10558:195;;;10637:13;;-1:-1:-1;;;;;10633:39:1;10621:52;;10728:15;;;;10693:12;;;;10669:1;10587:9;10558:195;;;-1:-1:-1;;;;;;;10809:32:1;;;;10804:2;10789:18;;10782:60;-1:-1:-1;;;10873:3:1;10858:19;10851:35;10770:3;10183:709;-1:-1:-1;;;10183:709:1:o;11339:128::-;11379:3;11410:1;11406:6;11403:1;11400:13;11397:2;;;11416:18;;:::i;:::-;-1:-1:-1;11452:9:1;;11387:80::o;11472:217::-;11512:1;11538;11528:2;;11582:10;11577:3;11573:20;11570:1;11563:31;11617:4;11614:1;11607:15;11645:4;11642:1;11635:15;11528:2;-1:-1:-1;11674:9:1;;11518:171::o;11694:168::-;11734:7;11800:1;11796;11792:6;11788:14;11785:1;11782:21;11777:1;11770:9;11763:17;11759:45;11756:2;;;11807:18;;:::i;:::-;-1:-1:-1;11847:9:1;;11746:116::o;11867:125::-;11907:4;11935:1;11932;11929:8;11926:2;;;11940:18;;:::i;:::-;-1:-1:-1;11977:9:1;;11916:76::o;11997:127::-;12058:10;12053:3;12049:20;12046:1;12039:31;12089:4;12086:1;12079:15;12113:4;12110:1;12103:15;12129:127;12190:10;12185:3;12181:20;12178:1;12171:31;12221:4;12218:1;12211:15;12245:4;12242:1;12235:15;12393:131;-1:-1:-1;;;;;12468:31:1;;12458:42;;12448:2;;12514:1;12511;12504:12;12448:2;12438:86;:::o

Swarm Source

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