Contract 0xa3184fe970c8d47ee19bedd14feed83a0885a658

 

Contract Overview

Balance:
0.000001192578053328 BNB

BNB Value:
Less Than $0.01 (@ $562.54/BNB)

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x7102f579fad3f359a7032d172210090b2860506e3e2141a33bc167a7c2b35aefTransfer128003602021-11-20 7:47:4914 days 20 hrs ago0xef332a83de33bd0a3e311f67281615b0dd5421b5 IN  0xa3184fe970c8d47ee19bedd14feed83a0885a6580 BNB0.000147375
0x73bd0c8ab7510ed71ebc27455f0460e0e4dc5b55c49610736184fc6194bd83b2Transfer125231252021-11-10 5:59:2624 days 22 hrs ago0xef332a83de33bd0a3e311f67281615b0dd5421b5 IN  0xa3184fe970c8d47ee19bedd14feed83a0885a6580 BNB0.000147375
0x4f105814bdec00a12386a6296d1720707716c16e8356af7d306190269f7c955dTransfer114048922021-10-01 22:16:0564 days 6 hrs ago0x5264a1f180c27c3b4c2505b366ec91f4411237c6 IN  0xa3184fe970c8d47ee19bedd14feed83a0885a6580 BNB0.000146415
0x732ff571907923dfd697a9ce6a0d5935b17942ba13036557fbd962227abd2ef3Approve114048352021-10-01 22:13:0064 days 6 hrs ago0x5264a1f180c27c3b4c2505b366ec91f4411237c6 IN  0xa3184fe970c8d47ee19bedd14feed83a0885a6580 BNB0.000221985
0xac773db7a2aee1e2651c8f95dbcc129155f911ece664d7aee20f09f815003d13Change Is Tx Lim...112687272021-09-27 3:35:5769 days 1 hr ago0x8e10693863f2ee3a20d0c40f9002e2448d8596f1 IN  0xa3184fe970c8d47ee19bedd14feed83a0885a6580 BNB0.000219245
0x1956fc239c24acc12f7e09596fb60486fe635b071f2ab3809c19589ce8eaf9ffApprove112687192021-09-27 3:35:3369 days 1 hr ago0xd35f7914cef92a1045d20cd8814b78e86334ec32 IN  0xa3184fe970c8d47ee19bedd14feed83a0885a6580 BNB0.000221985
0x9fad805ae297decffbc59c5a3c37bd1213586ef9f7a16f19a34530110403d817Change Is Fee Ex...112686782021-09-27 3:33:1469 days 1 hr ago0x8e10693863f2ee3a20d0c40f9002e2448d8596f1 IN  0xa3184fe970c8d47ee19bedd14feed83a0885a6580 BNB0.0000721
0x2cedb25d2d1b7f81249349930bf9163ebb9b3f9ed7a1bba23991ca0d1b389d27Change Is Tx Lim...112686752021-09-27 3:33:0569 days 1 hr ago0x8e10693863f2ee3a20d0c40f9002e2448d8596f1 IN  0xa3184fe970c8d47ee19bedd14feed83a0885a6580 BNB0.000219245
0x245f34b55d0f2c984c81bd5147a9b533ff5746c8856e7dfd69dfa79a741acdd4Change Is Fee Ex...112686492021-09-27 3:31:3869 days 1 hr ago0x8e10693863f2ee3a20d0c40f9002e2448d8596f1 IN  0xa3184fe970c8d47ee19bedd14feed83a0885a6580 BNB0.000219255
0xe0adcfe398c9e33d62bc3f362c612058eff4a3951aedb684fdaffebd53a9cd0fApprove112686012021-09-27 3:29:1269 days 1 hr ago0x8ab865443b5046b6016653c75d4ab4139c6dc927 IN  0xa3184fe970c8d47ee19bedd14feed83a0885a6580 BNB0.000221985
0x6e5466fd10fafb8daf85a32e5518664ff837b793ef6d63979218fdb74dd02df3Approve112685002021-09-27 3:24:0969 days 1 hr ago0xe69712d6e8edcaef62282b23d71e543f2eaba4c8 IN  0xa3184fe970c8d47ee19bedd14feed83a0885a6580 BNB0.000221985
0x4453777af3bea662136249aa446b090092327be11598fc7bfa65cb760f8df81eChange Wallet Li...110986082021-09-21 4:53:4474 days 23 hrs ago0x8e10693863f2ee3a20d0c40f9002e2448d8596f1 IN  0xa3184fe970c8d47ee19bedd14feed83a0885a6580 BNB0.00011674
0xfdb89bd80fa2d9d7b30107c7beefd0ac42e6060ecabc6d591ae7a0f40ac48c28Change Wallet Li...110985932021-09-21 4:52:5974 days 23 hrs ago0x8e10693863f2ee3a20d0c40f9002e2448d8596f1 IN  0xa3184fe970c8d47ee19bedd14feed83a0885a6580 BNB0.00013774
0xb4861e621e6dfab8f6a8b24e14ebe1f0fa8c9dc988705218dedb9cabcaccd930Change Tx Limit110985882021-09-21 4:52:4474 days 23 hrs ago0x8e10693863f2ee3a20d0c40f9002e2448d8596f1 IN  0xa3184fe970c8d47ee19bedd14feed83a0885a6580 BNB0.000137955
0x6afa2bf4d664025a463ad022602e493dfd849e395f7f606a92408f0e48a14bb8Approve109867772021-09-17 7:17:1278 days 21 hrs ago0x9c7d6bf4736db782395a965c40073bbea589e048 IN  0xa3184fe970c8d47ee19bedd14feed83a0885a6580 BNB0.000221985
0x4ebc917e8d4131317b3b0be91ce8974fceab909b76199dc0f463bc6bc332579eApprove109835232021-09-17 4:34:0079 days 4 mins ago0x8cc7bc33f5188b1fb683bedc4dbffa77b136833b IN  0xa3184fe970c8d47ee19bedd14feed83a0885a6580 BNB0.000124725
0xd8311198804b3a9f26f5b9d0c9c7c915e328e8a0b03045c56850dac523556f41Approve109835192021-09-17 4:33:4879 days 5 mins ago0x8cc7bc33f5188b1fb683bedc4dbffa77b136833b IN  0xa3184fe970c8d47ee19bedd14feed83a0885a6580 BNB0.000220725
0x5b9ba017609b0a2efd3c872cabf6392d63ce907ba33a5e3ae79799d5bc39a463Approve109687372021-09-16 16:13:5179 days 12 hrs ago0x2e34041260c12ec98d1d3e2ccacea44b28ade8eb IN  0xa3184fe970c8d47ee19bedd14feed83a0885a6580 BNB0.000221985
0xaa4b019b2d0ea92f42f860472afb9bc69f21ef6530b785c0c8a93636c44a8aa4Approve109146102021-09-14 18:58:2081 days 9 hrs ago0x34064b68a71430a3d30251710973ccffce8c871a IN  0xa3184fe970c8d47ee19bedd14feed83a0885a6580 BNB0.000221985
0xb104f0b26bca13947a202a5c824da8d09f4587a738749f0457b4809ef0de69bdApprove108939402021-09-14 1:41:4182 days 2 hrs ago0x86f495f3e272318078d7859c0364aeab62db9f26 IN  0xa3184fe970c8d47ee19bedd14feed83a0885a6580 BNB0.000221985
0x8354a58208cdbb1b9e514d4f3d0a8eb17dc4d4eac31658a82ef7ba7a21adccc3Change Is Fee Ex...108933132021-09-14 1:10:2082 days 3 hrs ago0x8e10693863f2ee3a20d0c40f9002e2448d8596f1 IN  0xa3184fe970c8d47ee19bedd14feed83a0885a6580 BNB0.0000721
0x585cd3ad5459ba9fce59a45b50b97acce8a8031c7e5e4c96044eb09e7c92decfAuthorize108932132021-09-14 1:05:2082 days 3 hrs ago0x8e10693863f2ee3a20d0c40f9002e2448d8596f1 IN  0xa3184fe970c8d47ee19bedd14feed83a0885a6580 BNB0.000218125
0x26febcddf201ab0cfe21b1a484691b31a4e3c882d9ef5be529bd341839408129Change Wallet Li...108931692021-09-14 1:03:0882 days 3 hrs ago0x8e10693863f2ee3a20d0c40f9002e2448d8596f1 IN  0xa3184fe970c8d47ee19bedd14feed83a0885a6580 BNB0.00013822
0xc677c7007272d3faeb4abf547587f81ab4ef0474a87b848b7b7a405e42d10345Change Is Fee Ex...108931412021-09-14 1:01:4482 days 3 hrs ago0x8e10693863f2ee3a20d0c40f9002e2448d8596f1 IN  0xa3184fe970c8d47ee19bedd14feed83a0885a6580 BNB0.000219255
0xab668271649b19155b76c50a50d7f18ceb06fa741c89e8cafddf0f135440f51aChange Tx Limit108931192021-09-14 1:00:3882 days 3 hrs ago0x8e10693863f2ee3a20d0c40f9002e2448d8596f1 IN  0xa3184fe970c8d47ee19bedd14feed83a0885a6580 BNB0.000138435
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x4fafb64034532be4c03f0cb946fd3bfa77dc829b7fdb1855131507f55e1dd27a112687332021-09-27 3:36:1569 days 1 hr ago PancakeSwap: Router v2 0xa3184fe970c8d47ee19bedd14feed83a0885a6580.000001192578053328 BNB
0x4fafb64034532be4c03f0cb946fd3bfa77dc829b7fdb1855131507f55e1dd27a112687332021-09-27 3:36:1569 days 1 hr ago 0xa3184fe970c8d47ee19bedd14feed83a0885a658 PancakeSwap: Router v20.000873364279029288 BNB
0x4fafb64034532be4c03f0cb946fd3bfa77dc829b7fdb1855131507f55e1dd27a112687332021-09-27 3:36:1569 days 1 hr ago 0xa3184fe970c8d47ee19bedd14feed83a0885a6580x8e10693863f2ee3a20d0c40f9002e2448d8596f10.001746728558058578 BNB
0x4fafb64034532be4c03f0cb946fd3bfa77dc829b7fdb1855131507f55e1dd27a112687332021-09-27 3:36:1569 days 1 hr ago 0xa3184fe970c8d47ee19bedd14feed83a0885a6580xbf86e27191aae2b276a94058ff4b44e9661623bf0.005240185674175732 BNB
0x4fafb64034532be4c03f0cb946fd3bfa77dc829b7fdb1855131507f55e1dd27a112687332021-09-27 3:36:1569 days 1 hr ago 0xa3184fe970c8d47ee19bedd14feed83a0885a658 0x63e2f071256c7c16bab3543821fc28bc6c059afc0.004366821395146442 BNB
0x4fafb64034532be4c03f0cb946fd3bfa77dc829b7fdb1855131507f55e1dd27a112687332021-09-27 3:36:1569 days 1 hr ago PancakeSwap: Router v2 0xa3184fe970c8d47ee19bedd14feed83a0885a6580.012227080142653131 BNB
0x0bba35858db0906dc9be40640f5fdef4bd1fa7da4eeb931dc8aeafe3d8781ff4112685222021-09-27 3:25:1569 days 1 hr ago PancakeSwap: Router v2 0xa3184fe970c8d47ee19bedd14feed83a0885a6580.000000019763756909 BNB
0x0bba35858db0906dc9be40640f5fdef4bd1fa7da4eeb931dc8aeafe3d8781ff4112685222021-09-27 3:25:1569 days 1 hr ago 0xa3184fe970c8d47ee19bedd14feed83a0885a658 PancakeSwap: Router v20.000495336278312226 BNB
0x0bba35858db0906dc9be40640f5fdef4bd1fa7da4eeb931dc8aeafe3d8781ff4112685222021-09-27 3:25:1569 days 1 hr ago 0xa3184fe970c8d47ee19bedd14feed83a0885a6580x8e10693863f2ee3a20d0c40f9002e2448d8596f10.000990672556624453 BNB
0x0bba35858db0906dc9be40640f5fdef4bd1fa7da4eeb931dc8aeafe3d8781ff4112685222021-09-27 3:25:1569 days 1 hr ago 0xa3184fe970c8d47ee19bedd14feed83a0885a6580xbf86e27191aae2b276a94058ff4b44e9661623bf0.002972017669873359 BNB
0x0bba35858db0906dc9be40640f5fdef4bd1fa7da4eeb931dc8aeafe3d8781ff4112685222021-09-27 3:25:1569 days 1 hr ago 0xa3184fe970c8d47ee19bedd14feed83a0885a658 0x63e2f071256c7c16bab3543821fc28bc6c059afc0.002476681391561132 BNB
0x0bba35858db0906dc9be40640f5fdef4bd1fa7da4eeb931dc8aeafe3d8781ff4112685222021-09-27 3:25:1569 days 1 hr ago PancakeSwap: Router v2 0xa3184fe970c8d47ee19bedd14feed83a0885a6580.006931357191691057 BNB
0xbcea64decf4f68123b739f928e4bd2e2d7fcf184de40a9fbcfef605b47702e8f112685182021-09-27 3:25:0369 days 1 hr ago PancakeSwap: Router v2 0xa3184fe970c8d47ee19bedd14feed83a0885a6580.000003350704680113 BNB
0xbcea64decf4f68123b739f928e4bd2e2d7fcf184de40a9fbcfef605b47702e8f112685182021-09-27 3:25:0369 days 1 hr ago 0xa3184fe970c8d47ee19bedd14feed83a0885a658 PancakeSwap: Router v20.000513383427345893 BNB
0xbcea64decf4f68123b739f928e4bd2e2d7fcf184de40a9fbcfef605b47702e8f112685182021-09-27 3:25:0369 days 1 hr ago 0xa3184fe970c8d47ee19bedd14feed83a0885a6580x8e10693863f2ee3a20d0c40f9002e2448d8596f10.001026766854691787 BNB
0xbcea64decf4f68123b739f928e4bd2e2d7fcf184de40a9fbcfef605b47702e8f112685182021-09-27 3:25:0369 days 1 hr ago 0xa3184fe970c8d47ee19bedd14feed83a0885a6580xbf86e27191aae2b276a94058ff4b44e9661623bf0.00308030056407536 BNB
0xbcea64decf4f68123b739f928e4bd2e2d7fcf184de40a9fbcfef605b47702e8f112685182021-09-27 3:25:0369 days 1 hr ago 0xa3184fe970c8d47ee19bedd14feed83a0885a658 0x63e2f071256c7c16bab3543821fc28bc6c059afc0.002566917136729466 BNB
0xbcea64decf4f68123b739f928e4bd2e2d7fcf184de40a9fbcfef605b47702e8f112685182021-09-27 3:25:0369 days 1 hr ago PancakeSwap: Router v2 0xa3184fe970c8d47ee19bedd14feed83a0885a6580.007137512293075435 BNB
0x502210ba6174078a73c6ada0077ddfbaa027b8d38d25212fcab4ff83677d4060112685122021-09-27 3:24:4569 days 1 hr ago PancakeSwap: Router v2 0xa3184fe970c8d47ee19bedd14feed83a0885a6580.000049855689767071 BNB
0x502210ba6174078a73c6ada0077ddfbaa027b8d38d25212fcab4ff83677d4060112685122021-09-27 3:24:4569 days 1 hr ago 0xa3184fe970c8d47ee19bedd14feed83a0885a658 PancakeSwap: Router v20.003846321299073278 BNB
0x502210ba6174078a73c6ada0077ddfbaa027b8d38d25212fcab4ff83677d4060112685122021-09-27 3:24:4569 days 1 hr ago 0xa3184fe970c8d47ee19bedd14feed83a0885a6580x8e10693863f2ee3a20d0c40f9002e2448d8596f10.007692642598146556 BNB
0x502210ba6174078a73c6ada0077ddfbaa027b8d38d25212fcab4ff83677d4060112685122021-09-27 3:24:4569 days 1 hr ago 0xa3184fe970c8d47ee19bedd14feed83a0885a6580xbf86e27191aae2b276a94058ff4b44e9661623bf0.023077927794439668 BNB
0x502210ba6174078a73c6ada0077ddfbaa027b8d38d25212fcab4ff83677d4060112685122021-09-27 3:24:4569 days 1 hr ago 0xa3184fe970c8d47ee19bedd14feed83a0885a658 0x63e2f071256c7c16bab3543821fc28bc6c059afc0.01923160649536639 BNB
0x502210ba6174078a73c6ada0077ddfbaa027b8d38d25212fcab4ff83677d4060112685122021-09-27 3:24:4569 days 1 hr ago PancakeSwap: Router v2 0xa3184fe970c8d47ee19bedd14feed83a0885a6580.053843179778991736 BNB
0x1caab1726f6754b5cb28083f0d17298fffc97ae008c2565ef2f5d92f9e3528e5109867802021-09-17 7:17:2178 days 21 hrs ago PancakeSwap: Router v2 0xa3184fe970c8d47ee19bedd14feed83a0885a6580.000005318408034156 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BabyCakeMonster

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

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

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

