Contract 0xdad6d006ab190e536e2d256526d038d67303f577

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xd14d38070ac9d4c41974083fe3e94aa467c6dab78d00a835ea675f6f6299b3d8Approve132383722021-12-06 7:46:242 days 4 hrs ago0x5f19afaa05afe6328bccc8b011dbd6c47efbc2d6 IN  0xdad6d006ab190e536e2d256526d038d67303f5770 BNB0.00007238
0x82ecce0d326069388f268e3c7cf3768f622d510059ace807ece1ac2cbc23c586Approve132099152021-12-05 7:25:313 days 4 hrs ago0x790df6111b3c9c15e62a989751745ea725324013 IN  0xdad6d006ab190e536e2d256526d038d67303f5770 BNB0.00007238
0x374d64a05ffe91da706fca0fb5fb3045c0523cf0193e227c18f73e63c46f8d07Transfer131983602021-12-04 21:46:143 days 14 hrs ago0x23f7a01f197ecbbaaaaa7ea134fc738efedfc3ba IN  0xdad6d006ab190e536e2d256526d038d67303f5770 BNB0.000127955
0xf08a05cc16a39c5b566e73c9a2cd2d5fcdb89c1f6ba32680bce3ab55ea3460a7Transfer131983152021-12-04 21:43:593 days 14 hrs ago0x23f7a01f197ecbbaaaaa7ea134fc738efedfc3ba IN  0xdad6d006ab190e536e2d256526d038d67303f5770 BNB0.000127955
0x9b1f74032bf80372c017787624ed9ba0ee80aa56c9e6599f36a7f76357198208Approve131116802021-12-01 20:04:546 days 16 hrs ago0x7222a3fa1b9da063be15ec02bb1eefa7ed8e8d43 IN  0xdad6d006ab190e536e2d256526d038d67303f5770 BNB0.000086856
0x013ce5901b67e6937ec00cf63d437968e14db86a61a49bf9319b864635969171Transfer130568032021-11-29 18:52:048 days 17 hrs ago0x855b72b63018de934c44ba2ab0332cd624083b0b IN  0xdad6d006ab190e536e2d256526d038d67303f5770 BNB0.000127895
0xeb1c81d799060824ac1e87a6674609d8b8b196f20800a4df7e9aabcc54b0897fApprove130315332021-11-28 19:36:179 days 16 hrs ago0x057d3c723911d4807f1795ba777dc9ea5fe6b941 IN  0xdad6d006ab190e536e2d256526d038d67303f5770 BNB0.000221675
0x023dbd56a5f46213f163b7570db4007c9b48ddc53d97e8c68f598e7580b4dd8bApprove129536752021-11-25 20:46:3612 days 15 hrs ago0x29dfb7da8d41d0510663f0c70f2bee86e198f724 IN  0xdad6d006ab190e536e2d256526d038d67303f5770 BNB0.00007238
0x8c1122d44dcaa27b49618d967722058a2158b61c43d9dbe0c5be10baa4a111b0Approve129115452021-11-24 7:21:1514 days 5 hrs ago0x3c5c0b5b34b9176f057dade9a5e4e3e06b89971f IN  0xdad6d006ab190e536e2d256526d038d67303f5770 BNB0.000221675
0xe401a31d0a8b987d7b0917c0e4cc160ee7b95cf68b5881c637f56820db7572eaApprove129113512021-11-24 7:11:0414 days 5 hrs ago0x891c8ec5431eb1bb403b121b817365b218fd0807 IN  0xdad6d006ab190e536e2d256526d038d67303f5770 BNB0.00007238
0x3c5606f8e42071c5677d594a0eaa4583264ed5ee8543eb110d2b23ad1470da08Approve129105752021-11-24 6:31:0614 days 5 hrs ago0xe9b85f85b6991961f8272b6b2808d010345b0a9d IN  0xdad6d006ab190e536e2d256526d038d67303f5770 BNB0.00007751898
0x43ed5634ab3b420e72465961919186e57a66beea5786c9b68297950b34b49838Approve128711192021-11-22 20:23:4915 days 16 hrs ago0x4891ebe499cd1402018107a2549fda733e8952cb IN  0xdad6d006ab190e536e2d256526d038d67303f5770 BNB0.00007238
0xd6ada39dc011fe43e6dfaf4abe57d72f0fb8b9e9b64037581675fe7b8b758824Approve128319532021-11-21 10:44:3517 days 1 hr ago0x7fd5aac46709f83fcb789bc7cb7a38aa59c1d291 IN  0xdad6d006ab190e536e2d256526d038d67303f5770 BNB0.00007238
0x32511d73e2d35be5b13bd63978ccf2d087ae1d1e98871eeaff3d2cfda91dd3c7Approve127895972021-11-19 22:14:5818 days 14 hrs ago0xadaceff1e46c01588a763fcf933f5858a076030b IN  0xdad6d006ab190e536e2d256526d038d67303f5770 BNB0.00007238
0x4adc43848fdb1f4ac7c4323e5dfdb8186d244e7d090d0498a794036f25045709Approve127323642021-11-17 20:40:1720 days 15 hrs ago0xa1b140b862f7d5a105fe828c67225db081363a71 IN  0xdad6d006ab190e536e2d256526d038d67303f5770 BNB0.00007238
0x241ef3340d4777f605cdc9957b0f8cda192ec2d85e5f34038c6922527caba49eApprove126926062021-11-16 8:57:2422 days 3 hrs ago0xd7b1a3ade9eaa9e5aab41d13198b3fa229230000 IN  0xdad6d006ab190e536e2d256526d038d67303f5770 BNB0.00007238
0xab632c5150b6bc5d93dff4807f04c03c7b587ee9da0d13b5daa356001c4fa2afApprove126563052021-11-15 1:03:2423 days 11 hrs ago0xd7781928dd634a8e09d79ffafa904ea423458420 IN  0xdad6d006ab190e536e2d256526d038d67303f5770 BNB0.000221675
0xbe6e277714902b1994cd73553a422aacbd60f616a5724e194622d3dbdc10dd3dApprove126510632021-11-14 20:36:2323 days 15 hrs ago0x720156dae1c40f0ec77f2dc8573a812137774624 IN  0xdad6d006ab190e536e2d256526d038d67303f5770 BNB0.000221675
0x0bac5e3feb60dfdc7b9d837f02cfb5959ddf5212df3f2753784496559d4ae95dApprove126263952021-11-13 23:18:0724 days 13 hrs ago0xd7c3d084bf5869e72174b62d4e5f3756b2709b51 IN  0xdad6d006ab190e536e2d256526d038d67303f5770 BNB0.00007238
0xe5ce4a1ade31280075928a730dcdfa2c4d788a91018b996cf0b518fa657ccb35Approve126207552021-11-13 18:34:4924 days 17 hrs ago0x26c2a5880d634cbe4dc69ee93209fa2e48b34f55 IN  0xdad6d006ab190e536e2d256526d038d67303f5770 BNB0.00007238
0xac170231ae3e69b9c182fa886d8a4382d04d5f4c70ea7143793b85e847626c15Transfer125578852021-11-11 12:14:5727 days 9 mins ago0xf76b252f79794424f500b277f33835a4b29a7b93 IN  0xdad6d006ab190e536e2d256526d038d67303f5770 BNB0.000127955
0x164fd4c2219c2ea7ffc5dd750ef30bb9e87ffe5bda4e55b16263bdc6713e867cApprove125488442021-11-11 4:32:0627 days 7 hrs ago0x34896ffdbb26d6d87d719d1b4107108170b92c06 IN  0xdad6d006ab190e536e2d256526d038d67303f5770 BNB0.00007238
0x0fa1327f1fdc1a7233ce0a2de6028e73d4774f705a0a650e10ca41b2f71cfc97Transfer124995422021-11-09 10:05:1629 days 2 hrs ago0x71ae9db0647c41f4d1f27fec6913d7bd54fd027b IN  0xdad6d006ab190e536e2d256526d038d67303f5770 BNB0.000127955
0x66e3a80dc09cba30e43963d91d145bb37b76c5a335380f3ed9d70e2b9eda968aTransfer124995022021-11-09 10:03:1629 days 2 hrs ago0x71ae9db0647c41f4d1f27fec6913d7bd54fd027b IN  0xdad6d006ab190e536e2d256526d038d67303f5770 BNB0.000127955
0x62124161eb54e27b41d66b2543df52884eb8a3ba06965bcd7020439960c8ebd1Approve124158122021-11-06 11:44:4232 days 39 mins ago0x0f712bc3e273e063b65461eed43b73ed2b6de79e IN  0xdad6d006ab190e536e2d256526d038d67303f5770 BNB0.00007238
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x33746de389f7724d595a065ef5eb98a3431373ac8247b04b5fd710a9aad9e9f0117223132021-10-13 0:22:3256 days 12 hrs ago 0xdad6d006ab190e536e2d256526d038d67303f5770xb6d51c34ff0ec3e1b6aad29c919e891fb88f78570.701286440313828881 BNB
0xbadbf7a7629e9a31b071da5e845487b6c8e34a67be4941293c591ad61ce32a6b115428032021-10-06 17:41:2062 days 18 hrs ago 0xdad6d006ab190e536e2d256526d038d67303f5770xb6d51c34ff0ec3e1b6aad29c919e891fb88f78571.00454833108358064 BNB
0xbadbf7a7629e9a31b071da5e845487b6c8e34a67be4941293c591ad61ce32a6b115428032021-10-06 17:41:2062 days 18 hrs ago 0xdad6d006ab190e536e2d256526d038d67303f577 0xb50aca8e6933b34a8587a991a44d3175ecc859710.703183831758506448 BNB
0xbadbf7a7629e9a31b071da5e845487b6c8e34a67be4941293c591ad61ce32a6b115428032021-10-06 17:41:2062 days 18 hrs ago PancakeSwap: Router v2 0xdad6d006ab190e536e2d256526d038d67303f5771.707732162842087089 BNB
0x93bce9b00116e1cbc12dc91ca335b6705883911527731be5d994b3115aae677b115427512021-10-06 17:38:4462 days 18 hrs ago 0xdad6d006ab190e536e2d256526d038d67303f5770xb6d51c34ff0ec3e1b6aad29c919e891fb88f78570.11759231267160013 BNB
0x93bce9b00116e1cbc12dc91ca335b6705883911527731be5d994b3115aae677b115427512021-10-06 17:38:4462 days 18 hrs ago 0xdad6d006ab190e536e2d256526d038d67303f577 0xb50aca8e6933b34a8587a991a44d3175ecc859710.082314618870120091 BNB
0x93bce9b00116e1cbc12dc91ca335b6705883911527731be5d994b3115aae677b115427512021-10-06 17:38:4462 days 18 hrs ago PancakeSwap: Router v2 0xdad6d006ab190e536e2d256526d038d67303f5770.199906931541720222 BNB
0x4315366a7a98260adc366ed3a4f9bce4cd276788f2e085020b2119c5e2099c04115426942021-10-06 17:35:5362 days 18 hrs ago 0xdad6d006ab190e536e2d256526d038d67303f5770xb6d51c34ff0ec3e1b6aad29c919e891fb88f78570.117757098485765613 BNB
0x4315366a7a98260adc366ed3a4f9bce4cd276788f2e085020b2119c5e2099c04115426942021-10-06 17:35:5362 days 18 hrs ago 0xdad6d006ab190e536e2d256526d038d67303f577 0xb50aca8e6933b34a8587a991a44d3175ecc859710.082429968940035929 BNB
0x4315366a7a98260adc366ed3a4f9bce4cd276788f2e085020b2119c5e2099c04115426942021-10-06 17:35:5362 days 18 hrs ago PancakeSwap: Router v2 0xdad6d006ab190e536e2d256526d038d67303f5770.200187067425801543 BNB
0x4c84d7e77d4c175f4c07c3f148efac0e153f943bff574cd245e6188d5d06f8d2115414552021-10-06 16:33:5662 days 19 hrs ago 0xdad6d006ab190e536e2d256526d038d67303f5770xb6d51c34ff0ec3e1b6aad29c919e891fb88f78570.11792223106737279 BNB
0x4c84d7e77d4c175f4c07c3f148efac0e153f943bff574cd245e6188d5d06f8d2115414552021-10-06 16:33:5662 days 19 hrs ago 0xdad6d006ab190e536e2d256526d038d67303f577 0xb50aca8e6933b34a8587a991a44d3175ecc859710.082545561747160953 BNB
0x4c84d7e77d4c175f4c07c3f148efac0e153f943bff574cd245e6188d5d06f8d2115414552021-10-06 16:33:5662 days 19 hrs ago PancakeSwap: Router v2 0xdad6d006ab190e536e2d256526d038d67303f5770.200467792814533743 BNB
0xad27043eca2d83244d3415e357c6bf4e34c2806037c65e89e81221c3347a68c7115411242021-10-06 16:17:2362 days 20 hrs ago 0xdad6d006ab190e536e2d256526d038d67303f5770xb6d51c34ff0ec3e1b6aad29c919e891fb88f78570.118087711389937545 BNB
0xad27043eca2d83244d3415e357c6bf4e34c2806037c65e89e81221c3347a68c7115411242021-10-06 16:17:2362 days 20 hrs ago 0xdad6d006ab190e536e2d256526d038d67303f577 0xb50aca8e6933b34a8587a991a44d3175ecc859710.082661397972956282 BNB
0xad27043eca2d83244d3415e357c6bf4e34c2806037c65e89e81221c3347a68c7115411242021-10-06 16:17:2362 days 20 hrs ago PancakeSwap: Router v2 0xdad6d006ab190e536e2d256526d038d67303f5770.200749109362893828 BNB
0x4b03d76c6ace4bd0dbac7918bb447a7a09a6b28f93fe1e231d2fd784792f85c0115410672021-10-06 16:14:3262 days 20 hrs ago 0xdad6d006ab190e536e2d256526d038d67303f5770xb6d51c34ff0ec3e1b6aad29c919e891fb88f78570.12098875713158485 BNB
0x4b03d76c6ace4bd0dbac7918bb447a7a09a6b28f93fe1e231d2fd784792f85c0115410672021-10-06 16:14:3262 days 20 hrs ago 0xdad6d006ab190e536e2d256526d038d67303f577 0xb50aca8e6933b34a8587a991a44d3175ecc859710.084692129992109395 BNB
0x4b03d76c6ace4bd0dbac7918bb447a7a09a6b28f93fe1e231d2fd784792f85c0115410672021-10-06 16:14:3262 days 20 hrs ago PancakeSwap: Router v2 0xdad6d006ab190e536e2d256526d038d67303f5770.205680887123694245 BNB
0x4a082c45349b713ea18f906d283dbed019585cc5a35a2d1ffbd736cc5ea10040115410502021-10-06 16:13:4162 days 20 hrs ago 0xdad6d006ab190e536e2d256526d038d67303f5770xb6d51c34ff0ec3e1b6aad29c919e891fb88f78570.124069203127674292 BNB
0x4a082c45349b713ea18f906d283dbed019585cc5a35a2d1ffbd736cc5ea10040115410502021-10-06 16:13:4162 days 20 hrs ago 0xdad6d006ab190e536e2d256526d038d67303f577 0xb50aca8e6933b34a8587a991a44d3175ecc859710.086848442189372004 BNB
0x4a082c45349b713ea18f906d283dbed019585cc5a35a2d1ffbd736cc5ea10040115410502021-10-06 16:13:4162 days 20 hrs ago PancakeSwap: Router v2 0xdad6d006ab190e536e2d256526d038d67303f5770.210917645317046297 BNB
0x98a8ae7f30fb9f87318554a955e847b261b196cfc5473ec7095e200eb6bbcbfe115410282021-10-06 16:12:3562 days 20 hrs ago 0xdad6d006ab190e536e2d256526d038d67303f5770xb6d51c34ff0ec3e1b6aad29c919e891fb88f78570.126996824344293628 BNB
0x98a8ae7f30fb9f87318554a955e847b261b196cfc5473ec7095e200eb6bbcbfe115410282021-10-06 16:12:3562 days 20 hrs ago 0xdad6d006ab190e536e2d256526d038d67303f577 0xb50aca8e6933b34a8587a991a44d3175ecc859710.088897777041005539 BNB
0x98a8ae7f30fb9f87318554a955e847b261b196cfc5473ec7095e200eb6bbcbfe115410282021-10-06 16:12:3562 days 20 hrs ago PancakeSwap: Router v2 0xdad6d006ab190e536e2d256526d038d67303f5770.215894601385299168 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BabyAvengers

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

