Contract 0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee43

 
Txn Hash
Block
From
To
Value [Txn Fee]
0x0c232416a0c4803eae257a153293350c1b16ad7e5ac842a2ffb2600309ba168276471882021-05-23 2:34:3931 days 18 hrs ago0x9adec59428f6946af40288faf246e6f0467df93c IN  0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430.002 BNB0.00012313
0x7d95f20889efaf1634fb21732d6f992a7a3ca647197af8d698d267b73b7a3b5d76471882021-05-23 2:34:3931 days 18 hrs ago0x9adec59428f6946af40288faf246e6f0467df93c IN  0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430.002 BNB0.00012313
0x996634a0c89a4f3a5ecddaf86c7d9d71bb613053058d71dff841b44989be7da672655972021-05-09 9:00:5945 days 12 hrs ago0xac7a81e7bffc15e295de5029cd9d668caced81b9 IN  0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430.002 BNB0.00012505
0x12bf216c332ace0ba1f0ebeeba59b0289ce6ee06504361bd9d55ae86e627b26d72416672021-05-08 12:00:5746 days 9 hrs ago0xd32cf43ce5f9031e396aa6b4ee5bef76d7f2d57b IN  0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430 BNB0.00034025
0x7a0852c81403552c7d65dcbf8da5153c6c5cabfbce3d7a7a605dec477218664772385412021-05-08 9:23:2246 days 11 hrs ago0x13602e8c22b1bbe215a53f8ddae9318e8712453b IN  0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430 BNB0.00007008
0xc8a838f73abb36d88f9ef7a8c6ddb2edc2465d843cc499f7dd79ccf8c08080d672385392021-05-08 9:23:1646 days 11 hrs ago0x13602e8c22b1bbe215a53f8ddae9318e8712453b IN  0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430 BNB0.000070445
0x06c3f2e7e670966f646746d3733b79f5d301e5e7a0be7b8a713855c9d6951b7672384642021-05-08 9:19:3146 days 11 hrs ago0x91ca5836642720dff3dbe13814d7b95deb4abc4e IN  0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430.17 BNB0.000481375
0x4ca260ef92519dd8d7e07efb7cdc0f3af5b91c987004dae5cddac94f4d3b061072384482021-05-08 9:18:3946 days 11 hrs ago0xec6042cfb43c7ff768bf5ac0df56a5008ccc7787 IN  0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430.04 BNB0.000389155
0xeac181b0f24d04d6a1ce90c58dce1d002a3f1ffe9719fb679fd5273f66ae795172382852021-05-08 9:10:3046 days 12 hrs ago0x91ca5836642720dff3dbe13814d7b95deb4abc4e IN  0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430.2 BNB0.000481375
0x94788f009df115a62aabdbbd7f46efcebcc8b0282b5bee2f9a7ff3f76e36a9cc72382772021-05-08 9:10:0646 days 12 hrs ago0xc54ef983ff7e3ccbe2cada61720b887e37d87139 IN  0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430.002 BNB0.00083126
0x3d51a6530e294e14e6f0918ed6fb22d5d5993bde599c3e4a1f6e159c8cbbcd4f72382732021-05-08 9:09:5446 days 12 hrs ago0x91ca5836642720dff3dbe13814d7b95deb4abc4e IN  0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430.002 BNB0.001049925
0x0d55d9849bd440a84e7c5f31da4d9f987e3b53b47573377f790a53800b4f476d72382432021-05-08 9:08:2446 days 12 hrs ago0x3b415f64fa8bf5bc0d97f45906ff5ca955af4fcb IN  0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430.002 BNB0.001048915
0x01a2cb3e9cbdf572de9906dd0b8902ddc2116edf8d2794416be2bd062d6937a272382322021-05-08 9:07:5146 days 12 hrs ago0xc1b45f73ebd94fd8ef44c0dd321764e71ea41077 IN  0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430.002 BNB0.000725555
0x8bfd35191dbb9e53e72f2c4f39b4b92997845ae4cf35af25b3bd014cf90fcda072382252021-05-08 9:07:3046 days 12 hrs ago0xc1b45f73ebd94fd8ef44c0dd321764e71ea41077 IN  0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430 BNB0.00034025
0x3a9841d92f06687f8d2fe6fe3972c2497c6ea4836b3457f69c572dc58beaa91b72382192021-05-08 9:07:1246 days 12 hrs ago0xfc7e85fc6350855594df5a0f245c586c29bbdfd9 IN  0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430.002 BNB0.001049925
0x05489a367f44b5308a1f27dab48ced080e8e0d03d2b3652b377c298a7dfc4b7f72382122021-05-08 9:06:5146 days 12 hrs ago0x8992e4deb0f499572598c2e8be8dcb8b16fc33f8 IN  0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430.002 BNB0.00083126
0xe57f1f736f5d80a28a8b6c8faf6bcb564b26e53e0f6c49f61ceaf5efd4678c1172381992021-05-08 9:06:1246 days 12 hrs ago0x3f30c798efd3349455f2b7e2ea5108a14fcbd39e IN  0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430.002 BNB0.001049925
0x75a09c9a1129c927d462af6dd08fd536926bd3589cb538bca61bddb4ed3a0df272381902021-05-08 9:05:4546 days 12 hrs ago0x745d5f5042573e74a065554b6ec45b5e392b151f IN  0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430.002 BNB0.000726565
0x9c3fbd09d98983487a533f60427b22e18d70392d37be4b7a3b055554b50e69b272381902021-05-08 9:05:4546 days 12 hrs ago0x7e3508933c99dd4c8977d8a942ab413d8b0dce21 IN  0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430.002 BNB0.00083227
0xcbc1bc8f282b4907f832b1a42c0dded01031105cc1aa3d0eecb638ccc46f5acd72381762021-05-08 9:05:0346 days 12 hrs ago0xf0e7a519b030e7376bf598f0fffb723b0202b7cb IN  0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430.002 BNB0.001048915
0xf09f1393593e96d424eddd6669801aaec21e801ec848ca3b89993eb88ffa2d4472381702021-05-08 9:04:4546 days 12 hrs ago0x1f5c6260958b92f527ea0c13276037805eec6c3a IN  0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430.002 BNB0.001049925
0x23d548d09265d6da0678f76e7756b743adb6e8d57d66a211a8c6fd52bcaf2baf72381542021-05-08 9:03:5746 days 12 hrs ago0xec6042cfb43c7ff768bf5ac0df56a5008ccc7787 IN  0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430.002 BNB0.00083227
0x4e6cd80bc79fc625247e695931a5f0b89d644101bcb24c348f4266a62412706772381492021-05-08 9:03:4246 days 12 hrs ago0x3ce2c75f8d37da6049ea0484572cbbe5b70b2f41 IN  0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430.05 BNB0.000479455
0x2f1177c93928dc7a2802ce3053afee60fa853117f08bbe32978d0b5687d47f6772381132021-05-08 9:01:5446 days 12 hrs ago0x00b87626c28d36059fe7e6c9e2adf6a8541870d0 IN  0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430.002 BNB0.001048915
0x63d20925338cf50d8d8d86ca783595c63ac34deb1fa7eb834eda4a598d36fe5672381022021-05-08 9:01:2146 days 12 hrs ago0x3243ae1f653dc4e11cf9a73ad2064e00d09568b1 IN  0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430.002 BNB0.00083126
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x06c3f2e7e670966f646746d3733b79f5d301e5e7a0be7b8a713855c9d6951b7672384642021-05-08 9:19:3146 days 11 hrs ago 0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430x13602e8c22b1bbe215a53f8ddae9318e8712453b0.17 BNB
0x4ca260ef92519dd8d7e07efb7cdc0f3af5b91c987004dae5cddac94f4d3b061072384482021-05-08 9:18:3946 days 11 hrs ago 0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430x13602e8c22b1bbe215a53f8ddae9318e8712453b0.04 BNB
0xeac181b0f24d04d6a1ce90c58dce1d002a3f1ffe9719fb679fd5273f66ae795172382852021-05-08 9:10:3046 days 12 hrs ago 0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430x13602e8c22b1bbe215a53f8ddae9318e8712453b0.2 BNB
0x94788f009df115a62aabdbbd7f46efcebcc8b0282b5bee2f9a7ff3f76e36a9cc72382772021-05-08 9:10:0646 days 12 hrs ago 0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430xdf550b47d08b55361e582fb8693ce4e92157a8210.002 BNB
0x3d51a6530e294e14e6f0918ed6fb22d5d5993bde599c3e4a1f6e159c8cbbcd4f72382732021-05-08 9:09:5446 days 12 hrs ago 0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430xdf550b47d08b55361e582fb8693ce4e92157a8210.002 BNB
0x0d55d9849bd440a84e7c5f31da4d9f987e3b53b47573377f790a53800b4f476d72382432021-05-08 9:08:2446 days 12 hrs ago 0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430xdf550b47d08b55361e582fb8693ce4e92157a8210.002 BNB
0x01a2cb3e9cbdf572de9906dd0b8902ddc2116edf8d2794416be2bd062d6937a272382322021-05-08 9:07:5146 days 12 hrs ago 0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430xdf550b47d08b55361e582fb8693ce4e92157a8210.002 BNB
0x3a9841d92f06687f8d2fe6fe3972c2497c6ea4836b3457f69c572dc58beaa91b72382192021-05-08 9:07:1246 days 12 hrs ago 0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430xdf550b47d08b55361e582fb8693ce4e92157a8210.002 BNB
0x05489a367f44b5308a1f27dab48ced080e8e0d03d2b3652b377c298a7dfc4b7f72382122021-05-08 9:06:5146 days 12 hrs ago 0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430xdf550b47d08b55361e582fb8693ce4e92157a8210.002 BNB
0xe57f1f736f5d80a28a8b6c8faf6bcb564b26e53e0f6c49f61ceaf5efd4678c1172381992021-05-08 9:06:1246 days 12 hrs ago 0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430xdf550b47d08b55361e582fb8693ce4e92157a8210.002 BNB
0x75a09c9a1129c927d462af6dd08fd536926bd3589cb538bca61bddb4ed3a0df272381902021-05-08 9:05:4546 days 12 hrs ago 0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430xdf550b47d08b55361e582fb8693ce4e92157a8210.002 BNB
0x9c3fbd09d98983487a533f60427b22e18d70392d37be4b7a3b055554b50e69b272381902021-05-08 9:05:4546 days 12 hrs ago 0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430xdf550b47d08b55361e582fb8693ce4e92157a8210.002 BNB
0xcbc1bc8f282b4907f832b1a42c0dded01031105cc1aa3d0eecb638ccc46f5acd72381762021-05-08 9:05:0346 days 12 hrs ago 0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430xdf550b47d08b55361e582fb8693ce4e92157a8210.002 BNB
0xf09f1393593e96d424eddd6669801aaec21e801ec848ca3b89993eb88ffa2d4472381702021-05-08 9:04:4546 days 12 hrs ago 0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430xdf550b47d08b55361e582fb8693ce4e92157a8210.002 BNB
0x23d548d09265d6da0678f76e7756b743adb6e8d57d66a211a8c6fd52bcaf2baf72381542021-05-08 9:03:5746 days 12 hrs ago 0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430xdf550b47d08b55361e582fb8693ce4e92157a8210.002 BNB
0x4e6cd80bc79fc625247e695931a5f0b89d644101bcb24c348f4266a62412706772381492021-05-08 9:03:4246 days 12 hrs ago 0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430x13602e8c22b1bbe215a53f8ddae9318e8712453b0.05 BNB
0x2f1177c93928dc7a2802ce3053afee60fa853117f08bbe32978d0b5687d47f6772381132021-05-08 9:01:5446 days 12 hrs ago 0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430xdf550b47d08b55361e582fb8693ce4e92157a8210.002 BNB
0x63d20925338cf50d8d8d86ca783595c63ac34deb1fa7eb834eda4a598d36fe5672381022021-05-08 9:01:2146 days 12 hrs ago 0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430xdf550b47d08b55361e582fb8693ce4e92157a8210.002 BNB
0x4a610872c0e8cc1718236d6f32fa2fb224734134a73cda7ed34e3914bb25e07f72380872021-05-08 9:00:2946 days 12 hrs ago 0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430xdf550b47d08b55361e582fb8693ce4e92157a8210.002 BNB
0x5d9394ec04b0f74f1ae32b261d09198b55c074efe2083db978bc497231ac634172380402021-05-08 8:57:4946 days 12 hrs ago 0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430xdf550b47d08b55361e582fb8693ce4e92157a8210.002 BNB
0x015c2028de43f87c7f3637b9c417e45f203053422c8f29a890a12bd2be8f5b3872380212021-05-08 8:56:5246 days 12 hrs ago 0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430xdf550b47d08b55361e582fb8693ce4e92157a8210.002 BNB
0xbed8b5c54130b94ab7ff66a8f161ec629cc9680b1465608a00cb48d59e5b96eb72380182021-05-08 8:56:4346 days 12 hrs ago 0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430xdf550b47d08b55361e582fb8693ce4e92157a8210.002 BNB
0x02ff6f5d27cde6478b996b093c6c8016411fa2df400ec02e3d5025de882f22f172380162021-05-08 8:56:3746 days 12 hrs ago 0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430xdf550b47d08b55361e582fb8693ce4e92157a8210.002 BNB
0x6e6f375cc8defb10ce9df4a7e1078020e430f087019fafa3f444c65ea6f6e6d872379752021-05-08 8:54:3446 days 12 hrs ago 0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430xdf550b47d08b55361e582fb8693ce4e92157a8210.002 BNB
0x004afc3c4f4bee4f911ce25285cf8363a5ca3626d5a52f967eb0439c7927c6cc72379482021-05-08 8:53:1346 days 12 hrs ago 0x5e7bc83cfc3b2e5897cbae3fb1c520d96594ee430xdf550b47d08b55361e582fb8693ce4e92157a8210.002 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BuyTokenClaim

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