Telegram: https://t.me/BabyCakeMonsterBSC
Website: https://babycakemonster.com/
*/

//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) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

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

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

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

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

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

contract DividendDistributor is IDividendDistributor {

    using SafeMath for uint256;
    address _token;

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

    IDEXRouter router;
    address routerAddress = 0x10ED43C718714eb63d5aA57B78B54704E256024E;
    IBEP20 RewardToken = IBEP20(0x8A5d7FCD4c90421d21d30fCC4435948aC3618B2f); //Cake Monster

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

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

    uint256 public minPeriod = 30 minutes;
    uint256 public minDistribution = 1 * (10 ** 18);

    uint256 currentIndex;

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

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

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

    function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external override onlyToken {
        minPeriod = newMinPeriod;
        minDistribution = newMinDistribution;
    }

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

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

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

        uint256 amount = RewardToken.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 iterations = 0;
        uint256 gasUsed = 0;
        uint256 gasLeft = gasleft();

        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);
            RewardToken.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 {

        require(shouldDistribute(msg.sender), "Too soon. Need to wait!");
        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();
    }
}

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

contract BabyCakeMonster is IBEP20, Auth {

    using SafeMath for uint256;

    string constant _name = "BabyCakeMonster";
    string constant _symbol = "$BCM";
    uint8 constant _decimals = 12;

    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    address routerAddress = 0x10ED43C718714eb63d5aA57B78B54704E256024E;
    address RewardToken = 0x8A5d7FCD4c90421d21d30fCC4435948aC3618B2f;  //Cake Monster

    uint256 _totalSupply = 1 * 10**15 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply * 1 / 100;
    uint256 public _walletMax = _totalSupply * 3 / 100;
    
    bool public restrictWhales = true;

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

    mapping(address => bool) private _isBlacklisted;

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

    uint256 public liquidityFee = 2;
    uint256 public marketingFee = 8;
    uint256 public rewardsFee = 5;
    uint256 public totalFee = 0;

    address public autoLiquidityReceiver;
    address public marketingWallet;
    address private anothermarketingWallet;

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;
    bool public tradingOpen = true;

    DividendDistributor public dividendDistributor;
    uint256 distributorGas = 500000;

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    uint256 public swapThreshold = _totalSupply * 5 / 4000;

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

    constructor () Auth(msg.sender) {

        router = IDEXRouter(routerAddress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = uint256(-1);

        dividendDistributor = new DividendDistributor(address(router));

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;

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

        isDividendExempt[pair] = true;
        isDividendExempt[msg.sender] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;
        isDividendExempt[ZERO] = true;

        // NICE!
        autoLiquidityReceiver = msg.sender;
        marketingWallet = 0xbf86e27191aAe2B276a94058fF4b44e9661623Bf;  // marketingwallet
        anothermarketingWallet = msg.sender;

        totalFee = liquidityFee.add(marketingFee).add(rewardsFee);

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);

    }

    receive() external payable { }

    function name() external pure override returns (string memory) { return _name; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function getOwner() external view override returns (address) { return owner; }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    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 launched() internal view returns (bool) {
        return launchedAt != 0;
    }

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

    function changeTxLimit(uint256 newLimit) external authorized {
        _maxTxAmount = newLimit;
    }

    function changeWalletLimit(uint256 newLimit) external authorized {
        _walletMax  = newLimit;
    }

    function changeRestrictWhales(bool newValue) external authorized {
       restrictWhales = newValue;
    }

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

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

    function changeIsDividendExempt(address holder, bool exempt) external authorized {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;

        if(exempt){
            dividendDistributor.setShare(holder, 0);
        }else{
            dividendDistributor.setShare(holder, _balances[holder]);
        }
    }

    function changeFees(uint256 newLiqFee, uint256 newRewardFee, uint256 newMarketingFee) external authorized {
        liquidityFee = newLiqFee;
        rewardsFee = newRewardFee;
        marketingFee = newMarketingFee;

        totalFee = liquidityFee.add(marketingFee).add(rewardsFee);
    }

    function changeFeeReceivers(address newLiquidityReceiver, address newMarketingWallet, address newanothermarketingWallet) external authorized {
        autoLiquidityReceiver = newLiquidityReceiver;
        marketingWallet = newMarketingWallet;
        anothermarketingWallet = newanothermarketingWallet;
    }

    function changeSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit, bool swapByLimitOnly) external authorized {
        swapAndLiquifyEnabled  = enableSwapBack;
        swapThreshold = newSwapBackLimit;
        swapAndLiquifyByLimitOnly = swapByLimitOnly;
    }

    function changeDistributionCriteria(uint256 newinPeriod, uint256 newMinDistribution) external authorized {
        dividendDistributor.setDistributionCriteria(newinPeriod, newMinDistribution);
    }

    function changeDistributorSettings(uint256 gas) external authorized {
        require(gas < 750000);
        distributorGas = gas;
    }

    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, "BabyCakeMonster: Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {

        if(inSwapAndLiquify){ return _basicTransfer(sender, recipient, amount); }

        require(_isBlacklisted[sender] == false, "BabyCakeMonster: You are banned");
        require(_isBlacklisted[recipient] == false, "BabyCakeMonster: The recipient is banned");

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

        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "BabyCakeMonster: Transaction Limit Exceeded");

        if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); }

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

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

        if(!isTxLimitExempt[recipient] && restrictWhales)
        {
            require(_balances[recipient].add(amount) <= _walletMax);
        }

        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, amount) : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

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

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

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

        emit Transfer(sender, recipient, finalAmount);
        return true;
    }

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

    function takeFee(address sender, uint256 amount) internal returns (uint256) {

        uint256 feeApplicable;
            feeApplicable = totalFee;
        
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

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

        return amount.sub(feeAmount);
    }

    function tradingStatus(bool newStatus) public onlyOwner {
        tradingOpen = newStatus;
    }

    function swapBack() internal lockTheSwap {

        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

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

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountBNB = address(this).balance;

        uint256 totalBNBFee = totalFee.sub(liquidityFee.div(2));
        
        uint256 amountBNBLiquidity = amountBNB.mul(liquidityFee).div(totalBNBFee).div(2);
        uint256 amountBNBReflection = amountBNB.mul(rewardsFee).div(totalBNBFee);
        uint256 amountBNBMarketing = amountBNB.sub(amountBNBLiquidity).sub(amountBNBReflection);

        try dividendDistributor.deposit{value: amountBNBReflection}() {} catch {}

        uint256 marketingShare = amountBNBMarketing.mul(3).div(4);
        uint256 anothermarketingShare = amountBNBMarketing.sub(marketingShare);

        (bool tmpSuccess,) = payable(marketingWallet).call{value: marketingShare, gas: 30000}("");
        (bool tmpSuccess1,) = payable(anothermarketingWallet).call{value: anothermarketingShare, gas: 30000}("");

        // only to supress warning msg
        tmpSuccess = false;
        tmpSuccess1 = false;

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

    function blacklistSingleWallet(address addresses) public onlyOwner {
        if (_isBlacklisted[addresses] == true) return;
        _isBlacklisted[addresses] = true;
    }

    function blacklistMultipleWallets(address[] calldata addresses)
        public
        onlyOwner
    {
        for (uint256 i; i < addresses.length; ++i) {
            _isBlacklisted[addresses[i]] = true;
        }
    }

    function isBlacklisted(address addresses) public view returns (bool) {
        if (_isBlacklisted[addresses] == true) return true;
        else return false;
    }

    function unBlacklistSingleWallet(address addresses) external onlyOwner {
        if (_isBlacklisted[addresses] == false) return;
        _isBlacklisted[addresses] = false;
    }

    function unBlacklistMultipleWallets(address[] calldata addresses)
        public
        onlyOwner
    {
        for (uint256 i; i < addresses.length; ++i) {
            _isBlacklisted[addresses[i]] = false;
        }
    }

    function clearStuckBalance(uint256 amountPercentage) external onlyOwner {
        uint256 amountBNB = address(this).balance;
        payable(marketingWallet).transfer(amountBNB * amountPercentage / 100);
    }

    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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"blacklistMultipleWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addresses","type":"address"}],"name":"blacklistSingleWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"changeDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"changeDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityReceiver","type":"address"},{"internalType":"address","name":"newMarketingWallet","type":"address"},{"internalType":"address","name":"newanothermarketingWallet","type":"address"}],"name":"changeFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newRewardFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"changeRestrictWhales","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"},{"internalType":"bool","name":"swapByLimitOnly","type":"bool"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dividendDistributor","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":[],"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":"address","name":"addresses","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","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":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"newStatus","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":"addresses","type":"address[]"}],"name":"unBlacklistMultipleWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addresses","type":"address"}],"name":"unBlacklistSingleWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507310ed43c718714eb63d5aa57b78b54704e256024e600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738a5d7fcd4c90421d21d30fcc4435948ac3618b2f600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60ff16600a0a66038d7ea4c68000026006556064600160065402816200015757fe5b046007556064600360065402816200016b57fe5b046008556001600960006101000a81548160ff02191690831515021790555060026010556008601155600560125560006013556001601a60006101000a81548160ff0219169083151502179055506207a120601b556001601c60016101000a81548160ff0219169083151502179055506000601c60026101000a81548160ff021916908315150217905550610fa0600560065402816200020757fe5b04601d553480156200021857600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200037e57600080fd5b505afa15801562000393573d6000803e3d6000fd5b505050506040513d6020811015620003aa57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200043f57600080fd5b505afa15801562000454573d6000803e3d6000fd5b505050506040513d60208110156200046b57600080fd5b8101908080519060200190929190505050306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015620004e757600080fd5b505af1158015620004fc573d6000803e3d6000fd5b505050506040513d60208110156200051357600080fd5b8101908080519060200190929190505050601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051620006589062000cc9565b808273ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f08015801562000695573d6000803e3d6000fd5b50601a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bf86e27191aae2b276a94058ff4b44e9661623bf601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000b8660125462000b7260115460105462000c4060201b620030351790919060201c565b62000c4060201b620030351790919060201c565b601381905550600654600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a362000cd7565b60008082840190508381101562000cbf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b611ada806200575683390190565b614a6f8062000ce76000396000f3fe6080604052600436106103545760003560e01c80637db1342c116101c6578063ca33e64c116100f7578063f157ce4011610095578063fabe62831161006f578063fabe628314611302578063fe575a871461135f578063fe9fbb80146113c6578063ffb54a991461142d5761035b565b8063f157ce401461121f578063f2fde38b14611270578063f887ea40146112c15761035b565b8063da00097d116100d1578063da00097d146110df578063dd62ed3e1461110c578063e66b1d1e14611191578063f0b37c04146111ce5761035b565b8063ca33e64c14611012578063cad6ebf914611053578063d920334e146110a45761035b565b8063a3a2e89e11610164578063a9f7864b1161013e578063a9f7864b14610f10578063b6a5d7de14610f55578063bad3ea6a14610fa6578063bf56b37114610fe75761035b565b8063a3a2e89e14610e01578063a8aa1b3114610e5e578063a9059cbb14610e9f5761035b565b80638b42507f116101a05780638b42507f14610c5957806395d89b4114610cc057806398118cb414610d50578063a1bdc39914610d7b5761035b565b80637db1342c14610bb2578063807c2d9c14610bed578063893d20e814610c185761035b565b806334c70889116102a05780636b67c4df1161023e578063772558ce11610218578063772558ce14610a55578063773fcb5c14610adb5780637a31959014610b385780637d1db4a514610b875761035b565b80636b67c4df1461098457806370a08231146109af57806375f0a87414610a145761035b565b806344de2e4c1161027a57806344de2e4c14610888578063479f66d8146108b55780634a74bb02146108f0578063571ac8b01461091d5761035b565b806334c70889146107675780633f4218e0146107ba5780634355855a146108215761035b565b80631df4ccfc1161030d5780632bb14e1d116102e75780632bb14e1d146106165780632f54bf6e14610641578063313ce567146106a8578063315dca29146106d65761035b565b80631df4ccfc1461052f57806323b872dd1461055a5780632b112e49146105eb5761035b565b80630445b6671461036057806306fdde031461038b578063095ea7b31461041b5780630d2959801461048c57806318160ddd146104c95780631da1db5e146104f45761035b565b3661035b57005b600080fd5b34801561036c57600080fd5b5061037561145a565b6040518082815260200191505060405180910390f35b34801561039757600080fd5b506103a0611460565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103e05780820151818401526020810190506103c5565b50505050905090810190601f16801561040d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561042757600080fd5b506104746004803603604081101561043e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061149d565b60405180821515815260200191505060405180910390f35b34801561049857600080fd5b506104c7600480360360208110156104af57600080fd5b8101908080351515906020019092919050505061158f565b005b3480156104d557600080fd5b506104de611627565b6040518082815260200191505060405180910390f35b34801561050057600080fd5b5061052d6004803603602081101561051757600080fd5b8101908080359060200190929190505050611631565b005b34801561053b57600080fd5b5061054461172a565b6040518082815260200191505060405180910390f35b34801561056657600080fd5b506105d36004803603606081101561057d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611730565b60405180821515815260200191505060405180910390f35b3480156105f757600080fd5b50610600611913565b6040518082815260200191505060405180910390f35b34801561062257600080fd5b5061062b611995565b6040518082815260200191505060405180910390f35b34801561064d57600080fd5b506106906004803603602081101561066457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061199b565b60405180821515815260200191505060405180910390f35b3480156106b457600080fd5b506106bd6119f4565b604051808260ff16815260200191505060405180910390f35b3480156106e257600080fd5b50610765600480360360608110156106f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119fd565b005b34801561077357600080fd5b506107b86004803603606081101561078a57600080fd5b8101908080351515906020019092919080359060200190929190803515159060200190929190505050611b40565b005b3480156107c657600080fd5b50610809600480360360208110156107dd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bfb565b60405180821515815260200191505060405180910390f35b34801561082d57600080fd5b506108706004803603602081101561084457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c1b565b60405180821515815260200191505060405180910390f35b34801561089457600080fd5b5061089d611c3b565b60405180821515815260200191505060405180910390f35b3480156108c157600080fd5b506108ee600480360360208110156108d857600080fd5b8101908080359060200190929190505050611c4e565b005b3480156108fc57600080fd5b50610905611ce2565b60405180821515815260200191505060405180910390f35b34801561092957600080fd5b5061096c6004803603602081101561094057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cf5565b60405180821515815260200191505060405180910390f35b34801561099057600080fd5b50610999611d28565b6040518082815260200191505060405180910390f35b3480156109bb57600080fd5b506109fe600480360360208110156109d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d2e565b6040518082815260200191505060405180910390f35b348015610a2057600080fd5b50610a29611d77565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a6157600080fd5b50610ad960048036036020811015610a7857600080fd5b8101908080359060200190640100000000811115610a9557600080fd5b820183602082011115610aa757600080fd5b80359060200191846020830284011164010000000083111715610ac957600080fd5b9091929391929390505050611d9d565b005b348015610ae757600080fd5b50610b3660048036036040811015610afe57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611eb6565b005b348015610b4457600080fd5b50610b8560048036036060811015610b5b57600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506121c1565b005b348015610b9357600080fd5b50610b9c612287565b6040518082815260200191505060405180910390f35b348015610bbe57600080fd5b50610beb60048036036020811015610bd557600080fd5b810190808035906020019092919050505061228d565b005b348015610bf957600080fd5b50610c02612312565b6040518082815260200191505060405180910390f35b348015610c2457600080fd5b50610c2d612318565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c6557600080fd5b50610ca860048036036020811015610c7c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612341565b60405180821515815260200191505060405180910390f35b348015610ccc57600080fd5b50610cd5612361565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d15578082015181840152602081019050610cfa565b50505050905090810190601f168015610d425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610d5c57600080fd5b50610d6561239e565b6040518082815260200191505060405180910390f35b348015610d8757600080fd5b50610dff60048036036020811015610d9e57600080fd5b8101908080359060200190640100000000811115610dbb57600080fd5b820183602082011115610dcd57600080fd5b80359060200191846020830284011164010000000083111715610def57600080fd5b90919293919293905050506123a4565b005b348015610e0d57600080fd5b50610e5c60048036036040811015610e2457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506124bd565b005b348015610e6a57600080fd5b50610e73612593565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610eab57600080fd5b50610ef860048036036040811015610ec257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506125b9565b60405180821515815260200191505060405180910390f35b348015610f1c57600080fd5b50610f5360048036036040811015610f3357600080fd5b8101908080359060200190929190803590602001909291905050506125ce565b005b348015610f6157600080fd5b50610fa460048036036020811015610f7857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126e2565b005b348015610fb257600080fd5b50610fbb6127b7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ff357600080fd5b50610ffc6127dd565b6040518082815260200191505060405180910390f35b34801561101e57600080fd5b506110276127e3565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561105f57600080fd5b506110a26004803603602081101561107657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612809565b005b3480156110b057600080fd5b506110dd600480360360208110156110c757600080fd5b810190808035906020019092919050505061293e565b005b3480156110eb57600080fd5b506110f46129c3565b60405180821515815260200191505060405180910390f35b34801561111857600080fd5b5061117b6004803603604081101561112f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129d6565b6040518082815260200191505060405180910390f35b34801561119d57600080fd5b506111cc600480360360208110156111b457600080fd5b81019080803515159060200190929190505050612a5d565b005b3480156111da57600080fd5b5061121d600480360360208110156111f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612af5565b005b34801561122b57600080fd5b5061126e6004803603602081101561124257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bcb565b005b34801561127c57600080fd5b506112bf6004803603602081101561129357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d00565b005b3480156112cd57600080fd5b506112d6612e62565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561130e57600080fd5b5061135d6004803603604081101561132557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612e88565b005b34801561136b57600080fd5b506113ae6004803603602081101561138257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f5e565b60405180821515815260200191505060405180910390f35b3480156113d257600080fd5b50611415600480360360208110156113e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612fcc565b60405180821515815260200191505060405180910390f35b34801561143957600080fd5b50611442613022565b60405180821515815260200191505060405180910390f35b601d5481565b60606040518060400160405280600f81526020017f4261627943616b654d6f6e737465720000000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6115983361199b565b61160a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80601a60006101000a81548160ff02191690831515021790555050565b6000600654905090565b61163a3361199b565b6116ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000479050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064848402816116f957fe5b049081150290604051600060405180830381858888f19350505050158015611725573d6000803e3d6000fd5b505050565b60135481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146118ff5761187e826040518060600160405280602781526020016149c360279139600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130bd9092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61190a84848461317d565b90509392505050565b6000611990611943600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611d2e565b611982611971600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611d2e565b600654613cbc90919063ffffffff16565b613cbc90919063ffffffff16565b905090565b60125481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000600c905090565b611a0633612fcc565b611a78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b611b4933612fcc565b611bbb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82601c60016101000a81548160ff02191690831515021790555081601d8190555080601c60026101000a81548160ff021916908315150217905550505050565b600d6020528060005260406000206000915054906101000a900460ff1681565b600f6020528060005260406000206000915054906101000a900460ff1681565b600960009054906101000a900460ff1681565b611c5733612fcc565b611cc9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b620b71b08110611cd857600080fd5b80601b8190555050565b601c60019054906101000a900460ff1681565b6000611d21827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61149d565b9050919050565b60115481565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611da63361199b565b611e18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60005b82829050811015611eb1576001600c6000858585818110611e3857fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806001019050611e1b565b505050565b611ebf33612fcc565b611f31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611fbb5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611fc457600080fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156120d257601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156120b557600080fd5b505af11580156120c9573d6000803e3d6000fd5b505050506121bd565b601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156121a457600080fd5b505af11580156121b8573d6000803e3d6000fd5b505050505b5050565b6121ca33612fcc565b61223c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82601081905550816012819055508060118190555061227c60125461226e60115460105461303590919063ffffffff16565b61303590919063ffffffff16565b601381905550505050565b60075481565b61229633612fcc565b612308576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060088190555050565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600481526020017f2442434d00000000000000000000000000000000000000000000000000000000815250905090565b60105481565b6123ad3361199b565b61241f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60005b828290508110156124b8576000600c600085858581811061243f57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806001019050612422565b505050565b6124c633612fcc565b612538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006125c633848461317d565b905092915050565b6125d733612fcc565b612649576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b1580156126c657600080fd5b505af11580156126da573d6000803e3d6000fd5b505050505050565b6126eb3361199b565b61275d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6128123361199b565b612884576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60011515600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156128e25761293b565b6001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b61294733612fcc565b6129b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060078190555050565b601c60029054906101000a900460ff1681565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612a6633612fcc565b612ad8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600960006101000a81548160ff02191690831515021790555050565b612afe3361199b565b612b70576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b612bd43361199b565b612c46576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60001515600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415612ca457612cfd565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b612d093361199b565b612d7b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612e9133612fcc565b612f03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600060011515600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415612fc25760019050612fc7565b600090505b919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601a60009054906101000a900460ff1681565b6000808284019050838110156130b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600083831115829061316a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561312f578082015181840152602081019050613114565b50505050905090810190601f16801561315c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000601c60009054906101000a900460ff16156131a65761319f848484613d06565b9050613cb5565b60001515600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151461326c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4261627943616b654d6f6e737465723a20596f75206172652062616e6e65640081525060200191505060405180910390fd5b60001515600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514613315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061497a6028913960400191505060405180910390fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156133b95750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561342457601a60009054906101000a900460ff16613423576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806149526028913960400191505060405180910390fd5b5b6007548211158061347e5750600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6134d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180614a0f602b913960400191505060405180910390fd5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561353e5750601c60009054906101000a900460ff16155b80156135565750601c60019054906101000a900460ff165b80156135a35750601d54600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156135b1576135b0613ebc565b5b6135b961465c565b1580156136135750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561366d576000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161366457600080fd5b61366c614669565b5b6136d9826040518060600160405280602581526020016149ea60259139600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130bd9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156137825750600960009054906101000a900460ff165b156137e8576008546137dc83600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461303590919063ffffffff16565b11156137e757600080fd5b5b6000600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561388e5750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61389857826138a3565b6138a28584614672565b5b90506138f781600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461303590919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613a7957601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015613a5d57600080fd5b505af1925050508015613a6e575060015b613a7757613a78565b5b5b600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613bb857601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015613b9c57600080fd5b505af1925050508015613bad575060015b613bb657613bb7565b5b5b601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479601b546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015613c2f57600080fd5b505af1925050508015613c40575060015b613c4957613c4a565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b6000613cfe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130bd565b905092915050565b6000613d74826040518060600160405280602581526020016149ea60259139600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130bd9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613e0982600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461303590919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6001601c60006101000a81548160ff0219169083151502179055506000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000613f596002613f4b601354613f3d601054876147bb90919063ffffffff16565b61484190919063ffffffff16565b61484190919063ffffffff16565b90506000613f708284613cbc90919063ffffffff16565b90506000600267ffffffffffffffff81118015613f8c57600080fd5b50604051908082528060200260200182016040528015613fbb5781602001602082028036833780820191505090505b5090503081600081518110613fcc57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561406e57600080fd5b505afa158015614082573d6000803e3d6000fd5b505050506040513d602081101561409857600080fd5b8101908080519060200190929190505050816001815181106140b657fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156141b4578082015181840152602081019050614199565b505050509050019650505050505050600060405180830381600087803b1580156141dd57600080fd5b505af11580156141f1573d6000803e3d6000fd5b5050505060004790506000614226614215600260105461484190919063ffffffff16565b601354613cbc90919063ffffffff16565b90506000614264600261425684614248601054886147bb90919063ffffffff16565b61484190919063ffffffff16565b61484190919063ffffffff16565b9050600061428f83614281601254876147bb90919063ffffffff16565b61484190919063ffffffff16565b905060006142b8826142aa8588613cbc90919063ffffffff16565b613cbc90919063ffffffff16565b9050601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561432457600080fd5b505af193505050508015614336575060015b61433f57614340565b5b6000614369600461435b6003856147bb90919063ffffffff16565b61484190919063ffffffff16565b905060006143808284613cbc90919063ffffffff16565b90506000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d8060008114614409576040519150601f19603f3d011682016040523d82523d6000602084013e61440e565b606091505b505090506000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d8060008114614499576040519150601f19603f3d011682016040523d82523d6000602084013e61449e565b606091505b50509050600091506000905060008c111561463257601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71988308f600080601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b15801561459f57600080fd5b505af11580156145b3573d6000803e3d6000fd5b50505050506040513d60608110156145ca57600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506878d604051808381526020018281526020019250505060405180910390a15b505050505050505050505050506000601c60006101000a81548160ff021916908315150217905550565b6000806019541415905090565b43601981905550565b600080601354905060006146a2606461469484876147bb90919063ffffffff16565b61484190919063ffffffff16565b90506146f681600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461303590919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36147b18185613cbc90919063ffffffff16565b9250505092915050565b6000808314156147ce576000905061483b565b60008284029050828482816147df57fe5b0414614836576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806149a26021913960400191505060405180910390fd5b809150505b92915050565b600061488383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061488b565b905092915050565b60008083118290614937576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156148fc5780820151818401526020810190506148e1565b50505050905090810190601f1680156149295780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161494357fe5b04905080915050939250505056fe4261627943616b654d6f6e737465723a2054726164696e67206973206e6f74206f70656e207965744261627943616b654d6f6e737465723a2054686520726563697069656e742069732062616e6e6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774261627943616b654d6f6e737465723a20496e73756666696369656e7420416c6c6f77616e63654261627943616b654d6f6e737465723a20496e73756666696369656e742042616c616e63654261627943616b654d6f6e737465723a205472616e73616374696f6e204c696d6974204578636565646564a2646970667358221220cafc89cd6255720b416f19d31497f80cc603dc14073f4a13b2bedb5f3716fd8064736f6c6343000706003360806040527310ed43c718714eb63d5aa57b78b54704e256024e600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738a5d7fcd4c90421d21d30fcc4435948ac3618b2f600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506ec097ce7bc90715b34b9f1000000000600c55610708600d55670de0b6b3a7640000600e553480156100df57600080fd5b50604051611ada380380611ada8339818101604052602081101561010257600080fd5b8101908080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561017057600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610172565b805b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506118d8806102026000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed1461033b578063f0fc6bca14610366578063ffb2c4791461037d578063ffd49c84146103b8576100dd565b8063ce7c2ac214610293578063d0e30db014610306578063e2d2e21914610310576100dd565b80632d48e896116100bb5780632d48e896146101cd5780633a98ef39146102125780634fab0ae81461023d578063997664d714610268576100dd565b806311ce023d146100e257806314b6ca961461010d57806328fd319814610168575b600080fd5b3480156100ee57600080fd5b506100f76103e3565b6040518082815260200191505060405180910390f35b34801561011957600080fd5b506101666004803603604081101561013057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103e9565b005b34801561017457600080fd5b506101b76004803603602081101561018b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106a8565b6040518082815260200191505060405180910390f35b3480156101d957600080fd5b50610210600480360360408110156101f057600080fd5b8101908080359060200190929190803590602001909291905050506107c2565b005b34801561021e57600080fd5b5061022761082c565b6040518082815260200191505060405180910390f35b34801561024957600080fd5b50610252610832565b6040518082815260200191505060405180910390f35b34801561027457600080fd5b5061027d610838565b6040518082815260200191505060405180910390f35b34801561029f57600080fd5b506102e2600480360360208110156102b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061083e565b60405180848152602001838152602001828152602001935050505060405180910390f35b61030e610868565b005b34801561031c57600080fd5b50610325610d63565b6040518082815260200191505060405180910390f35b34801561034757600080fd5b50610350610d69565b6040518082815260200191505060405180910390f35b34801561037257600080fd5b5061037b610d6f565b005b34801561038957600080fd5b506103b6600480360360208110156103a057600080fd5b8101908080359060200190929190505050610df5565b005b3480156103c457600080fd5b506103cd610f6f565b6040518082815260200191505060405180910390f35b600c5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461044157600080fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411156104965761049582610f75565b5b6000811180156104e857506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b156104fb576104f68261123b565b61055d565b60008114801561054d57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b1561055c5761055b826112ea565b5b5b6105c6816105b8600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546008546114c390919063ffffffff16565b61150d90919063ffffffff16565b60088190555080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061065e600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611595565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156106fd57600090506107bd565b600061074a600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611595565b90506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508082116107a5576000925050506107bd565b6107b881836114c390919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461081a57600080fd5b81600d8190555080600e819055505050565b60085481565b600e5481565b60095481565b60076020528060005260406000206000915090508060000154908060010154908060020154905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108c057600080fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561094b57600080fd5b505afa15801561095f573d6000803e3d6000fd5b505050506040513d602081101561097557600080fd5b810190808051906020019092919050505090506000600267ffffffffffffffff811180156109a257600080fd5b506040519080825280602002602001820160405280156109d15781602001602082028036833780820191505090505b509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610a3c57600080fd5b505afa158015610a50573d6000803e3d6000fd5b505050506040513d6020811015610a6657600080fd5b810190808051906020019092919050505081600081518110610a8457fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110610aee57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b815260040180858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015610be6578082015181840152602081019050610bcb565b50505050905001955050505050506000604051808303818588803b158015610c0d57600080fd5b505af1158015610c21573d6000803e3d6000fd5b50505050506000610cfe83600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610cb557600080fd5b505afa158015610cc9573d6000803e3d6000fd5b505050506040513d6020811015610cdf57600080fd5b81019080805190602001909291905050506114c390919063ffffffff16565b9050610d158160095461150d90919063ffffffff16565b600981905550610d58610d47600854610d3984600c546115c790919063ffffffff16565b61164d90919063ffffffff16565b600b5461150d90919063ffffffff16565b600b81905550505050565b600b5481565b600a5481565b610d7833611697565b610dea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f546f6f20736f6f6e2e204e65656420746f20776169742100000000000000000081525060200191505060405180910390fd5b610df333610f75565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e4d57600080fd5b600060048054905090506000811415610e665750610f6c565b60008060005a90505b8482108015610e7d57508383105b15610f675783600f5410610e94576000600f819055505b610ed66004600f5481548110610ea657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611697565b15610f1e57610f1d6004600f5481548110610eed57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f75565b5b610f43610f345a836114c390919063ffffffff16565b8361150d90919063ffffffff16565b91505a9050600f600081548092919060010191905055508280600101935050610e6f565b505050505b50565b600d5481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415610fc557611238565b6000610fd0826106a8565b9050600081111561123657610ff081600a5461150d90919063ffffffff16565b600a81905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561108957600080fd5b505af115801561109d573d6000803e3d6000fd5b505050506040513d60208110156110b357600080fd5b81019080805190602001909291905050505042600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061115e81600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461150d90919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055506111ef600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611595565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600480549050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6004600160048054905003815481106112ff57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166004600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548154811061137657fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546005600060046001600480549050038154811061141757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600480548061148b57fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b600061150583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116fb565b905092915050565b60008082840190508381101561158b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60006115c0600c546115b2600b54856115c790919063ffffffff16565b61164d90919063ffffffff16565b9050919050565b6000808314156115da5760009050611647565b60008284029050828482816115eb57fe5b0414611642576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806118826021913960400191505060405180910390fd5b809150505b92915050565b600061168f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117bb565b905092915050565b600042600d54600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011080156116f45750600e546116f2836106a8565b115b9050919050565b60008383111582906117a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561176d578082015181840152602081019050611752565b50505050905090810190601f16801561179a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290611867576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561182c578082015181840152602081019050611811565b50505050905090810190601f1680156118595780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161187357fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220172af07de45c085370679d2d54b48168a3fa29e6143bfb3b8e57bf55418ac38e64736f6c63430007060033

