**Maintenance in progress, block data might not be up to date**

Contract 0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb

 

Contract Overview

Balance:
0 BNB

BNB Value:
$0.00

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xa26694c7255f7293b95b0263454d88463bc24e1bd959e39a62bc1602a3bb4e7fTransfer147014062022-01-26 11:38:021 day 15 hrs ago0x2188cb0f56455dca22378341a99cb4aeb2f9cc0e IN  0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0 BNB0.00012796
0xcc2b51a5785df1cb6d6c2f6b080f4751fd4e0660cc3f282438851d34ea0c8d3aTrading Status145286892022-01-20 11:24:047 days 16 hrs ago0x5652893c402c4987e1e66e156dced7db43ae8d79 IN  0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0 BNB0.00014227
0x790d665841b2760e986a4fb40657ded623a60efedf47ae46d725921a2390452bSet_sell_multipl...145260442022-01-20 9:11:497 days 18 hrs ago0x5652893c402c4987e1e66e156dced7db43ae8d79 IN  0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0 BNB0.000136975
0x015a2ea69ba74031627ab2ce1f76813764488548ab8c2fbc4a430faa6444b9e3Trading Status145260362022-01-20 9:11:257 days 18 hrs ago0x5652893c402c4987e1e66e156dced7db43ae8d79 IN  0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0 BNB0.00014637
0xdfd29f8dea26f71ad70587569b66156ae8ea9a9fd80182880f74df73146b0f9fTrading Status145259802022-01-20 9:08:377 days 18 hrs ago0x5652893c402c4987e1e66e156dced7db43ae8d79 IN  0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0 BNB0.00014227
0x4e5290d56d70c5f9b4ce2862bf1805d66f16cf32b5484a2e2d0e82cf40190f4fSet Swap Back Se...145259392022-01-20 9:06:347 days 18 hrs ago0x5652893c402c4987e1e66e156dced7db43ae8d79 IN  0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0 BNB0.000172575
0x230f34a840b0f88c0d6112a4b9af1898939ed01fe6fdcf9d0c162326d690763bApprove145258932022-01-20 9:04:167 days 18 hrs ago0xcc7ccc05af07b9f35554e5b3e335bab85ab986bb IN  0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0 BNB0.00022179
0x10006647064520e08e3a787b90c5761b9130271ffbf4f29f6934374aa7e97392Set Max Tx Perce...142125662022-01-09 10:48:5618 days 16 hrs ago0x5652893c402c4987e1e66e156dced7db43ae8d79 IN  0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0 BNB0.000142915
0xe0a5d1a1e03876d9f8d8c5374eac71dd8752208d7da51879f3c0e78e0233c70cClear Stuck Bala...142125372022-01-09 10:47:2918 days 16 hrs ago0x5652893c402c4987e1e66e156dced7db43ae8d79 IN  0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0 BNB0.00014955
0x172e3a5d36a1e4c3a38505d8d50d77648409ac61bb1ff4aa853c0c0039adbb46Transfer140671142022-01-04 9:20:1723 days 18 hrs ago0xaafcaf2ae6d5061d3f66635467c1fe9866f9e7b8 IN  0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0 BNB0.003775525
0x3d0d14ab378cf0d3d5f83a66d8a88f21512a721a9ba1f025e00d78a262198edfApprove138726162021-12-28 15:04:1630 days 12 hrs ago0xc263cf6fd160c0ae635287ae04139cfa290379b4 IN  0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0 BNB0.00022179
0xc374abc151583d036d21d3b2bf9a24f386873c3b8f0e08f514f98712a3fc87ffApprove137069742021-12-22 20:50:4736 days 6 hrs ago0x7a9e02f5e076d48959b67da46fa8551c9b158bee IN  0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0 BNB0.000072405
0xc06127ab350aa49755c655749136d375538f1ea1d47df159e2bdf7fe4f51a403Approve133571482021-12-10 15:53:2948 days 11 hrs ago0x3e8275729c7645f1c13d9a15503ba59c843df2ed IN  0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0 BNB0.000310506
0xaf50258ba09dfac34258fe0b6575ea0e7d21e9cfa07a0e39763d2a3a4bd396f2Approve132993932021-12-08 15:19:5450 days 12 hrs ago0x9d0594d8047dbf2f71e0d9f0134980fc5f720fa6 IN  0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0 BNB0.000072435
0x40fa81963c913092f48bc520ab6c4b66801cb4e6da95a2570f52ffaa7216fe68Approve132561222021-12-06 23:08:1452 days 4 hrs ago0x723631711e0bca529c3a87060a353e05192a60b0 IN  0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0 BNB0.00022179
0xbbc0da8b70ef9a0fd2e3509de8d4994e9145ad9f6bac3592772e9efbd7932e22Approve132488162021-12-06 16:59:1052 days 10 hrs ago0x46def3fcc3d9a7b42e2ceadbc3df2cefe6b56064 IN  0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0 BNB0.00022179
0xf2575f488f4626bee1e416bfcf94b9bda0ca09b94a51b04d30572e7240f089ceApprove131739292021-12-04 1:06:0455 days 2 hrs ago0x5b80535afc24163a2396f8c275bebdfadf79d915 IN  0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0 BNB0.00022179
0x3381f5c9e68d3d9236f7cfa30c3ddea2a00c367b8cd26a2d0184eee930b49b49Approve131454772021-12-03 1:03:2556 days 2 hrs ago0x8b1e267fe750beedea85ad288aa346d645a529bd IN  0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0 BNB0.00022179
0x0c7cb8f26cce04c2f2e378a67be16ee83d5a4b51a4bedddee5027f3e834dd81fApprove130871122021-11-30 21:48:0758 days 5 hrs ago0x89d95ecea2a3a0216d09cba1549fc2c57666c728 IN  0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0 BNB0.000266148
0xb63c0ea7dea37cf9a8e09c1e92dd1130a57148a6218138280e7b87ea4292c298Approve130607192021-11-29 22:18:2859 days 5 hrs ago0xee704bd1ee7cd0dc711d9433efdabced17cc493f IN  0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0 BNB0.00022179
0x435c064557916f9477aa2e383c6d7bfd36e641079d37321c18debef7b6e19199Approve130527062021-11-29 15:08:0759 days 12 hrs ago0x41359a43faef0cd37d5f0c1e73c5495b6c332097 IN  0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0 BNB0.00022179
0x21b138c529145832319eba6d8828680026e08efc2e4f9c687b386ee03e40e820Approve130078752021-11-27 22:27:1261 days 4 hrs ago0x2ebc3933ae7790948ebc2d230a6876f9a6bb59a6 IN  0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0 BNB0.000072405
0xc1ee41cc59a7d5b2faba62fcd840445fdb4af6a897a1cb2c0e2b48083b189fe6Approve130078662021-11-27 22:26:4561 days 4 hrs ago0x2ebc3933ae7790948ebc2d230a6876f9a6bb59a6 IN  0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0 BNB0.000072435
0x203646ad1d1e495f195578ca1a7b08543e2415fd0833070ab10a11541095cbc9Clear Stuck Bala...129715952021-11-26 13:52:5062 days 13 hrs ago0x5652893c402c4987e1e66e156dced7db43ae8d79 IN  0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0 BNB0.00014955
0x677938e4ae4da6451f6acf69e5d87624cf714cad676d6bdee39c570027adfb0aApprove129189072021-11-24 13:47:1564 days 13 hrs ago0xb595501d628896a117b510fd4d1556075967ea4b IN  0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0 BNB0.00022179
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xe0a5d1a1e03876d9f8d8c5374eac71dd8752208d7da51879f3c0e78e0233c70c142125372022-01-09 10:47:2918 days 16 hrs ago 0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0x5652893c402c4987e1e66e156dced7db43ae8d790.017350883854343565 BNB
0x172e3a5d36a1e4c3a38505d8d50d77648409ac61bb1ff4aa853c0c0039adbb46140671142022-01-04 9:20:1723 days 18 hrs ago 0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0x8e3159ad78f8075257c150805b20269a615a36d80.001301517369411644 BNB
0x172e3a5d36a1e4c3a38505d8d50d77648409ac61bb1ff4aa853c0c0039adbb46140671142022-01-04 9:20:1723 days 18 hrs ago 0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0xea7ed531ba37c711f5bf4a549416c394d418bf920.001301517369411644 BNB
0x172e3a5d36a1e4c3a38505d8d50d77648409ac61bb1ff4aa853c0c0039adbb46140671142022-01-04 9:20:1723 days 18 hrs ago 0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0x826ea4d1ce89c318d3c93bfaaa83c025466f8de10.001301517369411644 BNB
0x172e3a5d36a1e4c3a38505d8d50d77648409ac61bb1ff4aa853c0c0039adbb46140671142022-01-04 9:20:1723 days 18 hrs ago PancakeSwap: Router v2 0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0.005206069477646576 BNB
0x61907783db43852603ecf341cfdf5aa5886ec2a7df393a6ece5509c9b204d0b3138726232021-12-28 15:04:3730 days 12 hrs ago 0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0x8e3159ad78f8075257c150805b20269a615a36d80.001306266704549118 BNB
0x61907783db43852603ecf341cfdf5aa5886ec2a7df393a6ece5509c9b204d0b3138726232021-12-28 15:04:3730 days 12 hrs ago 0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0xea7ed531ba37c711f5bf4a549416c394d418bf920.001306266704549118 BNB
0x61907783db43852603ecf341cfdf5aa5886ec2a7df393a6ece5509c9b204d0b3138726232021-12-28 15:04:3730 days 12 hrs ago 0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0x826ea4d1ce89c318d3c93bfaaa83c025466f8de10.001306266704549118 BNB
0x61907783db43852603ecf341cfdf5aa5886ec2a7df393a6ece5509c9b204d0b3138726232021-12-28 15:04:3730 days 12 hrs ago PancakeSwap: Router v2 0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0.005225066818196474 BNB
0xb4f31a05d5c4e221da9ed477245c5973dbf32f0cdb4820c27a003cc3892d63da134947732021-12-15 11:06:0843 days 16 hrs ago 0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0x8e3159ad78f8075257c150805b20269a615a36d80.001310281544607085 BNB
0xb4f31a05d5c4e221da9ed477245c5973dbf32f0cdb4820c27a003cc3892d63da134947732021-12-15 11:06:0843 days 16 hrs ago 0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0xea7ed531ba37c711f5bf4a549416c394d418bf920.001310281544607085 BNB
0xb4f31a05d5c4e221da9ed477245c5973dbf32f0cdb4820c27a003cc3892d63da134947732021-12-15 11:06:0843 days 16 hrs ago 0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0x826ea4d1ce89c318d3c93bfaaa83c025466f8de10.001310281544607085 BNB
0xb4f31a05d5c4e221da9ed477245c5973dbf32f0cdb4820c27a003cc3892d63da134947732021-12-15 11:06:0843 days 16 hrs ago PancakeSwap: Router v2 0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0.005241126178428343 BNB
0x6fcf1aba91fca6b070c8a1bd29e2f20d9959031361b88975e132a6a12a6feb73134705442021-12-14 14:48:5544 days 12 hrs ago 0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0x8e3159ad78f8075257c150805b20269a615a36d80.001313167574590865 BNB
0x6fcf1aba91fca6b070c8a1bd29e2f20d9959031361b88975e132a6a12a6feb73134705442021-12-14 14:48:5544 days 12 hrs ago 0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0xea7ed531ba37c711f5bf4a549416c394d418bf920.001313167574590865 BNB
0x6fcf1aba91fca6b070c8a1bd29e2f20d9959031361b88975e132a6a12a6feb73134705442021-12-14 14:48:5544 days 12 hrs ago 0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0x826ea4d1ce89c318d3c93bfaaa83c025466f8de10.001313167574590865 BNB
0x6fcf1aba91fca6b070c8a1bd29e2f20d9959031361b88975e132a6a12a6feb73134705442021-12-14 14:48:5544 days 12 hrs ago PancakeSwap: Router v2 0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0.00525267029836346 BNB
0x7f0705e865800050493d8d7fa0a5d9e5c6f0f0d61d610635b69eea94890f4078134115362021-12-12 13:16:4346 days 14 hrs ago 0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0x8e3159ad78f8075257c150805b20269a615a36d80.001321971080297322 BNB
0x7f0705e865800050493d8d7fa0a5d9e5c6f0f0d61d610635b69eea94890f4078134115362021-12-12 13:16:4346 days 14 hrs ago 0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0xea7ed531ba37c711f5bf4a549416c394d418bf920.001321971080297322 BNB
0x7f0705e865800050493d8d7fa0a5d9e5c6f0f0d61d610635b69eea94890f4078134115362021-12-12 13:16:4346 days 14 hrs ago 0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0x826ea4d1ce89c318d3c93bfaaa83c025466f8de10.001321971080297322 BNB
0x7f0705e865800050493d8d7fa0a5d9e5c6f0f0d61d610635b69eea94890f4078134115362021-12-12 13:16:4346 days 14 hrs ago PancakeSwap: Router v2 0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0.00528788432118929 BNB
0xf06fc12bdea4d315dd7af2fbe022a2a8608d71d2b225b08b265612b2747c4d64133936142021-12-11 22:18:1247 days 5 hrs ago 0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0x8e3159ad78f8075257c150805b20269a615a36d80.001331990712098583 BNB
0xf06fc12bdea4d315dd7af2fbe022a2a8608d71d2b225b08b265612b2747c4d64133936142021-12-11 22:18:1247 days 5 hrs ago 0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0xea7ed531ba37c711f5bf4a549416c394d418bf920.001331990712098583 BNB
0xf06fc12bdea4d315dd7af2fbe022a2a8608d71d2b225b08b265612b2747c4d64133936142021-12-11 22:18:1247 days 5 hrs ago 0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0x826ea4d1ce89c318d3c93bfaaa83c025466f8de10.001331990712098583 BNB
0xf06fc12bdea4d315dd7af2fbe022a2a8608d71d2b225b08b265612b2747c4d64133936142021-12-11 22:18:1247 days 5 hrs ago PancakeSwap: Router v2 0xd5f72ce2698cc32f43b85a7e78e48757c83bb3eb0.005327962848394332 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BuffedYooshi

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**