pragma solidity ^0.8.3;
// SPDX-License-Identifier: GPL-3.0-or-later

interface ERC20 {
    function totalSupply() external view returns (uint);
    function balanceOf(address tokenOwner) external view returns (uint balance);
    function allowance(address tokenOwner, address spender) external view returns (uint remaining);
    function transfer(address to, uint tokens) external returns (bool success);
    function approve(address spender, uint tokens) external returns (bool success);
    function transferFrom(address from, address to, uint tokens) external returns (bool success);

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint);

    event Transfer(address indexed from, address indexed to, uint tokens);
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}

contract Owned {
    address public address_owner;
    constructor() { 
        address_owner = payable(msg.sender);
    }

    modifier onlyOwner {
        require(
            msg.sender == address_owner,
            "Only owner can call this function."
        );
        _;
    }
    function transferOwnership(address _address_owner) public onlyOwner {
        address_owner = _address_owner;
    }
}

contract BuyTokenClaim is Owned {
    
    //BuyToken
    address public token_address;
    uint256 public min_value;
    uint256 public price_current;
    uint256 public div_price_current;
    uint256 public time_start_current;
    uint256 public time_end_current;
    bool public is_sale_token = true;
    uint256 public price_next;
    uint256 public div_price_next;
    uint256 public time_start_next;
    uint256 public time_end_next;
    
    event BuyEvent(uint256 price, uint256 amount);
    
    
    // Claim
    address public claim_address;
    uint256 public claim_fee;
    uint256 public claim_min;
    uint256 public claim_max;
    uint256 public claim_decimal;
    uint256 private rand_nonce = 0;
    bool private is_claim = true;
    mapping (address => bool) private claimed_addresses;
    
    event ClaimEvent(uint256 amount);
    //Referral
 
    uint256 private claim_referral_bonus;
    uint256 private buy_referral_bonus ;
    mapping (address => uint256) private referrals;
    mapping (uint256 => address) private referral_codes;
    mapping (address => address) private referral_parents;
 
    constructor(){
        //Buy
        address _token_address = address(0xF991Eaa8cf8E8E46111eb6856f26E87574F14767);
        uint256 _min_value = 40000000000000000;
        uint256 _price = 500000000000;
        uint256 div_price = 1;
        uint256 time_start = block.timestamp;
        uint256 time_end = block.timestamp + 300 days;
        
        //Claim
        claim_address = address_owner;
        claim_fee = 2000000000000000;
        claim_min = 5000000000;
        claim_max = 10000000000;
        claim_decimal = 0;
        
        //Referral
        claim_referral_bonus = 1000000000;
        buy_referral_bonus = 300;
    
        price_current = _price;
        div_price_current = div_price;
        time_start_current = time_start;
        time_end_current = time_end;
        initBuyToken(_token_address, _min_value, _price, div_price, time_start, time_end);
        claim_address = address(0xDF550b47d08B55361E582FB8693ce4E92157a821);
    }
 
    function initBuyToken(address _token_address, uint256 _min_value, uint256 _price, uint256 div_price, uint256 time_start, uint256 time_end) public onlyOwner{
        token_address = _token_address;
        min_value = _min_value;
        addPrice(_price, div_price, time_start, time_end);
    }
 
    function addPrice(uint256 _price, uint256 div_price, uint256 time_start, uint256 time_end) public onlyOwner{
        price_next = _price;
        div_price_next = div_price;
        time_start_next = time_start;
        time_end_next = time_end;
        checkPrice();
    }
 
    function setAddressToken(address _token_address) public onlyOwner{
        token_address = _token_address;
    }
 
    receive () external payable{
        buy();
    }
    
    function priceCurrent() public view returns(uint256 price, uint256 div_price) {
        return (price_current, div_price_current);
    }
    
    function isSale() public view returns(bool) {
        return (block.timestamp <= time_end_current && is_sale_token != false);
    }
    
    function closeSale() public onlyOwner{
        is_sale_token = false;
    }
    
    function getSaleInfo() public view returns(bool is_sale, uint256 min_amount, uint256 price, uint256 div_price, uint256 claim_bonus, uint256 buy_bonus, uint256 claim_min_amount, uint256 claim_max_amount){
        bool is_sale_status = (block.timestamp <= time_end_current && is_sale_token != false);
        return (is_sale_status, min_value, price_current, div_price_current, claim_referral_bonus, buy_referral_bonus, claim_min, claim_max);
    }
    
    function setToken(address _token_address) public onlyOwner{
        token_address = _token_address;
    }
    
    function sendToken(address _token_address) payable public returns(bool) {
        ERC20 token = ERC20(_token_address);
        uint256 balance = token.balanceOf(address(this));
        return token.transfer(address_owner, balance);
    }
    
    function checkPrice() public {
        uint256 time_current = block.timestamp;
        if (price_next > 0 && time_current >= time_start_next && time_current <= time_end_next)
        {
            price_current = price_next;
            div_price_current = div_price_next;
            time_start_current = time_start_next;
            time_end_current = time_end_next;
            price_next = 0;
        }
    }
    
    function buyTokeWithCode(uint256 referral_code) payable public returns(bool) {
        return buyToken(token_address, referral_code);
    }
    
    function buyToken(address _token_address, uint256 referral_code) payable public returns(bool) {
        require(_token_address != address(0), "Please set token address");
        ERC20 token = ERC20(_token_address);
        uint256 amount_send = msg.value;
        uint256 token_balance = token.balanceOf(address(address_owner));
        require(amount_send >= min_value, "You amount to small");
        uint256 time_current = block.timestamp;
        checkPrice();
        require(price_current > 0, "Please set price of token");
        require(time_current <= time_end_current && is_sale_token != false, "Token sale is finished");
        uint256 amount_buy = amount_send * price_current / div_price_current;
        uint256 decimals = 18 - token.decimals();
        require(decimals >= 0, "Decimals is invalid");
        amount_buy = amount_buy / (10 ** decimals);
        require(token_balance >= amount_buy, "Not enough tokens in the reserve");
        require(amount_buy > 0, "You amount token to small");
        token.transferFrom(address_owner, msg.sender, amount_buy);
        address parent = getParentReferral(msg.sender, referral_code);
        if (parent != address(0))
        {
            token.transferFrom(address_owner, parent, buy_referral_bonus * amount_buy / 10000); 
        }
        payable(address_owner).transfer(address(this).balance);
        addReferral(msg.sender, parent);
        emit BuyEvent(price_current, amount_buy);
        return true;
    }

    function buy() payable public returns(bool) {
        return buyToken(token_address, 0); 
    }
    
    //Claim
    function initClaim(address _token_address, uint256 _claim_fee, uint256 _amount_min, uint256 _amount_max, uint256 _unit_decimal) public onlyOwner{
        token_address = _token_address;
        claim_fee = _claim_fee;
        claim_decimal = _unit_decimal;
        setClaimLimit(_amount_min, _amount_max);
    }
     
    function setClaimAddress(address _address) public onlyOwner{
        claim_address = _address;
    }
    
    function setClaimFee(uint256 _claim_fee) public onlyOwner{
        claim_fee = _claim_fee;
    }
      
    function setClaimDecimal(uint256 _claim_decimal) public onlyOwner{
        claim_decimal = _claim_decimal;
    }
        
    function setClaimLimit(uint256 _amount_min, uint256 _amount_max) public onlyOwner{
        claim_min = _amount_min;
        claim_max = _amount_max;
    }
    
    function closeClaim() public returns(bool) {
        is_claim  = false; 
        return is_claim;
    }
    
    function setIsClaim(bool _is_claim) public returns(bool) {
        is_claim  = _is_claim; 
        return is_claim;
    }
    
   function claimToken(address _token_address, uint256 referral_code) payable public returns(bool) {
        require(claimed_addresses[msg.sender] != true, "Address is exist");
        require(is_claim == true, "Claimed is finished");
        require(_token_address != address(0), "Please set token address");
        ERC20 token = ERC20(_token_address);
        uint256 amount_send = msg.value;
        uint256 token_balance = token.balanceOf(address(claim_address));
        uint256 amount_claim = randomClaimAmount(_token_address);
        require(amount_send >= claim_fee, "You need to send some fee. Fee to small.");
        require(token_balance >= amount_claim, "Not enough tokens in the reserve");
        token.transferFrom(claim_address, msg.sender, amount_claim);
        emit ClaimEvent(amount_claim);
        claimed_addresses[msg.sender] = true;
        address parent = getParentReferral(msg.sender, referral_code);
        if (parent != address(0))
        {
            uint256 decimals = token.decimals();
            token.transferFrom(claim_address, parent, claim_referral_bonus * (10 ** decimals)); 
        }
        addReferral(msg.sender, parent);
        payable(claim_address).transfer(address(this).balance);
        return true;
    }

    function claim(uint256 referral_code) payable public returns(bool) {
        return claimToken(token_address, referral_code); 
    }

    function isClaim() public view returns(bool) {
        return is_claim; 
    }
    
    
    function isClaimed(address _address) public view returns(bool) {
        return claimed_addresses[_address] == true; 
    }
    
    function claimFee() public view returns(uint256) {
        return claim_fee; 
    }
        
    function claimCheck(address _address) public view returns(uint256 fee, bool is_claim_token, bool is_claimed) {
        bool _is_claimed = (claimed_addresses[_address] == true);
        return (claim_fee, is_claim, _is_claimed); 
    }
    
    function randomClaimAmount(address _token_address) public returns(uint256){
        ERC20 token = ERC20(_token_address);
        uint decimals = token.decimals();
        uint256 min = claim_min * 10 ** uint256(decimals);
        uint256 max = claim_max * 10 ** uint256(decimals);
        uint256 randomAmount = random();
        uint256 amount = randomAmount % max;
        if (amount + min <= max)
        {
            amount = amount + min;
        }
        
        uint256 fixed_decimal = 10 ** uint256(decimals - claim_decimal);
        amount = amount / fixed_decimal * fixed_decimal;
        return amount;
    }
    
    function random() public returns(uint256){
        rand_nonce = rand_nonce + 1;
        if (rand_nonce > 0xFFFFFFFFFFFFFFFFFFFFF)
        {
            rand_nonce = 0;
        }
        return randomWithNonce(rand_nonce);
    }
    
    function randomWithNonce(uint256 _rand_nonce) public payable returns(uint256){
        return uint256(keccak256(abi.encodePacked(block.difficulty, block.timestamp, block.coinbase, block.number, msg.sender, _rand_nonce)));
    }
    
    //Referral
    function setBonus(uint256 claim_bonus, uint256 buy_bonus) public returns(uint256, uint256) {
        claim_referral_bonus = claim_bonus;
        buy_referral_bonus = buy_bonus;
        return (claim_referral_bonus, buy_referral_bonus);
    }
    
    function setBuyBonus(uint256 amount) public returns(uint256) {
        buy_referral_bonus = amount;
        return buy_referral_bonus;
    }
    
    function setClaimBonus(uint256 amount) public returns(uint256) {
        claim_referral_bonus = amount;
        return claim_referral_bonus;
    }
    
    function addReferral(address _address, address parent) public returns(uint256) {
        if (referrals[_address] == 0){
            uint256 code;
            uint256 index = 0;
            while(true)
            {
                code = randomWithNonce(index);
                index += 1;
                if (referral_codes[code] == address(0))
                    break;
            }
            referral_codes[code] = _address;
            referrals[_address] = code;
            if(parent != address(0))
                referral_parents[_address] = parent;
        }
        return referrals[_address];
    }
    
    function getReferralCode(address _address) public view returns(uint256) {
        return referrals[_address];
    }
    
    function getParentReferral(address _address, uint256 referral_code) public view returns(address) {
        address parent = referral_parents[_address];
        if (parent == address(0))
            parent = referral_codes[referral_code];
        if (parent != msg.sender)
            return parent;
        return address(0);
    }
}

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"BuyEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClaimEvent","type":"event"},{"inputs":[{"internalType":"uint256","name":"_price","type":"uint256"},{"internalType":"uint256","name":"div_price","type":"uint256"},{"internalType":"uint256","name":"time_start","type":"uint256"},{"internalType":"uint256","name":"time_end","type":"uint256"}],"name":"addPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"address","name":"parent","type":"address"}],"name":"addReferral","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"address_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buy","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"referral_code","type":"uint256"}],"name":"buyTokeWithCode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_token_address","type":"address"},{"internalType":"uint256","name":"referral_code","type":"uint256"}],"name":"buyToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"checkPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"referral_code","type":"uint256"}],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"claimCheck","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"bool","name":"is_claim_token","type":"bool"},{"internalType":"bool","name":"is_claimed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token_address","type":"address"},{"internalType":"uint256","name":"referral_code","type":"uint256"}],"name":"claimToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"claim_address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim_decimal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim_fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim_max","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim_min","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"closeClaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"closeSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"div_price_current","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"div_price_next","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"referral_code","type":"uint256"}],"name":"getParentReferral","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"getReferralCode","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSaleInfo","outputs":[{"internalType":"bool","name":"is_sale","type":"bool"},{"internalType":"uint256","name":"min_amount","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"div_price","type":"uint256"},{"internalType":"uint256","name":"claim_bonus","type":"uint256"},{"internalType":"uint256","name":"buy_bonus","type":"uint256"},{"internalType":"uint256","name":"claim_min_amount","type":"uint256"},{"internalType":"uint256","name":"claim_max_amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token_address","type":"address"},{"internalType":"uint256","name":"_min_value","type":"uint256"},{"internalType":"uint256","name":"_price","type":"uint256"},{"internalType":"uint256","name":"div_price","type":"uint256"},{"internalType":"uint256","name":"time_start","type":"uint256"},{"internalType":"uint256","name":"time_end","type":"uint256"}],"name":"initBuyToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token_address","type":"address"},{"internalType":"uint256","name":"_claim_fee","type":"uint256"},{"internalType":"uint256","name":"_amount_min","type":"uint256"},{"internalType":"uint256","name":"_amount_max","type":"uint256"},{"internalType":"uint256","name":"_unit_decimal","type":"uint256"}],"name":"initClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isClaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSale","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"is_sale_token","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"min_value","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"priceCurrent","outputs":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"div_price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price_current","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price_next","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"random","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token_address","type":"address"}],"name":"randomClaimAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rand_nonce","type":"uint256"}],"name":"randomWithNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_token_address","type":"address"}],"name":"sendToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_token_address","type":"address"}],"name":"setAddressToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"claim_bonus","type":"uint256"},{"internalType":"uint256","name":"buy_bonus","type":"uint256"}],"name":"setBonus","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setBuyBonus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setClaimAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setClaimBonus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_claim_decimal","type":"uint256"}],"name":"setClaimDecimal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_claim_fee","type":"uint256"}],"name":"setClaimFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount_min","type":"uint256"},{"internalType":"uint256","name":"_amount_max","type":"uint256"}],"name":"setClaimLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_is_claim","type":"bool"}],"name":"setIsClaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token_address","type":"address"}],"name":"setToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"time_end_current","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"time_end_next","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"time_start_current","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"time_start_next","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token_address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address_owner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600760006101000a81548160ff02191690831515021790555060006011556001601260006101000a81548160ff0219169083151502179055503480156200004c57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073f991eaa8cf8e8e46111eb6856f26e87574f1476790506000668e1bc9bf0400009050600064746a52880090506000600190506000429050600063018b820042620000db919062000484565b905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555066071afd498d0000600d8190555064012a05f200600e819055506402540be400600f819055506000601081905550633b9aca0060148190555061012c60158190555083600381905550826004819055508160058190555080600681905550620001b28686868686866200021360201b60201c565b73df550b47d08b55361e582fb8693ce4e92157a821600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505062000569565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614620002a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200029b9062000451565b60405180910390fd5b85600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508460028190555062000300848484846200030860201b60201c565b505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161462000399576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003909062000451565b60405180910390fd5b836008819055508260098190555081600a8190555080600b81905550620003c5620003cb60201b60201c565b50505050565b60004290506000600854118015620003e55750600a548110155b8015620003f45750600b548111155b156200042757600854600381905550600954600481905550600a54600581905550600b5460068190555060006008819055505b50565b60006200043960228362000473565b915062000446826200051a565b604082019050919050565b600060208201905081810360008301526200046c816200042a565b9050919050565b600082825260208201905092915050565b60006200049182620004e1565b91506200049e83620004e1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620004d657620004d5620004eb565b5b828201905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f60008201527f6e2e000000000000000000000000000000000000000000000000000000000000602082015250565b613b3680620005796000396000f3fe60806040526004361061031e5760003560e01c80638cc08025116101ab578063c2fc94a1116100f7578063ebc8aa1911610095578063f2fde38b1161006f578063f2fde38b14610bf4578063f8c1c18614610c1d578063fbf8864e14610c48578063fd03187914610c855761032e565b8063ebc8aa1914610b89578063ee55efee14610bb2578063f14e0f5314610bc95761032e565b8063d1281ec4116100d1578063d1281ec414610ac2578063db83694c14610b01578063df2b2c0914610b33578063e595678014610b5e5761032e565b8063c2fc94a114610a3c578063c575c23814610a67578063cfc55bf714610a975761032e565b8063a6119ea711610164578063b4fffa521161013e578063b4fffa521461098d578063b7d3aaba146109b8578063bb379087146109e3578063bf0e490014610a0c5761032e565b8063a6119ea71461091b578063a6f2ae3a14610944578063b071b6c5146109625761032e565b80638cc08025146107f95780638fc3047d1461083657806392c403441461084d578063940312a91461088a578063963016ce146108b357806399d32fc4146108f05761032e565b8063337a42fd1161026a5780636515d04411610223578063762fac28116101fd578063762fac281461074f57806388a9031d146107785780638b5d181b146107a35780638c8e8fee146107ce5761032e565b80636515d044146106b957806365d3d96c146106e257806368f8fc101461071f5761032e565b8063337a42fd1461058e578063379607f5146105cb57806345b66bf1146105fb57806356f3fce8146106265780635e697698146106635780635ec01e4d1461068e5761032e565b80631c19b784116102d75780632ab0ac70116102b15780632ab0ac70146104e45780632e75ab501461050f5780632f383a40146105385780632ff176af146105635761032e565b80631c19b7841461045e57806320690e241461048957806325ffeea0146104b95761032e565b8063037c99b01461033357806309ad1a3d146103715780630b5c3f871461039c57806310cbe856146103d9578063144fa6d7146104055780631698755f1461042e5761032e565b3661032e5761032b610cae565b50005b600080fd5b34801561033f57600080fd5b5061035a60048036038101906103559190612ee1565b610ce2565b6040516103689291906134a9565b60405180910390f35b34801561037d57600080fd5b50610386610d04565b60405161039391906131e3565b60405180910390f35b3480156103a857600080fd5b506103c360048036038101906103be9190612cc5565b610d28565b6040516103d09190613457565b60405180910390f35b3480156103e557600080fd5b506103ee610fa0565b6040516103fc9291906134a9565b60405180910390f35b34801561041157600080fd5b5061042c60048036038101906104279190612c9c565b610fb1565b005b61044860048036038101906104439190612d01565b611083565b604051610455919061325e565b60405180910390f35b34801561046a57600080fd5b50610473611682565b6040516104809190613457565b60405180910390f35b6104a3600480360381019061049e9190612e8f565b611688565b6040516104b0919061325e565b60405180910390f35b3480156104c557600080fd5b506104ce6116bd565b6040516104db919061325e565b60405180910390f35b3480156104f057600080fd5b506104f96116d4565b6040516105069190613457565b60405180910390f35b34801561051b57600080fd5b5061053660048036038101906105319190612e8f565b6116da565b005b34801561054457600080fd5b5061054d611772565b60405161055a9190613457565b60405180910390f35b34801561056f57600080fd5b50610578611778565b6040516105859190613457565b60405180910390f35b34801561059a57600080fd5b506105b560048036038101906105b09190612d01565b61177e565b6040516105c291906131e3565b60405180910390f35b6105e560048036038101906105e09190612e8f565b611897565b6040516105f2919061325e565b60405180910390f35b34801561060757600080fd5b506106106118cc565b60405161061d9190613457565b60405180910390f35b34801561063257600080fd5b5061064d60048036038101906106489190612e8f565b6118d2565b60405161065a9190613457565b60405180910390f35b34801561066f57600080fd5b506106786118e5565b6040516106859190613457565b60405180910390f35b34801561069a57600080fd5b506106a36118eb565b6040516106b09190613457565b60405180910390f35b3480156106c557600080fd5b506106e060048036038101906106db9190612d3d565b611930565b005b3480156106ee57600080fd5b5061070960048036038101906107049190612c9c565b611a1e565b6040516107169190613457565b60405180910390f35b61073960048036038101906107349190612d01565b611b65565b604051610746919061325e565b60405180910390f35b34801561075b57600080fd5b5061077660048036038101906107719190612c9c565b612195565b005b34801561078457600080fd5b5061078d612267565b60405161079a9190613457565b60405180910390f35b3480156107af57600080fd5b506107b861226d565b6040516107c59190613457565b60405180910390f35b3480156107da57600080fd5b506107e3612273565b6040516107f091906131e3565b60405180910390f35b34801561080557600080fd5b50610820600480360381019061081b9190612c9c565b612299565b60405161082d919061325e565b60405180910390f35b34801561084257600080fd5b5061084b6122f6565b005b34801561085957600080fd5b50610874600480360381019061086f9190612c9c565b612352565b6040516108819190613457565b60405180910390f35b34801561089657600080fd5b506108b160048036038101906108ac9190612ee1565b61239b565b005b3480156108bf57600080fd5b506108da60048036038101906108d59190612e3d565b61243b565b6040516108e7919061325e565b60405180910390f35b3480156108fc57600080fd5b5061090561246e565b6040516109129190613457565b60405180910390f35b34801561092757600080fd5b50610942600480360381019061093d9190612f1d565b612478565b005b61094c610cae565b604051610959919061325e565b60405180910390f35b34801561096e57600080fd5b50610977612530565b60405161098491906131e3565b60405180910390f35b34801561099957600080fd5b506109a2612556565b6040516109af9190613457565b60405180910390f35b3480156109c457600080fd5b506109cd61255c565b6040516109da9190613457565b60405180910390f35b3480156109ef57600080fd5b50610a0a6004803603810190610a059190612c9c565b612562565b005b610a266004803603810190610a219190612e8f565b612634565b604051610a339190613457565b60405180910390f35b348015610a4857600080fd5b50610a51612671565b604051610a5e919061325e565b60405180910390f35b610a816004803603810190610a7c9190612c9c565b6126a2565b604051610a8e919061325e565b60405180910390f35b348015610aa357600080fd5b50610aac6127eb565b604051610ab99190613457565b60405180910390f35b348015610ace57600080fd5b50610ae96004803603810190610ae49190612c9c565b6127f1565b604051610af893929190613472565b60405180910390f35b348015610b0d57600080fd5b50610b1661286f565b604051610b2a989796959493929190613279565b60405180910390f35b348015610b3f57600080fd5b50610b486128d6565b604051610b55919061325e565b60405180910390f35b348015610b6a57600080fd5b50610b736128e9565b604051610b809190613457565b60405180910390f35b348015610b9557600080fd5b50610bb06004803603810190610bab9190612db4565b6128ef565b005b348015610bbe57600080fd5b50610bc76129d9565b005b348015610bd557600080fd5b50610bde612a84565b604051610beb9190613457565b60405180910390f35b348015610c0057600080fd5b50610c1b6004803603810190610c169190612c9c565b612a8a565b005b348015610c2957600080fd5b50610c32612b5b565b604051610c3f919061325e565b60405180910390f35b348015610c5457600080fd5b50610c6f6004803603810190610c6a9190612e8f565b612b88565b604051610c7c9190613457565b60405180910390f35b348015610c9157600080fd5b50610cac6004803603810190610ca79190612e8f565b612b9b565b005b6000610cdd600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000611b65565b905090565b6000808360148190555082601581905550601454601554915091509250929050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415610f5857600080600090505b600115610e0c57610d8981612634565b9150600181610d9891906134e3565b9050600073ffffffffffffffffffffffffffffffffffffffff166017600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610e0757610e0c565b610d79565b846017600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610f555783601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50505b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080600354600454915091509091565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461103f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611036906132f7565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060011515601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111090613417565b60405180910390fd5b60011515601260009054906101000a900460ff1615151461116f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116690613337565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d690613377565b60405180910390fd5b6000839050600034905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161124691906131e3565b60206040518083038186803b15801561125e57600080fd5b505afa158015611272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112969190612eb8565b905060006112a387611a1e565b9050600d548310156112ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e1906133f7565b60405180910390fd5b8082101561132d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132490613437565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633846040518463ffffffff1660e01b815260040161138c939291906131fe565b602060405180830381600087803b1580156113a657600080fd5b505af11580156113ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113de9190612e66565b507f79c46aa1e9414f1ec17fe2ddf0a792ed052464f117504d03be80e05734ce37c88160405161140e9190613457565b60405180910390a16001601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600061147a338861177e565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146115ff5760008573ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156114f857600080fd5b505afa15801561150c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115309190612eb8565b90508573ffffffffffffffffffffffffffffffffffffffff166323b872dd600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168484600a61157f91906135bd565b60145461158c91906136db565b6040518463ffffffff1660e01b81526004016115aa939291906131fe565b602060405180830381600087803b1580156115c457600080fd5b505af11580156115d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fc9190612e66565b50505b6116093382610d28565b50600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611672573d6000803e3d6000fd5b5060019550505050505092915050565b60095481565b60006116b6600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611b65565b9050919050565b6000601260009054906101000a900460ff16905090565b60045481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175f906132f7565b60405180910390fd5b80600d8190555050565b600d5481565b600e5481565b600080601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561184f576017600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461188b5780915050611891565b60009150505b92915050565b60006118c5600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611083565b9050919050565b600f5481565b6000816014819055506014549050919050565b60105481565b600060016011546118fc91906134e3565b6011819055506a0fffffffffffffffffffff60115411156119205760006011819055505b61192b601154612634565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b5906132f7565b60405180910390fd5b84600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600d8190555080601081905550611a17838361239b565b5050505050565b60008082905060008173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015611a6c57600080fd5b505afa158015611a80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa49190612eb8565b9050600081600a611ab591906135bd565b600e54611ac291906136db565b9050600082600a611ad391906135bd565b600f54611ae091906136db565b90506000611aec6118eb565b905060008282611afc9190613803565b9050828482611b0b91906134e3565b11611b1f578381611b1c91906134e3565b90505b600060105486611b2f9190613735565b600a611b3b91906135bd565b9050808183611b4a9190613539565b611b5491906136db565b915081975050505050505050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611bd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcd90613377565b60405180910390fd5b6000839050600034905060008273ffffffffffffffffffffffffffffffffffffffff166370a0823160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401611c3b91906131e3565b60206040518083038186803b158015611c5357600080fd5b505afa158015611c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8b9190612eb8565b9050600254821015611cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc9906133b7565b60405180910390fd5b6000429050611cdf6122f6565b600060035411611d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1b90613317565b60405180910390fd5b6006548111158015611d4a575060001515600760009054906101000a900460ff16151514155b611d89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8090613397565b60405180910390fd5b600060045460035485611d9c91906136db565b611da69190613539565b905060008573ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015611df057600080fd5b505afa158015611e04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e289190612eb8565b6012611e349190613735565b90506000811015611e7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7190613357565b60405180910390fd5b80600a611e8791906135bd565b82611e929190613539565b915081841015611ed7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ece90613437565b60405180910390fd5b60008211611f1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f11906133d7565b60405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff166323b872dd60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633856040518463ffffffff1660e01b8152600401611f77939291906131fe565b602060405180830381600087803b158015611f9157600080fd5b505af1158015611fa5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc99190612e66565b506000611fd6338a61177e565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146120d7578673ffffffffffffffffffffffffffffffffffffffff166323b872dd60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836127108760155461205b91906136db565b6120659190613539565b6040518463ffffffff1660e01b8152600401612083939291906131fe565b602060405180830381600087803b15801561209d57600080fd5b505af11580156120b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d59190612e66565b505b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561213d573d6000803e3d6000fd5b506121483382610d28565b507fe27bc0da3aa888f5d97abb6ca851d9bccdc77cc8a8b1b3715e3b5ee034c44e8a6003548460405161217c9291906134a9565b60405180910390a1600197505050505050505092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221a906132f7565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60035481565b60085481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060011515601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515149050919050565b6000429050600060085411801561230f5750600a548110155b801561231d5750600b548111155b1561234f57600854600381905550600954600481905550600a54600581905550600b5460068190555060006008819055505b50565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612429576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612420906132f7565b60405180910390fd5b81600e8190555080600f819055505050565b600081601260006101000a81548160ff021916908315150217905550601260009054906101000a900460ff169050919050565b6000600d54905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612506576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124fd906132f7565b60405180910390fd5b836008819055508260098190555081600a8190555080600b8190555061252a6122f6565b50505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b60055481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146125f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e7906132f7565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600044424143338660405160200161265196959493929190613173565b6040516020818303038152906040528051906020012060001c9050919050565b600080601260006101000a81548160ff021916908315150217905550601260009054906101000a900460ff16905090565b60008082905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016126e391906131e3565b60206040518083038186803b1580156126fb57600080fd5b505afa15801561270f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127339190612eb8565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401612790929190613235565b602060405180830381600087803b1580156127aa57600080fd5b505af11580156127be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e29190612e66565b92505050919050565b600a5481565b60008060008060011515601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515149050600d54601260009054906101000a900460ff1682935093509350509193909250565b600080600080600080600080600060065442111580156128a3575060001515600760009054906101000a900460ff16151514155b905080600254600354600454601454601554600e54600f5498509850985098509850985098509850509091929394959697565b600760009054906101000a900460ff1681565b600b5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461297d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612974906132f7565b60405180910390fd5b85600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550846002819055506129d184848484612478565b505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612a67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5e906132f7565b60405180910390fd5b6000600760006101000a81548160ff021916908315150217905550565b60065481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0f906132f7565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006006544211158015612b83575060001515600760009054906101000a900460ff16151514155b905090565b6000816015819055506015549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c20906132f7565b60405180910390fd5b8060108190555050565b600081359050612c4281613abb565b92915050565b600081359050612c5781613ad2565b92915050565b600081519050612c6c81613ad2565b92915050565b600081359050612c8181613ae9565b92915050565b600081519050612c9681613ae9565b92915050565b600060208284031215612cae57600080fd5b6000612cbc84828501612c33565b91505092915050565b60008060408385031215612cd857600080fd5b6000612ce685828601612c33565b9250506020612cf785828601612c33565b9150509250929050565b60008060408385031215612d1457600080fd5b6000612d2285828601612c33565b9250506020612d3385828601612c72565b9150509250929050565b600080600080600060a08688031215612d5557600080fd5b6000612d6388828901612c33565b9550506020612d7488828901612c72565b9450506040612d8588828901612c72565b9350506060612d9688828901612c72565b9250506080612da788828901612c72565b9150509295509295909350565b60008060008060008060c08789031215612dcd57600080fd5b6000612ddb89828a01612c33565b9650506020612dec89828a01612c72565b9550506040612dfd89828a01612c72565b9450506060612e0e89828a01612c72565b9350506080612e1f89828a01612c72565b92505060a0612e3089828a01612c72565b9150509295509295509295565b600060208284031215612e4f57600080fd5b6000612e5d84828501612c48565b91505092915050565b600060208284031215612e7857600080fd5b6000612e8684828501612c5d565b91505092915050565b600060208284031215612ea157600080fd5b6000612eaf84828501612c72565b91505092915050565b600060208284031215612eca57600080fd5b6000612ed884828501612c87565b91505092915050565b60008060408385031215612ef457600080fd5b6000612f0285828601612c72565b9250506020612f1385828601612c72565b9150509250929050565b60008060008060808587031215612f3357600080fd5b6000612f4187828801612c72565b9450506020612f5287828801612c72565b9350506040612f6387828801612c72565b9250506060612f7487828801612c72565b91505092959194509250565b612f91612f8c8261377b565b6137d5565b82525050565b612fa081613769565b82525050565b612fb7612fb282613769565b6137c3565b82525050565b612fc68161378d565b82525050565b6000612fd96022836134d2565b9150612fe4826138ac565b604082019050919050565b6000612ffc6019836134d2565b9150613007826138fb565b602082019050919050565b600061301f6013836134d2565b915061302a82613924565b602082019050919050565b60006130426013836134d2565b915061304d8261394d565b602082019050919050565b60006130656018836134d2565b915061307082613976565b602082019050919050565b60006130886016836134d2565b91506130938261399f565b602082019050919050565b60006130ab6013836134d2565b91506130b6826139c8565b602082019050919050565b60006130ce6019836134d2565b91506130d9826139f1565b602082019050919050565b60006130f16028836134d2565b91506130fc82613a1a565b604082019050919050565b60006131146010836134d2565b915061311f82613a69565b602082019050919050565b60006131376020836134d2565b915061314282613a92565b602082019050919050565b613156816137b9565b82525050565b61316d613168826137b9565b6137f9565b82525050565b600061317f828961315c565b60208201915061318f828861315c565b60208201915061319f8287612f80565b6014820191506131af828661315c565b6020820191506131bf8285612fa6565b6014820191506131cf828461315c565b602082019150819050979650505050505050565b60006020820190506131f86000830184612f97565b92915050565b60006060820190506132136000830186612f97565b6132206020830185612f97565b61322d604083018461314d565b949350505050565b600060408201905061324a6000830185612f97565b613257602083018461314d565b9392505050565b60006020820190506132736000830184612fbd565b92915050565b60006101008201905061328f600083018b612fbd565b61329c602083018a61314d565b6132a9604083018961314d565b6132b6606083018861314d565b6132c3608083018761314d565b6132d060a083018661314d565b6132dd60c083018561314d565b6132ea60e083018461314d565b9998505050505050505050565b6000602082019050818103600083015261331081612fcc565b9050919050565b6000602082019050818103600083015261333081612fef565b9050919050565b6000602082019050818103600083015261335081613012565b9050919050565b6000602082019050818103600083015261337081613035565b9050919050565b6000602082019050818103600083015261339081613058565b9050919050565b600060208201905081810360008301526133b08161307b565b9050919050565b600060208201905081810360008301526133d08161309e565b9050919050565b600060208201905081810360008301526133f0816130c1565b9050919050565b60006020820190508181036000830152613410816130e4565b9050919050565b6000602082019050818103600083015261343081613107565b9050919050565b600060208201905081810360008301526134508161312a565b9050919050565b600060208201905061346c600083018461314d565b92915050565b6000606082019050613487600083018661314d565b6134946020830185612fbd565b6134a16040830184612fbd565b949350505050565b60006040820190506134be600083018561314d565b6134cb602083018461314d565b9392505050565b600082825260208201905092915050565b60006134ee826137b9565b91506134f9836137b9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561352e5761352d613834565b5b828201905092915050565b6000613544826137b9565b915061354f836137b9565b92508261355f5761355e613863565b5b828204905092915050565b6000808291508390505b60018511156135b4578086048111156135905761358f613834565b5b600185161561359f5780820291505b80810290506135ad8561389f565b9450613574565b94509492505050565b60006135c8826137b9565b91506135d3836137b9565b92506136007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613608565b905092915050565b60008261361857600190506136d4565b8161362657600090506136d4565b816001811461363c576002811461364657613675565b60019150506136d4565b60ff84111561365857613657613834565b5b8360020a91508482111561366f5761366e613834565b5b506136d4565b5060208310610133831016604e8410600b84101617156136aa5782820a9050838111156136a5576136a4613834565b5b6136d4565b6136b7848484600161356a565b925090508184048111156136ce576136cd613834565b5b81810290505b9392505050565b60006136e6826137b9565b91506136f1836137b9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561372a57613729613834565b5b828202905092915050565b6000613740826137b9565b915061374b836137b9565b92508282101561375e5761375d613834565b5b828203905092915050565b600061377482613799565b9050919050565b600061378682613799565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006137ce826137e7565b9050919050565b60006137e0826137e7565b9050919050565b60006137f282613892565b9050919050565b6000819050919050565b600061380e826137b9565b9150613819836137b9565b92508261382957613828613863565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008160601b9050919050565b60008160011c9050919050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f60008201527f6e2e000000000000000000000000000000000000000000000000000000000000602082015250565b7f506c6561736520736574207072696365206f6620746f6b656e00000000000000600082015250565b7f436c61696d65642069732066696e697368656400000000000000000000000000600082015250565b7f446563696d616c7320697320696e76616c696400000000000000000000000000600082015250565b7f506c656173652073657420746f6b656e20616464726573730000000000000000600082015250565b7f546f6b656e2073616c652069732066696e697368656400000000000000000000600082015250565b7f596f7520616d6f756e7420746f20736d616c6c00000000000000000000000000600082015250565b7f596f7520616d6f756e7420746f6b656e20746f20736d616c6c00000000000000600082015250565b7f596f75206e65656420746f2073656e6420736f6d65206665652e20466565207460008201527f6f20736d616c6c2e000000000000000000000000000000000000000000000000602082015250565b7f4164647265737320697320657869737400000000000000000000000000000000600082015250565b7f4e6f7420656e6f75676820746f6b656e7320696e207468652072657365727665600082015250565b613ac481613769565b8114613acf57600080fd5b50565b613adb8161378d565b8114613ae657600080fd5b50565b613af2816137b9565b8114613afd57600080fd5b5056fea2646970667358221220b54b87475897c8e48472a26fc10233828445242a61b6cef4bc6e4ed14d48988b64736f6c63430008040033