Deployed ByteCode Sourcemap

13649:13166:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15335:54;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16655:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17499:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;23476:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16917:88;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;26534:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14820:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20444:381;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17097:142;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14784:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13019:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16831:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19321:312;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19641:276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14544:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14650:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14331:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20133:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15234:40;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17723:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14746:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17247:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14899:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;25699:227;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18641:368;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19017:296;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14209:52;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18135:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14268:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17011:78;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14595:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16741:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14708:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;26296:230;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18365:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15014:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20280:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19925:200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12692:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15113:46;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15042:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14856:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;25517:174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18024:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15281:45;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17358:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18249:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12862:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;26108:180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13419:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14983:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18496:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25934:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13193:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15074:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15335:54;;;;:::o;16655:80::-;16703:13;16727:5;;;;;;;;;;;;;;;;;16720:12;;16655:80;:::o;17499:216::-;17574:4;17626:6;17591:11;:23;17603:10;17591:23;;;;;;;;;;;;;;;:32;17615:7;17591:32;;;;;;;;;;;;;;;:41;;;;17669:7;17648:37;;17657:10;17648:37;;;17678:6;17648:37;;;;;;;;;;;;;;;;;;17703:4;17696:11;;17499:216;;;;:::o;23476:98::-;12408:19;12416:10;12408:7;:19::i;:::-;12400:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23557:9:::1;23543:11;;:23;;;;;;;;;;;;;;;;;;23476:98:::0;:::o;16917:88::-;16972:7;16990:12;;16983:19;;16917:88;:::o;26534:212::-;12408:19;12416:10;12408:7;:19::i;:::-;12400:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26617:17:::1;26637:21;26617:41;;26677:15;;;;;;;;;;;26669:33;;:69;26734:3;26715:16;26703:9;:28;:34;;;;;;26669:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12440:1;26534:212:::0;:::o;14820:27::-;;;;:::o;20444:381::-;20544:4;20609:2;20566:11;:19;20578:6;20566:19;;;;;;;;;;;;;;;:31;20586:10;20566:31;;;;;;;;;;;;;;;;:46;20563:197;;20662:86;20698:6;20662:86;;;;;;;;;;;;;;;;;:11;:19;20674:6;20662:19;;;;;;;;;;;;;;;:31;20682:10;20662:31;;;;;;;;;;;;;;;;:35;;:86;;;;;:::i;:::-;20628:11;:19;20640:6;20628:19;;;;;;;;;;;;;;;:31;20648:10;20628:31;;;;;;;;;;;;;;;:120;;;;20563:197;20777:40;20791:6;20799:9;20810:6;20777:13;:40::i;:::-;20770:47;;20444:381;;;;;:::o;17097:142::-;17150:7;17177:54;17215:15;17225:4;;;;;;;;;;;17215:9;:15::i;:::-;17177:33;17194:15;17204:4;;;;;;;;;;;17194:9;:15::i;:::-;17177:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;17170:61;;17097:142;:::o;14784:29::-;;;;:::o;13019:103::-;13074:4;13109:5;;;;;;;;;;;13098:16;;:7;:16;;;13091:23;;13019:103;;;:::o;16831:80::-;16883:5;13848:2;16892:16;;16831:80;:::o;19321:312::-;12577:24;12590:10;12577:12;:24::i;:::-;12569:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19497:20:::1;19473:21;;:44;;;;;;;;;;;;;;;;;;19546:18;19528:15;;:36;;;;;;;;;;;;;;;;;;19600:25;19575:22;;:50;;;;;;;;;;;;;;;;;;19321:312:::0;;;:::o;19641:276::-;12577:24;12590:10;12577:12;:24::i;:::-;12569:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19798:14:::1;19773:21;;:39;;;;;;;;;;;;;;;;;;19839:16;19823:13;:32;;;;19894:15;19866:25;;:43;;;;;;;;;;;;;;;;;;19641:276:::0;;;:::o;14544:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;14650:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;14331:33::-;;;;;;;;;;;;;:::o;20133:139::-;12577:24;12590:10;12577:12;:24::i;:::-;12569:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20226:6:::1;20220:3;:12;20212:21;;;::::0;::::1;;20261:3;20244:14;:20;;;;20133:139:::0;:::o;15234:40::-;;;;;;;;;;;;;:::o;17723:116::-;17778:4;17802:29;17810:7;17827:2;17802:7;:29::i;:::-;17795:36;;17723:116;;;:::o;14746:31::-;;;;:::o;17247:105::-;17313:7;17331:9;:18;17341:7;17331:18;;;;;;;;;;;;;;;;17324:25;;17247:105;;;:::o;14899:30::-;;;;;;;;;;;;;:::o;25699:227::-;12408:19;12416:10;12408:7;:19::i;:::-;12400:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25819:9:::1;25814:105;25834:9;;:16;;25830:1;:20;25814:105;;;25903:4;25872:14;:28;25887:9;;25897:1;25887:12;;;;;;;;;;;;;;;25872:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;25852:3;;;;;25814:105;;;;25699:227:::0;;:::o;18641:368::-;12577:24;12590:10;12577:12;:24::i;:::-;12569:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18759:4:::1;18741:23;;:6;:23;;;;:41;;;;;18778:4;;;;;;;;;;;18768:14;;:6;:14;;;;18741:41;18733:50;;;::::0;::::1;;18821:6;18794:16;:24;18811:6;18794:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;18843:6;18840:162;;;18865:19;;;;;;;;;;;:28;;;18894:6;18902:1;18865:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18840:162;;;18935:19;;;;;;;;;;;:28;;;18964:6;18972:9;:17;18982:6;18972:17;;;;;;;;;;;;;;;;18935:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18840:162;18641:368:::0;;:::o;19017:296::-;12577:24;12590:10;12577:12;:24::i;:::-;12569:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19149:9:::1;19134:12;:24;;;;19182:12;19169:10;:25;;;;19220:15;19205:12;:30;;;;19259:46;19294:10;;19259:30;19276:12;;19259;;:16;;:30;;;;:::i;:::-;:34;;:46;;;;:::i;:::-;19248:8;:57;;;;19017:296:::0;;;:::o;14209:52::-;;;;:::o;18135:106::-;12577:24;12590:10;12577:12;:24::i;:::-;12569:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18225:8:::1;18211:10;:22;;;;18135:106:::0;:::o;14268:50::-;;;;:::o;17011:78::-;17063:7;17081:5;;;;;;;;;;;17074:12;;17011:78;:::o;14595:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;16741:84::-;16791:13;16815:7;;;;;;;;;;;;;;;;;16808:14;;16741:84;:::o;14708:31::-;;;;:::o;26296:230::-;12408:19;12416:10;12408:7;:19::i;:::-;12400:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26418:9:::1;26413:106;26433:9;;:16;;26429:1;:20;26413:106;;;26502:5;26471:14;:28;26486:9;;26496:1;26486:12;;;;;;;;;;;;;;;26471:28;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;26451:3;;;;;26413:106;;;;26296:230:::0;;:::o;18365:123::-;12577:24;12590:10;12577:12;:24::i;:::-;12569:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18474:6:::1;18452:11;:19;18464:6;18452:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;18365:123:::0;;:::o;15014:19::-;;;;;;;;;;;;;:::o;20280:156::-;20360:4;20384:44;20398:10;20410:9;20421:6;20384:13;:44::i;:::-;20377:51;;20280:156;;;;:::o;19925:200::-;12577:24;12590:10;12577:12;:24::i;:::-;12569:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20041:19:::1;;;;;;;;;;;:43;;;20085:11;20098:18;20041:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19925:200:::0;;:::o;12692:94::-;12408:19;12416:10;12408:7;:19::i;:::-;12400:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12774:4:::1;12752:14:::0;:19:::1;12767:3;12752:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;12692:94:::0;:::o;15113:46::-;;;;;;;;;;;;;:::o;15042:25::-;;;;:::o;14856:36::-;;;;;;;;;;;;;:::o;25517:174::-;12408:19;12416:10;12408:7;:19::i;:::-;12400:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25628:4:::1;25599:33;;:14;:25;25614:9;25599:25;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;25595:46;;;25634:7;;25595:46;25679:4;25651:14;:25;25666:9;25651:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;12440:1;25517:174:::0;:::o;18024:103::-;12577:24;12590:10;12577:12;:24::i;:::-;12569:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18111:8:::1;18096:12;:23;;;;18024:103:::0;:::o;15281:45::-;;;;;;;;;;;;;:::o;17358:133::-;17442:7;17460:11;:19;17472:6;17460:19;;;;;;;;;;;;;;;:28;17480:7;17460:28;;;;;;;;;;;;;;;;17453:35;;17358:133;;;;:::o;18249:108::-;12577:24;12590:10;12577:12;:24::i;:::-;12569:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18341:8:::1;18324:14;;:25;;;;;;;;;;;;;;;;;;18249:108:::0;:::o;12862:97::-;12408:19;12416:10;12408:7;:19::i;:::-;12400:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12946:5:::1;12924:14;:19;12939:3;12924:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;12862:97:::0;:::o;26108:180::-;12408:19;12416:10;12408:7;:19::i;:::-;12400:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26223:5:::1;26194:34;;:14;:25;26209:9;26194:25;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;26190:47;;;26230:7;;26190:47;26275:5;26247:14;:25;26262:9;26247:25;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;12440:1;26108:180:::0;:::o;13419:173::-;12408:19;12416:10;12408:7;:19::i;:::-;12400:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13503:3:::1;13495:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;13539:4;13517:14:::0;:19:::1;13532:3;13517:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;13559:25;13580:3;13559:25;;;;;;;;;;;;;;;;;;;;13419:173:::0;:::o;14983:24::-;;;;;;;;;;;;;:::o;18496:131::-;12577:24;12590:10;12577:12;:24::i;:::-;12569:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18613:6:::1;18587:15;:23;18603:6;18587:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;18496:131:::0;;:::o;25934:166::-;25997:4;26047;26018:33;;:14;:25;26033:9;26018:25;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;26014:78;;;26060:4;26053:11;;;;26014:78;26087:5;26080:12;;25934:166;;;;:::o;13193:107::-;13249:4;13273:14;:19;13288:3;13273:19;;;;;;;;;;;;;;;;;;;;;;;;;13266:26;;13193:107;;;:::o;15074:30::-;;;;;;;;;;;;;:::o;2487:179::-;2545:7;2565:9;2581:1;2577;:5;2565:17;;2606:1;2601;:6;;2593:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2657:1;2650:8;;;2487:179;;;;:::o;2818:190::-;2904:7;2937:1;2932;:6;;2940:12;2924:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2964:9;2980:1;2976;:5;2964:17;;2999:1;2992:8;;;2818:190;;;;;:::o;20833:1862::-;20925:4;20947:16;;;;;;;;;;;20944:73;;;20973:41;20988:6;20996:9;21007:6;20973:14;:41::i;:::-;20966:48;;;;20944:73;21063:5;21037:31;;:14;:22;21052:6;21037:22;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;21029:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21152:5;21123:34;;:14;:25;21138:9;21123:25;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;21115:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21219:14;:22;21234:6;21219:22;;;;;;;;;;;;;;;;;;;;;;;;;21218:23;:53;;;;;21246:14;:25;21261:9;21246:25;;;;;;;;;;;;;;;;;;;;;;;;;21245:26;21218:53;21215:148;;;21295:11;;;;;;;;;;;21287:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21215:148;21393:12;;21383:6;:22;;:49;;;;21409:15;:23;21425:6;21409:23;;;;;;;;;;;;;;;;;;;;;;;;;21383:49;21375:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21510:4;;;;;;;;;;;21496:18;;:10;:18;;;;:39;;;;;21519:16;;;;;;;;;;;21518:17;21496:39;:64;;;;;21539:21;;;;;;;;;;;21496:64;:109;;;;;21592:13;;21564:9;:24;21582:4;21564:24;;;;;;;;;;;;;;;;:41;;21496:109;21493:128;;;21608:10;:8;:10::i;:::-;21493:128;21637:10;:8;:10::i;:::-;21636:11;:32;;;;;21664:4;;;;;;;;;;;21651:17;;:9;:17;;;21636:32;21633:117;;;21713:1;21693:9;:17;21703:6;21693:17;;;;;;;;;;;;;;;;:21;21685:30;;;;;;21730:8;:6;:8::i;:::-;21633:117;21809:70;21831:6;21809:70;;;;;;;;;;;;;;;;;:9;:17;21819:6;21809:17;;;;;;;;;;;;;;;;:21;;:70;;;;;:::i;:::-;21789:9;:17;21799:6;21789:17;;;;;;;;;;;;;;;:90;;;;21896:15;:26;21912:9;21896:26;;;;;;;;;;;;;;;;;;;;;;;;;21895:27;:45;;;;;21926:14;;;;;;;;;;;21895:45;21892:141;;;22010:10;;21974:32;21999:6;21974:9;:20;21984:9;21974:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:46;;21966:55;;;;;;21892:141;22045:19;22068:11;:19;22080:6;22068:19;;;;;;;;;;;;;;;;;;;;;;;;;22067:20;:47;;;;;22092:11;:22;22104:9;22092:22;;;;;;;;;;;;;;;;;;;;;;;;;22091:23;22067:47;:82;;22143:6;22067:82;;;22117:23;22125:6;22133;22117:7;:23::i;:::-;22067:82;22045:104;;22183:37;22208:11;22183:9;:20;22193:9;22183:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;22160:9;:20;22170:9;22160:20;;;;;;;;;;;;;;;:60;;;;22266:16;:24;22283:6;22266:24;;;;;;;;;;;;;;;;;;;;;;;;;22262:127;;22311:19;;;;;;;;;;;:28;;;22340:6;22348:9;:17;22358:6;22348:17;;;;;;;;;;;;;;;;22311:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22307:71;;;;;;22262:127;22405:16;:27;22422:9;22405:27;;;;;;;;;;;;;;;;;;;;;;;;;22401:136;;22453:19;;;;;;;;;;;:28;;;22482:9;22493;:20;22503:9;22493:20;;;;;;;;;;;;;;;;22453:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22449:77;;;;;;22401:136;22553:19;;;;;;;;;;;:27;;;22581:14;;22553:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22549:59;;;;;;22642:9;22625:40;;22634:6;22625:40;;;22653:11;22625:40;;;;;;;;;;;;;;;;;;22683:4;22676:11;;;20833:1862;;;;;;:::o;2674:136::-;2732:7;2759:43;2763:1;2766;2759:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2752:50;;2674:136;;;;:::o;22703:347::-;22796:4;22833:70;22855:6;22833:70;;;;;;;;;;;;;;;;;:9;:17;22843:6;22833:17;;;;;;;;;;;;;;;;:21;;:70;;;;;:::i;:::-;22813:9;:17;22823:6;22813:17;;;;;;;;;;;;;;;:90;;;;22937:32;22962:6;22937:9;:20;22947:9;22937:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;22914:9;:20;22924:9;22914:20;;;;;;;;;;;;;;;:55;;;;23002:9;22985:35;;22994:6;22985:35;;;23013:6;22985:35;;;;;;;;;;;;;;;;;;23038:4;23031:11;;22703:347;;;;;:::o;23582:1927::-;15449:4;15430:16;;:23;;;;;;;;;;;;;;;;;;23636::::1;23662:9;:24;23680:4;23662:24;;;;;;;;;;;;;;;;23636:50;;23697:23;23723:54;23775:1;23723:47;23761:8;;23723:33;23743:12;;23723:15;:19;;:33;;;;:::i;:::-;:37;;:47;;;;:::i;:::-;:51;;:54;;;;:::i;:::-;23697:80;;23788:20;23811:36;23831:15;23811;:19;;:36;;;;:::i;:::-;23788:59;;23860:21;23898:1;23884:16;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23860:40;;23929:4;23911;23916:1;23911:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;23955:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;23945:4;23950:1;23945:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;23981:6;;;;;;;;;;;:57;;;24053:12;24080:1;24096:4;24123;24143:15;23981:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;24182:17;24202:21;24182:41;;24236:19;24258:33;24271:19;24288:1;24271:12;;:16;;:19;;;;:::i;:::-;24258:8;;:12;;:33;;;;:::i;:::-;24236:55;;24312:26;24341:51;24390:1;24341:44;24373:11;24341:27;24355:12;;24341:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;24312:80;;24403:27;24433:42;24463:11;24433:25;24447:10;;24433:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;24403:72;;24486:26;24515:58;24553:19;24515:33;24529:18;24515:9;:13;;:33;;;;:::i;:::-;:37;;:58;;;;:::i;:::-;24486:87;;24590:19;;;;;;;;;;;:27;;;24625:19;24590:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;24586:73;;;;;;24671:22;24696:32;24726:1;24696:25;24719:1;24696:18;:22;;:25;;;;:::i;:::-;:29;;:32;;;;:::i;:::-;24671:57;;24739:29;24771:38;24794:14;24771:18;:22;;:38;;;;:::i;:::-;24739:70;;24823:15;24851;;;;;;;;;;;24843:29;;24880:14;24901:5;24843:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24822:89;;;24923:16;24952:22;;;;;;;;;;;24944:36;;24988:21;25016:5;24944:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24922:104;;;25092:5;25079:18;;25122:5;25108:19;;25161:1;25143:15;:19;25140:362;;;25178:6;;;;;;;;;;;:22;;;25208:18;25254:4;25278:15;25312:1;25332::::0;25352:21:::1;;;;;;;;;;;25392:15;25178:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25442:48;25454:18;25474:15;25442:48;;;;;;;;;;;;;;;;;;;;;;;;25140:362;15464:1;;;;;;;;;;;;;15495:5:::0;15476:16;;:24;;;;;;;;;;;;;;;;;;23582:1927::o;17847:90::-;17890:4;17928:1;17914:10;;:15;;17907:22;;17847:90;:::o;17945:71::-;17996:12;17983:10;:25;;;;17945:71::o;23058:410::-;23125:7;23147:21;23199:8;;23183:24;;23228:17;23248:34;23278:3;23248:25;23259:13;23248:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;23228:54;;23322:39;23351:9;23322;:24;23340:4;23322:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;23295:9;:24;23313:4;23295:24;;;;;;;;;;;;;;;:66;;;;23402:4;23377:42;;23386:6;23377:42;;;23409:9;23377:42;;;;;;;;;;;;;;;;;;23439:21;23450:9;23439:6;:10;;:21;;;;:::i;:::-;23432:28;;;;23058:410;;;;:::o;3016:224::-;3074:7;3103:1;3098;:6;3094:25;;;3115:1;3108:8;;;;3094:25;3129:9;3145:1;3141;:5;3129:17;;3174:1;3169;3165;:5;;;;;;:10;3157:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3231:1;3224:8;;;3016:224;;;;;:::o;3248:132::-;3306:7;3333:39;3337:1;3340;3333:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3326:46;;3248:132;;;;:::o;3388:189::-;3474:7;3506:1;3502;:5;3509:12;3494:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3533:9;3549:1;3545;:5;;;;;;3533:17;;3568:1;3561:8;;;3388:189;;;;;:::o

Swarm Source

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