Welcome to Buffed Yooshi 
Telegram: https://t.me/buffedyooshi_token
Website: http://buffedyoshi.club/
Twitter: https://twitter.com/byooshi_token

🦖Buffed Yooshi🦖

What Are We All About?
Simply a strong Buffed Yooshi Token with no reflection or rewards. Buffed Yoshi is focused on low taxes, heavy marketing and buyback to allow holders benefit from strong foundation. Buffed Yooshi will renounce ownership to allow investors and community to feel safe from rug and scam and will be purely community-based project. 

Fee
5% Marketing Fee
4% Liquidity Pool
2% Buyback Fee
1% Ecosystem


 */

// SPDX-License-Identifier: unlicensed

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

library SafeMathInt {
    int256 private constant MIN_INT256 = int256(1) << 255;
    int256 private constant MAX_INT256 = ~(int256(1) << 255);

    function mul(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a * b;

        require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
        require((b == 0) || (c / b == a));
        return c;
    }

    function div(int256 a, int256 b) internal pure returns (int256) {
        require(b != -1 || a != MIN_INT256);

        return a / b;
    }

    function sub(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a));
        return c;
    }

    function add(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a));
        return c;
    }

    function abs(int256 a) internal pure returns (int256) {
        require(a != MIN_INT256);
        return a < 0 ? -a : a;
    }
}

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

abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

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

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

interface InterfaceLP {
    function sync() external;
}

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

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

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

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

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

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

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

contract DividendDistributor is IDividendDistributor {
    using SafeMath for uint256;

    address _token;

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

    IBEP20 RWRD = IBEP20(0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56);
    address WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
    IDEXRouter router;

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

    mapping (address => Share) public shares;

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

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

    uint256 currentIndex;

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

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

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

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

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

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

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

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

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

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

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

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

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

        if(shareholderCount == 0) { return; }

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

        uint256 iterations = 0;

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

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

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

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

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

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

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

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

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

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

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

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

contract BuffedYooshi is IBEP20, Auth {
    using SafeMath for uint256;
    using SafeMathInt for int256;

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

    string constant _name = "Buffed Yooshi";
    string constant _symbol = "BYooshi";
    uint8 constant _decimals = 4;


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

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

    uint256 public liquidityFee    = 4;
    uint256 public reflectionFee   = 0;
    uint256 public marketingFee    = 5;
    uint256 public buyBackFee          = 2;
	uint256 public ecoFee          = 1;
    uint256 public totalFee        = marketingFee + reflectionFee + liquidityFee + buyBackFee +ecoFee;
    uint256 public feeDenominator  = 100;

    // Anti-Bot v2
    uint256 public maxRoomRent = 15000000000;
    bool public hotelCaliforniaMode = false;
    mapping (address => bool) public isHouseguest;

    uint256 public deadBlocks = 3;
    uint256 public launchedAt = 0;

    uint256 public sellMultiplier  = 100;

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;
    address public buyBackFeeReceiver;
	address public ecoFeeReceiver;
	
    uint256 targetLiquidity = 20;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;
    InterfaceLP public pairContract; 

    bool public tradingOpen = false;

    DividendDistributor public distributor;
    uint256 distributorGas = 500000;

    bool public buyCooldownEnabled = false;
    uint8 public cooldownTimerInterval = 5;
    mapping (address => uint) private cooldownTimer;

    bool public swapEnabled = false;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    address public master;
    modifier onlyMaster() {
        require(msg.sender == master || isOwner(msg.sender));
        _;
    }

    event CaliforniaCheckin(address guest, uint256 rentPaid);

    uint256 _totalSupply = 10**15 * 10**_decimals;
    uint256 public swapThreshold = _totalSupply * 10 / 10000;


    // Max wallet & Transaction
    uint256 public _maxTxAmount = _totalSupply.div(1000).mul(5);
    uint256 public _maxWalletToken = _totalSupply.div(1000).mul(20);
  
    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        pair = IDEXFactory(router.factory()).createPair(WBNB, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;
        
        pairContract = InterfaceLP(pair);
        
        distributor = new DividendDistributor(address(router));

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

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

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

        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x826eA4D1Ce89c318d3C93bfAAa83c025466f8dE1;
        buyBackFeeReceiver = 0xeA7Ed531bA37c711f5bF4a549416c394d418bF92;
		ecoFeeReceiver = 0x6e8C93BadD3b883B928790dC005D929C14BCB1ee;

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

    receive() external payable { }

    
    
    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

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

    
    
    function approveMax(address spender) external returns (bool) {
        return approve(spender, uint256(-1));
    }

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

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

        return _transferFrom(sender, recipient, amount);
    }

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

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

        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != marketingFeeReceiver && recipient != buyBackFeeReceiver  && recipient != autoLiquidityReceiver && recipient != ecoFeeReceiver ){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}
        
        if (sender == pair &&
            buyCooldownEnabled &&
            !isTimelockExempt[recipient]) {
            require(cooldownTimer[recipient] < block.timestamp,"buy Cooldown exists");
            cooldownTimer[recipient] = block.timestamp + cooldownTimerInterval;
        }

    // plz ser, dont snipe with a bot
        if(hotelCaliforniaMode){
            require(!isHouseguest[sender],"Bots cant sell");
            if(tx.gasprice > maxRoomRent && sender == pair){
                isHouseguest[recipient] = true;
                emit CaliforniaCheckin(recipient, tx.gasprice);
            }
        }

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

        if(shouldSwapBack()){ swapBack(); }

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

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

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

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

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

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

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

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }


    function takeFee(address sender, uint256 amount, bool isSell) internal returns (uint256) {
        
        uint256 multiplier = 100;
        if(isSell){
            multiplier = sellMultiplier;
        } 

        uint256 feeAmount = amount.div(feeDenominator * 100).mul(totalFee).mul(multiplier);

        if(!isSell && (launchedAt + deadBlocks) > block.number){
            feeAmount = amount.div(100).mul(99);
        }

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

        return amount.sub(feeAmount);
    }

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


  
    
    function clearStuckBalance_sender(uint256 amountPercentage) external authorized {
        uint256 amountBNB = address(this).balance;
        payable(msg.sender).transfer(amountBNB * amountPercentage / 100);
    }

    function clearStuckBalanceX(uint256 amountPercentage ,address adr) external authorized {
        uint256 amountBNB = address(this).balance;
        payable(adr).transfer(amountBNB * amountPercentage / 100);
    }
    
    function set_sell_multiplier(uint256 Multiplier) external onlyOwner{
        sellMultiplier = Multiplier;        
    }

    // switch Trading
    
    function tradingStatus(bool _status, uint256 _deadBlocks) public onlyOwner {
        tradingOpen = _status;
        if(tradingOpen && launchedAt == 0){
            launchedAt = block.number;
            deadBlocks = _deadBlocks;
        }
    }

    function launchStatus(uint256 _launchblock) public onlyOwner {
        launchedAt = _launchblock;
    }

    // lobby manager
    function enable_hotel_CaliforniaMode(bool _status) public onlyOwner {
        hotelCaliforniaMode = _status;
    }

    function set_max_roomrent(uint256 _rent_withoutdecimal) public onlyOwner {
        maxRoomRent = _rent_withoutdecimal * 10**9;
    }

    function manage_houseguests(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            isHouseguest[addresses[i]] = status;
        }
    }

    function cooldownEnabled(bool _status, uint8 _interval) public onlyOwner {
        buyCooldownEnabled = _status;
        cooldownTimerInterval = _interval;
    }

    // OK, check 3
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 tokensToSell = swapThreshold;

        uint256 amountToLiquify = tokensToSell.div(totalFee).mul(dynamicLiquidityFee).div(2);
        uint256 amountToSwap = tokensToSell.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

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

        uint256 amountBNB = address(this).balance.sub(balanceBefore);

        uint256 totalBNBFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountBNBLiquidity = amountBNB.mul(dynamicLiquidityFee).div(totalBNBFee).div(2);
        uint256 amountBNBReflection = amountBNB.mul(reflectionFee).div(totalBNBFee);
        uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(totalBNBFee);
        uint256 amountBNBDev = amountBNB.mul(buyBackFee).div(totalBNBFee);
		uint256 amountBNBEco = amountBNB.mul(ecoFee).div(totalBNBFee);

        try distributor.deposit{value: amountBNBReflection}() {} catch {}
        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountBNBMarketing, gas: 30000}("");
        (tmpSuccess,) = payable(buyBackFeeReceiver).call{value: amountBNBDev, gas: 30000}("");
		(tmpSuccess,) = payable(ecoFeeReceiver).call{value: amountBNBEco, gas: 30000}("");
        
        // only to supress warning msg
        tmpSuccess = false;

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

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

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

    function setFees(uint256 _liquidityFee, uint256 _reflectionFee, uint256 _marketingFee, uint256 _buyBackFee,uint256 _ecoFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        reflectionFee = _reflectionFee;
        marketingFee = _marketingFee;
        buyBackFee = _buyBackFee;
		 ecoFee = _ecoFee;
        totalFee = _liquidityFee.add(_reflectionFee).add(_marketingFee).add(_buyBackFee).add(_ecoFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/3, "Fees cannot be more than 33%");
    }

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


    function setSwapBackSettings(bool _enabled, uint256 _percentage_base10000) external authorized {
        swapEnabled = _enabled;
        swapThreshold = _totalSupply.div(10000).mul(_percentage_base10000);
    }


    function setTargetLiquidity(uint256 _target, uint256 _denominator) external authorized {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }

    
    function manualSync() external {
        InterfaceLP(pair).sync();
    }
    
    function setLP(address _address) external onlyOwner {
        pairContract = InterfaceLP(_address);
        isFeeExempt[_address];
    }

    
    
    function setMaster(address _master) external onlyOwner {
        master = _master;
    }

    
    function isNotInSwap() external view returns (bool) {
        return !inSwap;
    }

    
    
    function checkSwapThreshold() external view returns (uint256) {
        return swapThreshold;
    }


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

    
    
    function setDistributorSettings(uint256 gas) external authorized {
        require(gas < 900000);
        distributorGas = gas;
    }
    
    
    
    function rescueToken(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) {
        return IBEP20(tokenAddress).transfer(msg.sender, tokens);
    }


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


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


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

    function checkMaxWalletToken() external view returns (uint256) {
        return _maxWalletToken;
    }

    
    function checkMaxTxAmount() external view returns (uint256) {
        return _maxTxAmount;
    }

    function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner() {
        _maxWalletToken = _totalSupply.div(1000).mul(maxWallPercent_base1000);
    }

    function setMaxTxPercent_base1000(uint256 maxTXPercentage_base1000) external onlyOwner() {
        _maxTxAmount = _totalSupply.div(1000).mul(maxTXPercentage_base1000);
    }



/* Airdrop Begins */

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

    require(addresses.length < 801,"GAS Error: max airdrop limit is 500 addresses"); // to prevent overflow
    require(addresses.length == tokens.length,"Mismatch between Address and token count");

    uint256 SCCC = 0;

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

    require(balanceOf(from) >= SCCC, "Not enough tokens in wallet");

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

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

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

    require(addresses.length < 2001,"GAS Error: max airdrop limit is 2000 addresses"); // to prevent overflow

    uint256 SCCC = tokens * addresses.length;

    require(balanceOf(from) >= SCCC, "Not enough tokens in wallet");

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

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