Deployed ByteCode Sourcemap

1372:12336:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4280:5;:3;:5::i;:::-;;1372:12336;;;;;12023:245;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;969:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12596:630;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4305:138;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;5150:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8855:1281;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1722:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5956:141;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10286:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1534:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8191:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1949:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1980;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13367:338;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10144:134;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2011:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12435:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2042:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11520:234;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7748:316;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10871:637;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6109:1509;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4119:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1499:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1690:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1433:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10384:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5522:422;;;;;;;;;;;;;:::i;:::-;;13238:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8433:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8720:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10521:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3831:279;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7626:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1914:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1468:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1573:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8077:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11766:229;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8602:106;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5269:241;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1758:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10622:237;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;4689:449;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;1651:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1795:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3525:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4600:77;;;;;;;;;;;;;:::i;:::-;;1613:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1248:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4455:133;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12280:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8303:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7626:97;7664:4;7688:26;7697:13;;;;;;;;;;;7712:1;7688:8;:26::i;:::-;7681:33;;7626:97;:::o;12023:245::-;12096:7;12105;12148:11;12125:20;:34;;;;12191:9;12170:18;:30;;;;12219:20;;12241:18;;12211:49;;;;12023:245;;;;;:::o;969:28::-;;;;;;;;;;;;:::o;12596:630::-;12666:7;12713:1;12690:9;:19;12700:8;12690:19;;;;;;;;;;;;;;;;:24;12686:496;;;12730:12;12757:13;12773:1;12757:17;;12789:203;12795:4;12789:203;;;12840:22;12856:5;12840:15;:22::i;:::-;12833:29;;12890:1;12881:10;;;;;:::i;:::-;;;12946:1;12914:34;;:14;:20;12929:4;12914:20;;;;;;;;;;;;;;;;;;;;;:34;;;12910:66;;;12971:5;;12910:66;12789:203;;;13029:8;13006:14;:20;13021:4;13006:20;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;13074:4;13052:9;:19;13062:8;13052:19;;;;;;;;;;;;;;;:26;;;;13114:1;13096:20;;:6;:20;;;13093:77;;13164:6;13135:16;:26;13152:8;13135:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;13093:77;12686:496;;;13199:9;:19;13209:8;13199:19;;;;;;;;;;;;;;;;13192:26;;12596:630;;;;:::o;4305:138::-;4349:13;4364:17;4402:13;;4417:17;;4394:41;;;;4305:138;;:::o;5150:107::-;1147:13;;;;;;;;;;1133:27;;:10;:27;;;1111:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;5235:14:::1;5219:13;;:30;;;;;;;;;;;;;;;;;;5150:107:::0;:::o;8855:1281::-;8945:4;9003;8970:37;;:17;:29;8988:10;8970:29;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;;8962:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9059:4;9047:16;;:8;;;;;;;;;;;:16;;;9039:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9132:1;9106:28;;:14;:28;;;;9098:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;9174:11;9194:14;9174:35;;9220:19;9242:9;9220:31;;9262:21;9286:5;:15;;;9310:13;;;;;;;;;;;9286:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9262:63;;9336:20;9359:33;9377:14;9359:17;:33::i;:::-;9336:56;;9426:9;;9411:11;:24;;9403:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;9516:12;9499:13;:29;;9491:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9576:5;:18;;;9595:13;;;;;;;;;;;9610:10;9622:12;9576:59;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9651:24;9662:12;9651:24;;;;;;:::i;:::-;;;;;;;;9718:4;9686:17;:29;9704:10;9686:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;9733:14;9750:44;9768:10;9780:13;9750:17;:44::i;:::-;9733:61;;9827:1;9809:20;;:6;:20;;;9805:195;;9855:16;9874:5;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9855:35;;9905:5;:18;;;9924:13;;;;;;;;;;;9939:6;9977:8;9971:2;:14;;;;:::i;:::-;9947:20;;:39;;;;:::i;:::-;9905:82;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9805:195;;10010:31;10022:10;10034:6;10010:11;:31::i;:::-;;10060:13;;;;;;;;;;;10052:31;;:54;10084:21;10052:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10124:4;10117:11;;;;;;;8855:1281;;;;:::o;1722:29::-;;;;:::o;5956:141::-;6027:4;6051:38;6060:13;;;;;;;;;;;6075;6051:8;:38::i;:::-;6044:45;;5956:141;;;:::o;10286:80::-;10325:4;10349:8;;;;;;;;;;;10342:15;;10286:80;:::o;1534:32::-;;;;:::o;8191:98::-;1147:13;;;;;;;;;;1133:27;;:10;:27;;;1111:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;8271:10:::1;8259:9;:22;;;;8191:98:::0;:::o;1949:24::-;;;;:::o;1980:::-;;;;:::o;13367:338::-;13455:7;13475:14;13492:16;:26;13509:8;13492:26;;;;;;;;;;;;;;;;;;;;;;;;;13475:43;;13551:1;13533:20;;:6;:20;;;13529:77;;;13577:14;:29;13592:13;13577:29;;;;;;;;;;;;;;;;;;;;;13568:38;;13529:77;13631:10;13621:20;;:6;:20;;;13617:52;;13663:6;13656:13;;;;;13617:52;13695:1;13680:17;;;13367:338;;;;;:::o;10144:134::-;10205:4;10229:40;10240:13;;;;;;;;;;;10255;10229:10;:40::i;:::-;10222:47;;10144:134;;;:::o;2011:24::-;;;;:::o;12435:149::-;12489:7;12532:6;12509:20;:29;;;;12556:20;;12549:27;;12435:149;;;:::o;2042:28::-;;;;:::o;11520:234::-;11553:7;11598:1;11585:10;;:14;;;;:::i;:::-;11572:10;:27;;;;11627:23;11614:10;;:36;11610:92;;;11689:1;11676:10;:14;;;;11610:92;11719:27;11735:10;;11719:15;:27::i;:::-;11712:34;;11520:234;:::o;7748:316::-;1147:13;;;;;;;;;;1133:27;;:10;:27;;;1111:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;7919:14:::1;7903:13;;:30;;;;;;;;;;;;;;;;;;7956:10;7944:9;:22;;;;7993:13;7977;:29;;;;8017:39;8031:11;8044;8017:13;:39::i;:::-;7748:316:::0;;;;;:::o;10871:637::-;10937:7;10956:11;10976:14;10956:35;;11002:13;11018:5;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11002:32;;11045:11;11085:8;11071:2;:23;;;;:::i;:::-;11059:9;;:35;;;;:::i;:::-;11045:49;;11105:11;11145:8;11131:2;:23;;;;:::i;:::-;11119:9;;:35;;;;:::i;:::-;11105:49;;11165:20;11188:8;:6;:8::i;:::-;11165:31;;11207:14;11239:3;11224:12;:18;;;;:::i;:::-;11207:35;;11273:3;11266;11257:6;:12;;;;:::i;:::-;:19;11253:82;;11320:3;11311:6;:12;;;;:::i;:::-;11302:21;;11253:82;11355:21;11404:13;;11393:8;:24;;;;:::i;:::-;11379:2;:39;;;;:::i;:::-;11355:63;;11463:13;11447;11438:6;:22;;;;:::i;:::-;:38;;;;:::i;:::-;11429:47;;11494:6;11487:13;;;;;;;;;10871:637;;;:::o;6109:1509::-;6197:4;6248:1;6222:28;;:14;:28;;;;6214:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;6290:11;6310:14;6290:35;;6336:19;6358:9;6336:31;;6378:21;6402:5;:15;;;6426:13;;;;;;;;;;6402:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6378:63;;6475:9;;6460:11;:24;;6452:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;6519:20;6542:15;6519:38;;6568:12;:10;:12::i;:::-;6615:1;6599:13;;:17;6591:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;6681:16;;6665:12;:32;;:58;;;;;6718:5;6701:22;;:13;;;;;;;;;;;:22;;;;6665:58;6657:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;6761:18;6812:17;;6796:13;;6782:11;:27;;;;:::i;:::-;:47;;;;:::i;:::-;6761:68;;6840:16;6864:5;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6859:2;:21;;;;:::i;:::-;6840:40;;6911:1;6899:8;:13;;6891:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;6980:8;6974:2;:14;;;;:::i;:::-;6960:10;:29;;;;:::i;:::-;6947:42;;7025:10;7008:13;:27;;7000:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7104:1;7091:10;:14;7083:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;7146:5;:18;;;7165:13;;;;;;;;;;7180:10;7192;7146:57;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7214:14;7231:44;7249:10;7261:13;7231:17;:44::i;:::-;7214:61;;7308:1;7290:20;;:6;:20;;;7286:145;;7336:5;:18;;;7355:13;;;;;;;;;;7370:6;7412:5;7399:10;7378:18;;:31;;;;:::i;:::-;:39;;;;:::i;:::-;7336:82;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7286:145;7449:13;;;;;;;;;;7441:31;;:54;7473:21;7441:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7506:31;7518:10;7530:6;7506:11;:31::i;:::-;;7553:35;7562:13;;7577:10;7553:35;;;;;;;:::i;:::-;;;;;;;;7606:4;7599:11;;;;;;;;;6109:1509;;;;:::o;4119:114::-;1147:13;;;;;;;;;;1133:27;;:10;:27;;;1111:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;4211:14:::1;4195:13;;:30;;;;;;;;;;;;;;;;;;4119:114:::0;:::o;1499:28::-;;;;:::o;1690:25::-;;;;:::o;1433:28::-;;;;;;;;;;;;;:::o;10384:125::-;10441:4;10496;10465:35;;:17;:27;10483:8;10465:27;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;10458:42;;10384:125;;;:::o;5522:422::-;5562:20;5585:15;5562:38;;5628:1;5615:10;;:14;:49;;;;;5649:15;;5633:12;:31;;5615:49;:82;;;;;5684:13;;5668:12;:29;;5615:82;5611:326;;;5739:10;;5723:13;:26;;;;5784:14;;5764:17;:34;;;;5834:15;;5813:18;:36;;;;5883:13;;5864:16;:32;;;;5924:1;5911:10;:14;;;;5611:326;5522:422;:::o;13238:117::-;13301:7;13328:9;:19;13338:8;13328:19;;;;;;;;;;;;;;;;13321:26;;13238:117;;;:::o;8433:157::-;1147:13;;;;;;;;;;1133:27;;:10;:27;;;1111:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;8537:11:::1;8525:9;:23;;;;8571:11;8559:9;:23;;;;8433:157:::0;;:::o;8720:124::-;8771:4;8800:9;8788:8;;:21;;;;;;;;;;;;;;;;;;8828:8;;;;;;;;;;;8821:15;;8720:124;;;:::o;10521:85::-;10561:7;10588:9;;10581:16;;10521:85;:::o;3831:279::-;1147:13;;;;;;;;;;1133:27;;:10;:27;;;1111:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;3962:6:::1;3949:10;:19;;;;3996:9;3979:14;:26;;;;4034:10;4016:15;:28;;;;4071:8;4055:13;:24;;;;4090:12;:10;:12::i;:::-;3831:279:::0;;;;:::o;1914:28::-;;;;;;;;;;;;;:::o;1468:24::-;;;;:::o;1573:33::-;;;;:::o;8077:102::-;1147:13;;;;;;;;;;1133:27;;:10;:27;;;1111:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;8163:8:::1;8147:13;;:24;;;;;;;;;;;;;;;;;;8077:102:::0;:::o;11766:229::-;11835:7;11896:16;11914:15;11931:14;11947:12;11961:10;11973:11;11879:106;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11869:117;;;;;;11861:126;;11854:133;;11766:229;;;:::o;8602:106::-;8639:4;8668:5;8656:8;;:17;;;;;;;;;;;;;;;;;;8692:8;;;;;;;;;;;8685:15;;8602:106;:::o;5269:241::-;5335:4;5352:11;5372:14;5352:35;;5398:15;5416:5;:15;;;5440:4;5416:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5398:48;;5464:5;:14;;;5479:13;;;;;;;;;;5494:7;5464:38;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5457:45;;;;5269:241;;;:::o;1758:30::-;;;;:::o;10622:237::-;10680:11;10693:19;10714:15;10742:16;10793:4;10762:35;;:17;:27;10780:8;10762:27;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;10742:56;;10817:9;;10828:8;;;;;;;;;;;10838:11;10809:41;;;;;;;10622:237;;;;;:::o;4689:449::-;4732:12;4746:18;4766:13;4781:17;4800:19;4821:17;4840:24;4866;4902:19;4944:16;;4925:15;:35;;:61;;;;;4981:5;4964:22;;:13;;;;;;;;;;;:22;;;;4925:61;4902:85;;5006:14;5022:9;;5033:13;;5048:17;;5067:20;;5089:18;;5109:9;;5120;;4998:132;;;;;;;;;;;;;;;;;4689:449;;;;;;;;:::o;1651:32::-;;;;;;;;;;;;;:::o;1795:28::-;;;;:::o;3525:297::-;1147:13;;;;;;;;;;1133:27;;:10;:27;;;1111:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;3707:14:::1;3691:13;;:30;;;;;;;;;;;;;;;;;;3744:10;3732:9;:22;;;;3765:49;3774:6;3782:9;3793:10;3805:8;3765;:49::i;:::-;3525:297:::0;;;;;;:::o;4600:77::-;1147:13;;;;;;;;;;1133:27;;:10;:27;;;1111:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;4664:5:::1;4648:13;;:21;;;;;;;;;;;;;;;;;;4600:77::o:0;1613:31::-;;;;:::o;1248:117::-;1147:13;;;;;;;;;;1133:27;;:10;:27;;;1111:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;1343:14:::1;1327:13;::::0;:30:::1;;;;;;;;;;;;;;;;;;1248:117:::0;:::o;4455:133::-;4493:4;4537:16;;4518:15;:35;;:61;;;;;4574:5;4557:22;;:13;;;;;;;;;;;:22;;;;4518:61;4510:70;;4455:133;:::o;12280:143::-;12332:7;12373:6;12352:18;:27;;;;12397:18;;12390:25;;12280:143;;;:::o;8303:114::-;1147:13;;;;;;;;;;1133:27;;:10;:27;;;1111:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;8395:14:::1;8379:13;:30;;;;8303:114:::0;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:133::-;195:5;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;201:84;;;;:::o;291:137::-;345:5;376:6;370:13;361:22;;392:30;416:5;392:30;:::i;:::-;351:77;;;;:::o;434:139::-;480:5;518:6;505:20;496:29;;534:33;561:5;534:33;:::i;:::-;486:87;;;;:::o;579:143::-;636:5;667:6;661:13;652:22;;683:33;710:5;683:33;:::i;:::-;642:80;;;;:::o;728:262::-;787:6;836:2;824:9;815:7;811:23;807:32;804:2;;;852:1;849;842:12;804:2;895:1;920:53;965:7;956:6;945:9;941:22;920:53;:::i;:::-;910:63;;866:117;794:196;;;;:::o;996:407::-;1064:6;1072;1121:2;1109:9;1100:7;1096:23;1092:32;1089:2;;;1137:1;1134;1127:12;1089:2;1180:1;1205:53;1250:7;1241:6;1230:9;1226:22;1205:53;:::i;:::-;1195:63;;1151:117;1307:2;1333:53;1378:7;1369:6;1358:9;1354:22;1333:53;:::i;:::-;1323:63;;1278:118;1079:324;;;;;:::o;1409:407::-;1477:6;1485;1534:2;1522:9;1513:7;1509:23;1505:32;1502:2;;;1550:1;1547;1540:12;1502:2;1593:1;1618:53;1663:7;1654:6;1643:9;1639:22;1618:53;:::i;:::-;1608:63;;1564:117;1720:2;1746:53;1791:7;1782:6;1771:9;1767:22;1746:53;:::i;:::-;1736:63;;1691:118;1492:324;;;;;:::o;1822:844::-;1917:6;1925;1933;1941;1949;1998:3;1986:9;1977:7;1973:23;1969:33;1966:2;;;2015:1;2012;2005:12;1966:2;2058:1;2083:53;2128:7;2119:6;2108:9;2104:22;2083:53;:::i;:::-;2073:63;;2029:117;2185:2;2211:53;2256:7;2247:6;2236:9;2232:22;2211:53;:::i;:::-;2201:63;;2156:118;2313:2;2339:53;2384:7;2375:6;2364:9;2360:22;2339:53;:::i;:::-;2329:63;;2284:118;2441:2;2467:53;2512:7;2503:6;2492:9;2488:22;2467:53;:::i;:::-;2457:63;;2412:118;2569:3;2596:53;2641:7;2632:6;2621:9;2617:22;2596:53;:::i;:::-;2586:63;;2540:119;1956:710;;;;;;;;:::o;2672:990::-;2776:6;2784;2792;2800;2808;2816;2865:3;2853:9;2844:7;2840:23;2836:33;2833:2;;;2882:1;2879;2872:12;2833:2;2925:1;2950:53;2995:7;2986:6;2975:9;2971:22;2950:53;:::i;:::-;2940:63;;2896:117;3052:2;3078:53;3123:7;3114:6;3103:9;3099:22;3078:53;:::i;:::-;3068:63;;3023:118;3180:2;3206:53;3251:7;3242:6;3231:9;3227:22;3206:53;:::i;:::-;3196:63;;3151:118;3308:2;3334:53;3379:7;3370:6;3359:9;3355:22;3334:53;:::i;:::-;3324:63;;3279:118;3436:3;3463:53;3508:7;3499:6;3488:9;3484:22;3463:53;:::i;:::-;3453:63;;3407:119;3565:3;3592:53;3637:7;3628:6;3617:9;3613:22;3592:53;:::i;:::-;3582:63;;3536:119;2823:839;;;;;;;;:::o;3668:256::-;3724:6;3773:2;3761:9;3752:7;3748:23;3744:32;3741:2;;;3789:1;3786;3779:12;3741:2;3832:1;3857:50;3899:7;3890:6;3879:9;3875:22;3857:50;:::i;:::-;3847:60;;3803:114;3731:193;;;;:::o;3930:278::-;3997:6;4046:2;4034:9;4025:7;4021:23;4017:32;4014:2;;;4062:1;4059;4052:12;4014:2;4105:1;4130:61;4183:7;4174:6;4163:9;4159:22;4130:61;:::i;:::-;4120:71;;4076:125;4004:204;;;;:::o;4214:262::-;4273:6;4322:2;4310:9;4301:7;4297:23;4293:32;4290:2;;;4338:1;4335;4328:12;4290:2;4381:1;4406:53;4451:7;4442:6;4431:9;4427:22;4406:53;:::i;:::-;4396:63;;4352:117;4280:196;;;;:::o;4482:284::-;4552:6;4601:2;4589:9;4580:7;4576:23;4572:32;4569:2;;;4617:1;4614;4607:12;4569:2;4660:1;4685:64;4741:7;4732:6;4721:9;4717:22;4685:64;:::i;:::-;4675:74;;4631:128;4559:207;;;;:::o;4772:407::-;4840:6;4848;4897:2;4885:9;4876:7;4872:23;4868:32;4865:2;;;4913:1;4910;4903:12;4865:2;4956:1;4981:53;5026:7;5017:6;5006:9;5002:22;4981:53;:::i;:::-;4971:63;;4927:117;5083:2;5109:53;5154:7;5145:6;5134:9;5130:22;5109:53;:::i;:::-;5099:63;;5054:118;4855:324;;;;;:::o;5185:698::-;5271:6;5279;5287;5295;5344:3;5332:9;5323:7;5319:23;5315:33;5312:2;;;5361:1;5358;5351:12;5312:2;5404:1;5429:53;5474:7;5465:6;5454:9;5450:22;5429:53;:::i;:::-;5419:63;;5375:117;5531:2;5557:53;5602:7;5593:6;5582:9;5578:22;5557:53;:::i;:::-;5547:63;;5502:118;5659:2;5685:53;5730:7;5721:6;5710:9;5706:22;5685:53;:::i;:::-;5675:63;;5630:118;5787:2;5813:53;5858:7;5849:6;5838:9;5834:22;5813:53;:::i;:::-;5803:63;;5758:118;5302:581;;;;;;;:::o;5889:189::-;6010:61;6038:32;6064:5;6038:32;:::i;:::-;6010:61;:::i;:::-;6005:3;5998:74;5988:90;;:::o;6084:118::-;6171:24;6189:5;6171:24;:::i;:::-;6166:3;6159:37;6149:53;;:::o;6208:157::-;6313:45;6333:24;6351:5;6333:24;:::i;:::-;6313:45;:::i;:::-;6308:3;6301:58;6291:74;;:::o;6371:109::-;6452:21;6467:5;6452:21;:::i;:::-;6447:3;6440:34;6430:50;;:::o;6486:366::-;6628:3;6649:67;6713:2;6708:3;6649:67;:::i;:::-;6642:74;;6725:93;6814:3;6725:93;:::i;:::-;6843:2;6838:3;6834:12;6827:19;;6632:220;;;:::o;6858:366::-;7000:3;7021:67;7085:2;7080:3;7021:67;:::i;:::-;7014:74;;7097:93;7186:3;7097:93;:::i;:::-;7215:2;7210:3;7206:12;7199:19;;7004:220;;;:::o;7230:366::-;7372:3;7393:67;7457:2;7452:3;7393:67;:::i;:::-;7386:74;;7469:93;7558:3;7469:93;:::i;:::-;7587:2;7582:3;7578:12;7571:19;;7376:220;;;:::o;7602:366::-;7744:3;7765:67;7829:2;7824:3;7765:67;:::i;:::-;7758:74;;7841:93;7930:3;7841:93;:::i;:::-;7959:2;7954:3;7950:12;7943:19;;7748:220;;;:::o;7974:366::-;8116:3;8137:67;8201:2;8196:3;8137:67;:::i;:::-;8130:74;;8213:93;8302:3;8213:93;:::i;:::-;8331:2;8326:3;8322:12;8315:19;;8120:220;;;:::o;8346:366::-;8488:3;8509:67;8573:2;8568:3;8509:67;:::i;:::-;8502:74;;8585:93;8674:3;8585:93;:::i;:::-;8703:2;8698:3;8694:12;8687:19;;8492:220;;;:::o;8718:366::-;8860:3;8881:67;8945:2;8940:3;8881:67;:::i;:::-;8874:74;;8957:93;9046:3;8957:93;:::i;:::-;9075:2;9070:3;9066:12;9059:19;;8864:220;;;:::o;9090:366::-;9232:3;9253:67;9317:2;9312:3;9253:67;:::i;:::-;9246:74;;9329:93;9418:3;9329:93;:::i;:::-;9447:2;9442:3;9438:12;9431:19;;9236:220;;;:::o;9462:366::-;9604:3;9625:67;9689:2;9684:3;9625:67;:::i;:::-;9618:74;;9701:93;9790:3;9701:93;:::i;:::-;9819:2;9814:3;9810:12;9803:19;;9608:220;;;:::o;9834:366::-;9976:3;9997:67;10061:2;10056:3;9997:67;:::i;:::-;9990:74;;10073:93;10162:3;10073:93;:::i;:::-;10191:2;10186:3;10182:12;10175:19;;9980:220;;;:::o;10206:366::-;10348:3;10369:67;10433:2;10428:3;10369:67;:::i;:::-;10362:74;;10445:93;10534:3;10445:93;:::i;:::-;10563:2;10558:3;10554:12;10547:19;;10352:220;;;:::o;10578:118::-;10665:24;10683:5;10665:24;:::i;:::-;10660:3;10653:37;10643:53;;:::o;10702:157::-;10807:45;10827:24;10845:5;10827:24;:::i;:::-;10807:45;:::i;:::-;10802:3;10795:58;10785:74;;:::o;10865:993::-;11133:3;11148:75;11219:3;11210:6;11148:75;:::i;:::-;11248:2;11243:3;11239:12;11232:19;;11261:75;11332:3;11323:6;11261:75;:::i;:::-;11361:2;11356:3;11352:12;11345:19;;11374:91;11461:3;11452:6;11374:91;:::i;:::-;11490:2;11485:3;11481:12;11474:19;;11503:75;11574:3;11565:6;11503:75;:::i;:::-;11603:2;11598:3;11594:12;11587:19;;11616:75;11687:3;11678:6;11616:75;:::i;:::-;11716:2;11711:3;11707:12;11700:19;;11729:75;11800:3;11791:6;11729:75;:::i;:::-;11829:2;11824:3;11820:12;11813:19;;11849:3;11842:10;;11137:721;;;;;;;;;:::o;11864:222::-;11957:4;11995:2;11984:9;11980:18;11972:26;;12008:71;12076:1;12065:9;12061:17;12052:6;12008:71;:::i;:::-;11962:124;;;;:::o;12092:442::-;12241:4;12279:2;12268:9;12264:18;12256:26;;12292:71;12360:1;12349:9;12345:17;12336:6;12292:71;:::i;:::-;12373:72;12441:2;12430:9;12426:18;12417:6;12373:72;:::i;:::-;12455;12523:2;12512:9;12508:18;12499:6;12455:72;:::i;:::-;12246:288;;;;;;:::o;12540:332::-;12661:4;12699:2;12688:9;12684:18;12676:26;;12712:71;12780:1;12769:9;12765:17;12756:6;12712:71;:::i;:::-;12793:72;12861:2;12850:9;12846:18;12837:6;12793:72;:::i;:::-;12666:206;;;;;:::o;12878:210::-;12965:4;13003:2;12992:9;12988:18;12980:26;;13016:65;13078:1;13067:9;13063:17;13054:6;13016:65;:::i;:::-;12970:118;;;;:::o;13094:985::-;13377:4;13415:3;13404:9;13400:19;13392:27;;13429:65;13491:1;13480:9;13476:17;13467:6;13429:65;:::i;:::-;13504:72;13572:2;13561:9;13557:18;13548:6;13504:72;:::i;:::-;13586;13654:2;13643:9;13639:18;13630:6;13586:72;:::i;:::-;13668;13736:2;13725:9;13721:18;13712:6;13668:72;:::i;:::-;13750:73;13818:3;13807:9;13803:19;13794:6;13750:73;:::i;:::-;13833;13901:3;13890:9;13886:19;13877:6;13833:73;:::i;:::-;13916;13984:3;13973:9;13969:19;13960:6;13916:73;:::i;:::-;13999;14067:3;14056:9;14052:19;14043:6;13999:73;:::i;:::-;13382:697;;;;;;;;;;;:::o;14085:419::-;14251:4;14289:2;14278:9;14274:18;14266:26;;14338:9;14332:4;14328:20;14324:1;14313:9;14309:17;14302:47;14366:131;14492:4;14366:131;:::i;:::-;14358:139;;14256:248;;;:::o;14510:419::-;14676:4;14714:2;14703:9;14699:18;14691:26;;14763:9;14757:4;14753:20;14749:1;14738:9;14734:17;14727:47;14791:131;14917:4;14791:131;:::i;:::-;14783:139;;14681:248;;;:::o;14935:419::-;15101:4;15139:2;15128:9;15124:18;15116:26;;15188:9;15182:4;15178:20;15174:1;15163:9;15159:17;15152:47;15216:131;15342:4;15216:131;:::i;:::-;15208:139;;15106:248;;;:::o;15360:419::-;15526:4;15564:2;15553:9;15549:18;15541:26;;15613:9;15607:4;15603:20;15599:1;15588:9;15584:17;15577:47;15641:131;15767:4;15641:131;:::i;:::-;15633:139;;15531:248;;;:::o;15785:419::-;15951:4;15989:2;15978:9;15974:18;15966:26;;16038:9;16032:4;16028:20;16024:1;16013:9;16009:17;16002:47;16066:131;16192:4;16066:131;:::i;:::-;16058:139;;15956:248;;;:::o;16210:419::-;16376:4;16414:2;16403:9;16399:18;16391:26;;16463:9;16457:4;16453:20;16449:1;16438:9;16434:17;16427:47;16491:131;16617:4;16491:131;:::i;:::-;16483:139;;16381:248;;;:::o;16635:419::-;16801:4;16839:2;16828:9;16824:18;16816:26;;16888:9;16882:4;16878:20;16874:1;16863:9;16859:17;16852:47;16916:131;17042:4;16916:131;:::i;:::-;16908:139;;16806:248;;;:::o;17060:419::-;17226:4;17264:2;17253:9;17249:18;17241:26;;17313:9;17307:4;17303:20;17299:1;17288:9;17284:17;17277:47;17341:131;17467:4;17341:131;:::i;:::-;17333:139;;17231:248;;;:::o;17485:419::-;17651:4;17689:2;17678:9;17674:18;17666:26;;17738:9;17732:4;17728:20;17724:1;17713:9;17709:17;17702:47;17766:131;17892:4;17766:131;:::i;:::-;17758:139;;17656:248;;;:::o;17910:419::-;18076:4;18114:2;18103:9;18099:18;18091:26;;18163:9;18157:4;18153:20;18149:1;18138:9;18134:17;18127:47;18191:131;18317:4;18191:131;:::i;:::-;18183:139;;18081:248;;;:::o;18335:419::-;18501:4;18539:2;18528:9;18524:18;18516:26;;18588:9;18582:4;18578:20;18574:1;18563:9;18559:17;18552:47;18616:131;18742:4;18616:131;:::i;:::-;18608:139;;18506:248;;;:::o;18760:222::-;18853:4;18891:2;18880:9;18876:18;18868:26;;18904:71;18972:1;18961:9;18957:17;18948:6;18904:71;:::i;:::-;18858:124;;;;:::o;18988:418::-;19125:4;19163:2;19152:9;19148:18;19140:26;;19176:71;19244:1;19233:9;19229:17;19220:6;19176:71;:::i;:::-;19257:66;19319:2;19308:9;19304:18;19295:6;19257:66;:::i;:::-;19333;19395:2;19384:9;19380:18;19371:6;19333:66;:::i;:::-;19130:276;;;;;;:::o;19412:332::-;19533:4;19571:2;19560:9;19556:18;19548:26;;19584:71;19652:1;19641:9;19637:17;19628:6;19584:71;:::i;:::-;19665:72;19733:2;19722:9;19718:18;19709:6;19665:72;:::i;:::-;19538:206;;;;;:::o;19750:169::-;19834:11;19868:6;19863:3;19856:19;19908:4;19903:3;19899:14;19884:29;;19846:73;;;;:::o;19925:305::-;19965:3;19984:20;20002:1;19984:20;:::i;:::-;19979:25;;20018:20;20036:1;20018:20;:::i;:::-;20013:25;;20172:1;20104:66;20100:74;20097:1;20094:81;20091:2;;;20178:18;;:::i;:::-;20091:2;20222:1;20219;20215:9;20208:16;;19969:261;;;;:::o;20236:185::-;20276:1;20293:20;20311:1;20293:20;:::i;:::-;20288:25;;20327:20;20345:1;20327:20;:::i;:::-;20322:25;;20366:1;20356:2;;20371:18;;:::i;:::-;20356:2;20413:1;20410;20406:9;20401:14;;20278:143;;;;:::o;20427:848::-;20488:5;20495:4;20519:6;20510:15;;20543:5;20534:14;;20557:712;20578:1;20568:8;20565:15;20557:712;;;20673:4;20668:3;20664:14;20658:4;20655:24;20652:2;;;20682:18;;:::i;:::-;20652:2;20732:1;20722:8;20718:16;20715:2;;;21147:4;21140:5;21136:16;21127:25;;20715:2;21197:4;21191;21187:15;21179:23;;21227:32;21250:8;21227:32;:::i;:::-;21215:44;;20557:712;;;20500:775;;;;;;;:::o;21281:285::-;21341:5;21365:23;21383:4;21365:23;:::i;:::-;21357:31;;21409:27;21427:8;21409:27;:::i;:::-;21397:39;;21455:104;21492:66;21482:8;21476:4;21455:104;:::i;:::-;21446:113;;21347:219;;;;:::o;21572:1073::-;21626:5;21817:8;21807:2;;21838:1;21829:10;;21840:5;;21807:2;21866:4;21856:2;;21883:1;21874:10;;21885:5;;21856:2;21952:4;22000:1;21995:27;;;;22036:1;22031:191;;;;21945:277;;21995:27;22013:1;22004:10;;22015:5;;;22031:191;22076:3;22066:8;22063:17;22060:2;;;22083:18;;:::i;:::-;22060:2;22132:8;22129:1;22125:16;22116:25;;22167:3;22160:5;22157:14;22154:2;;;22174:18;;:::i;:::-;22154:2;22207:5;;;21945:277;;22331:2;22321:8;22318:16;22312:3;22306:4;22303:13;22299:36;22281:2;22271:8;22268:16;22263:2;22257:4;22254:12;22250:35;22234:111;22231:2;;;22387:8;22381:4;22377:19;22368:28;;22422:3;22415:5;22412:14;22409:2;;;22429:18;;:::i;:::-;22409:2;22462:5;;22231:2;22502:42;22540:3;22530:8;22524:4;22521:1;22502:42;:::i;:::-;22487:57;;;;22576:4;22571:3;22567:14;22560:5;22557:25;22554:2;;;22585:18;;:::i;:::-;22554:2;22634:4;22627:5;22623:16;22614:25;;21632:1013;;;;;;:::o;22651:348::-;22691:7;22714:20;22732:1;22714:20;:::i;:::-;22709:25;;22748:20;22766:1;22748:20;:::i;:::-;22743:25;;22936:1;22868:66;22864:74;22861:1;22858:81;22853:1;22846:9;22839:17;22835:105;22832:2;;;22943:18;;:::i;:::-;22832:2;22991:1;22988;22984:9;22973:20;;22699:300;;;;:::o;23005:191::-;23045:4;23065:20;23083:1;23065:20;:::i;:::-;23060:25;;23099:20;23117:1;23099:20;:::i;:::-;23094:25;;23138:1;23135;23132:8;23129:2;;;23143:18;;:::i;:::-;23129:2;23188:1;23185;23181:9;23173:17;;23050:146;;;;:::o;23202:96::-;23239:7;23268:24;23286:5;23268:24;:::i;:::-;23257:35;;23247:51;;;:::o;23304:104::-;23349:7;23378:24;23396:5;23378:24;:::i;:::-;23367:35;;23357:51;;;:::o;23414:90::-;23448:7;23491:5;23484:13;23477:21;23466:32;;23456:48;;;:::o;23510:126::-;23547:7;23587:42;23580:5;23576:54;23565:65;;23555:81;;;:::o;23642:77::-;23679:7;23708:5;23697:16;;23687:32;;;:::o;23725:100::-;23764:7;23793:26;23813:5;23793:26;:::i;:::-;23782:37;;23772:53;;;:::o;23831:108::-;23878:7;23907:26;23927:5;23907:26;:::i;:::-;23896:37;;23886:53;;;:::o;23945:94::-;23984:7;24013:20;24027:5;24013:20;:::i;:::-;24002:31;;23992:47;;;:::o;24045:79::-;24084:7;24113:5;24102:16;;24092:32;;;:::o;24130:176::-;24162:1;24179:20;24197:1;24179:20;:::i;:::-;24174:25;;24213:20;24231:1;24213:20;:::i;:::-;24208:25;;24252:1;24242:2;;24257:18;;:::i;:::-;24242:2;24298:1;24295;24291:9;24286:14;;24164:142;;;;:::o;24312:180::-;24360:77;24357:1;24350:88;24457:4;24454:1;24447:15;24481:4;24478:1;24471:15;24498:180;24546:77;24543:1;24536:88;24643:4;24640:1;24633:15;24667:4;24664:1;24657:15;24684:94;24717:8;24765:5;24761:2;24757:14;24736:35;;24726:52;;;:::o;24784:102::-;24826:8;24873:5;24870:1;24866:13;24845:34;;24835:51;;;:::o;24892:221::-;25032:34;25028:1;25020:6;25016:14;25009:58;25101:4;25096:2;25088:6;25084:15;25077:29;24998:115;:::o;25119:175::-;25259:27;25255:1;25247:6;25243:14;25236:51;25225:69;:::o;25300:169::-;25440:21;25436:1;25428:6;25424:14;25417:45;25406:63;:::o;25475:169::-;25615:21;25611:1;25603:6;25599:14;25592:45;25581:63;:::o;25650:174::-;25790:26;25786:1;25778:6;25774:14;25767:50;25756:68;:::o;25830:172::-;25970:24;25966:1;25958:6;25954:14;25947:48;25936:66;:::o;26008:169::-;26148:21;26144:1;26136:6;26132:14;26125:45;26114:63;:::o;26183:175::-;26323:27;26319:1;26311:6;26307:14;26300:51;26289:69;:::o;26364:227::-;26504:34;26500:1;26492:6;26488:14;26481:58;26573:10;26568:2;26560:6;26556:15;26549:35;26470:121;:::o;26597:166::-;26737:18;26733:1;26725:6;26721:14;26714:42;26703:60;:::o;26769:182::-;26909:34;26905:1;26897:6;26893:14;26886:58;26875:76;:::o;26957:122::-;27030:24;27048:5;27030:24;:::i;:::-;27023:5;27020:35;27010:2;;27069:1;27066;27059:12;27010:2;27000:79;:::o;27085:116::-;27155:21;27170:5;27155:21;:::i;:::-;27148:5;27145:32;27135:2;;27191:1;27188;27181:12;27135:2;27125:76;:::o;27207:122::-;27280:24;27298:5;27280:24;:::i;:::-;27273:5;27270:35;27260:2;;27319:1;27316;27309:12;27260:2;27250:79;:::o

Swarm Source

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