//SPDX-License-Identifier: MIT

pragma solidity ^0.7.4;


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;
    function purge(address receiver) external;
}

contract DividendDistributor is IDividendDistributor {
    using SafeMath for uint256;

    address public _token;

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

    IBEP20 public REWARD;
    address public WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
    IDEXRouter public 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;

    //SETMEUP, change this to 1 hour instead of 10mins
    uint256 public minPeriod = 30 * 60;
    uint256 public minDistribution = 1 * (10 ** 9);

    uint256 currentIndex;

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

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

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

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

    function purge(address receiver) external override onlyToken {
        uint256 balance = REWARD.balanceOf(address(this));
        REWARD.transfer(receiver, balance);
    }

    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 = REWARD.balanceOf(address(this));

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

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

        uint256 amount = REWARD.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);
            REWARD.transfer(shareholder, amount);
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }
    
    function claimDividend() external {
        distributeDividend(msg.sender);
    }

    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 BabyAvengers is IBEP20, Auth {
    using SafeMath for uint256;

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

    string constant _name = "BabyAvengers";
    string constant _symbol = "AVNGRS";
    uint8 constant _decimals = 4;

    uint256 _totalSupply = 1 * 10**12 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply * 100 / 100;

    //max wallet holding of 2% 
    uint256 public _maxWalletToken = ( _totalSupply * 100 ) / 100;

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

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

    uint256 liquidityFee    = 2;
    uint256 reflectionFee   = 10;
    uint256 marketingFee    = 2;
    uint256 totalFee = 14;
    uint256 feeDenominator  = 100;

    address autoLiquidityReceiver;
    address marketingFeeReceiver;

    uint256 targetLiquidity = 20;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;

    bool public tradingOpen = true;

    DividendDistributor public distributor;
    uint256 distributorGas = 500000;

    // Cooldown & timer functionality
    bool public buyCooldownEnabled = true;
    uint8 public cooldownTimerInterval = 45;
    mapping (address => uint) private cooldownTimer;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 10 / 10000; // 0.01% of supply
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        pair = IDEXFactory(router.factory()).createPair(WBNB, address(this));
        _allowances[address(this)][address(router)] = uint256(-1);

        distributor = new DividendDistributor(address(router), 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c);

        isFeeExempt[msg.sender] = true;
        isTxLimitExempt[msg.sender] = true;

        // No timelock for these people
        isTimelockExempt[msg.sender] = true;
        isTimelockExempt[DEAD] = true;
        isTimelockExempt[address(this)] = true;

        isDividendExempt[pair] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;

        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = msg.sender;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _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, uint256(-1));
    }

    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] != uint256(-1)){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    //settting the maximum permitted wallet holding (percent of total supply)
     function setMaxWalletPercent(uint256 maxWallPercent) external onlyOwner() {
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 100;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen,"Trading not open yet");
        }

        // max wallet code
        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != marketingFeeReceiver && recipient != autoLiquidityReceiver){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}
        

        
        // cooldown timer, so a bot doesnt do quick trades! 1min gap between 2 trades.
        if (sender == pair &&
            buyCooldownEnabled &&
            !isTimelockExempt[recipient]) {
            require(cooldownTimer[recipient] < block.timestamp,"Please wait for cooldown between buys");
            cooldownTimer[recipient] = block.timestamp + cooldownTimerInterval;
        }


        // Checks max transaction limit
        checkTxLimit(sender, amount);

        // Liquidity, Maintained at 25%
        if(shouldSwapBack()){ swapBack(); }

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

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

        // Dividend tracker
        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 takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).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 clearStuckBalance(uint256 amountPercentage) external onlyOwner {
        uint256 amountBNB = address(this).balance;
        payable(marketingFeeReceiver).transfer(amountBNB * amountPercentage / 100);
    }


    // switch Trading
    function tradingStatus(bool _status) public onlyOwner {
        tradingOpen = _status;
    }

    // enable cooldown between trades
    function cooldownEnabled(bool _status, uint8 _interval) public onlyOwner {
        buyCooldownEnabled = _status;
        cooldownTimerInterval = _interval;
    }

    // new dividend tracker, clear balance
    function purgeBeforeSwitch() public onlyOwner {
        distributor.purge(msg.sender);
    }

    // new dividend tracker
    function switchToken(address rewardToken) public onlyOwner {
        distributor = new DividendDistributor(address(router), rewardToken);
    }

    // manual claim for the greedy humans
    function ___claimRewards() public {
        distributor.claimDividend();
        try distributor.process(distributorGas) {} catch {}
    }

    // manually clear the queue
    function claimProcess() public {
        try distributor.process(distributorGas) {} catch {}
    }




    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.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(dynamicLiquidityFee.div(2));
        
        uint256 amountBNBLiquidity = amountBNB.mul(dynamicLiquidityFee).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 tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountBNBMarketing, gas: 30000}("");
        
        // only to supress warning msg
        tmpSuccess = false;

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


    function setTxLimit(uint256 amount) external authorized {
        _maxTxAmount = 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 setIsTimelockExempt(address holder, bool exempt) external authorized {
        isTimelockExempt[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;
        require(totalFee < feeDenominator/4);
    }

    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 setTargetLiquidity(uint256 _target, uint256 _denominator) external authorized {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }

    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external authorized {
        distributor.setDistributionCriteria(_minPeriod, _minDistribution);
    }

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


 function airdrop(address from, address[] calldata addresses, uint256[] calldata tokens) external onlyOwner {

    uint256 SCCC = 0;

    require(addresses.length == tokens.length,"Mismatch between Address and token count");

    for(uint i=0; i < addresses.length; i++){
        SCCC = SCCC + tokens[i];
    }

    require(balanceOf(from) >= SCCC, "Not enough tokens to airdrop");

    for(uint i=0; i < addresses.length; i++){
        _basicTransfer(from,addresses[i],tokens[i]);
        if(!isDividendExempt[addresses[i]]) {
            try distributor.setShare(addresses[i], _balances[addresses[i]]) {} catch {} 
        }
    }

    // Dividend tracker
    if(!isDividendExempt[from]) {
        try distributor.setShare(from, _balances[from]) {} catch {}
    }
}

 function airdropFixed(address from, address[] calldata addresses, uint256 tokens) external onlyOwner {

    uint256 SCCC = addresses.length * tokens;

    require(balanceOf(from) >= SCCC, "Not enough tokens to airdrop");

    for(uint i=0; i < addresses.length; i++){
        _basicTransfer(from,addresses[i],tokens);
        if(!isDividendExempt[addresses[i]]) {
            try distributor.setShare(addresses[i], _balances[addresses[i]]) {} catch {} 
        }
    }

    // Dividend tracker
    if(!isDividendExempt[from]) {
        try distributor.setShare(from, _balances[from]) {} catch {}
    }
}

    event AutoLiquify(uint256 amountBNB, uint256 amountBOG);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"___claimRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"airdropFixed","outputs":[],"stateMutability":"nonpayable","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":"buyCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimProcess","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint8","name":"_interval","type":"uint8"}],"name":"cooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"distributor","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"stateMutability":"view","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":"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":"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":"purgeBeforeSwitch","outputs":[],"stateMutability":"nonpayable","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":"setIsTimelockExempt","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":"maxWallPercent","type":"uint256"}],"name":"setMaxWalletPercent","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":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","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":[{"internalType":"address","name":"rewardToken","type":"address"}],"name":"switchToken","outputs":[],"stateMutability":"nonpayable","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":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address 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"}]

6080604052600280546001600160a01b031990811673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c17825560038054821661dead179055600480549091169055662386f26fc1000060058190556006819055600755600e818155600a600f5560109190915560115560646012819055601460155560165560188054600160a01b60ff60a01b199091161790556207a120601a55601b805460ff19908116600190811761ff001916612d0017909255601d805490911690911790556509184e72a000601e55348015620000d257600080fd5b50600080546001600160a01b0319908116339081178355825260016020818152604093849020805460ff1916909217909155601780549092167310ed43c718714eb63d5aa57b78b54704e256024e1791829055825163c45a015560e01b815292516001600160a01b03929092169263c45a01559260048083019392829003018186803b1580156200016257600080fd5b505afa15801562000177573d6000803e3d6000fd5b505050506040513d60208110156200018e57600080fd5b5051600254604080516364e329cb60e11b81526001600160a01b0392831660048201523060248201529051919092169163c9c653969160448083019260209291908290030181600087803b158015620001e657600080fd5b505af1158015620001fb573d6000803e3d6000fd5b505050506040513d60208110156200021257600080fd5b5051601880546001600160a01b0319166001600160a01b039283161790553060009081526009602090815260408083206017805486168552925291829020600019905554905191169073bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c906200027c90620003c7565b6001600160a01b03928316815291166020820152604080519182900301906000f080158015620002b0573d6000803e3d6000fd5b50601980546001600160a01b039283166001600160a01b031991821617909155336000818152600a60209081526040808320805460ff199081166001908117909255600b84528285208054821683179055600c84528285208054821683179055600380548916865283862080548316841790553080875284872080548416851790556018548a168752600d8652848720805484168517905586528386208054831684179055549097168452818420805490971617909555601380548516841790556014805490941683179093556005548282526008845284822081905584519081529351919390927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3620003d5565b6110de806200461083390190565b61422b80620003e56000396000f3fe608060405260043610620003135760003560e01c8063722b62ad1162000199578063bfe1092811620000f1578063f0b37c0411620000a3578063f84ba65d1162000079578063f84ba65d1462000ce5578063f887ea401462000d24578063fe9fbb801462000d3c578063ffb54a991462000d73576200031b565b8063f0b37c041462000c38578063f2fde38b1462000c6f578063f708a64f1462000ca6576200031b565b8063bfe109281462000b2e578063d4bc12b41462000b46578063d51ed1c81462000b7d578063d695bb271462000bab578063dd62ed3e1462000bc3578063df20fd491462000c02576200031b565b80639d1944f5116200014b5780639d1944f514620009a1578063a4b45c0014620009cf578063a8aa1b311462000a0e578063a9059cbb1462000a26578063abdcd9481462000a63578063b6a5d7de1462000af7576200031b565b8063722b62ad14620008df57806378109e5414620008f75780637d1db4a5146200090f57806382bf293c1462000927578063893d20e8146200095557806395d89b411462000989576200031b565b80632d594567116200026b5780635fe4bea8116200021d578063658d4b7f11620001f3578063658d4b7f14620008115780636ddd171314620008505780636fcba377146200086857806370a0823114620008a8576200031b565b80635fe4bea814620007c9578063617fe0ed14620007e1578063621c447914620007f9576200031b565b80632d59456714620006875780632f54bf6e14620006c0578063313ce56714620006f757806350db71fb1462000725578063571ac8b014620007645780635c85974f146200079b576200031b565b806318160ddd11620002c557806318160ddd146200057a5780631da1db5e1462000592578063201e799114620005c057806323b872dd14620005f45780632b112e49146200063b5780632d48e8961462000653576200031b565b8063025ff12f14620003205780630445b667146200040b57806306fdde031462000435578063095ea7b314620004c55780630d29598014620005165780631161ae391462000546576200031b565b366200031b57005b600080fd5b3480156200032d57600080fd5b5062000409600480360360608110156200034657600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156200037257600080fd5b8201836020820111156200038557600080fd5b80359060200191846020830284011164010000000083111715620003a857600080fd5b919390929091602081019035640100000000811115620003c757600080fd5b820183602082011115620003da57600080fd5b80359060200191846020830284011164010000000083111715620003fd57600080fd5b50909250905062000d8b565b005b3480156200041857600080fd5b50620004236200109a565b60408051918252519081900360200190f35b3480156200044257600080fd5b506200044d620010a0565b6040805160208082528351818301528351919283929083019185019080838360005b83811015620004895781810151838201526020016200046f565b50505050905090810190601f168015620004b75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015620004d257600080fd5b506200050260048036036040811015620004eb57600080fd5b506001600160a01b038135169060200135620010c6565b604080519115158252519081900360200190f35b3480156200052357600080fd5b5062000409600480360360208110156200053c57600080fd5b503515156200112d565b3480156200055357600080fd5b5062000502600480360360408110156200056c57600080fd5b508035906020013562001191565b3480156200058757600080fd5b5062000423620011a7565b3480156200059f57600080fd5b506200040960048036036020811015620005b857600080fd5b5035620011ad565b348015620005cd57600080fd5b506200040960048036036040811015620005e657600080fd5b508035906020013562001237565b3480156200060157600080fd5b5062000502600480360360608110156200061a57600080fd5b506001600160a01b038135811691602081013590911690604001356200128d565b3480156200064857600080fd5b506200042362001354565b3480156200066057600080fd5b5062000409600480360360408110156200067957600080fd5b5080359060200135620013a5565b3480156200069457600080fd5b506200040960048036036040811015620006ad57600080fd5b5080351515906020013560ff166200145a565b348015620006cd57600080fd5b506200050260048036036020811015620006e657600080fd5b50356001600160a01b0316620014c6565b3480156200070457600080fd5b506200070f620014da565b6040805160ff9092168252519081900360200190f35b3480156200073257600080fd5b5062000409600480360360408110156200074b57600080fd5b506001600160a01b0381351690602001351515620014df565b3480156200077157600080fd5b5062000502600480360360208110156200078a57600080fd5b50356001600160a01b031662001555565b348015620007a857600080fd5b506200040960048036036020811015620007c157600080fd5b503562001565565b348015620007d657600080fd5b5062000409620015b5565b348015620007ee57600080fd5b506200050262001663565b3480156200080657600080fd5b50620004096200166c565b3480156200081e57600080fd5b5062000409600480360360408110156200083757600080fd5b506001600160a01b03813516906020013515156200173f565b3480156200085d57600080fd5b5062000502620017b5565b3480156200087557600080fd5b5062000409600480360360808110156200088e57600080fd5b5080359060208101359060408101359060600135620017be565b348015620008b557600080fd5b506200042360048036036020811015620008ce57600080fd5b50356001600160a01b03166200184a565b348015620008ec57600080fd5b506200070f62001865565b3480156200090457600080fd5b506200042362001873565b3480156200091c57600080fd5b506200042362001879565b3480156200093457600080fd5b5062000409600480360360208110156200094d57600080fd5b50356200187f565b3480156200096257600080fd5b506200096d620018db565b604080516001600160a01b039092168252519081900360200190f35b3480156200099657600080fd5b506200044d620018ea565b348015620009ae57600080fd5b506200040960048036036020811015620009c757600080fd5b50356200190a565b348015620009dc57600080fd5b506200040960048036036040811015620009f557600080fd5b506001600160a01b03813581169160200135166200196a565b34801562000a1b57600080fd5b506200096d620019e3565b34801562000a3357600080fd5b50620005026004803603604081101562000a4c57600080fd5b506001600160a01b038135169060200135620019f2565b34801562000a7057600080fd5b50620004096004803603606081101562000a8957600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111562000ab557600080fd5b82018360208201111562000ac857600080fd5b8035906020019184602083028401116401000000008311171562000aeb57600080fd5b91935091503562001a01565b34801562000b0457600080fd5b50620004096004803603602081101562000b1d57600080fd5b50356001600160a01b031662001c88565b34801562000b3b57600080fd5b506200096d62001cf5565b34801562000b5357600080fd5b50620004096004803603602081101562000b6c57600080fd5b50356001600160a01b031662001d04565b34801562000b8a57600080fd5b50620004236004803603602081101562000ba357600080fd5b503562001dc1565b34801562000bb857600080fd5b506200040962001e0b565b34801562000bd057600080fd5b50620004236004803603604081101562000be957600080fd5b506001600160a01b038135811691602001351662001e5f565b34801562000c0f57600080fd5b50620004096004803603604081101562000c2857600080fd5b5080351515906020013562001e8a565b34801562000c4557600080fd5b50620004096004803603602081101562000c5e57600080fd5b50356001600160a01b031662001eec565b34801562000c7c57600080fd5b50620004096004803603602081101562000c9557600080fd5b50356001600160a01b031662001f53565b34801562000cb357600080fd5b50620004096004803603604081101562000ccc57600080fd5b506001600160a01b038135169060200135151562002007565b34801562000cf257600080fd5b50620004096004803603604081101562000d0b57600080fd5b506001600160a01b038135169060200135151562002188565b34801562000d3157600080fd5b506200096d620021fe565b34801562000d4957600080fd5b50620005026004803603602081101562000d6257600080fd5b50356001600160a01b03166200220d565b34801562000d8057600080fd5b50620005026200222b565b62000d9633620014c6565b62000dd1576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b600083821462000e135760405162461bcd60e51b81526004018080602001828103825260288152602001806200414a6028913960400191505060405180910390fd5b60005b8481101562000e435783838281811062000e2c57fe5b602002919091013592909201915060010162000e16565b508062000e50876200184a565b101562000ea4576040805162461bcd60e51b815260206004820152601c60248201527f4e6f7420656e6f75676820746f6b656e7320746f2061697264726f7000000000604482015290519081900360640190fd5b60005b8481101562000ffd5762000eec8787878481811062000ec257fe5b905060200201356001600160a01b031686868581811062000edf57fe5b905060200201356200223b565b50600d600087878481811062000efe57fe5b602090810292909201356001600160a01b03168352508101919091526040016000205460ff1662000ff4576019546001600160a01b03166314b6ca9687878481811062000f4757fe5b905060200201356001600160a01b0316600860008a8a8781811062000f6857fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020546040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801562000fe057600080fd5b505af192505050801562000ff2575060015b505b60010162000ea7565b506001600160a01b0386166000908152600d602052604090205460ff1662001092576019546001600160a01b03878116600081815260086020526040808220548151630a5b654b60e11b8152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b1580156200107e57600080fd5b505af192505050801562001090575060015b505b505050505050565b601e5481565b60408051808201909152600c81526b426162794176656e6765727360a01b602082015290565b3360008181526009602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b6200113833620014c6565b62001173576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b60188054911515600160a01b0260ff60a01b19909216919091179055565b6000826200119f8362001dc1565b119392505050565b60055490565b620011b833620014c6565b620011f3576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b60145460405147916001600160a01b03169060648484020480156108fc02916000818181858888f1935050505015801562001232573d6000803e3d6000fd5b505050565b62001242336200220d565b62001282576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601591909155601655565b6001600160a01b0383166000908152600960209081526040808320338452909152812054600019146200133d576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546200131891849062002320565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6200134a848484620023bb565b90505b9392505050565b600454600090620013a09062001373906001600160a01b03166200184a565b60035462001399906200138f906001600160a01b03166200184a565b600554906200291f565b906200291f565b905090565b620013b0336200220d565b620013f0576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601954604080516316a4744b60e11b8152600481018590526024810184905290516001600160a01b0390921691632d48e8969160448082019260009290919082900301818387803b1580156200144557600080fd5b505af115801562001092573d6000803e3d6000fd5b6200146533620014c6565b620014a0576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b601b805460ff19169215159290921761ff00191661010060ff9290921691909102179055565b6000546001600160a01b0390811691161490565b600490565b620014ea336200220d565b6200152a576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b60006200112782600019620010c6565b62001570336200220d565b620015b0576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600655565b620015c033620014c6565b620015fb576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6019546040805163a6871bc360e01b815233600482015290516001600160a01b039092169163a6871bc39160248082019260009290919082900301818387803b1580156200164857600080fd5b505af11580156200165d573d6000803e3d6000fd5b50505050565b601b5460ff1681565b601960009054906101000a90046001600160a01b03166001600160a01b031663f0fc6bca6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620016bd57600080fd5b505af1158015620016d2573d6000803e3d6000fd5b5050601954601a54604080516001624d3b8760e01b031981526004810192909252516001600160a01b03909216935063ffb2c479925060248082019260009290919082900301818387803b1580156200172a57600080fd5b505af19250505080156200173c575060015b50565b6200174a336200220d565b6200178a576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b601d5460ff1681565b620017c9336200220d565b62001809576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600e849055600f8390556010829055620018308262001829868662002963565b9062002963565b601155601281905560048104601154106200165d57600080fd5b6001600160a01b031660009081526008602052604090205490565b601b54610100900460ff1681565b60075481565b60065481565b6200188a33620014c6565b620018c5576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6064816005540281620018d457fe5b0460075550565b6000546001600160a01b031690565b60408051808201909152600681526541564e47525360d01b602082015290565b62001915336200220d565b62001955576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b620b71b081106200196557600080fd5b601a55565b62001975336200220d565b620019b5576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601380546001600160a01b039384166001600160a01b03199182161790915560148054929093169116179055565b6018546001600160a01b031681565b60006200134d338484620023bb565b62001a0c33620014c6565b62001a47576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b8181028062001a56866200184a565b101562001aaa576040805162461bcd60e51b815260206004820152601c60248201527f4e6f7420656e6f75676820746f6b656e7320746f2061697264726f7000000000604482015290519081900360640190fd5b60005b8381101562001bf05762001adf8686868481811062001ac857fe5b905060200201356001600160a01b0316856200223b565b50600d600086868481811062001af157fe5b602090810292909201356001600160a01b03168352508101919091526040016000205460ff1662001be7576019546001600160a01b03166314b6ca9686868481811062001b3a57fe5b905060200201356001600160a01b03166008600089898781811062001b5b57fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020546040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801562001bd357600080fd5b505af192505050801562001be5575060015b505b60010162001aad565b506001600160a01b0385166000908152600d602052604090205460ff1662001c81576019546001600160a01b03868116600081815260086020526040808220548151630a5b654b60e11b8152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b15801562001c7157600080fd5b505af19250505080156200109257505b5050505050565b62001c9333620014c6565b62001cce576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6019546001600160a01b031681565b62001d0f33620014c6565b62001d4a576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6017546040516001600160a01b0390911690829062001d69906200305d565b6001600160a01b03928316815291166020820152604080519182900301906000f08015801562001d9d573d6000803e3d6000fd5b50601980546001600160a01b0319166001600160a01b039290921691909117905550565b60006200112762001dd162001354565b60185462001e049062001dfc9060029062001df5906001600160a01b03166200184a565b90620029be565b8590620029be565b9062002a1c565b601954601a54604080516001624d3b8760e01b031981526004810192909252516001600160a01b039092169163ffb2c4799160248082019260009290919082900301818387803b1580156200172a57600080fd5b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b62001e95336200220d565b62001ed5576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601d805460ff191692151592909217909155601e55565b62001ef733620014c6565b62001f32576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160205260409020805460ff19169055565b62001f5e33620014c6565b62001f99576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff1916909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b62002012336200220d565b62002052576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03821630148015906200207a57506018546001600160a01b03838116911614155b6200208457600080fd5b6001600160a01b0382166000908152600d60205260409020805460ff19168215801591909117909155620021255760195460408051630a5b654b60e11b81526001600160a01b03858116600483015260006024830181905292519316926314b6ca969260448084019391929182900301818387803b1580156200210657600080fd5b505af11580156200211b573d6000803e3d6000fd5b5050505062002184565b6019546001600160a01b03838116600081815260086020526040808220548151630a5b654b60e11b8152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b1580156200144557600080fd5b5050565b62002193336200220d565b620021d3576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6017546001600160a01b031681565b6001600160a01b031660009081526001602052604090205460ff1690565b601854600160a01b900460ff1681565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546200228e91849062002320565b6001600160a01b038086166000908152600860205260408082209390935590851681522054620022bf908362002963565b6001600160a01b0380851660008181526008602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b60008184841115620023b35760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620023775781810151838201526020016200235d565b50505050905090810190601f168015620023a55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b601f5460009060ff1615620023df57620023d78484846200223b565b90506200134d565b6001600160a01b03841660009081526001602052604090205460ff161580156200242257506001600160a01b03831660009081526001602052604090205460ff16155b156200247e57601854600160a01b900460ff166200247e576040805162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015290519081900360640190fd5b6001600160a01b03841660009081526001602052604090205460ff16158015620024b157506001600160a01b0383163014155b8015620024cc57506003546001600160a01b03848116911614155b8015620024e757506018546001600160a01b03848116911614155b80156200250257506014546001600160a01b03848116911614155b80156200251d57506013546001600160a01b03848116911614155b156200257957600062002530846200184a565b90506007548382011115620025775760405162461bcd60e51b815260040180806020018281038252603e815260200180620041b8603e913960400191505060405180910390fd5b505b6018546001600160a01b038581169116148015620025995750601b5460ff165b8015620025bf57506001600160a01b0383166000908152600c602052604090205460ff16155b1562002646576001600160a01b0383166000908152601c602052604090205442116200261d5760405162461bcd60e51b8152600401808060200182810382526025815260200180620041726025913960400191505060405180910390fd5b601b546001600160a01b0384166000908152601c6020526040902061010090910460ff16420190555b62002652848362002a60565b6200265c62002ad0565b156200266c576200266c62002b22565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054620026c091849062002320565b6001600160a01b038516600090815260086020526040812091909155620026e78562002f2c565b620026f35782620026ff565b620026ff858462002f4b565b6001600160a01b03851660009081526008602052604090205490915062002727908262002963565b6001600160a01b038086166000908152600860209081526040808320949094559188168152600d909152205460ff16620027ce576019546001600160a01b03868116600081815260086020526040808220548151630a5b654b60e11b8152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b158015620027ba57600080fd5b505af1925050508015620027cc575060015b505b6001600160a01b0384166000908152600d602052604090205460ff1662002862576019546001600160a01b03858116600081815260086020526040808220548151630a5b654b60e11b8152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b1580156200284e57600080fd5b505af192505050801562002860575060015b505b601954601a54604080516001624d3b8760e01b031981526004810192909252516001600160a01b039092169163ffb2c4799160248082019260009290919082900301818387803b158015620028b657600080fd5b505af1925050508015620028c8575060015b50836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3506001949350505050565b60006200134d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525062002320565b6000828201838110156200134d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082620029cf5750600062001127565b82820282848281620029dd57fe5b04146200134d5760405162461bcd60e51b8152600401808060200182810382526021815260200180620041976021913960400191505060405180910390fd5b60006200134d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062002ff4565b6006548111158062002a8a57506001600160a01b0382166000908152600b602052604090205460ff165b62002184576040805162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015290519081900360640190fd5b6018546000906001600160a01b0316331480159062002af25750601f5460ff16155b801562002b015750601d5460ff165b8015620013a0575050601e5430600090815260086020526040902054101590565b601f805460ff1916600117905560155460165460009162002b439162001191565b62002b5157600e5462002b54565b60005b9050600062002b7c600262001e0460115462001e0486601e54620029be90919063ffffffff16565b9050600062002b9782601e546200291f90919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811062002bcc57fe5b6001600160a01b03928316602091820292909201015260025482519116908290600190811062002bf857fe5b6001600160a01b0392831660209182029290920181019190915260175460405163791ac94760e01b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b8381101562002c9457818101518382015260200162002c7a565b505050509050019650505050505050600060405180830381600087803b15801562002cbe57600080fd5b505af115801562002cd3573d6000803e3d6000fd5b50505050600062002cee82476200291f90919063ffffffff16565b9050600062002d0d62002d0388600262002a1c565b601154906200291f565b9050600062002d25600262001e048481878d620029be565b9050600062002d458362001e04600f5487620029be90919063ffffffff16565b9050600062002d658462001e0460105488620029be90919063ffffffff16565b9050601960009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801562002db857600080fd5b505af19350505050801562002dcb575060015b506014546040516000916001600160a01b03169061753090849084818181858888f193505050503d806000811462002e20576040519150601f19603f3d011682016040523d82523d6000602084013e62002e25565b606091505b5060009250508a15905062002f15576017546013546040805163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991879160c48082019260609290919082900301818588803b15801562002eaa57600080fd5b505af115801562002ebf573d6000803e3d6000fd5b50505050506040513d606081101562002ed757600080fd5b505060408051858152602081018c905281517f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506929181900390910190a15b5050601f805460ff19169055505050505050505050565b6001600160a01b03166000908152600a602052604090205460ff161590565b60008062002f6c60125462001e0460115486620029be90919063ffffffff16565b3060009081526008602052604090205490915062002f8b908262002963565b30600081815260086020908152604091829020939093558051848152905191926001600160a01b038816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a362002fec83826200291f565b949350505050565b60008183620030465760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315620023775781810151838201526020016200235d565b5060008385816200305357fe5b0495945050505050565b6110de806200306c8339019056fe6080604052600280546001600160a01b03191673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c1790556ec097ce7bc90715b34b9f1000000000600c55610708600d55633b9aca00600e5534801561005757600080fd5b506040516110de3803806110de8339818101604052604081101561007a57600080fd5b5080516020909101516001600160a01b0382166100ab577310ed43c718714eb63d5aa57b78b54704e256024e6100ad565b815b600380546001600160a01b039283166001600160a01b031991821617909155600080548216331790556001805493909216921691909117905550610fe8806100f66000396000f3fe6080604052600436106101145760003560e01c8063cab34c08116100a0578063efca2eed11610064578063efca2eed14610319578063f0fc6bca1461032e578063f887ea4014610343578063ffb2c47914610358578063ffd49c841461038257610114565b8063cab34c0814610281578063ce7c2ac214610296578063d0e30db0146102e7578063e2d2e219146102ef578063ecd0c0c31461030457610114565b80633a98ef39116100e75780633a98ef39146101de5780634fab0ae8146101f35780638dd9500214610208578063997664d714610239578063a6871bc31461024e57610114565b806311ce023d1461011957806314b6ca961461014057806328fd31981461017b5780632d48e896146101ae575b600080fd5b34801561012557600080fd5b5061012e610397565b60408051918252519081900360200190f35b34801561014c57600080fd5b506101796004803603604081101561016357600080fd5b506001600160a01b03813516906020013561039d565b005b34801561018757600080fd5b5061012e6004803603602081101561019e57600080fd5b50356001600160a01b03166104c2565b3480156101ba57600080fd5b50610179600480360360408110156101d157600080fd5b508035906020013561054e565b3480156101ea57600080fd5b5061012e610570565b3480156101ff57600080fd5b5061012e610576565b34801561021457600080fd5b5061021d61057c565b604080516001600160a01b039092168252519081900360200190f35b34801561024557600080fd5b5061012e61058b565b34801561025a57600080fd5b506101796004803603602081101561027157600080fd5b50356001600160a01b0316610591565b34801561028d57600080fd5b5061021d6106a7565b3480156102a257600080fd5b506102c9600480360360208110156102b957600080fd5b50356001600160a01b03166106b6565b60408051938452602084019290925282820152519081900360600190f35b6101796106d7565b3480156102fb57600080fd5b5061012e610969565b34801561031057600080fd5b5061021d61096f565b34801561032557600080fd5b5061012e61097e565b34801561033a57600080fd5b50610179610984565b34801561034f57600080fd5b5061021d61098f565b34801561036457600080fd5b506101796004803603602081101561037b57600080fd5b503561099e565b34801561038e57600080fd5b5061012e610a80565b600c5481565b6000546001600160a01b031633146103b457600080fd5b6001600160a01b038216600090815260076020526040902054156103db576103db82610a86565b60008111801561040157506001600160a01b038216600090815260076020526040902054155b156104145761040f82610bae565b610447565b8015801561043957506001600160a01b03821660009081526007602052604090205415155b156104475761044782610c0f565b6001600160a01b03821660009081526007602052604090205460085461047891839161047291610cfc565b90610d47565b6008556001600160a01b038216600090815260076020526040902081905561049f81610da1565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6001600160a01b0381166000908152600760205260408120546104e757506000610549565b6001600160a01b03821660009081526007602052604081205461050990610da1565b6001600160a01b03841660009081526007602052604090206001015490915080821161053a57600092505050610549565b6105448282610cfc565b925050505b919050565b6000546001600160a01b0316331461056557600080fd5b600d91909155600e55565b60085481565b600e5481565b6002546001600160a01b031681565b60095481565b6000546001600160a01b031633146105a857600080fd5b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156105f357600080fd5b505afa158015610607573d6000803e3d6000fd5b505050506040513d602081101561061d57600080fd5b50516001546040805163a9059cbb60e01b81526001600160a01b03868116600483015260248201859052915193945091169163a9059cbb916044808201926020929091908290030181600087803b15801561067757600080fd5b505af115801561068b573d6000803e3d6000fd5b505050506040513d60208110156106a157600080fd5b50505050565b6001546001600160a01b031681565b60076020526000908152604090208054600182015460029092015490919083565b6000546001600160a01b031633146106ee57600080fd5b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561073957600080fd5b505afa15801561074d573d6000803e3d6000fd5b505050506040513d602081101561076357600080fd5b50516040805160028082526060820183529293506000929091602083019080368337505060025482519293506001600160a01b0316918391506000906107a557fe5b6001600160a01b03928316602091820292909201015260018054835192169183919081106107cf57fe5b6001600160a01b0392831660209182029290920181019190915260035460405163b6f9de9560e01b815260006004820181815230604484018190524260648501819052608060248601908152895160848701528951969098169763b6f9de9597349795968b969495939460a49091019187810191028083838b5b83811015610861578181015183820152602001610849565b50505050905001955050505050506000604051808303818588803b15801561088857600080fd5b505af115801561089c573d6000803e3d6000fd5b5050600154604080516370a0823160e01b815230600482015290516000955061092794508793506001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156108f557600080fd5b505afa158015610909573d6000803e3d6000fd5b505050506040513d602081101561091f57600080fd5b505190610cfc565b6009549091506109379082610d47565b600955600854600c5461096191610958916109529085610dbe565b90610e17565b600b5490610d47565b600b55505050565b600b5481565b6000546001600160a01b031681565b600a5481565b61098d33610a86565b565b6003546001600160a01b031681565b6000546001600160a01b031633146109b557600080fd5b600454806109c35750610a7d565b6000805a905060005b84831080156109da57508381105b15610a785783600f54106109ee576000600f555b610a1a6004600f5481548110610a0057fe5b6000918252602090912001546001600160a01b0316610e59565b15610a4b57610a4b6004600f5481548110610a3157fe5b6000918252602090912001546001600160a01b0316610a86565b610a60610a595a8490610cfc565b8490610d47565b92505a600f80546001908101909155909250016109cc565b505050505b50565b600d5481565b6001600160a01b038116600090815260076020526040902054610aa857610a7d565b6000610ab3826104c2565b90508015610baa57600a54610ac89082610d47565b600a556001546040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015610b2157600080fd5b505af1158015610b35573d6000803e3d6000fd5b505050506040513d6020811015610b4b57600080fd5b50506001600160a01b03821660009081526006602090815260408083204290556007909152902060020154610b809082610d47565b6001600160a01b038316600090815260076020526040902060028101919091555461049f90610da1565b5050565b600480546001600160a01b039092166000818152600560205260408120849055600184018355919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90910180546001600160a01b0319169091179055565b600480546000198101908110610c2157fe5b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610c5957fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600591829052604081205460048054919392916000198101908110610ca757fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610cd757fe5b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610d3e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e95565b90505b92915050565b600082820183811015610d3e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610d41600c54610952600b5485610dbe90919063ffffffff16565b600082610dcd57506000610d41565b82820282848281610dda57fe5b0414610d3e5760405162461bcd60e51b8152600401808060200182810382526021815260200180610f926021913960400191505060405180910390fd5b6000610d3e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610f2c565b600d546001600160a01b0382166000908152600660205260408120549091429101108015610d415750600e54610e8e836104c2565b1192915050565b60008184841115610f245760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ee9578181015183820152602001610ed1565b50505050905090810190601f168015610f165780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610f7b5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610ee9578181015183820152602001610ed1565b506000838581610f8757fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220a32b00a51d1be4110a1a4bf2be732f90868b0e7e10ac86f75a4683d2e8e25ebf64736f6c634300070600334d69736d61746368206265747765656e204164647265737320616e6420746f6b656e20636f756e74506c65617365207761697420666f7220636f6f6c646f776e206265747765656e2062757973536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77546f74616c20486f6c64696e672069732063757272656e746c79206c696d697465642c20796f752063616e206e6f74206275792074686174206d7563682ea264697066735822122098f8e78ab59b8d657bd7fbd283284eb89ea720b81024bfc6646ae453ba91ffde64736f6c634300070600336080604052600280546001600160a01b03191673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c1790556ec097ce7bc90715b34b9f1000000000600c55610708600d55633b9aca00600e5534801561005757600080fd5b506040516110de3803806110de8339818101604052604081101561007a57600080fd5b5080516020909101516001600160a01b0382166100ab577310ed43c718714eb63d5aa57b78b54704e256024e6100ad565b815b600380546001600160a01b039283166001600160a01b031991821617909155600080548216331790556001805493909216921691909117905550610fe8806100f66000396000f3fe6080604052600436106101145760003560e01c8063cab34c08116100a0578063efca2eed11610064578063efca2eed14610319578063f0fc6bca1461032e578063f887ea4014610343578063ffb2c47914610358578063ffd49c841461038257610114565b8063cab34c0814610281578063ce7c2ac214610296578063d0e30db0146102e7578063e2d2e219146102ef578063ecd0c0c31461030457610114565b80633a98ef39116100e75780633a98ef39146101de5780634fab0ae8146101f35780638dd9500214610208578063997664d714610239578063a6871bc31461024e57610114565b806311ce023d1461011957806314b6ca961461014057806328fd31981461017b5780632d48e896146101ae575b600080fd5b34801561012557600080fd5b5061012e610397565b60408051918252519081900360200190f35b34801561014c57600080fd5b506101796004803603604081101561016357600080fd5b506001600160a01b03813516906020013561039d565b005b34801561018757600080fd5b5061012e6004803603602081101561019e57600080fd5b50356001600160a01b03166104c2565b3480156101ba57600080fd5b50610179600480360360408110156101d157600080fd5b508035906020013561054e565b3480156101ea57600080fd5b5061012e610570565b3480156101ff57600080fd5b5061012e610576565b34801561021457600080fd5b5061021d61057c565b604080516001600160a01b039092168252519081900360200190f35b34801561024557600080fd5b5061012e61058b565b34801561025a57600080fd5b506101796004803603602081101561027157600080fd5b50356001600160a01b0316610591565b34801561028d57600080fd5b5061021d6106a7565b3480156102a257600080fd5b506102c9600480360360208110156102b957600080fd5b50356001600160a01b03166106b6565b60408051938452602084019290925282820152519081900360600190f35b6101796106d7565b3480156102fb57600080fd5b5061012e610969565b34801561031057600080fd5b5061021d61096f565b34801561032557600080fd5b5061012e61097e565b34801561033a57600080fd5b50610179610984565b34801561034f57600080fd5b5061021d61098f565b34801561036457600080fd5b506101796004803603602081101561037b57600080fd5b503561099e565b34801561038e57600080fd5b5061012e610a80565b600c5481565b6000546001600160a01b031633146103b457600080fd5b6001600160a01b038216600090815260076020526040902054156103db576103db82610a86565b60008111801561040157506001600160a01b038216600090815260076020526040902054155b156104145761040f82610bae565b610447565b8015801561043957506001600160a01b03821660009081526007602052604090205415155b156104475761044782610c0f565b6001600160a01b03821660009081526007602052604090205460085461047891839161047291610cfc565b90610d47565b6008556001600160a01b038216600090815260076020526040902081905561049f81610da1565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6001600160a01b0381166000908152600760205260408120546104e757506000610549565b6001600160a01b03821660009081526007602052604081205461050990610da1565b6001600160a01b03841660009081526007602052604090206001015490915080821161053a57600092505050610549565b6105448282610cfc565b925050505b919050565b6000546001600160a01b0316331461056557600080fd5b600d91909155600e55565b60085481565b600e5481565b6002546001600160a01b031681565b60095481565b6000546001600160a01b031633146105a857600080fd5b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156105f357600080fd5b505afa158015610607573d6000803e3d6000fd5b505050506040513d602081101561061d57600080fd5b50516001546040805163a9059cbb60e01b81526001600160a01b03868116600483015260248201859052915193945091169163a9059cbb916044808201926020929091908290030181600087803b15801561067757600080fd5b505af115801561068b573d6000803e3d6000fd5b505050506040513d60208110156106a157600080fd5b50505050565b6001546001600160a01b031681565b60076020526000908152604090208054600182015460029092015490919083565b6000546001600160a01b031633146106ee57600080fd5b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561073957600080fd5b505afa15801561074d573d6000803e3d6000fd5b505050506040513d602081101561076357600080fd5b50516040805160028082526060820183529293506000929091602083019080368337505060025482519293506001600160a01b0316918391506000906107a557fe5b6001600160a01b03928316602091820292909201015260018054835192169183919081106107cf57fe5b6001600160a01b0392831660209182029290920181019190915260035460405163b6f9de9560e01b815260006004820181815230604484018190524260648501819052608060248601908152895160848701528951969098169763b6f9de9597349795968b969495939460a49091019187810191028083838b5b83811015610861578181015183820152602001610849565b50505050905001955050505050506000604051808303818588803b15801561088857600080fd5b505af115801561089c573d6000803e3d6000fd5b5050600154604080516370a0823160e01b815230600482015290516000955061092794508793506001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156108f557600080fd5b505afa158015610909573d6000803e3d6000fd5b505050506040513d602081101561091f57600080fd5b505190610cfc565b6009549091506109379082610d47565b600955600854600c5461096191610958916109529085610dbe565b90610e17565b600b5490610d47565b600b55505050565b600b5481565b6000546001600160a01b031681565b600a5481565b61098d33610a86565b565b6003546001600160a01b031681565b6000546001600160a01b031633146109b557600080fd5b600454806109c35750610a7d565b6000805a905060005b84831080156109da57508381105b15610a785783600f54106109ee576000600f555b610a1a6004600f5481548110610a0057fe5b6000918252602090912001546001600160a01b0316610e59565b15610a4b57610a4b6004600f5481548110610a3157fe5b6000918252602090912001546001600160a01b0316610a86565b610a60610a595a8490610cfc565b8490610d47565b92505a600f80546001908101909155909250016109cc565b505050505b50565b600d5481565b6001600160a01b038116600090815260076020526040902054610aa857610a7d565b6000610ab3826104c2565b90508015610baa57600a54610ac89082610d47565b600a556001546040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015610b2157600080fd5b505af1158015610b35573d6000803e3d6000fd5b505050506040513d6020811015610b4b57600080fd5b50506001600160a01b03821660009081526006602090815260408083204290556007909152902060020154610b809082610d47565b6001600160a01b038316600090815260076020526040902060028101919091555461049f90610da1565b5050565b600480546001600160a01b039092166000818152600560205260408120849055600184018355919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90910180546001600160a01b0319169091179055565b600480546000198101908110610c2157fe5b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610c5957fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600591829052604081205460048054919392916000198101908110610ca757fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610cd757fe5b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610d3e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e95565b90505b92915050565b600082820183811015610d3e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610d41600c54610952600b5485610dbe90919063ffffffff16565b600082610dcd57506000610d41565b82820282848281610dda57fe5b0414610d3e5760405162461bcd60e51b8152600401808060200182810382526021815260200180610f926021913960400191505060405180910390fd5b6000610d3e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610f2c565b600d546001600160a01b0382166000908152600660205260408120549091429101108015610d415750600e54610e8e836104c2565b1192915050565b60008184841115610f245760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ee9578181015183820152602001610ed1565b50505050905090810190601f168015610f165780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610f7b5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610ee9578181015183820152602001610ed1565b506000838581610f8757fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220a32b00a51d1be4110a1a4bf2be732f90868b0e7e10ac86f75a4683d2e8e25ebf64736f6c63430007060033

Deployed ByteCode Sourcemap

11815:15090:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25422:789;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25422:789:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25422:789:0;;-1:-1:-1;25422:789:0;-1:-1:-1;25422:789:0;:::i;:::-;;13476:56;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;14928:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15350:216;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15350:216:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;19962:94;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19962:94:0;;;;:::i;25265:150::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25265:150:0;;;;;;;:::i;14658:88::-;;;;;;;;;;;;;:::i;19712:217::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19712:217:0;;:::i;24410:183::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24410:183:0;;;;;;;:::i;15862:364::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15862:364:0;;;;;;;;;;;;;;;;;:::i;24940:142::-;;;;;;;;;;;;;:::i;24601:183::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24601:183:0;;;;;;;:::i;20103:164::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20103:164:0;;;;;;;;;;;:::i;3357:103::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3357:103:0;-1:-1:-1;;;;;3357:103:0;;:::i;14752:80::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23441:130;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;23441:130:0;;;;;;;;;;:::i;15574:116::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15574:116:0;-1:-1:-1;;;;;15574:116:0;;:::i;22718:96::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22718:96:0;;:::i;20319:94::-;;;;;;;;;;;;;:::i;13293:37::-;;;;;;;;;;;;;:::i;20646:141::-;;;;;;;;;;;;;:::i;23177:120::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;23177:120:0;;;;;;;;;;:::i;13439:30::-;;;;;;;;;;;;;:::i;23579:423::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23579:423:0;;;;;;;;;;;;;;;;;:::i;15098:105::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15098:105:0;-1:-1:-1;;;;;15098:105:0;;:::i;13337:39::-;;;;;;;;;;;;;:::i;12368:61::-;;;;;;;;;;;;;:::i;12272:54::-;;;;;;;;;;;;;:::i;16314:149::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16314:149:0;;:::i;15014:78::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;15014:78:0;;;;;;;;;;;;;;14838:84;;;;;;;;;;;;;:::i;24792:136::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24792:136:0;;:::i;24010:228::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;24010:228:0;;;;;;;;;;:::i;13102:19::-;;;;;;;;;;;;;:::i;15698:156::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15698:156:0;;;;;;;;:::i;26216:620::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;26216:620:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26216:620:0;-1:-1:-1;26216:620:0;;:::i;3030:94::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3030:94:0;-1:-1:-1;;;;;3030:94:0;;:::i;13169:38::-;;;;;;;;;;;;;:::i;20450:145::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20450:145:0;-1:-1:-1;;;;;20450:145:0;;:::i;25090:167::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25090:167:0;;:::i;20828:100::-;;;;;;;;;;;;;:::i;15209:133::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15209:133:0;;;;;;;;;;:::i;24246:156::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24246:156:0;;;;;;;;;:::i;3200:97::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3200:97:0;-1:-1:-1;;;;;3200:97:0;;:::i;3757:173::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3757:173:0;-1:-1:-1;;;;;3757:173:0;;:::i;22822:347::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;22822:347:0;;;;;;;;;;:::i;23305:128::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;23305:128:0;;;;;;;;;;:::i;13071:24::-;;;;;;;;;;;;;:::i;3531:107::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3531:107:0;-1:-1:-1;;;;;3531:107:0;;:::i;13130:30::-;;;;;;;;;;;;;:::i;25422:789::-;2746:19;2754:10;2746:7;:19::i;:::-;2738:38;;;;;-1:-1:-1;;;2738:38:0;;;;;;;;;;;;-1:-1:-1;;;2738:38:0;;;;;;;;;;;;;;;25538:12:::1;25571:33:::0;;::::1;25563:85;;;;-1:-1:-1::0;;;25563:85:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25661:6;25657:82;25671:20:::0;;::::1;25657:82;;;25722:6;;25729:1;25722:9;;;;;;;;;::::0;;;::::1;;25715:16:::0;;;::::1;::::0;-1:-1:-1;25693:3:0::1;;25657:82;;;;25774:4;25755:15;25765:4;25755:9;:15::i;:::-;:23;;25747:64;;;::::0;;-1:-1:-1;;;25747:64:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;25824:6;25820:250;25834:20:::0;;::::1;25820:250;;;25871:43;25886:4;25891:9;;25901:1;25891:12;;;;;;;;;;;;;-1:-1:-1::0;;;;;25891:12:0::1;25904:6;;25911:1;25904:9;;;;;;;;;;;;;25871:14;:43::i;:::-;;25929:16;:30;25946:9;;25956:1;25946:12;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;25946:12:0::1;25929:30:::0;;-1:-1:-1;25929:30:0;::::1;::::0;;;;;;-1:-1:-1;25929:30:0;;::::1;;25925:138;;25980:11;::::0;-1:-1:-1;;;;;25980:11:0::1;:20;26001:9:::0;;26011:1;26001:12;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;26001:12:0::1;26015:9;:23;26025:9;;26035:1;26025:12;;;;;;;;;;;;;-1:-1:-1::0;;;;;26025:12:0::1;-1:-1:-1::0;;;;;26015:23:0::1;-1:-1:-1::0;;;;;26015:23:0::1;;;;;;;;;;;;;25980:59;;;;;;;;;;;;;-1:-1:-1::0;;;;;25980:59:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;25976:75:::0;::::1;25856:3;;25820:250;;;-1:-1:-1::0;;;;;;26107:22:0;::::1;;::::0;;;:16:::1;:22;::::0;;;;;::::1;;26103:105;;26146:11;::::0;-1:-1:-1;;;;;26173:15:0;;::::1;26146:11;26173:15:::0;;;:9:::1;:15;::::0;;;;;;26146:43;;-1:-1:-1;;;26146:43:0;;::::1;::::0;::::1;::::0;;;;;;;;;:11;;;::::1;::::0;:20:::1;::::0;:43;;;;;;;;;;:11;;:43;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;;;;;26142:59:::0;::::1;2778:1;25422:789:::0;;;;;:::o;13476:56::-;;;;:::o;14928:80::-;15000:5;;;;;;;;;;;;-1:-1:-1;;;15000:5:0;;;;14928:80;:::o;15350:216::-;15454:10;15425:4;15442:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;15442:32:0;;;;;;;;;;;:41;;;15499:37;;;;;;;15425:4;;15442:32;;15454:10;;15499:37;;;;;;;;-1:-1:-1;15554:4:0;15350:216;;;;;:::o;19962:94::-;2746:19;2754:10;2746:7;:19::i;:::-;2738:38;;;;;-1:-1:-1;;;2738:38:0;;;;;;;;;;;;-1:-1:-1;;;2738:38:0;;;;;;;;;;;;;;;20027:11:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;20027:21:0::1;-1:-1:-1::0;;;;20027:21:0;;::::1;::::0;;;::::1;::::0;;19962:94::o;25265:150::-;25345:4;25401:6;25369:29;25389:8;25369:19;:29::i;:::-;:38;;25265:150;-1:-1:-1;;;25265:150:0:o;14658:88::-;14731:12;;14658:88;:::o;19712:217::-;2746:19;2754:10;2746:7;:19::i;:::-;2738:38;;;;;-1:-1:-1;;;2738:38:0;;;;;;;;;;;;-1:-1:-1;;;2738:38:0;;;;;;;;;;;;;;;19855:20:::1;::::0;19847:74:::1;::::0;19815:21:::1;::::0;-1:-1:-1;;;;;19855:20:0::1;::::0;19917:3:::1;19886:28:::0;;::::1;:34;19847:74:::0;::::1;;;::::0;::::1;::::0;;;19886:34;19855:20;19847:74;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;2778:1;19712:217:::0;:::o;24410:183::-;2915:24;2928:10;2915:12;:24::i;:::-;2907:48;;;;;-1:-1:-1;;;2907:48:0;;;;;;;;;;;;-1:-1:-1;;;2907:48:0;;;;;;;;;;;;;;;24508:15:::1;:25:::0;;;;24544:26:::1;:41:::0;24410:183::o;15862:364::-;-1:-1:-1;;;;;15982:19:0;;15962:4;15982:19;;;:11;:19;;;;;;;;16002:10;15982:31;;;;;;;;-1:-1:-1;;15982:46:0;15979:180;;16078:69;;;;;;;;;;;-1:-1:-1;;;16078:69:0;;;;;;;;-1:-1:-1;;;;;16078:19:0;;-1:-1:-1;16078:19:0;;;:11;:19;;;;;16098:10;16078:31;;;;;;;;;;:69;;16114:6;;16078:35;:69::i;:::-;-1:-1:-1;;;;;16044:19:0;;;;;;:11;:19;;;;;;;;16064:10;16044:31;;;;;;;:103;15979:180;16178:40;16192:6;16200:9;16211:6;16178:13;:40::i;:::-;16171:47;;15862:364;;;;;;:::o;24940:142::-;25068:4;;24993:7;;25020:54;;25058:15;;-1:-1:-1;;;;;25068:4:0;25058:9;:15::i;:::-;25047:4;;25020:33;;25037:15;;-1:-1:-1;;;;;25047:4:0;25037:9;:15::i;:::-;25020:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;25013:61;;24940:142;:::o;24601:183::-;2915:24;2928:10;2915:12;:24::i;:::-;2907:48;;;;;-1:-1:-1;;;2907:48:0;;;;;;;;;;;;-1:-1:-1;;;2907:48:0;;;;;;;;;;;;;;;24711:11:::1;::::0;:65:::1;::::0;;-1:-1:-1;;;24711:65:0;;::::1;::::0;::::1;::::0;;;;;;;;;;;-1:-1:-1;;;;;24711:11:0;;::::1;::::0;:35:::1;::::0;:65;;;;;:11:::1;::::0;:65;;;;;;;;:11;;:65;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;20103:164:::0;2746:19;2754:10;2746:7;:19::i;:::-;2738:38;;;;;-1:-1:-1;;;2738:38:0;;;;;;;;;;;;-1:-1:-1;;;2738:38:0;;;;;;;;;;;;;;;20187:18:::1;:28:::0;;-1:-1:-1;;20187:28:0::1;::::0;::::1;;::::0;;;::::1;-1:-1:-1::0;;20226:33:0::1;20187:28;;20226:33:::0;;;::::1;::::0;;;::::1;;::::0;;20103:164::o;3357:103::-;3412:4;3447:5;-1:-1:-1;;;;;3447:5:0;;;3436:16;;;;3357:103::o;14752:80::-;12202:1;14752:80;:::o;23441:130::-;2915:24;2928:10;2915:12;:24::i;:::-;2907:48;;;;;-1:-1:-1;;;2907:48:0;;;;;;;;;;;;-1:-1:-1;;;2907:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;23530:24:0;;;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;23530:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23441:130::o;15574:116::-;15629:4;15653:29;15661:7;-1:-1:-1;;15653:7:0;:29::i;22718:96::-;2915:24;2928:10;2915:12;:24::i;:::-;2907:48;;;;;-1:-1:-1;;;2907:48:0;;;;;;;;;;;;-1:-1:-1;;;2907:48:0;;;;;;;;;;;;;;;22785:12:::1;:21:::0;22718:96::o;20319:94::-;2746:19;2754:10;2746:7;:19::i;:::-;2738:38;;;;;-1:-1:-1;;;2738:38:0;;;;;;;;;;;;-1:-1:-1;;;2738:38:0;;;;;;;;;;;;;;;20376:11:::1;::::0;:29:::1;::::0;;-1:-1:-1;;;20376:29:0;;20394:10:::1;20376:29;::::0;::::1;::::0;;;-1:-1:-1;;;;;20376:11:0;;::::1;::::0;:17:::1;::::0;:29;;;;;:11:::1;::::0;:29;;;;;;;;:11;;:29;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20319:94::o:0;13293:37::-;;;;;;:::o;20646:141::-;20691:11;;;;;;;;;-1:-1:-1;;;;;20691:11:0;-1:-1:-1;;;;;20691:25:0;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20733:11:0;;20753:14;;20733:35;;;-1:-1:-1;;;;;;20733:35:0;;;;;;;;;;-1:-1:-1;;;;;20733:11:0;;;;-1:-1:-1;20733:19:0;;-1:-1:-1;20733:35:0;;;;;:11;;:35;;;;;;;;:11;;:35;;;;;;;;;;;;;;;;;;;;;;;;;20729:51;20646:141::o;23177:120::-;2915:24;2928:10;2915:12;:24::i;:::-;2907:48;;;;;-1:-1:-1;;;2907:48:0;;;;;;;;;;;;-1:-1:-1;;;2907:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;23261:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;23261:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23177:120::o;13439:30::-;;;;;;:::o;23579:423::-;2915:24;2928:10;2915:12;:24::i;:::-;2907:48;;;;;-1:-1:-1;;;2907:48:0;;;;;;;;;;;;-1:-1:-1;;;2907:48:0;;;;;;;;;;;;;;;23722:12:::1;:28:::0;;;23761:13:::1;:30:::0;;;23802:12:::1;:28:::0;;;23852:52:::1;23817:13:::0;23852:33:::1;23737:13:::0;23777:14;23852:17:::1;:33::i;:::-;:37:::0;::::1;:52::i;:::-;23841:8;:63:::0;23915:14:::1;:32:::0;;;23992:1:::1;23932:15:::0;23977:16:::1;23966:8;;:27;23958:36;;;::::0;::::1;15098:105:::0;-1:-1:-1;;;;;15182:18:0;15164:7;15182:18;;;:9;:18;;;;;;;15098:105::o;13337:39::-;;;;;;;;;:::o;12368:61::-;;;;:::o;12272:54::-;;;;:::o;16314:149::-;2746:19;2754:10;2746:7;:19::i;:::-;2738:38;;;;;-1:-1:-1;;;2738:38:0;;;;;;;;;;;;-1:-1:-1;;;2738:38:0;;;;;;;;;;;;;;;16452:3:::1;16433:14;16418:12;;:29;16417:38;;;;;;16399:15;:56:::0;-1:-1:-1;16314:149:0:o;15014:78::-;15066:7;15084:5;-1:-1:-1;;;;;15084:5:0;15014:78;:::o;14838:84::-;14912:7;;;;;;;;;;;;-1:-1:-1;;;14912:7:0;;;;14838:84;:::o;24792:136::-;2915:24;2928:10;2915:12;:24::i;:::-;2907:48;;;;;-1:-1:-1;;;2907:48:0;;;;;;;;;;;;-1:-1:-1;;;2907:48:0;;;;;;;;;;;;;;;24882:6:::1;24876:3;:12;24868:21;;;::::0;::::1;;24900:14;:20:::0;24792:136::o;24010:228::-;2915:24;2928:10;2915:12;:24::i;:::-;2907:48;;;;;-1:-1:-1;;;2907:48:0;;;;;;;;;;;;-1:-1:-1;;;2907:48:0;;;;;;;;;;;;;;;24129:21:::1;:46:::0;;-1:-1:-1;;;;;24129:46:0;;::::1;-1:-1:-1::0;;;;;;24129:46:0;;::::1;;::::0;;;24186:20:::1;:44:::0;;;;;::::1;::::0;::::1;;::::0;;24010:228::o;13102:19::-;;;-1:-1:-1;;;;;13102:19:0;;:::o;15698:156::-;15778:4;15802:44;15816:10;15828:9;15839:6;15802:13;:44::i;26216:620::-;2746:19;2754:10;2746:7;:19::i;:::-;2738:38;;;;;-1:-1:-1;;;2738:38:0;;;;;;;;;;;;-1:-1:-1;;;2738:38:0;;;;;;;;;;;;;;;26341:25;;::::1;::::0;26383:15:::1;26393:4:::0;26383:9:::1;:15::i;:::-;:23;;26375:64;;;::::0;;-1:-1:-1;;;26375:64:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;26452:6;26448:247;26462:20:::0;;::::1;26448:247;;;26499:40;26514:4;26519:9;;26529:1;26519:12;;;;;;;;;;;;;-1:-1:-1::0;;;;;26519:12:0::1;26532:6;26499:14;:40::i;:::-;;26554:16;:30;26571:9;;26581:1;26571:12;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;26571:12:0::1;26554:30:::0;;-1:-1:-1;26554:30:0;::::1;::::0;;;;;;-1:-1:-1;26554:30:0;;::::1;;26550:138;;26605:11;::::0;-1:-1:-1;;;;;26605:11:0::1;:20;26626:9:::0;;26636:1;26626:12;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;26626:12:0::1;26640:9;:23;26650:9;;26660:1;26650:12;;;;;;;;;;;;;-1:-1:-1::0;;;;;26650:12:0::1;-1:-1:-1::0;;;;;26640:23:0::1;-1:-1:-1::0;;;;;26640:23:0::1;;;;;;;;;;;;;26605:59;;;;;;;;;;;;;-1:-1:-1::0;;;;;26605:59:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;26601:75:::0;::::1;26484:3;;26448:247;;;-1:-1:-1::0;;;;;;26732:22:0;::::1;;::::0;;;:16:::1;:22;::::0;;;;;::::1;;26728:105;;26771:11;::::0;-1:-1:-1;;;;;26798:15:0;;::::1;26771:11;26798:15:::0;;;:9:::1;:15;::::0;;;;;;26771:43;;-1:-1:-1;;;26771:43:0;;::::1;::::0;::::1;::::0;;;;;;;;;:11;;;::::1;::::0;:20:::1;::::0;:43;;;;;;;;;;:11;;:43;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;;;26767:59;2778:1;26216:620:::0;;;;:::o;3030:94::-;2746:19;2754:10;2746:7;:19::i;:::-;2738:38;;;;;-1:-1:-1;;;2738:38:0;;;;;;;;;;;;-1:-1:-1;;;2738:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;3090:19:0::1;;::::0;;;3112:4:::1;3090:19;::::0;;;;;;;:26;;-1:-1:-1;;3090:26:0::1;::::0;;::::1;::::0;;3030:94::o;13169:38::-;;;-1:-1:-1;;;;;13169:38:0;;:::o;20450:145::-;2746:19;2754:10;2746:7;:19::i;:::-;2738:38;;;;;-1:-1:-1;;;2738:38:0;;;;;;;;;;;;-1:-1:-1;;;2738:38:0;;;;;;;;;;;;;;;20566:6:::1;::::0;20534:53:::1;::::0;-1:-1:-1;;;;;20566:6:0;;::::1;::::0;20575:11;;20534:53:::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;;;20534:53:0;;::::1;::::0;;;::::1;;::::0;::::1;::::0;;;;;;;;;;-1:-1:-1;20534:53:0::1;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;20520:11:0::1;:67:::0;;-1:-1:-1;;;;;;20520:67:0::1;-1:-1:-1::0;;;;;20520:67:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;20450:145:0:o;25090:167::-;25158:7;25185:64;25226:22;:20;:22::i;:::-;25208:4;;25185:36;;25198:22;;25218:1;;25198:15;;-1:-1:-1;;;;;25208:4:0;25198:9;:15::i;:::-;:19;;:22::i;:::-;25185:8;;:12;:36::i;:::-;:40;;:64::i;20828:100::-;20874:11;;20894:14;;20874:35;;;-1:-1:-1;;;;;;20874:35:0;;;;;;;;;;-1:-1:-1;;;;;20874:11:0;;;;:19;;:35;;;;;:11;;:35;;;;;;;;:11;;:35;;;;;;;;;;15209:133;-1:-1:-1;;;;;15311:19:0;;;15293:7;15311:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;15209:133::o;24246:156::-;2915:24;2928:10;2915:12;:24::i;:::-;2907:48;;;;;-1:-1:-1;;;2907:48:0;;;;;;;;;;;;-1:-1:-1;;;2907:48:0;;;;;;;;;;;;;;;24338:11:::1;:22:::0;;-1:-1:-1;;24338:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;24371:13:::1;:23:::0;24246:156::o;3200:97::-;2746:19;2754:10;2746:7;:19::i;:::-;2738:38;;;;;-1:-1:-1;;;2738:38:0;;;;;;;;;;;;-1:-1:-1;;;2738:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;3262:19:0::1;3284:5;3262:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;3262:27:0::1;::::0;;3200:97::o;3757:173::-;2746:19;2754:10;2746:7;:19::i;:::-;2738:38;;;;;-1:-1:-1;;;2738:38:0;;;;;;;;;;;;-1:-1:-1;;;2738:38:0;;;;;;;;;;;;;;;3833:5:::1;:11:::0;;-1:-1:-1;;;;;;3833:11:0::1;-1:-1:-1::0;;;;;3833:11:0;::::1;::::0;;::::1;::::0;;3855:19;;;-1:-1:-1;3855:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;3855:26:0::1;::::0;;::::1;::::0;;;3897:25;;;;;;;::::1;::::0;;;;;;;;;::::1;3757:173:::0;:::o;22822:347::-;2915:24;2928:10;2915:12;:24::i;:::-;2907:48;;;;;-1:-1:-1;;;2907:48:0;;;;;;;;;;;;-1:-1:-1;;;2907:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;22919:23:0;::::1;22937:4;22919:23;::::0;::::1;::::0;:41:::1;;-1:-1:-1::0;22956:4:0::1;::::0;-1:-1:-1;;;;;22946:14:0;;::::1;22956:4:::0;::::1;22946:14;;22919:41;22911:50;;;::::0;::::1;;-1:-1:-1::0;;;;;22972:24:0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;22972:33:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;23016:146:::1;;23041:11;::::0;:31:::1;::::0;;-1:-1:-1;;;23041:31:0;;-1:-1:-1;;;;;23041:31:0;;::::1;;::::0;::::1;::::0;:11:::1;:31:::0;;;;;;;;:11;::::1;::::0;:20:::1;::::0;:31;;;;;:11;;:31;;;;;;:11;;:31;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;23016:146;;;23103:11;::::0;-1:-1:-1;;;;;23132:17:0;;::::1;23103:11;23132:17:::0;;;:9:::1;:17;::::0;;;;;;23103:47;;-1:-1:-1;;;23103:47:0;;::::1;::::0;::::1;::::0;;;;;;;;;:11;;;::::1;::::0;:20:::1;::::0;:47;;;;;;;;;;:11;;:47;::::1;;::::0;::::1;;;;::::0;::::1;23016:146;22822:347:::0;;:::o;23305:128::-;2915:24;2928:10;2915:12;:24::i;:::-;2907:48;;;;;-1:-1:-1;;;2907:48:0;;;;;;;;;;;;-1:-1:-1;;;2907:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;23393:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;23393:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23305:128::o;13071:24::-;;;-1:-1:-1;;;;;13071:24:0;;:::o;3531:107::-;-1:-1:-1;;;;;3611:19:0;3587:4;3611:19;;;:14;:19;;;;;;;;;3531:107::o;13130:30::-;;;-1:-1:-1;;;13130:30:0;;;;;:::o;18532:330::-;18662:53;;;;;;;;;;;-1:-1:-1;;;18662:53:0;;;;;;;;-1:-1:-1;;;;;18662:17:0;;18625:4;18662:17;;;:9;:17;;;;;;;:53;;18684:6;;18662:21;:53::i;:::-;-1:-1:-1;;;;;18642:17:0;;;;;;;:9;:17;;;;;;:73;;;;18749:20;;;;;;;:32;;18774:6;18749:24;:32::i;:::-;-1:-1:-1;;;;;18726:20:0;;;;;;;:9;:20;;;;;;;;;:55;;;;18797:35;;;;;;;18726:20;;18797:35;;;;;;;;;;;;;-1:-1:-1;18850:4:0;18532:330;;;;;:::o;416:192::-;502:7;538:12;530:6;;;;522:29;;;;-1:-1:-1;;;522:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;574:5:0;;;416:192::o;16471:2049::-;16583:6;;16563:4;;16583:6;;16580:63;;;16599:41;16614:6;16622:9;16633:6;16599:14;:41::i;:::-;16592:48;;;;16580:63;-1:-1:-1;;;;;16659:22:0;;;;;;:14;:22;;;;;;;;16658:23;:53;;;;-1:-1:-1;;;;;;16686:25:0;;;;;;:14;:25;;;;;;;;16685:26;16658:53;16655:127;;;16735:11;;-1:-1:-1;;;16735:11:0;;;;16727:43;;;;;-1:-1:-1;;;16727:43:0;;;;;;;;;;;;-1:-1:-1;;;16727:43:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;16827:22:0;;;;;;:14;:22;;;;;;;;16826:23;:53;;;;-1:-1:-1;;;;;;16853:26:0;;16874:4;16853:26;;16826:53;:84;;;;-1:-1:-1;16905:4:0;;-1:-1:-1;;;;;16884:26:0;;;16905:4;;16884:26;;16826:84;:105;;;;-1:-1:-1;16927:4:0;;-1:-1:-1;;;;;16914:17:0;;;16927:4;;16914:17;;16826:105;:142;;;;-1:-1:-1;16948:20:0;;-1:-1:-1;;;;;16935:33:0;;;16948:20;;16935:33;;16826:142;:180;;;;-1:-1:-1;16985:21:0;;-1:-1:-1;;;;;16972:34:0;;;16985:21;;16972:34;;16826:180;16822:372;;;17022:18;17043:20;17053:9;17043;:20::i;:::-;17022:41;;17111:15;;17100:6;17087:10;:19;17086:40;;17078:114;;;;-1:-1:-1;;;17078:114:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16822:372;;17328:4;;-1:-1:-1;;;;;17318:14:0;;;17328:4;;17318:14;:49;;;;-1:-1:-1;17349:18:0;;;;17318:49;:94;;;;-1:-1:-1;;;;;;17385:27:0;;;;;;:16;:27;;;;;;;;17384:28;17318:94;17314:299;;;-1:-1:-1;;;;;17437:24:0;;;;;;:13;:24;;;;;;17464:15;-1:-1:-1;17429:91:0;;;;-1:-1:-1;;;17429:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17580:21;;-1:-1:-1;;;;;17535:24:0;;;;;;:13;:24;;;;;17580:21;;;;;;17562:15;:39;17535:66;;17314:299;17668:28;17681:6;17689;17668:12;:28::i;:::-;17753:16;:14;:16::i;:::-;17750:35;;;17772:10;:8;:10::i;:::-;17844:53;;;;;;;;;;;-1:-1:-1;;;17844:53:0;;;;;;;;-1:-1:-1;;;;;17844:17:0;;-1:-1:-1;17844:17:0;;;:9;:17;;;;;;;;:53;;17866:6;;17844:21;:53::i;:::-;-1:-1:-1;;;;;17824:17:0;;;;;;:9;:17;;;;;:73;;;;17935:21;17834:6;17935:13;:21::i;:::-;:56;;17985:6;17935:56;;;17959:23;17967:6;17975;17959:7;:23::i;:::-;-1:-1:-1;;;;;18025:20:0;;;;;;:9;:20;;;;;;17910:81;;-1:-1:-1;18025:40:0;;17910:81;18025:24;:40::i;:::-;-1:-1:-1;;;;;18002:20:0;;;;;;;:9;:20;;;;;;;;:63;;;;18111:24;;;;;:16;:24;;;;;;;18107:119;;18156:11;;-1:-1:-1;;;;;18185:17:0;;;18156:11;18185:17;;;:9;:17;;;;;;;18156:47;;-1:-1:-1;;;18156:47:0;;;;;;;;;;;;;;:11;;;;;:20;;:47;;;;;;;;;;:11;;:47;;;;;;;;;;;;;;;;;;;;;;;;;18152:63;;-1:-1:-1;;;;;18242:27:0;;;;;;:16;:27;;;;;;;;18238:129;;18290:11;;-1:-1:-1;;;;;18322:20:0;;;18290:11;18322:20;;;:9;:20;;;;;;;18290:53;;-1:-1:-1;;;18290:53:0;;;;;;;;;;;;;;:11;;;;;:20;;:53;;;;;;;;;;:11;;:53;;;;;;;;;;;;;;;;;;;;;;;;;18286:69;;18383:11;;18403:14;;18383:35;;;-1:-1:-1;;;;;;18383:35:0;;;;;;;;;;-1:-1:-1;;;;;18383:11:0;;;;:19;;:35;;;;;:11;;:35;;;;;;;;:11;;:35;;;;;;;;;;;;;;;;;;;;;;;;;18379:51;18464:9;-1:-1:-1;;;;;18447:43:0;18456:6;-1:-1:-1;;;;;18447:43:0;;18475:14;18447:43;;;;;;;;;;;;;;;;;;-1:-1:-1;18508:4:0;;16471:2049;-1:-1:-1;;;;16471:2049:0:o;274:136::-;332:7;359:43;363:1;366;359:43;;;;;;;;;;;;;;;;;:3;:43::i;87:181::-;145:7;177:5;;;201:6;;;;193:46;;;;;-1:-1:-1;;;193:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;614:250;672:7;696:6;692:47;;-1:-1:-1;726:1:0;719:8;;692:47;763:5;;;767:1;763;:5;:1;787:5;;;;;:10;779:56;;;;-1:-1:-1;;;779:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;870:132;928:7;955:39;959:1;962;955:39;;;;;;;;;;;;;;;;;:3;:39::i;18870:166::-;18967:12;;18957:6;:22;;:49;;;-1:-1:-1;;;;;;18983:23:0;;;;;;:15;:23;;;;;;;;18957:49;18949:79;;;;;-1:-1:-1;;;18949:79:0;;;;;;;;;;;;-1:-1:-1;;;18949:79:0;;;;;;;;;;;;;;19507:197;19594:4;;19556;;-1:-1:-1;;;;;19594:4:0;19580:10;:18;;;;:38;;-1:-1:-1;19612:6:0;;;;19611:7;19580:38;:62;;;;-1:-1:-1;19631:11:0;;;;19580:62;:116;;;;-1:-1:-1;;19683:13:0;;19673:4;19655:24;;;;:9;:24;;;;;;:41;;;19507:197::o;20942:1766::-;13598:6;:13;;-1:-1:-1;;13598:13:0;13607:4;13598:13;;;21037:15:::1;::::0;21054:26:::1;::::0;13598:6;;21021:60:::1;::::0;:15:::1;:60::i;:::-;:79;;21088:12;;21021:79;;;21084:1;21021:79;20991:109;;21111:23;21137:59;21194:1;21137:52;21180:8;;21137:38;21155:19;21137:13;;:17;;:38;;;;:::i;:59::-;21111:85;;21207:20;21230:34;21248:15;21230:13;;:17;;:34;;;;:::i;:::-;21301:16;::::0;;21315:1:::1;21301:16:::0;;;;;::::1;::::0;;21207:57;;-1:-1:-1;21277:21:0::1;::::0;21301:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;21301:16:0::1;21277:40;;21346:4;21328;21333:1;21328:7;;;;;;;;-1:-1:-1::0;;;;;21328:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;21372:4:::1;::::0;21362:7;;21372:4;::::1;::::0;21362;;21372;;21362:7;::::1;;;;;-1:-1:-1::0;;;;;21362:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:14;;;;21447:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;21447:188:0;;::::1;::::0;::::1;::::0;;;21389:21:::1;21447:188:::0;;;;;;21589:4:::1;21447:188:::0;;;;;;21609:15:::1;21447:188:::0;;;;;;;;;;;;;;;;;;;;;21413:21:::1;::::0;21447:6;;;::::1;::::0;:57:::1;::::0;21519:12;;21389:21;;21562:4;;21447:188;;;;;;;;;;::::1;::::0;::::1;::::0;;;21389:21;21447:188:::1;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21648:17;21668:40;21694:13;21668:21;:25;;:40;;;;:::i;:::-;21648:60:::0;-1:-1:-1;21721:19:0::1;21743:40;21756:26;:19:::0;21780:1:::1;21756:23;:26::i;:::-;21743:8;::::0;;:12:::1;:40::i;:::-;21721:62:::0;-1:-1:-1;21804:26:0::1;21833:58;21889:1;21833:51;21721:62:::0;21833:51;:9;21847:19;21833:13:::1;:34::i;:58::-;21804:87;;21902:27;21932:45;21965:11;21932:28;21946:13;;21932:9;:13;;:28;;;;:::i;:45::-;21902:75;;21988:26;22017:44;22049:11;22017:27;22031:12;;22017:9;:13;;:27;;;;:::i;:44::-;21988:73;;22078:11;;;;;;;;;-1:-1:-1::0;;;;;22078:11:0::1;-1:-1:-1::0;;;;;22078:19:0::1;;22105;22078:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;22074:65:::0;22178:20:::1;::::0;22170:77:::1;::::0;22150:15:::1;::::0;-1:-1:-1;;;;;22178:20:0::1;::::0;22237:5:::1;::::0;22212:18;;22150:15;22170:77;22150:15;22170:77;22212:18;22178:20;22237:5;22170:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;22321:5:0::1;::::0;-1:-1:-1;;22342:19:0;;;-1:-1:-1;22339:362:0::1;;22377:6;::::0;22551:21:::1;::::0;22377:244:::1;::::0;;-1:-1:-1;;;22377:244:0;;22453:4:::1;22377:244;::::0;::::1;::::0;;;;;;;:6:::1;:244:::0;;;;;;;;;;-1:-1:-1;;;;;22551:21:0;;::::1;22377:244:::0;;;;22591:15:::1;22377:244:::0;;;;;;:6;;;::::1;::::0;:22:::1;::::0;22407:18;;22377:244;;;;;::::1;::::0;;;;;;;;;22407:18;22377:6;:244;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;22377:244:0;22641:48;;;;;22377:244:::1;22641:48:::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;22339:362;-1:-1:-1::0;;13616:6:0;:14;;-1:-1:-1;;13616:14:0;;;-1:-1:-1;;;;;;;;;20942:1766:0:o;19044:114::-;-1:-1:-1;;;;;19131:19:0;19106:4;19131:19;;;:11;:19;;;;;;;;19130:20;;19044:114::o;19166:333::-;19233:7;19253:17;19273:40;19298:14;;19273:20;19284:8;;19273:6;:10;;:20;;;;:::i;:40::-;19371:4;19353:24;;;;:9;:24;;;;;;19253:60;;-1:-1:-1;19353:39:0;;19253:60;19353:28;:39::i;:::-;19344:4;19326:24;;;;:9;:24;;;;;;;;;:66;;;;19408:42;;;;;;;19344:4;;-1:-1:-1;;;;;19408:42:0;;;;;;;;;;;;;19470:21;:6;19481:9;19470:10;:21::i;:::-;19463:28;19166:333;-1:-1:-1;;;;19166:333:0:o;1008:345::-;1094:7;1196:12;1189:5;1181:28;;;;-1:-1:-1;;;1181:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1220:9;1236:1;1232;:5;;;;;;;1008:345;-1:-1:-1;;;;;1008:345:0:o;-1:-1:-1:-;;;;;;;;:::o

Swarm Source

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