event AutoLiquify(uint256 amountBNB, uint256 amountTokens);

}

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":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"guest","type":"address"},{"indexed":false,"internalType":"uint256","name":"rentPaid","type":"uint256"}],"name":"CaliforniaCheckin","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":"_maxWalletToken","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":[],"name":"buyBackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBackFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkMaxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkMaxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"},{"internalType":"address","name":"adr","type":"address"}],"name":"clearStuckBalanceX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance_sender","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint8","name":"_interval","type":"uint8"}],"name":"cooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"distributor","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ecoFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ecoFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_hotel_CaliforniaMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hotelCaliforniaMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"","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":"","type":"address"}],"name":"isHouseguest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isNotInSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTimelockExempt","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":[{"internalType":"uint256","name":"_launchblock","type":"uint256"}],"name":"launchStatus","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_houseguests","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSync","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"master","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxRoomRent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"multiTransfer_fixed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairContract","outputs":[{"internalType":"contract InterfaceLP","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reflectionFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_buyBackFeeReceiver","type":"address"},{"internalType":"address","name":"_ecoFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_buyBackFee","type":"uint256"},{"internalType":"uint256","name":"_ecoFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTimelockExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_master","type":"address"}],"name":"setMaster","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base1000","type":"uint256"}],"name":"setMaxTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_percentage_base10000","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rent_withoutdecimal","type":"uint256"}],"name":"set_max_roomrent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"Multiplier","type":"uint256"}],"name":"set_sell_multiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":"_status","type":"bool"},{"internalType":"uint256","name":"_deadBlocks","type":"uint256"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526002805473bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c6001600160a01b03199182161782556003805461dead908316178155600480549092168255600b919091556000600c8181556005600d819055600e949094556001600f556010556064601181905564037e11d6006012556013805460ff1990811690915560159390935560169190915560178190556014601c55601d556020805460ff60a01b191681556207a1206022556023805461ffff191661050017905560258054909216909155678ac7230489e800006026819055662386f26fc10000602755620001139291620000ff91906103e89062000486811b62002af817901c565b620004d960201b62002b3a1790919060201c565b6028556200013a6014620000ff6103e86026546200048660201b62002af81790919060201c565b6029553480156200014a57600080fd5b50600080546001600160a01b0319908116339081178355825260016020818152604093849020805460ff1916909217909155601e80549092167310ed43c718714eb63d5aa57b78b54704e256024e1791829055825163c45a015560e01b815292516001600160a01b03929092169263c45a01559260048083019392829003018186803b158015620001da57600080fd5b505afa158015620001ef573d6000803e3d6000fd5b505050506040513d60208110156200020657600080fd5b5051600254604080516364e329cb60e11b81526001600160a01b0392831660048201523060248201529051919092169163c9c653969160448083019260209291908290030181600087803b1580156200025e57600080fd5b505af115801562000273573d6000803e3d6000fd5b505050506040513d60208110156200028a57600080fd5b5051601f80546001600160a01b03199081166001600160a01b03938416178255306000908152600660209081526040808320601e80548816855290835292819020600019905593548154908616931692909217909155549051911690620002f190620005de565b6001600160a01b03909116815260405190819003602001906000f0801580156200031f573d6000803e3d6000fd5b50602180546001600160a01b039283166001600160a01b031991821617909155336000818152600760209081526040808320805460ff19908116600190811790925560088452828520805482168317905560098452828520805482168317905560038054891686528386208054831684179055308087528487208054841685179055601f548a168752600a86528487208054841685179055865283862080548316841790555490971684528184208054909716179095556018805485168417905560198054851673826ea4d1ce89c318d3c93bfaaa83c025466f8de1179055601a8054851673ea7ed531ba37c711f5bf4a549416c394d418bf92179055601b8054909416736e8c93badd3b883b928790dc005d929c14bcb1ee179093556026548282526005845284822081905584519081529351919390927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3620005ec565b6000620004d083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200053760201b60201c565b90505b92915050565b600082620004ea57506000620004d3565b82820282848281620004f857fe5b0414620004d05760405162461bcd60e51b81526004018080602001828103825260218152602001806200513b6021913960400191505060405180910390fd5b60008183620005c75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200058b57818101518382015260200162000571565b50505050905090810190601f168015620005b95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581620005d457fe5b0495945050505050565b610ebe806200427d83390190565b613c8180620005fc6000396000f3fe6080604052600436106104985760003560e01c8063722b62ad11610260578063bfe1092811610144578063f2fde38b116100c1578063fabb0b4f11610085578063fabb0b4f14611211578063fe2840e414611226578063fe9fbb8014611250578063fed0d2a114611283578063ff7da74e14611298578063ffb54a99146112c45761049f565b8063f2fde38b1461113e578063f520e2f414611171578063f708a64f14611186578063f84ba65d146111c1578063f887ea40146111fc5761049f565b8063df20fd4911610108578063df20fd4914611085578063e96fada2146110b7578063ec72d65f146110cc578063ee97f7f3146110f6578063f0b37c041461110b5761049f565b8063bfe1092814610f79578063ca1d908c14610f8e578063ca33e64c1461100b578063d51ed1c814611020578063dd62ed3e1461104a5761049f565b806395d89b41116101dd578063a8aa1b31116101a1578063a8aa1b3114610ea4578063a9059cbb14610eb9578063b43b783514610ef2578063b6a5d7de14610f07578063bd9ab53714610f3a578063bf56b37114610f645761049f565b806395d89b4114610e1157806398118cb414610e265780639ba1fc4c14610e3b5780639d1944f514610e65578063a5a07a9814610e8f5761049f565b806383b4ac681161022457806383b4ac6814610d3957806386f6c3c114610d4e578063893d20e814610d965780638b42507f14610dab5780639439f12014610dde5761049f565b8063722b62ad14610cd0578063753d02a114610ce557806378109e5414610cfa5780637d1db4a514610d0f57806383ad799414610d245761049f565b8063335f6a431161038757806350af449e11610304578063658d4b7f116102c8578063658d4b7f14610bea5780636b67c4df14610c255780636d351d1a14610c3a5780636ddd171314610c4f57806370a0823114610c6457806371fbf7e314610c975761049f565b806350af449e14610b1f57806350db71fb14610b52578063571ac8b014610b8d5780636149a20a14610bc0578063617fe0ed14610bd55761049f565b806344a33fd21161034b57806344a33fd214610a855780634be8f8b114610aaf5780634d709adf14610ac45780634ef13e5c14610af55780635027122614610b0a5761049f565b8063335f6a431461091057806333f3d6281461099b5780633c8e556d146109d45780633f4218e014610a1f5780634355855a14610a525761049f565b806321eb5d46116104155780632d48e896116103d95780632d48e8961461081a5780632d5945671461084a5780632f34d2821461087f5780632f54bf6e146108b2578063313ce567146108e55761049f565b806321eb5d461461074857806323b872dd1461075d57806326e353b8146107a057806326fae0d3146107d25780632b112e49146108055761049f565b8063180b0d7e1161045c578063180b0d7e146105fe57806318160ddd146106135780631ca0a28d146106285780631df4ccfc14610703578063201e7991146107185761049f565b80630445b667146104a457806306fdde03146104cb57806309302dc614610555578063095ea7b3146105815780631161ae39146105ce5761049f565b3661049f57005b600080fd5b3480156104b057600080fd5b506104b96112d9565b60408051918252519081900360200190f35b3480156104d757600080fd5b506104e06112df565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561051a578181015183820152602001610502565b50505050905090810190601f1680156105475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561056157600080fd5b5061057f6004803603602081101561057857600080fd5b5035611306565b005b34801561058d57600080fd5b506105ba600480360360408110156105a457600080fd5b506001600160a01b038135169060200135611370565b604080519115158252519081900360200190f35b3480156105da57600080fd5b506105ba600480360360408110156105f157600080fd5b50803590602001356113d7565b34801561060a57600080fd5b506104b96113eb565b34801561061f57600080fd5b506104b96113f1565b34801561063457600080fd5b5061057f6004803603606081101561064b57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561067557600080fd5b82018360208201111561068757600080fd5b803590602001918460208302840111600160201b831117156106a857600080fd5b919390929091602081019035600160201b8111156106c557600080fd5b8201836020820111156106d757600080fd5b803590602001918460208302840111600160201b831117156106f857600080fd5b5090925090506113f7565b34801561070f57600080fd5b506104b9611711565b34801561072457600080fd5b5061057f6004803603604081101561073b57600080fd5b5080359060200135611717565b34801561075457600080fd5b506105ba61176a565b34801561076957600080fd5b506105ba6004803603606081101561078057600080fd5b506001600160a01b03813581169160208101359091169060400135611773565b3480156107ac57600080fd5b5061057f600480360360408110156107c357600080fd5b50803515159060200135611835565b3480156107de57600080fd5b5061057f600480360360208110156107f557600080fd5b50356001600160a01b03166118b9565b34801561081157600080fd5b506104b9611926565b34801561082657600080fd5b5061057f6004803603604081101561083d57600080fd5b508035906020013561196f565b34801561085657600080fd5b5061057f6004803603604081101561086d57600080fd5b5080351515906020013560ff16611a1f565b34801561088b57600080fd5b5061057f600480360360208110156108a257600080fd5b50356001600160a01b0316611a88565b3480156108be57600080fd5b506105ba600480360360208110156108d557600080fd5b50356001600160a01b0316611af6565b3480156108f157600080fd5b506108fa611b0a565b6040805160ff9092168252519081900360200190f35b34801561091c57600080fd5b5061057f6004803603606081101561093357600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561095d57600080fd5b82018360208201111561096f57600080fd5b803590602001918460208302840111600160201b8311171561099057600080fd5b919350915035611b0f565b3480156109a757600080fd5b506105ba600480360360408110156109be57600080fd5b506001600160a01b038135169060200135611d93565b3480156109e057600080fd5b5061057f600480360360808110156109f757600080fd5b506001600160a01b038135811691602081013582169160408201358116916060013516611e5a565b348015610a2b57600080fd5b506105ba60048036036020811015610a4257600080fd5b50356001600160a01b0316611ef2565b348015610a5e57600080fd5b506105ba60048036036020811015610a7557600080fd5b50356001600160a01b0316611f07565b348015610a9157600080fd5b5061057f60048036036020811015610aa857600080fd5b5035611f1c565b348015610abb57600080fd5b506104b9611f9c565b348015610ad057600080fd5b50610ad9611fa2565b604080516001600160a01b039092168252519081900360200190f35b348015610b0157600080fd5b50610ad9611fb1565b348015610b1657600080fd5b50610ad9611fc0565b348015610b2b57600080fd5b506105ba60048036036020811015610b4257600080fd5b50356001600160a01b0316611fcf565b348015610b5e57600080fd5b5061057f60048036036040811015610b7557600080fd5b506001600160a01b0381351690602001351515611fe4565b348015610b9957600080fd5b506105ba60048036036020811015610bb057600080fd5b50356001600160a01b0316612057565b348015610bcc57600080fd5b506104b9612065565b348015610be157600080fd5b506105ba61206b565b348015610bf657600080fd5b5061057f60048036036040811015610c0d57600080fd5b506001600160a01b0381351690602001351515612074565b348015610c3157600080fd5b506104b96120e7565b348015610c4657600080fd5b506104b96120ed565b348015610c5b57600080fd5b506105ba6120f3565b348015610c7057600080fd5b506104b960048036036020811015610c8757600080fd5b50356001600160a01b03166120fc565b348015610ca357600080fd5b5061057f60048036036040811015610cba57600080fd5b50803590602001356001600160a01b0316612117565b348015610cdc57600080fd5b506108fa6121a1565b348015610cf157600080fd5b5061057f6121af565b348015610d0657600080fd5b506104b9612213565b348015610d1b57600080fd5b506104b9612219565b348015610d3057600080fd5b506104b961221f565b348015610d4557600080fd5b506105ba612225565b348015610d5a57600080fd5b5061057f600480360360c0811015610d7157600080fd5b5080359060208101359060408101359060608101359060808101359060a00135612234565b348015610da257600080fd5b50610ad961230e565b348015610db757600080fd5b506105ba60048036036020811015610dce57600080fd5b50356001600160a01b031661231d565b348015610dea57600080fd5b506105ba60048036036020811015610e0157600080fd5b50356001600160a01b0316612332565b348015610e1d57600080fd5b506104e0612347565b348015610e3257600080fd5b506104b9612368565b348015610e4757600080fd5b5061057f60048036036020811015610e5e57600080fd5b503561236e565b348015610e7157600080fd5b5061057f60048036036020811015610e8857600080fd5b50356123b6565b348015610e9b57600080fd5b506104b9612412565b348015610eb057600080fd5b50610ad9612418565b348015610ec557600080fd5b506105ba60048036036040811015610edc57600080fd5b506001600160a01b038135169060200135612427565b348015610efe57600080fd5b506104b9612434565b348015610f1357600080fd5b5061057f60048036036020811015610f2a57600080fd5b50356001600160a01b031661243a565b348015610f4657600080fd5b5061057f60048036036020811015610f5d57600080fd5b50356124a4565b348015610f7057600080fd5b506104b9612508565b348015610f8557600080fd5b50610ad961250e565b348015610f9a57600080fd5b5061057f60048036036040811015610fb157600080fd5b810190602081018135600160201b811115610fcb57600080fd5b820183602082011115610fdd57600080fd5b803590602001918460208302840111600160201b83111715610ffe57600080fd5b919350915035151561251d565b34801561101757600080fd5b50610ad96125b5565b34801561102c57600080fd5b506104b96004803603602081101561104357600080fd5b50356125c4565b34801561105657600080fd5b506104b96004803603604081101561106d57600080fd5b506001600160a01b03813581169160200135166125fe565b34801561109157600080fd5b5061057f600480360360408110156110a857600080fd5b50803515159060200135612629565b3480156110c357600080fd5b50610ad961269b565b3480156110d857600080fd5b5061057f600480360360208110156110ef57600080fd5b50356126aa565b34801561110257600080fd5b50610ad96126f2565b34801561111757600080fd5b5061057f6004803603602081101561112e57600080fd5b50356001600160a01b0316612707565b34801561114a57600080fd5b5061057f6004803603602081101561116157600080fd5b50356001600160a01b031661276b565b34801561117d57600080fd5b506104b961281c565b34801561119257600080fd5b5061057f600480360360408110156111a957600080fd5b506001600160a01b0381351690602001351515612822565b3480156111cd57600080fd5b5061057f600480360360408110156111e457600080fd5b506001600160a01b0381351690602001351515612998565b34801561120857600080fd5b50610ad9612a0b565b34801561121d57600080fd5b506104b9612a1a565b34801561123257600080fd5b5061057f6004803603602081101561124957600080fd5b5035612a20565b34801561125c57600080fd5b506105ba6004803603602081101561127357600080fd5b50356001600160a01b0316612a6e565b34801561128f57600080fd5b506104b9612a8c565b3480156112a457600080fd5b5061057f600480360360208110156112bb57600080fd5b50351515612a92565b3480156112d057600080fd5b506105ba612ae8565b60275481565b60408051808201909152600d81526c42756666656420596f6f73686960981b602082015290565b61130f33611af6565b611349576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b61136a816113646103e8602654612af890919063ffffffff16565b90612b3a565b60295550565b3360008181526006602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b6000826113e3836125c4565b119392505050565b60115481565b60265490565b61140033611af6565b61143a576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b610321831061147a5760405162461bcd60e51b815260040180806020018281038252602d815260200180613c1f602d913960400191505060405180910390fd5b8281146114b85760405162461bcd60e51b8152600401808060200182810382526028815260200180613b6a6028913960400191505060405180910390fd5b6000805b848110156114e6578383828181106114d057fe5b60200291909101359290920191506001016114bc565b50806114f1876120fc565b1015611544576040805162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c65740000000000604482015290519081900360640190fd5b60005b84811015611674576115878787878481811061155f57fe5b905060200201356001600160a01b031686868581811061157b57fe5b90506020020135612b93565b50600a600087878481811061159857fe5b602090810292909201356001600160a01b03168352508101919091526040016000205460ff1661166c576021546001600160a01b03166314b6ca968787848181106115df57fe5b905060200201356001600160a01b03166116138989868181106115fe57fe5b905060200201356001600160a01b03166120fc565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561165957600080fd5b505af192505050801561166a575060015b505b600101611547565b506001600160a01b0386166000908152600a602052604090205460ff16611709576021546001600160a01b03166314b6ca96876116b0816120fc565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156116f657600080fd5b505af1925050508015611707575060015b505b505050505050565b60105481565b61172033612a6e565b61175f576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601c91909155601d55565b60135460ff1681565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914611820576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526006825283812033825290915291909120546117fb918490612c74565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b61182b848484612d0b565b90505b9392505050565b61183e33611af6565b611878576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6020805460ff60a01b1916600160a01b8415158102919091179182905560ff91041680156118a65750601654155b156118b5574360165560158190555b5050565b6118c233611af6565b6118fc576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b602580546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6004546001600160a01b03908116600090815260056020526040808220546003549093168252812054602654919261196a929091611964919061339d565b9061339d565b905090565b61197833612a6e565b6119b7576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b602154604080516316a4744b60e11b8152600481018590526024810184905290516001600160a01b0390921691632d48e8969160448082019260009290919082900301818387803b158015611a0b57600080fd5b505af1158015611709573d6000803e3d6000fd5b611a2833611af6565b611a62576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6023805460ff19169215159290921761ff00191661010060ff9290921691909102179055565b611a9133611af6565b611acb576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b602080546001600160a01b039092166001600160a01b03199092168217815560009190915260079052565b6000546001600160a01b0390811691161490565b600490565b611b1833611af6565b611b52576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6107d18210611b925760405162461bcd60e51b815260040180806020018281038252602e815260200180613b92602e913960400191505060405180910390fd5b80820280611b9f866120fc565b1015611bf2576040805162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c65740000000000604482015290519081900360640190fd5b60005b83811015611cfb57611c2386868684818110611c0d57fe5b905060200201356001600160a01b031685612b93565b50600a6000868684818110611c3457fe5b602090810292909201356001600160a01b03168352508101919091526040016000205460ff16611cf3576021546001600160a01b03166314b6ca96868684818110611c7b57fe5b905060200201356001600160a01b0316611c9a8888868181106115fe57fe5b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611ce057600080fd5b505af1925050508015611cf1575060015b505b600101611bf5565b506001600160a01b0385166000908152600a602052604090205460ff16611d8c576021546001600160a01b03166314b6ca9686611d37816120fc565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611d7d57600080fd5b505af192505050801561170957505b5050505050565b6000611d9e33611af6565b611dd8576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6040805163a9059cbb60e01b81523360048201526024810184905290516001600160a01b0385169163a9059cbb9160448083019260209291908290030181600087803b158015611e2757600080fd5b505af1158015611e3b573d6000803e3d6000fd5b505050506040513d6020811015611e5157600080fd5b50519392505050565b611e6333612a6e565b611ea2576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601880546001600160a01b039586166001600160a01b0319918216179091556019805494861694821694909417909355601a805492851692841692909217909155601b8054919093169116179055565b60076020526000908152604090205460ff1681565b600a6020526000908152604090205460ff1681565b611f2533612a6e565b611f64576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6040514790339060648484020480156108fc02916000818181858888f19350505050158015611f97573d6000803e3d6000fd5b505050565b600e5481565b6020546001600160a01b031681565b601b546001600160a01b031681565b601a546001600160a01b031681565b60096020526000908152604090205460ff1681565b611fed33612a6e565b61202c576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b60006113d182600019611370565b60285490565b60235460ff1681565b61207d33612a6e565b6120bc576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b600d5481565b60275490565b60255460ff1681565b6001600160a01b031660009081526005602052604090205490565b61212033612a6e565b61215f576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b60405147906001600160a01b0383169060648584020480156108fc02916000818181858888f1935050505015801561219b573d6000803e3d6000fd5b50505050565b602354610100900460ff1681565b601f60009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156121ff57600080fd5b505af115801561219b573d6000803e3d6000fd5b60295481565b60285481565b600c5481565b602554610100900460ff161590565b61223d33612a6e565b61227c576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600b869055600c859055600d849055600e839055600f8290556122ad826122a7858188818c8c6133df565b906133df565b60105560118190556003810460105410611709576040805162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e2033332500000000604482015290519081900360640190fd5b6000546001600160a01b031690565b60086020526000908152604090205460ff1681565b60146020526000908152604090205460ff1681565b60408051808201909152600781526642596f6f73686960c81b602082015290565b600b5481565b61237733611af6565b6123b1576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b601655565b6123bf33612a6e565b6123fe576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b620dbba0811061240d57600080fd5b602255565b60125481565b601f546001600160a01b031681565b600061182e338484612d0b565b60295490565b61244333611af6565b61247d576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6124ad33611af6565b6124e7576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b612502816113646103e8602654612af890919063ffffffff16565b60285550565b60165481565b6021546001600160a01b031681565b61252633611af6565b612560576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b60005b8281101561219b57816014600086868581811061257c57fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff1916911515919091179055600101612563565b6018546001600160a01b031681565b60006113d16125d1611926565b601f546125f8906125f190600290611364906001600160a01b03166120fc565b8590612b3a565b90612af8565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b61263233612a6e565b612671576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6025805460ff191683151517905560265461269490829061136490612710612af8565b6027555050565b6019546001600160a01b031681565b6126b333611af6565b6126ed576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b601755565b6025546201000090046001600160a01b031681565b61271033611af6565b61274a576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160205260409020805460ff19169055565b61277433611af6565b6127ae576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff1916909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b600f5481565b61282b33612a6e565b61286a576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03821630148015906128915750601f546001600160a01b03838116911614155b61289a57600080fd5b6001600160a01b0382166000908152600a60205260409020805460ff191682158015919091179091556129375760215460408051630a5b654b60e11b81526001600160a01b03858116600483015260006024830181905292519316926314b6ca969260448084019391929182900301818387803b15801561291a57600080fd5b505af115801561292e573d6000803e3d6000fd5b505050506118b5565b6021546001600160a01b03166314b6ca9683612952816120fc565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611a0b57600080fd5b6129a133612a6e565b6129e0576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b601e546001600160a01b031681565b60155481565b612a2933611af6565b612a63576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b633b9aca0002601255565b6001600160a01b031660009081526001602052604090205460ff1690565b60175481565b612a9b33611af6565b612ad5576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6013805460ff1916911515919091179055565b602054600160a01b900460ff1681565b600061182e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613439565b600082612b49575060006113d1565b82820282848281612b5657fe5b041461182e5760405162461bcd60e51b8152600401808060200182810382526021815260200180613bc06021913960400191505060405180910390fd5b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054612be4918490612c74565b6001600160a01b038086166000908152600560205260408082209390935590851681522054612c1390836133df565b6001600160a01b0380851660008181526005602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b60008184841115612d035760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612cc8578181015183820152602001612cb0565b50505050905090810190601f168015612cf55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b602554600090610100900460ff1615612d3057612d29848484612b93565b905061182e565b6001600160a01b03841660009081526001602052604090205460ff16158015612d7257506001600160a01b03831660009081526001602052604090205460ff16155b15612dcc57602054600160a01b900460ff16612dcc576040805162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015290519081900360640190fd5b6001600160a01b03841660009081526001602052604090205460ff16158015612dfe57506001600160a01b0383163014155b8015612e1857506003546001600160a01b03848116911614155b8015612e325750601f546001600160a01b03848116911614155b8015612e4c57506019546001600160a01b03848116911614155b8015612e665750601a546001600160a01b03848116911614155b8015612e8057506018546001600160a01b03848116911614155b8015612e9a5750601b546001600160a01b03848116911614155b15612ef1576000612eaa846120fc565b90506029548382011115612eef5760405162461bcd60e51b815260040180806020018281038252603e815260200180613be1603e913960400191505060405180910390fd5b505b601f546001600160a01b038581169116148015612f10575060235460ff165b8015612f3557506001600160a01b03831660009081526009602052604090205460ff16155b15612fc5576001600160a01b0383166000908152602460205260409020544211612f9c576040805162461bcd60e51b815260206004820152601360248201527262757920436f6f6c646f776e2065786973747360681b604482015290519081900360640190fd5b6023546001600160a01b038416600090815260246020526040902061010090910460ff16420190555b60135460ff16156130b0576001600160a01b03841660009081526014602052604090205460ff161561302f576040805162461bcd60e51b815260206004820152600e60248201526d109bdd1cc818d85b9d081cd95b1b60921b604482015290519081900360640190fd5b6012543a11801561304d5750601f546001600160a01b038581169116145b156130b0576001600160a01b038316600081815260146020908152604091829020805460ff1916600117905581519283523a9083015280517fc05fe82fadc2c648ffcab1a84911ab5cd07e695a06d36020d37eb94c898eb2859281900390910190a15b6130ba848361349e565b6130c261350c565b156130cf576130cf613560565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260059091529190912054613121918490612c74565b6001600160a01b03851660009081526005602052604081209190915561314685613a67565b1580613158575061315684613a67565b155b61317f57601f5461317a90869085906001600160a01b03888116911614613a86565b613181565b825b6001600160a01b0385166000908152600560205260409020549091506131a790826133df565b6001600160a01b038086166000908152600560209081526040808320949094559188168152600a909152205460ff1661324e576021546001600160a01b03166314b6ca96866131f5816120fc565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561323b57600080fd5b505af192505050801561324c575060015b505b6001600160a01b0384166000908152600a602052604090205460ff166132e2576021546001600160a01b03166314b6ca9685613289816120fc565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156132cf57600080fd5b505af19250505080156132e0575060015b505b602154602254604080516001624d3b8760e01b031981526004810192909252516001600160a01b039092169163ffb2c4799160248082019260009290919082900301818387803b15801561333557600080fd5b505af1925050508015613346575060015b50836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3506001949350505050565b600061182e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612c74565b60008282018381101561182e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600081836134885760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612cc8578181015183820152602001612cb0565b50600083858161349457fe5b0495945050505050565b602854811115806134c757506001600160a01b03821660009081526008602052604090205460ff165b6118b5576040805162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015290519081900360640190fd5b601f546000906001600160a01b031633148015906135325750602554610100900460ff16155b8015613540575060255460ff165b801561196a57505060275430600090815260056020526040902054101590565b6025805461ff001916610100179055601c54601d54600091613581916113d7565b61358d57600b54613590565b60005b90506000602754905060006135b960026125f88561136460105487612af890919063ffffffff16565b905060006135c7838361339d565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106135fb57fe5b6001600160a01b03928316602091820292909201015260025482519116908290600190811061362657fe5b6001600160a01b03928316602091820292909201810191909152601e5460405163791ac94760e01b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b838110156136c05781810151838201526020016136a8565b505050509050019650505050505050600060405180830381600087803b1580156136e957600080fd5b505af11580156136fd573d6000803e3d6000fd5b505050506000613716824761339d90919063ffffffff16565b90506000613731613728896002612af8565b6010549061339d565b9050600061374660026125f88481878e612b3a565b90506000613763836125f8600c5487612b3a90919063ffffffff16565b90506000613780846125f8600d5488612b3a90919063ffffffff16565b9050600061379d856125f8600e5489612b3a90919063ffffffff16565b905060006137ba866125f8600f548a612b3a90919063ffffffff16565b9050602160009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b15801561380c57600080fd5b505af19350505050801561381e575060015b506019546040516000916001600160a01b03169061753090869084818181858888f193505050503d8060008114613871576040519150601f19603f3d011682016040523d82523d6000602084013e613876565b606091505b5050601a546040519192506001600160a01b0316906175309085906000818181858888f193505050503d80600081146138cb576040519150601f19603f3d011682016040523d82523d6000602084013e6138d0565b606091505b5050601b546040519192506001600160a01b0316906175309084906000818181858888f193505050503d8060008114613925576040519150601f19603f3d011682016040523d82523d6000602084013e61392a565b606091505b5060009250508c159050613a4c57601e60009054906101000a90046001600160a01b03166001600160a01b031663f305d71987308f600080601860009054906101000a90046001600160a01b0316426040518863ffffffff1660e01b815260040180876001600160a01b03168152602001868152602001858152602001848152602001836001600160a01b0316815260200182815260200196505050505050506060604051808303818588803b1580156139e357600080fd5b505af11580156139f7573d6000803e3d6000fd5b50505050506040513d6060811015613a0e57600080fd5b505060408051878152602081018e905281517f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506929181900390910190a15b50506025805461ff0019169055505050505050505050505050565b6001600160a01b031660009081526007602052604090205460ff161590565b600060648215613a9557506017545b6000613ab9826113646010546113646011546064028a612af890919063ffffffff16565b905083158015613ace57504360155460165401115b15613ae657613ae36063611364876064612af8565b90505b30600090815260056020526040902054613b0090826133df565b30600081815260056020908152604091829020939093558051848152905191926001600160a01b038a16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3613b5f858261339d565b969550505050505056fe4d69736d61746368206265747765656e204164647265737320616e6420746f6b656e20636f756e74474153204572726f723a206d61782061697264726f70206c696d6974206973203230303020616464726573736573536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77546f74616c20486f6c64696e672069732063757272656e746c79206c696d697465642c20796f752063616e206e6f74206275792074686174206d7563682e474153204572726f723a206d61782061697264726f70206c696d69742069732035303020616464726573736573a2646970667358221220c9ba3ba0a0fd4b9fdc728ff5ac6f056fe3a85ba067f1cbbd289244a784eeb61664736f6c634300070600336080604052600180546001600160a01b031990811673e9e7cea3dedca5984780bafc599bd69add087d56179091556002805490911673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c1790556ec097ce7bc90715b34b9f1000000000600c55610a8c600d556305f5e100600e5534801561007957600080fd5b50604051610ebe380380610ebe8339818101604052602081101561009c57600080fd5b50516001600160a01b0381166100c6577310ed43c718714eb63d5aa57b78b54704e256024e6100c8565b805b600380546001600160a01b03929092166001600160a01b0319928316179055600080549091163317905550610dbc806101026000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed14610254578063f0fc6bca14610269578063ffb2c4791461027e578063ffd49c84146102a8576100dd565b8063ce7c2ac2146101e6578063d0e30db014610237578063e2d2e2191461023f576100dd565b80632d48e896116100bb5780632d48e896146101775780633a98ef39146101a75780634fab0ae8146101bc578063997664d7146101d1576100dd565b806311ce023d146100e257806314b6ca961461010957806328fd319814610144575b600080fd5b3480156100ee57600080fd5b506100f76102bd565b60408051918252519081900360200190f35b34801561011557600080fd5b506101426004803603604081101561012c57600080fd5b506001600160a01b0381351690602001356102c3565b005b34801561015057600080fd5b506100f76004803603602081101561016757600080fd5b50356001600160a01b03166103e8565b34801561018357600080fd5b506101426004803603604081101561019a57600080fd5b5080359060200135610474565b3480156101b357600080fd5b506100f7610496565b3480156101c857600080fd5b506100f761049c565b3480156101dd57600080fd5b506100f76104a2565b3480156101f257600080fd5b506102196004803603602081101561020957600080fd5b50356001600160a01b03166104a8565b60408051938452602084019290925282820152519081900360600190f35b6101426104c9565b34801561024b57600080fd5b506100f761075b565b34801561026057600080fd5b506100f7610761565b34801561027557600080fd5b50610142610767565b34801561028a57600080fd5b50610142600480360360208110156102a157600080fd5b5035610772565b3480156102b457600080fd5b506100f7610854565b600c5481565b6000546001600160a01b031633146102da57600080fd5b6001600160a01b03821660009081526007602052604090205415610301576103018261085a565b60008111801561032757506001600160a01b038216600090815260076020526040902054155b1561033a5761033582610982565b61036d565b8015801561035f57506001600160a01b03821660009081526007602052604090205415155b1561036d5761036d826109e3565b6001600160a01b03821660009081526007602052604090205460085461039e91839161039891610ad0565b90610b1b565b6008556001600160a01b03821660009081526007602052604090208190556103c581610b75565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6001600160a01b03811660009081526007602052604081205461040d5750600061046f565b6001600160a01b03821660009081526007602052604081205461042f90610b75565b6001600160a01b0384166000908152600760205260409020600101549091508082116104605760009250505061046f565b61046a8282610ad0565b925050505b919050565b6000546001600160a01b0316331461048b57600080fd5b600d91909155600e55565b60085481565b600e5481565b60095481565b60076020526000908152604090208054600182015460029092015490919083565b6000546001600160a01b031633146104e057600080fd5b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561052b57600080fd5b505afa15801561053f573d6000803e3d6000fd5b505050506040513d602081101561055557600080fd5b50516040805160028082526060820183529293506000929091602083019080368337505060025482519293506001600160a01b03169183915060009061059757fe5b6001600160a01b03928316602091820292909201015260018054835192169183919081106105c157fe5b6001600160a01b0392831660209182029290920181019190915260035460405163b6f9de9560e01b815260006004820181815230604484018190524260648501819052608060248601908152895160848701528951969098169763b6f9de9597349795968b969495939460a49091019187810191028083838b5b8381101561065357818101518382015260200161063b565b50505050905001955050505050506000604051808303818588803b15801561067a57600080fd5b505af115801561068e573d6000803e3d6000fd5b5050600154604080516370a0823160e01b815230600482015290516000955061071994508793506001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156106e757600080fd5b505afa1580156106fb573d6000803e3d6000fd5b505050506040513d602081101561071157600080fd5b505190610ad0565b6009549091506107299082610b1b565b600955600854600c546107539161074a916107449085610b92565b90610beb565b600b5490610b1b565b600b55505050565b600b5481565b600a5481565b6107703361085a565b565b6000546001600160a01b0316331461078957600080fd5b600454806107975750610851565b6000805a905060005b84831080156107ae57508381105b1561084c5783600f54106107c2576000600f555b6107ee6004600f54815481106107d457fe5b6000918252602090912001546001600160a01b0316610c2d565b1561081f5761081f6004600f548154811061080557fe5b6000918252602090912001546001600160a01b031661085a565b61083461082d5a8490610ad0565b8490610b1b565b92505a600f80546001908101909155909250016107a0565b505050505b50565b600d5481565b6001600160a01b03811660009081526007602052604090205461087c57610851565b6000610887826103e8565b9050801561097e57600a5461089c9082610b1b565b600a556001546040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156108f557600080fd5b505af1158015610909573d6000803e3d6000fd5b505050506040513d602081101561091f57600080fd5b50506001600160a01b038216600090815260066020908152604080832042905560079091529020600201546109549082610b1b565b6001600160a01b03831660009081526007602052604090206002810191909155546103c590610b75565b5050565b600480546001600160a01b039092166000818152600560205260408120849055600184018355919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90910180546001600160a01b0319169091179055565b6004805460001981019081106109f557fe5b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610a2d57fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600591829052604081205460048054919392916000198101908110610a7b57fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610aab57fe5b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610b1283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c69565b90505b92915050565b600082820183811015610b12576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610b15600c54610744600b5485610b9290919063ffffffff16565b600082610ba157506000610b15565b82820282848281610bae57fe5b0414610b125760405162461bcd60e51b8152600401808060200182810382526021815260200180610d666021913960400191505060405180910390fd5b6000610b1283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610d00565b600d546001600160a01b0382166000908152600660205260408120549091429101108015610b155750600e54610c62836103e8565b1192915050565b60008184841115610cf85760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610cbd578181015183820152602001610ca5565b50505050905090810190601f168015610cea5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610d4f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cbd578181015183820152602001610ca5565b506000838581610d5b57fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220832f8f45f134ed4bfd1add1d0b068e105ad9573206d661c1f0ddec90592a775d64736f6c63430007060033536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77

Deployed ByteCode Sourcemap

12476:19190:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14881:56;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;16572:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29555:180;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29555:180:0;;:::i;:::-;;16994:216;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;16994:216:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;29173:150;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29173:150:0;;;;;;;:::i;13557:36::-;;;;;;;;;;;;;:::i;16302:88::-;;;;;;;;;;;;;:::i;29950:903::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;29950:903:0;;;;;;;;;;;;;;;-1:-1:-1;;;29950:903:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;29950:903:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;29950:903:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;29950:903:0;;;;;;;;;;-1:-1:-1;29950:903:0;;-1:-1:-1;29950:903:0;-1:-1:-1;29950:903:0;:::i;13453:97::-;;;;;;;;;;;;;:::i;27527:183::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27527:183:0;;;;;;;:::i;13669:39::-;;;;;;;;;;;;;:::i;17518:364::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17518:364:0;;;;;;;;;;;;;;;;;:::i;22335:250::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22335:250:0;;;;;;;;;:::i;27969:90::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27969:90:0;-1:-1:-1;;;;;27969:90:0;;:::i;28842:144::-;;;;;;;;;;;;;:::i;28295:183::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28295:183:0;;;;;;;:::i;23213:164::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23213:164:0;;;;;;;;;;;:::i;27810:139::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27810:139:0;-1:-1:-1;;;;;27810:139:0;;:::i;4462:103::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4462:103:0;-1:-1:-1;;;;;4462:103:0;;:::i;16396:80::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;30857:739;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;30857:739:0;;;;;;;;;;;;;;;-1:-1:-1;;;30857:739:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;30857:739:0;;;;;;;;;;;;-1:-1:-1;30857:739:0;-1:-1:-1;30857:739:0;;:::i;28658:174::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;28658:174:0;;;;;;;;:::i;26920:374::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26920:374:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;13027:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13027:44:0;-1:-1:-1;;;;;13027:44:0;;:::i;13189:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13189:49:0;-1:-1:-1;;;;;13189:49:0;;:::i;21727:215::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21727:215:0;;:::i;13370:38::-;;;;;;;;;;;;;:::i;14190:31::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;14190:31:0;;;;;;;;;;;;;;14010:29;;;;;;;;;;;;;:::i;13973:33::-;;;;;;;;;;;;;:::i;13133:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13133:49:0;-1:-1:-1;;;;;13133:49:0;;:::i;26189:130::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26189:130:0;;;;;;;;;;:::i;17230:116::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17230:116:0;-1:-1:-1;;;;;17230:116:0;;:::i;29449:98::-;;;;;;;;;;;;;:::i;14356:38::-;;;;;;;;;;;;;:::i;25921:120::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25921:120:0;;;;;;;;;;:::i;13329:34::-;;;;;;;;;;;;;:::i;28178:101::-;;;;;;;;;;;;;:::i;14502:31::-;;;;;;;;;;;;;:::i;16742:105::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16742:105:0;-1:-1:-1;;;;;16742:105:0;;:::i;21950:215::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21950:215:0;;;;;;-1:-1:-1;;;;;21950:215:0;;:::i;14401:38::-;;;;;;;;;;;;;:::i;27724:74::-;;;;;;;;;;;;;:::i;15047:63::-;;;;;;;;;;;;;:::i;14981:59::-;;;;;;;;;;;;;:::i;13288:34::-;;;;;;;;;;;;;:::i;28073:85::-;;;;;;;;;;;;;:::i;26327:579::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26327:579:0;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16658:78::-;;;;;;;;;;;;;:::i;13078:48::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13078:48:0;-1:-1:-1;;;;;13078:48:0;;:::i;13715:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13715:45:0;-1:-1:-1;;;;;13715:45:0;;:::i;16482:84::-;;;;;;;;;;;;;:::i;13247:34::-;;;;;;;;;;;;;:::i;22593:105::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22593:105:0;;:::i;28498:136::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28498:136:0;;:::i;13622:40::-;;;;;;;;;;;;;:::i;14164:19::-;;;;;;;;;;;;;:::i;17354:156::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17354:156:0;;;;;;;;:::i;29331:104::-;;;;;;;;;;;;;:::i;4255:94::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4255:94:0;-1:-1:-1;;;;;4255:94:0;;:::i;29743:175::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29743:175:0;;:::i;13805:29::-;;;;;;;;;;;;;:::i;14271:38::-;;;;;;;;;;;;;:::i;22994:211::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;22994:211:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;22994:211:0;;;;;;;;;;;;-1:-1:-1;22994:211:0;-1:-1:-1;22994:211:0;;;;:::i;13888:36::-;;;;;;;;;;;;;:::i;28996:167::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28996:167:0;;:::i;16853:133::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;16853:133:0;;;;;;;;;;:::i;27304:213::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27304:213:0;;;;;;;;;:::i;13931:35::-;;;;;;;;;;;;;:::i;22177:121::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22177:121:0;;:::i;14623:21::-;;;;;;;;;;;;;:::i;4357:97::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4357:97:0;-1:-1:-1;;;;;4357:97:0;;:::i;4688:173::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4688:173:0;-1:-1:-1;;;;;4688:173:0;;:::i;13412:34::-;;;;;;;;;;;;;:::i;25562:347::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25562:347:0;;;;;;;;;;:::i;26053:128::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26053:128:0;;;;;;;;;;:::i;14133:24::-;;;;;;;;;;;;;:::i;13769:29::-;;;;;;;;;;;;;:::i;22852:134::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22852:134:0;;:::i;4573:107::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4573:107:0;-1:-1:-1;;;;;4573:107:0;;:::i;13843:36::-;;;;;;;;;;;;;:::i;22728:116::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22728:116:0;;;;:::i;14231:31::-;;;;;;;;;;;;;:::i;14881:56::-;;;;:::o;16572:80::-;16644:5;;;;;;;;;;;;-1:-1:-1;;;16644:5:0;;;;16572:80;:::o;29555:180::-;4106:19;4114:10;4106:7;:19::i;:::-;4098:38;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;;;;29676:51:::1;29703:23;29676:22;29693:4;29676:12;;:16;;:22;;;;:::i;:::-;:26:::0;::::1;:51::i;:::-;29658:15;:69:::0;-1:-1:-1;29555:180:0:o;16994:216::-;17098:10;17069:4;17086:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;17086:32:0;;;;;;;;;;;:41;;;17143:37;;;;;;;17069:4;;17086:32;;17098:10;;17143:37;;;;;;;;-1:-1:-1;17198:4:0;16994:216;;;;;:::o;29173:150::-;29253:4;29309:6;29277:29;29297:8;29277:19;:29::i;:::-;:38;;29173:150;-1:-1:-1;;;29173:150:0:o;13557:36::-;;;;:::o;16302:88::-;16375:12;;16302:88;:::o;29950:903::-;4106:19;4114:10;4106:7;:19::i;:::-;4098:38;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;;;;30099:3:::1;30080:22:::0;::::1;30072:79;;;;-1:-1:-1::0;;;30072:79:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30189:33:::0;;::::1;30181:85;;;;-1:-1:-1::0;;;30181:85:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30275:12;30304:6:::0;30300:82:::1;30314:20:::0;;::::1;30300:82;;;30365:6;;30372:1;30365:9;;;;;;;;;::::0;;;::::1;;30358:16:::0;;;::::1;::::0;-1:-1:-1;30336:3:0::1;;30300:82;;;;30417:4;30398:15;30408:4;30398:9;:15::i;:::-;:23;;30390:63;;;::::0;;-1:-1:-1;;;30390:63:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;30466:6;30462:250;30476:20:::0;;::::1;30462:250;;;30513:43;30528:4;30533:9;;30543:1;30533:12;;;;;;;;;;;;;-1:-1:-1::0;;;;;30533:12:0::1;30546:6;;30553:1;30546:9;;;;;;;;;;;;;30513:14;:43::i;:::-;;30571:16;:30;30588:9;;30598:1;30588:12;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;30588:12:0::1;30571:30:::0;;-1:-1:-1;30571:30:0;::::1;::::0;;;;;;-1:-1:-1;30571:30:0;;::::1;;30567:138;;30622:11;::::0;-1:-1:-1;;;;;30622:11:0::1;:20;30643:9:::0;;30653:1;30643:12;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;30643:12:0::1;30657:23;30667:9;;30677:1;30667:12;;;;;;;;;;;;;-1:-1:-1::0;;;;;30667:12:0::1;30657:9;:23::i;:::-;30622:59;;;;;;;;;;;;;-1:-1:-1::0;;;;;30622:59:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;30618:75:::0;::::1;30498:3;;30462:250;;;-1:-1:-1::0;;;;;;30749:22:0;::::1;;::::0;;;:16:::1;:22;::::0;;;;;::::1;;30745:105;;30788:11;::::0;-1:-1:-1;;;;;30788:11:0::1;:20;30809:4:::0;30815:15:::1;30809:4:::0;30815:9:::1;:15::i;:::-;30788:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;30788:43:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;30784:59:::0;::::1;4138:1;29950:903:::0;;;;;:::o;13453:97::-;;;;:::o;27527:183::-;4196:24;4209:10;4196:12;:24::i;:::-;4188:48;;;;;-1:-1:-1;;;4188:48:0;;;;;;;;;;;;-1:-1:-1;;;4188:48:0;;;;;;;;;;;;;;;27625:15:::1;:25:::0;;;;27661:26:::1;:41:::0;27527:183::o;13669:39::-;;;;;;:::o;17518:364::-;-1:-1:-1;;;;;17638:19:0;;17618:4;17638:19;;;:11;:19;;;;;;;;17658:10;17638:31;;;;;;;;-1:-1:-1;;17638:46:0;17635:180;;17734:69;;;;;;;;;;;-1:-1:-1;;;17734:69:0;;;;;;;;-1:-1:-1;;;;;17734:19:0;;-1:-1:-1;17734:19:0;;;:11;:19;;;;;17754:10;17734:31;;;;;;;;;;:69;;17770:6;;17734:35;:69::i;:::-;-1:-1:-1;;;;;17700:19:0;;;;;;:11;:19;;;;;;;;17720:10;17700:31;;;;;;;:103;17635:180;17834:40;17848:6;17856:9;17867:6;17834:13;:40::i;:::-;17827:47;;17518:364;;;;;;:::o;22335:250::-;4106:19;4114:10;4106:7;:19::i;:::-;4098:38;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;;;;22421:11:::1;:21:::0;;-1:-1:-1;;;;22421:21:0::1;-1:-1:-1::0;;;22421:21:0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;::::1;22456:11:::0;::::1;;:30:::0;::::1;;;-1:-1:-1::0;22471:10:0::1;::::0;:15;22456:30:::1;22453:125;;;22515:12;22502:10;:25:::0;22542:10:::1;:24:::0;;;22453:125:::1;22335:250:::0;;:::o;27969:90::-;4106:19;4114:10;4106:7;:19::i;:::-;4098:38;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;;;;28035:6:::1;:16:::0;;-1:-1:-1;;;;;28035:16:0;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;28035:16:0;;::::1;::::0;;;::::1;::::0;;27969:90::o;28842:144::-;28971:4;;-1:-1:-1;;;;;28971:4:0;;;28895:7;28961:15;;;:9;:15;;;;;;;28950:4;;;;;28940:15;;;;;28923:12;;28895:7;;28923:54;;28961:15;;28923:33;;:12;:16;:33::i;:::-;:37;;:54::i;:::-;28915:63;;28842:144;:::o;28295:183::-;4196:24;4209:10;4196:12;:24::i;:::-;4188:48;;;;;-1:-1:-1;;;4188:48:0;;;;;;;;;;;;-1:-1:-1;;;4188:48:0;;;;;;;;;;;;;;;28405:11:::1;::::0;:65:::1;::::0;;-1:-1:-1;;;28405:65:0;;::::1;::::0;::::1;::::0;;;;;;;;;;;-1:-1:-1;;;;;28405:11:0;;::::1;::::0;:35:::1;::::0;:65;;;;;:11:::1;::::0;:65;;;;;;;;:11;;:65;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;23213:164:::0;4106:19;4114:10;4106:7;:19::i;:::-;4098:38;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;;;;23297:18:::1;:28:::0;;-1:-1:-1;;23297:28:0::1;::::0;::::1;;::::0;;;::::1;-1:-1:-1::0;;23336:33:0::1;23297:28;;23336:33:::0;;;::::1;::::0;;;::::1;;::::0;;23213:164::o;27810:139::-;4106:19;4114:10;4106:7;:19::i;:::-;4098:38;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;;;;27873:12:::1;:36:::0;;-1:-1:-1;;;;;27873:36:0;;::::1;-1:-1:-1::0;;;;;;27873:36:0;;::::1;::::0;::::1;::::0;;:12:::1;27920:21:::0;;;;:11:::1;:21:::0;;27810:139::o;4462:103::-;4517:4;4552:5;-1:-1:-1;;;;;4552:5:0;;;4541:16;;;;4462:103::o;16396:80::-;12900:1;16396:80;:::o;30857:739::-;4106:19;4114:10;4106:7;:19::i;:::-;4098:38;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;;;;31001:4:::1;30982:23:::0;::::1;30974:81;;;;-1:-1:-1::0;;;30974:81:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31102:25:::0;;::::1;::::0;31144:15:::1;31154:4:::0;31144:9:::1;:15::i;:::-;:23;;31136:63;;;::::0;;-1:-1:-1;;;31136:63:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;31212:6;31208:247;31222:20:::0;;::::1;31208:247;;;31259:40;31274:4;31279:9;;31289:1;31279:12;;;;;;;;;;;;;-1:-1:-1::0;;;;;31279:12:0::1;31292:6;31259:14;:40::i;:::-;;31314:16;:30;31331:9;;31341:1;31331:12;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;31331:12:0::1;31314:30:::0;;-1:-1:-1;31314:30:0;::::1;::::0;;;;;;-1:-1:-1;31314:30:0;;::::1;;31310:138;;31365:11;::::0;-1:-1:-1;;;;;31365:11:0::1;:20;31386:9:::0;;31396:1;31386:12;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;31386:12:0::1;31400:23;31410:9;;31420:1;31410:12;;;;;;31400:23;31365:59;;;;;;;;;;;;;-1:-1:-1::0;;;;;31365:59:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;31361:75:::0;::::1;31244:3;;31208:247;;;-1:-1:-1::0;;;;;;31492:22:0;::::1;;::::0;;;:16:::1;:22;::::0;;;;;::::1;;31488:105;;31531:11;::::0;-1:-1:-1;;;;;31531:11:0::1;:20;31552:4:::0;31558:15:::1;31552:4:::0;31558:9:::1;:15::i;:::-;31531:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;31531:43:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;31527:59;4138:1;30857:739:::0;;;;:::o;28658:174::-;28743:12;4106:19;4114:10;4106:7;:19::i;:::-;4098:38;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;;;;28775:49:::1;::::0;;-1:-1:-1;;;28775:49:0;;28805:10:::1;28775:49;::::0;::::1;::::0;;;;;;;;;-1:-1:-1;;;;;28775:29:0;::::1;::::0;::::1;::::0;:49;;;;;::::1;::::0;;;;;;;;-1:-1:-1;28775:29:0;:49;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;28775:49:0;;28658:174;-1:-1:-1;;;28658:174:0:o;26920:374::-;4196:24;4209:10;4196:12;:24::i;:::-;4188:48;;;;;-1:-1:-1;;;4188:48:0;;;;;;;;;;;;-1:-1:-1;;;4188:48:0;;;;;;;;;;;;;;;27093:21:::1;:46:::0;;-1:-1:-1;;;;;27093:46:0;;::::1;-1:-1:-1::0;;;;;;27093:46:0;;::::1;;::::0;;;27150:20:::1;:44:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;27205:18:::1;:40:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;27250:14:::1;:32:::0;;;;;::::1;::::0;::::1;;::::0;;26920:374::o;13027:44::-;;;;;;;;;;;;;;;:::o;13189:49::-;;;;;;;;;;;;;;;:::o;21727:215::-;4196:24;4209:10;4196:12;:24::i;:::-;4188:48;;;;;-1:-1:-1;;;4188:48:0;;;;;;;;;;;;-1:-1:-1;;;4188:48:0;;;;;;;;;;;;;;;21870:64:::1;::::0;21838:21:::1;::::0;21878:10:::1;::::0;21930:3:::1;21899:28:::0;;::::1;:34;21870:64:::0;::::1;;;::::0;::::1;::::0;;;21899:34;21878:10;21870:64;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;4238:1;21727:215:::0;:::o;13370:38::-;;;;:::o;14190:31::-;;;-1:-1:-1;;;;;14190:31:0;;:::o;14010:29::-;;;-1:-1:-1;;;;;14010:29:0;;:::o;13973:33::-;;;-1:-1:-1;;;;;13973:33:0;;:::o;13133:49::-;;;;;;;;;;;;;;;:::o;26189:130::-;4196:24;4209:10;4196:12;:24::i;:::-;4188:48;;;;;-1:-1:-1;;;4188:48:0;;;;;;;;;;;;-1:-1:-1;;;4188:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;26278:24:0;;;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;26278:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26189:130::o;17230:116::-;17285:4;17309:29;17317:7;-1:-1:-1;;17309:7:0;:29::i;29449:98::-;29527:12;;29449:98;:::o;14356:38::-;;;;;;:::o;25921:120::-;4196:24;4209:10;4196:12;:24::i;:::-;4188:48;;;;;-1:-1:-1;;;4188:48:0;;;;;;;;;;;;-1:-1:-1;;;4188:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;26005:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;26005:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25921:120::o;13329:34::-;;;;:::o;28178:101::-;28258:13;;28178:101;:::o;14502:31::-;;;;;;:::o;16742:105::-;-1:-1:-1;;;;;16826:18:0;16808:7;16826:18;;;:9;:18;;;;;;;16742:105::o;21950:215::-;4196:24;4209:10;4196:12;:24::i;:::-;4188:48;;;;;-1:-1:-1;;;4188:48:0;;;;;;;;;;;;-1:-1:-1;;;4188:48:0;;;;;;;;;;;;;;;22100:57:::1;::::0;22068:21:::1;::::0;-1:-1:-1;;;;;22100:21:0;::::1;::::0;22153:3:::1;22122:28:::0;;::::1;:34;22100:57:::0;::::1;;;::::0;::::1;::::0;;;22122:34;22100:21;:57;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;4238:1;21950:215:::0;;:::o;14401:38::-;;;;;;;;;:::o;27724:74::-;27778:4;;;;;;;;;-1:-1:-1;;;;;27778:4:0;-1:-1:-1;;;;;27766:22:0;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15047:63;;;;:::o;14981:59::-;;;;:::o;13288:34::-;;;;:::o;28073:85::-;28144:6;;;;;;;28143:7;;28073:85::o;26327:579::-;4196:24;4209:10;4196:12;:24::i;:::-;4188:48;;;;;-1:-1:-1;;;4188:48:0;;;;;;;;;;;;-1:-1:-1;;;4188:48:0;;;;;;;;;;;;;;;26507:12:::1;:28:::0;;;26546:13:::1;:30:::0;;;26587:12:::1;:28:::0;;;26626:10:::1;:24:::0;;;26656:6:::1;:16:::0;;;26694:82:::1;26665:7:::0;26694:69:::1;26639:11:::0;26694:69;26602:13;26694:69;26522:13;26562:14;26694:17:::1;:33::i;:::-;:37:::0;::::1;:52::i;:82::-;26683:8;:93:::0;26787:14:::1;:32:::0;;;26864:1:::1;26804:15:::0;26849:16:::1;26838:8;;:27;26830:68;;;::::0;;-1:-1:-1;;;26830:68:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;16658:78:::0;16710:7;16728:5;-1:-1:-1;;;;;16728:5:0;16658:78;:::o;13078:48::-;;;;;;;;;;;;;;;:::o;13715:45::-;;;;;;;;;;;;;;;:::o;16482:84::-;16556:7;;;;;;;;;;;;-1:-1:-1;;;16556:7:0;;;;16482:84;:::o;13247:34::-;;;;:::o;22593:105::-;4106:19;4114:10;4106:7;:19::i;:::-;4098:38;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;;;;22665:10:::1;:25:::0;22593:105::o;28498:136::-;4196:24;4209:10;4196:12;:24::i;:::-;4188:48;;;;;-1:-1:-1;;;4188:48:0;;;;;;;;;;;;-1:-1:-1;;;4188:48:0;;;;;;;;;;;;;;;28588:6:::1;28582:3;:12;28574:21;;;::::0;::::1;;28606:14;:20:::0;28498:136::o;13622:40::-;;;;:::o;14164:19::-;;;-1:-1:-1;;;;;14164:19:0;;:::o;17354:156::-;17434:4;17458:44;17472:10;17484:9;17495:6;17458:13;:44::i;29331:104::-;29412:15;;29331:104;:::o;4255:94::-;4106:19;4114:10;4106:7;:19::i;:::-;4098:38;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;4315:19:0::1;;::::0;;;4337:4:::1;4315:19;::::0;;;;;;;:26;;-1:-1:-1;;4315:26:0::1;::::0;;::::1;::::0;;4255:94::o;29743:175::-;4106:19;4114:10;4106:7;:19::i;:::-;4098:38;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;;;;29858:52:::1;29885:24;29858:22;29875:4;29858:12;;:16;;:22;;;;:::i;:52::-;29843:12;:67:::0;-1:-1:-1;29743:175:0:o;13805:29::-;;;;:::o;14271:38::-;;;-1:-1:-1;;;;;14271:38:0;;:::o;22994:211::-;4106:19;4114:10;4106:7;:19::i;:::-;4098:38;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;;;;23098:9:::1;23093:105;23109:20:::0;;::::1;23093:105;;;23180:6;23151:12;:26;23164:9;;23174:1;23164:12;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;23164:12:0::1;23151:26:::0;;-1:-1:-1;23151:26:0;::::1;::::0;;;;;;-1:-1:-1;23151:26:0;:35;;-1:-1:-1;;23151:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;23131:3:0::1;23093:105;;13888:36:::0;;;-1:-1:-1;;;;;13888:36:0;;:::o;28996:167::-;29064:7;29091:64;29132:22;:20;:22::i;:::-;29114:4;;29091:36;;29104:22;;29124:1;;29104:15;;-1:-1:-1;;;;;29114:4:0;29104:9;:15::i;:22::-;29091:8;;:12;:36::i;:::-;:40;;:64::i;16853:133::-;-1:-1:-1;;;;;16955:19:0;;;16937:7;16955:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;16853:133::o;27304:213::-;4196:24;4209:10;4196:12;:24::i;:::-;4188:48;;;;;-1:-1:-1;;;4188:48:0;;;;;;;;;;;;-1:-1:-1;;;4188:48:0;;;;;;;;;;;;;;;27410:11:::1;:22:::0;;-1:-1:-1;;27410:22:0::1;::::0;::::1;;;::::0;;27459:12:::1;::::0;:50:::1;::::0;27487:21;;27459:23:::1;::::0;27476:5:::1;27459:16;:23::i;:50::-;27443:13;:66:::0;-1:-1:-1;;27304:213:0:o;13931:35::-;;;-1:-1:-1;;;;;13931:35:0;;:::o;22177:121::-;4106:19;4114:10;4106:7;:19::i;:::-;4098:38;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;;;;22255:14:::1;:27:::0;22177:121::o;14623:21::-;;;;;;-1:-1:-1;;;;;14623:21:0;;:::o;4357:97::-;4106:19;4114:10;4106:7;:19::i;:::-;4098:38;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;4419:19:0::1;4441:5;4419:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;4419:27:0::1;::::0;;4357:97::o;4688:173::-;4106:19;4114:10;4106:7;:19::i;:::-;4098:38;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;;;;4764:5:::1;:11:::0;;-1:-1:-1;;;;;;4764:11:0::1;-1:-1:-1::0;;;;;4764:11:0;::::1;::::0;;::::1;::::0;;4786:19;;;-1:-1:-1;4786:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;4786:26:0::1;::::0;;::::1;::::0;;;4828:25;;;;;;;::::1;::::0;;;;;;;;;::::1;4688:173:::0;:::o;13412:34::-;;;;:::o;25562:347::-;4196:24;4209:10;4196:12;:24::i;:::-;4188:48;;;;;-1:-1:-1;;;4188:48:0;;;;;;;;;;;;-1:-1:-1;;;4188:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;25659:23:0;::::1;25677:4;25659:23;::::0;::::1;::::0;:41:::1;;-1:-1:-1::0;25696:4:0::1;::::0;-1:-1:-1;;;;;25686:14:0;;::::1;25696:4:::0;::::1;25686:14;;25659:41;25651:50;;;::::0;::::1;;-1:-1:-1::0;;;;;25712:24:0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;25712:33:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;25756:146:::1;;25781:11;::::0;:31:::1;::::0;;-1:-1:-1;;;25781:31:0;;-1:-1:-1;;;;;25781:31:0;;::::1;;::::0;::::1;::::0;:11:::1;:31:::0;;;;;;;;:11;::::1;::::0;:20:::1;::::0;:31;;;;;:11;;:31;;;;;;:11;;:31;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;25756:146;;;25843:11;::::0;-1:-1:-1;;;;;25843:11:0::1;:20;25864:6:::0;25872:17:::1;25864:6:::0;25872:9:::1;:17::i;:::-;25843:47;;;;;;;;;;;;;-1:-1:-1::0;;;;;25843:47:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;26053:128:::0;4196:24;4209:10;4196:12;:24::i;:::-;4188:48;;;;;-1:-1:-1;;;4188:48:0;;;;;;;;;;;;-1:-1:-1;;;4188:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;26141:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;26141:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26053:128::o;14133:24::-;;;-1:-1:-1;;;;;14133:24:0;;:::o;13769:29::-;;;;:::o;22852:134::-;4106:19;4114:10;4106:7;:19::i;:::-;4098:38;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;;;;22973:5:::1;22950:28;22936:11;:42:::0;22852:134::o;4573:107::-;-1:-1:-1;;;;;4653:19:0;4629:4;4653:19;;;:14;:19;;;;;;;;;4573:107::o;13843:36::-;;;;:::o;22728:116::-;4106:19;4114:10;4106:7;:19::i;:::-;4098:38;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;-1:-1:-1;;;4098:38:0;;;;;;;;;;;;;;;22807:19:::1;:29:::0;;-1:-1:-1;;22807:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22728:116::o;14231:31::-;;;-1:-1:-1;;;14231:31:0;;;;;:::o;1498:132::-;1556:7;1583:39;1587:1;1590;1583:39;;;;;;;;;;;;;;;;;:3;:39::i;1242:250::-;1300:7;1324:6;1320:47;;-1:-1:-1;1354:1:0;1347:8;;1320:47;1391:5;;;1395:1;1391;:5;:1;1415:5;;;;;:10;1407:56;;;;-1:-1:-1;;;1407:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20243:330;20373:53;;;;;;;;;;;-1:-1:-1;;;20373:53:0;;;;;;;;-1:-1:-1;;;;;20373:17:0;;20336:4;20373:17;;;:9;:17;;;;;;;:53;;20395:6;;20373:21;:53::i;:::-;-1:-1:-1;;;;;20353:17:0;;;;;;;:9;:17;;;;;;:73;;;;20460:20;;;;;;;:32;;20485:6;20460:24;:32::i;:::-;-1:-1:-1;;;;;20437:20:0;;;;;;;:9;:20;;;;;;;;;:55;;;;20508:35;;;;;;;20437:20;;20508:35;;;;;;;;;;;;;-1:-1:-1;20561:4:0;20243:330;;;;;:::o;1044:192::-;1130:7;1166:12;1158:6;;;;1150:29;;;;-1:-1:-1;;;1150:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1202:5:0;;;1044:192::o;17890:2319::-;18002:6;;17982:4;;18002:6;;;;;17999:63;;;18018:41;18033:6;18041:9;18052:6;18018:14;:41::i;:::-;18011:48;;;;17999:63;-1:-1:-1;;;;;18078:22:0;;;;;;:14;:22;;;;;;;;18077:23;:53;;;;-1:-1:-1;;;;;;18105:25:0;;;;;;:14;:25;;;;;;;;18104:26;18077:53;18074:127;;;18154:11;;-1:-1:-1;;;18154:11:0;;;;18146:43;;;;;-1:-1:-1;;;18146:43:0;;;;;;;;;;;;-1:-1:-1;;;18146:43:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;18218:22:0;;;;;;:14;:22;;;;;;;;18217:23;:53;;;;-1:-1:-1;;;;;;18244:26:0;;18265:4;18244:26;;18217:53;:84;;;;-1:-1:-1;18296:4:0;;-1:-1:-1;;;;;18275:26:0;;;18296:4;;18275:26;;18217:84;:105;;;;-1:-1:-1;18318:4:0;;-1:-1:-1;;;;;18305:17:0;;;18318:4;;18305:17;;18217:105;:142;;;;-1:-1:-1;18339:20:0;;-1:-1:-1;;;;;18326:33:0;;;18339:20;;18326:33;;18217:142;:177;;;;-1:-1:-1;18376:18:0;;-1:-1:-1;;;;;18363:31:0;;;18376:18;;18363:31;;18217:177;:216;;;;-1:-1:-1;18412:21:0;;-1:-1:-1;;;;;18399:34:0;;;18412:21;;18399:34;;18217:216;:247;;;;-1:-1:-1;18450:14:0;;-1:-1:-1;;;;;18437:27:0;;;18450:14;;18437:27;;18217:247;18213:440;;;18481:18;18502:20;18512:9;18502;:20::i;:::-;18481:41;;18570:15;;18559:6;18546:10;:19;18545:40;;18537:114;;;;-1:-1:-1;;;18537:114:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18213:440;;18687:4;;-1:-1:-1;;;;;18677:14:0;;;18687:4;;18677:14;:49;;;;-1:-1:-1;18708:18:0;;;;18677:49;:94;;;;-1:-1:-1;;;;;;18744:27:0;;;;;;:16;:27;;;;;;;;18743:28;18677:94;18673:281;;;-1:-1:-1;;;;;18796:24:0;;;;;;:13;:24;;;;;;18823:15;-1:-1:-1;18788:73:0;;;;;-1:-1:-1;;;18788:73:0;;;;;;;;;;;;-1:-1:-1;;;18788:73:0;;;;;;;;;;;;;;;18921:21;;-1:-1:-1;;;;;18876:24:0;;;;;;:13;:24;;;;;18921:21;;;;;;18903:15;:39;18876:66;;18673:281;19008:19;;;;19005:288;;;-1:-1:-1;;;;;19052:20:0;;;;;;:12;:20;;;;;;;;19051:21;19043:47;;;;;-1:-1:-1;;;19043:47:0;;;;;;;;;;;;-1:-1:-1;;;19043:47:0;;;;;;;;;;;;;;;19122:11;;19108;:25;:43;;;;-1:-1:-1;19147:4:0;;-1:-1:-1;;;;;19137:14:0;;;19147:4;;19137:14;19108:43;19105:177;;;-1:-1:-1;;;;;19171:23:0;;;;;;:12;:23;;;;;;;;;:30;;-1:-1:-1;;19171:30:0;19197:4;19171:30;;;19225:41;;;;;19254:11;19225:41;;;;;;;;;;;;;;;;19105:177;19346:28;19359:6;19367;19346:12;:28::i;:::-;19390:16;:14;:16::i;:::-;19387:35;;;19409:10;:8;:10::i;:::-;19481:53;;;;;;;;;;;-1:-1:-1;;;19481:53:0;;;;;;;;-1:-1:-1;;;;;19481:17:0;;-1:-1:-1;19481:17:0;;;:9;:17;;;;;;;;:53;;19503:6;;19481:21;:53::i;:::-;-1:-1:-1;;;;;19461:17:0;;;;;;:9;:17;;;;;:73;;;;19574:21;19471:6;19574:13;:21::i;:::-;19573:22;:51;;;;19600:24;19614:9;19600:13;:24::i;:::-;19599:25;19573:51;19572:108;;19674:4;;19637:43;;19645:6;;19653;;-1:-1:-1;;;;;19661:17:0;;;19674:4;;19661:17;19637:7;:43::i;:::-;19572:108;;;19628:6;19572:108;-1:-1:-1;;;;;19714:20:0;;;;;;:9;:20;;;;;;19547:133;;-1:-1:-1;19714:40:0;;19547:133;19714:24;:40::i;:::-;-1:-1:-1;;;;;19691:20:0;;;;;;;:9;:20;;;;;;;;:63;;;;19800:24;;;;;:16;:24;;;;;;;19796:119;;19845:11;;-1:-1:-1;;;;;19845:11:0;:20;19866:6;19874:17;19866:6;19874:9;:17::i;:::-;19845:47;;;;;;;;;;;;;-1:-1:-1;;;;;19845:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19841:63;;-1:-1:-1;;;;;19931:27:0;;;;;;:16;:27;;;;;;;;19927:129;;19979:11;;-1:-1:-1;;;;;19979:11:0;:20;20000:9;20011:20;20000:9;20011;:20::i;:::-;19979:53;;;;;;;;;;;;;-1:-1:-1;;;;;19979:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19975:69;;20072:11;;20092:14;;20072:35;;;-1:-1:-1;;;;;;20072:35:0;;;;;;;;;;-1:-1:-1;;;;;20072:11:0;;;;:19;;:35;;;;;:11;;:35;;;;;;;;:11;;:35;;;;;;;;;;;;;;;;;;;;;;;;;20068:51;20153:9;-1:-1:-1;;;;;20136:43:0;20145:6;-1:-1:-1;;;;;20136:43:0;;20164:14;20136:43;;;;;;;;;;;;;;;;;;-1:-1:-1;20197:4:0;;17890:2319;-1:-1:-1;;;;17890:2319:0:o;902:136::-;960:7;987:43;991:1;994;987:43;;;;;;;;;;;;;;;;;:3;:43::i;715:181::-;773:7;805:5;;;829:6;;;;821:46;;;;;-1:-1:-1;;;821:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1636:189;1722:7;1757:12;1750:5;1742:28;;;;-1:-1:-1;;;1742:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1781:9;1797:1;1793;:5;;;;;;;1636:189;-1:-1:-1;;;;;1636:189:0:o;20581:166::-;20678:12;;20668:6;:22;;:49;;;-1:-1:-1;;;;;;20694:23:0;;;;;;:15;:23;;;;;;;;20668:49;20660:79;;;;;-1:-1:-1;;;20660:79:0;;;;;;;;;;;;-1:-1:-1;;;20660:79:0;;;;;;;;;;;;;;21510:197;21597:4;;21559;;-1:-1:-1;;;;;21597:4:0;21583:10;:18;;;;:38;;-1:-1:-1;21615:6:0;;;;;;;21614:7;21583:38;:62;;;;-1:-1:-1;21634:11:0;;;;21583:62;:116;;;;-1:-1:-1;;21686:13:0;;21676:4;21658:24;;;;:9;:24;;;;;;:41;;;21510:197::o;23405:2137::-;14580:6;:13;;-1:-1:-1;;14580:13:0;;;;;23500:15:::1;::::0;23517:26:::1;::::0;14580:13;;23484:60:::1;::::0;:15:::1;:60::i;:::-;:79;;23551:12;;23484:79;;;23547:1;23484:79;23454:109;;23574:20;23597:13;;23574:36;;23623:23;23649:58;23705:1;23649:51;23680:19;23649:26;23666:8;;23649:12;:16;;:26;;;;:::i;:58::-;23623:84:::0;-1:-1:-1;23718:20:0::1;23741:33;:12:::0;23623:84;23741:16:::1;:33::i;:::-;23811:16;::::0;;23825:1:::1;23811:16:::0;;;;;::::1;::::0;;23718:56;;-1:-1:-1;23787:21:0::1;::::0;23811:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;23811:16:0::1;23787:40;;23856:4;23838;23843:1;23838:7;;;;;;;;-1:-1:-1::0;;;;;23838:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;23882:4:::1;::::0;23872:7;;23882:4;::::1;::::0;23872;;23882;;23872:7;::::1;;;;;-1:-1:-1::0;;;;;23872:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:14;;;;23957:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;23957:188:0;;::::1;::::0;::::1;::::0;;;23899:21:::1;23957:188:::0;;;;;;24099:4:::1;23957:188:::0;;;;;;24119:15:::1;23957:188:::0;;;;;;;;;;;;;;;;;;;;;23923:21:::1;::::0;23957:6;;;::::1;::::0;:57:::1;::::0;24029:12;;23899:21;;24072:4;;23957:188;;;;;;;;;;::::1;::::0;::::1;::::0;;;23899:21;23957:188:::1;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;24158:17;24178:40;24204:13;24178:21;:25;;:40;;;;:::i;:::-;24158:60:::0;-1:-1:-1;24231:19:0::1;24253:40;24266:26;:19:::0;24290:1:::1;24266:23;:26::i;:::-;24253:8;::::0;;:12:::1;:40::i;:::-;24231:62:::0;-1:-1:-1;24314:26:0::1;24343:58;24399:1;24343:51;24231:62:::0;24343:51;:9;24357:19;24343:13:::1;:34::i;:58::-;24314:87;;24412:27;24442:45;24475:11;24442:28;24456:13;;24442:9;:13;;:28;;;;:::i;:45::-;24412:75;;24498:26;24527:44;24559:11;24527:27;24541:12;;24527:9;:13;;:27;;;;:::i;:44::-;24498:73;;24582:20;24605:42;24635:11;24605:25;24619:10;;24605:9;:13;;:25;;;;:::i;:42::-;24582:65;;24652:20;24675:38;24701:11;24675:21;24689:6;;24675:9;:13;;:21;;;;:::i;:38::-;24652:61;;24730:11;;;;;;;;;-1:-1:-1::0;;;;;24730:11:0::1;-1:-1:-1::0;;;;;24730:19:0::1;;24757;24730:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;24726:65:::0;24830:20:::1;::::0;24822:77:::1;::::0;24802:15:::1;::::0;-1:-1:-1;;;;;24830:20:0::1;::::0;24889:5:::1;::::0;24864:18;;24802:15;24822:77;24802:15;24822:77;24864:18;24830:20;24889:5;24822:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;24934:18:0::1;::::0;24926:69:::1;::::0;24801:98;;-1:-1:-1;;;;;;24934:18:0::1;::::0;24985:5:::1;::::0;24966:12;;24934:18:::1;24926:69:::0;24934:18;24926:69;24966:12;24934:18;24985:5;24926:69:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;25024:14:0::1;::::0;25016:65:::1;::::0;24910:85;;-1:-1:-1;;;;;;25024:14:0::1;::::0;25071:5:::1;::::0;25052:12;;25024:14:::1;25016:65:::0;25024:14;25016:65;25052:12;25024:14;25071:5;25016:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;25155:5:0::1;::::0;-1:-1:-1;;25176:19:0;;;-1:-1:-1;25173:362:0::1;;25211:6;;;;;;;;;-1:-1:-1::0;;;;;25211:6:0::1;-1:-1:-1::0;;;;;25211:22:0::1;;25241:18;25287:4;25311:15;25345:1;25365::::0;25385:21:::1;;;;;;;;;-1:-1:-1::0;;;;;25385:21:0::1;25425:15;25211:244;;;;;;;;;;;;;-1:-1:-1::0;;;;;25211:244:0::1;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;25211:244:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;25211:244:0;25475:48;;;;;25211:244:::1;25475:48:::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;25173:362;-1:-1:-1::0;;14598:6:0;:14;;-1:-1:-1;;14598:14:0;;;-1:-1:-1;;;;;;;;;;;;23405:2137:0:o;20755:114::-;-1:-1:-1;;;;;20842:19:0;20817:4;20842:19;;;:11;:19;;;;;;;;20841:20;;20755:114::o;20879:619::-;20959:7;21010:3;21024:64;;;;-1:-1:-1;21062:14:0;;21024:64;21101:17;21121:62;21172:10;21121:46;21158:8;;21121:32;21132:14;;21149:3;21132:20;21121:6;:10;;:32;;;;:::i;:62::-;21101:82;;21200:6;21199:7;:51;;;;;21238:12;21224:10;;21211;;:23;21210:40;21199:51;21196:117;;;21278:23;21298:2;21278:15;:6;21289:3;21278:10;:15::i;:23::-;21266:35;;21196:117;21370:4;21352:24;;;;:9;:24;;;;;;:39;;21381:9;21352:28;:39::i;:::-;21343:4;21325:24;;;;:9;:24;;;;;;;;;:66;;;;21407:42;;;;;;;21343:4;;-1:-1:-1;;;;;21407:42:0;;;;;;;;;;;;;21469:21;:6;21480:9;21469:10;:21::i;:::-;21462:28;20879:619;-1:-1:-1;;;;;;20879:619:0:o

Swarm Source

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