Contract 0x446cc9efe430de4140b8bae3d06fb90415cc963b

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xe9d06a9d7148db4b0dd699de0b3b4cd519e408806a29cc4c5e5b0ebffa624c99Admin_Claim Rese...102001862021-08-20 17:52:3337 days 17 mins ago0xff1a2baa00234ad7659b736e6d36e0c34b594238 IN  0x446cc9efe430de4140b8bae3d06fb90415cc963b0 BNB0.000159435
0x27b88a934d32c4867b93e5c0ce2f42bf698e71954f9f61ae9440c436b006ed06User_Claim101958262021-08-20 14:08:4737 days 4 hrs ago0x3f9c8cf1a60850370d016782629deff098270977 IN  0x446cc9efe430de4140b8bae3d06fb90415cc963b0 BNB0.00040695
0x5555b6f2173f83a5d6125e3a6b20d2f9e2493584f04e4cbf1fb8524106d6e7ecUser_Claim101763322021-08-19 21:50:0037 days 20 hrs ago0xf59be1b45e93aa06daf5e66cf5b33cbccfeb7cc1 IN  0x446cc9efe430de4140b8bae3d06fb90415cc963b0 BNB0.000406735
0x9ab2b6e64cb7d472567a38b2922c371282aa8953dbad45f0f34db2c0b349b15aControl_Pause101763312021-08-19 21:49:5737 days 20 hrs ago0xff1a2baa00234ad7659b736e6d36e0c34b594238 IN  0x446cc9efe430de4140b8bae3d06fb90415cc963b0 BNB0.000163905
0xcd3584581e279866eb24c69cabe92831122e63cd1b389bb8d439f3d27f07f4e7User_Bet Bull101763242021-08-19 21:49:3637 days 20 hrs ago0xce87b2f60ed456356512e152ca4a34cf6619b2ce IN  0x446cc9efe430de4140b8bae3d06fb90415cc963b0.01 BNB0.000747618
0xc66d2c87bf2d1dad0da6cfa8c8254da56e2d0a36981d7ae0373ec4a3ce8c0b8cControl_Round Ex...101763232021-08-19 21:49:3337 days 20 hrs ago0xff1a2baa00234ad7659b736e6d36e0c34b594238 IN  0x446cc9efe430de4140b8bae3d06fb90415cc963b0 BNB0.00140128
0xf1374e3e8f4b365c47ebdcd9af487f58053be05ead872f8283d58be1de690f27Control_Round Ca...101762262021-08-19 21:44:4237 days 20 hrs ago0xff1a2baa00234ad7659b736e6d36e0c34b594238 IN  0x446cc9efe430de4140b8bae3d06fb90415cc963b0 BNB0.0001484
0xd24da3d6955cec7a7e1c8da8f734417acd834bc240ec609ce7af7a031bd3a7b2Control_Round Ex...101762222021-08-19 21:44:3037 days 20 hrs ago0xff1a2baa00234ad7659b736e6d36e0c34b594238 IN  0x446cc9efe430de4140b8bae3d06fb90415cc963b0 BNB0.00131347
0x211e9b4bc4f73bb3b8cdc3db9cfcd607ee57ebbfca6b5b776a19cc417687479aUser_Bet Bull101762182021-08-19 21:44:1837 days 20 hrs ago0xf59be1b45e93aa06daf5e66cf5b33cbccfeb7cc1 IN  0x446cc9efe430de4140b8bae3d06fb90415cc963b0.031169775298543 BNB0.000567618
0x19f9cdc2bfa3c95ec29d5299a8789eb9418c347ff3f7cb80f145544bf4f02fecUser_Bet Bear101762182021-08-19 21:44:1837 days 20 hrs ago0xce87b2f60ed456356512e152ca4a34cf6619b2ce IN  0x446cc9efe430de4140b8bae3d06fb90415cc963b0.025 BNB0.000682752
0xbb44e5b3044ef2d0a628d9f62860b91ce7aca554a5a624cc2c8f827173e30cebUser_Bet Bear101762152021-08-19 21:44:0937 days 20 hrs ago0xa73d73587fa471f9dc0be3da27585b6d8f2b9b80 IN  0x446cc9efe430de4140b8bae3d06fb90415cc963b0.001 BNB0.000682752
0x674432eb5665ec5ec9cef6a68362dac2dd14b946227c873befef73ccfa7a11c3User_Bet Bear101762102021-08-19 21:43:5437 days 20 hrs ago0xddf6c3e614020dc970afc9c2e3365009fcf0f2c7 IN  0x446cc9efe430de4140b8bae3d06fb90415cc963b0.003174366904867 BNB0.000772752
0xc17ffdb625d2a2548c95760987185e5690b7416ab677de554f24757c3bcaa39dUser_Bet Bull101761982021-08-19 21:43:1837 days 20 hrs ago0xfbbf1636ed06da0d178f851b79bd845fccf5e780 IN  0x446cc9efe430de4140b8bae3d06fb90415cc963b0.05 BNB0.000747618
0xf79920569cf352eda59ad8fd5683415503243ba2c0132bab42b201bd6ae2ab1bControl_Round Ex...101761212021-08-19 21:39:2737 days 20 hrs ago0xff1a2baa00234ad7659b736e6d36e0c34b594238 IN  0x446cc9efe430de4140b8bae3d06fb90415cc963b0 BNB0.00140128
0x730b205cff052856a43008fc00f13ad73f925ae7e0eae2e1fbb4e84a40a4b35dUser_Bet Bull101761142021-08-19 21:39:0637 days 20 hrs ago0xf59be1b45e93aa06daf5e66cf5b33cbccfeb7cc1 IN  0x446cc9efe430de4140b8bae3d06fb90415cc963b0.104148456995146 BNB0.000747618
0x928e67a5af58f52910a08ec6f3b54e324895839d898ed1afe2319b25a50a37deAdmin_Reward Use...101760562021-08-19 21:36:1237 days 20 hrs ago0xff1a2baa00234ad7659b736e6d36e0c34b594238 IN  0x446cc9efe430de4140b8bae3d06fb90415cc963b0 BNB0.000159015
0xfb964093546b79682975d3ecae08efbb2c1b5cd825a7bab57583738a4407509eAdmin_Reward Use...101760542021-08-19 21:36:0637 days 20 hrs ago0xff1a2baa00234ad7659b736e6d36e0c34b594238 IN  0x446cc9efe430de4140b8bae3d06fb90415cc963b0 BNB0.000159015
0x8b2c1cb81ab7de625289ae82069180a59988a618963ccaecdc46fff331db7261User_Bet Bull101760212021-08-19 21:34:2737 days 20 hrs ago0xf59be1b45e93aa06daf5e66cf5b33cbccfeb7cc1 IN  0x446cc9efe430de4140b8bae3d06fb90415cc963b0.104290361495146 BNB0.000567618
0xbaa22d2f7797c0b9535c049027d50ee8b41189bafa1471b962043bfab21e1c9fControl_Round Ex...101760202021-08-19 21:34:2437 days 20 hrs ago0xff1a2baa00234ad7659b736e6d36e0c34b594238 IN  0x446cc9efe430de4140b8bae3d06fb90415cc963b0 BNB0.00140128
0x304753ded230990cf3af33b5546e9d98d6113052a00768f31ccd8300d1ddf74bUser_Bet Bear101760202021-08-19 21:34:2437 days 20 hrs ago0xce87b2f60ed456356512e152ca4a34cf6619b2ce IN  0x446cc9efe430de4140b8bae3d06fb90415cc963b0.03 BNB0.000164796
0x46de20bbc34305067125ee18756e000da28b4bc17d3580ff5e09fd778d5c0c4cUser_Bet Bear101760072021-08-19 21:33:4537 days 20 hrs ago0xf522a7082aa9d1bd155ad9540eeccefd7f1f76f9 IN  0x446cc9efe430de4140b8bae3d06fb90415cc963b0.01109413 BNB0.00064396
0x3c8443cc60e9f349a8459ddb9a7602c3099fbd7a55864fb89e15084ff147b8a7User_Bet Bull101760032021-08-19 21:33:3337 days 20 hrs ago0xb26123beeff0dee627730b2a905e4ad6a2046e8f IN  0x446cc9efe430de4140b8bae3d06fb90415cc963b0.012045 BNB0.000623015
0x2e8acc25a2054da0d80e30590148212b7eac9fcd52a8eb402f9769aa2b4d6d6aAdmin_Reward Use...101759522021-08-19 21:31:0037 days 20 hrs ago0xff1a2baa00234ad7659b736e6d36e0c34b594238 IN  0x446cc9efe430de4140b8bae3d06fb90415cc963b0 BNB0.000159015
0x3a40fea8ff91bd14e6c57fee989400116dfc4fd898f9040415eb265b1d81122cControl_Round Ex...101759192021-08-19 21:29:2137 days 20 hrs ago0xff1a2baa00234ad7659b736e6d36e0c34b594238 IN  0x446cc9efe430de4140b8bae3d06fb90415cc963b0 BNB0.00140128
0xe10badde6bf886fca307d7b6530831c7d28fa3d867ac8760a226aa4f3e55e036User_Bet Bear101759172021-08-19 21:29:1537 days 20 hrs ago0xfbbf1636ed06da0d178f851b79bd845fccf5e780 IN  0x446cc9efe430de4140b8bae3d06fb90415cc963b0.05 BNB0.000682752
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xe9d06a9d7148db4b0dd699de0b3b4cd519e408806a29cc4c5e5b0ebffa624c99102001862021-08-20 17:52:3337 days 17 mins ago 0x446cc9efe430de4140b8bae3d06fb90415cc963b0xff1a2baa00234ad7659b736e6d36e0c34b5942386.354934368507717648 BNB
0x27b88a934d32c4867b93e5c0ce2f42bf698e71954f9f61ae9440c436b006ed06101958262021-08-20 14:08:4737 days 4 hrs ago 0x446cc9efe430de4140b8bae3d06fb90415cc963b0x3f9c8cf1a60850370d016782629deff0982709770.116641741364878164 BNB
0x5555b6f2173f83a5d6125e3a6b20d2f9e2493584f04e4cbf1fb8524106d6e7ec101763322021-08-19 21:50:0037 days 20 hrs ago 0x446cc9efe430de4140b8bae3d06fb90415cc963b0xf59be1b45e93aa06daf5e66cf5b33cbccfeb7cc10.039830564751722934 BNB
0x928e67a5af58f52910a08ec6f3b54e324895839d898ed1afe2319b25a50a37de101760562021-08-19 21:36:1237 days 20 hrs ago 0x446cc9efe430de4140b8bae3d06fb90415cc963b0xf522a7082aa9d1bd155ad9540eeccefd7f1f76f90.0207930453637582 BNB
0xfb964093546b79682975d3ecae08efbb2c1b5cd825a7bab57583738a4407509e101760542021-08-19 21:36:0637 days 20 hrs ago 0x446cc9efe430de4140b8bae3d06fb90415cc963b0xb26123beeff0dee627730b2a905e4ad6a2046e8f0.0207930453637582 BNB
0x2e8acc25a2054da0d80e30590148212b7eac9fcd52a8eb402f9769aa2b4d6d6a101759522021-08-19 21:31:0037 days 20 hrs ago 0x446cc9efe430de4140b8bae3d06fb90415cc963b0xb26123beeff0dee627730b2a905e4ad6a2046e8f0.0130028053051805 BNB
0x8dc7c1cafa7a8e439b1fa4e6afdfc7ba8b3a5ae2df477bdf9dee5ab1ec18a87c101758532021-08-19 21:26:0337 days 20 hrs ago 0x446cc9efe430de4140b8bae3d06fb90415cc963b0xf522a7082aa9d1bd155ad9540eeccefd7f1f76f90.0254777267172363 BNB
0x9ccf10455715a9facfec6f9816729eb8831fa3d2d4bddb2430c88357fdeca94a101758512021-08-19 21:25:5737 days 20 hrs ago 0x446cc9efe430de4140b8bae3d06fb90415cc963b0xb26123beeff0dee627730b2a905e4ad6a2046e8f0.0254777267172363 BNB
0x1881dffa6c7b3e2744619d9e210674cf9f233e696f6060ecc1a10b1cfc44635c101758252021-08-19 21:24:3937 days 20 hrs ago 0x446cc9efe430de4140b8bae3d06fb90415cc963b0xce87b2f60ed456356512e152ca4a34cf6619b2ce0.173505322630053558 BNB
0x318724b10cc5d43637fe8f72d1a11f7b4205ed9ecde42283361cdc1cb004c738101758222021-08-19 21:24:3037 days 20 hrs ago 0x446cc9efe430de4140b8bae3d06fb90415cc963b0xf59be1b45e93aa06daf5e66cf5b33cbccfeb7cc10.045856793663786501 BNB
0xe90f778fb86168519bcd0ae3a2e8fe39947f9d1c934fc6285933aa7a872be9ce101758122021-08-19 21:24:0037 days 20 hrs ago 0x446cc9efe430de4140b8bae3d06fb90415cc963b0xf59be1b45e93aa06daf5e66cf5b33cbccfeb7cc10.050217640828994717 BNB
0xab248e8c74b2b7e053ab0b592a47b89e056d09c83973d418e65072c47c0169ec101757522021-08-19 21:21:0037 days 20 hrs ago 0x446cc9efe430de4140b8bae3d06fb90415cc963b0xf522a7082aa9d1bd155ad9540eeccefd7f1f76f90.0419303954392348 BNB
0xe93924d5aeb37ff40b5a1895a3679b35d8f40c2d9a6090e202822f6748c99993101757502021-08-19 21:20:5437 days 20 hrs ago 0x446cc9efe430de4140b8bae3d06fb90415cc963b0xb26123beeff0dee627730b2a905e4ad6a2046e8f0.0419303954392348 BNB
0x48b05c48dde442f1b06ef2c72edf74d18474d6350a8af4eccfad5cf788f84c21101757222021-08-19 21:19:3037 days 20 hrs ago 0x446cc9efe430de4140b8bae3d06fb90415cc963b0xfbbf1636ed06da0d178f851b79bd845fccf5e7800.117073910930072585 BNB
0x9876989a2069567819cd9fa65d31dabbb29c852c4ce049cc4bbbb12abcdbe231101756792021-08-19 21:17:2137 days 20 hrs ago 0x446cc9efe430de4140b8bae3d06fb90415cc963b0x56ea9ab41e23aef1a52344ba7a7c405a845902fe0.077015793809057606 BNB
0xfc2acc0a319d7d91f4b058f2385559525614ff97b0a63b3d007866890c00f80f101756522021-08-19 21:16:0037 days 20 hrs ago 0x446cc9efe430de4140b8bae3d06fb90415cc963b0xf522a7082aa9d1bd155ad9540eeccefd7f1f76f90.0420986247817514 BNB
0x432131de27088670f142534b01fb184ab8bb6f3e5263818556dc2f094b83759d101756502021-08-19 21:15:5437 days 20 hrs ago 0x446cc9efe430de4140b8bae3d06fb90415cc963b0xb26123beeff0dee627730b2a905e4ad6a2046e8f0.0420986247817514 BNB
0xdf5ac9f4b821eee327d3599d0ef5e4880941ffe571e2da1d31880f9c2498534e101755512021-08-19 21:10:5737 days 20 hrs ago 0x446cc9efe430de4140b8bae3d06fb90415cc963b0xf522a7082aa9d1bd155ad9540eeccefd7f1f76f90.0279683136185484 BNB
0x4d39396d4d9c6e6a5dbbd8c2d9dddde21b989960ff95450f849c2cb2cce71409101755492021-08-19 21:10:5137 days 20 hrs ago 0x446cc9efe430de4140b8bae3d06fb90415cc963b0xb26123beeff0dee627730b2a905e4ad6a2046e8f0.0279683136185484 BNB
0xda152c26bdb3890a0e2a09fe74a1e21087b90fc5543e66eb33f8dc7ecf388839101755322021-08-19 21:10:0037 days 21 hrs ago 0x446cc9efe430de4140b8bae3d06fb90415cc963b0xddf6c3e614020dc970afc9c2e3365009fcf0f2c70.00980281589739508 BNB
0x0cb7dad2fa07a53ba91a10c816837503bae219f1f6a05411df6652dbc1c0fd43101755242021-08-19 21:09:3637 days 21 hrs ago 0x446cc9efe430de4140b8bae3d06fb90415cc963b0xa5a93f1dbe57fa9fffdfb1cc216b0eaf79ac2ba10.020430908416415383 BNB
0x06a642216e31419d766343e79d17317a933f950ea1424fc637ff4cbaf2013d50101754962021-08-19 21:08:1237 days 21 hrs ago 0x446cc9efe430de4140b8bae3d06fb90415cc963b0xfbbf1636ed06da0d178f851b79bd845fccf5e7800.110966855116060195 BNB
0x240b69d89969e6bf77ace51dae6175efa15cb3371286bb88ded442059766034d101754482021-08-19 21:05:4837 days 21 hrs ago 0x446cc9efe430de4140b8bae3d06fb90415cc963b0xb26123beeff0dee627730b2a905e4ad6a2046e8f0.0137155022629143 BNB
0x00953b79a81b5fd110f088ef6cdc8eb57fbb7d1ff9cee97074ddb778caa4c79e101754222021-08-19 21:04:3037 days 21 hrs ago 0x446cc9efe430de4140b8bae3d06fb90415cc963b0xce87b2f60ed456356512e152ca4a34cf6619b2ce0.177546968185696312 BNB
0xef0e0014036b2f8e73d32a7c8c1642b944a3cc695b1301143a1e860b93962609101753492021-08-19 21:00:5137 days 21 hrs ago 0x446cc9efe430de4140b8bae3d06fb90415cc963b0xf522a7082aa9d1bd155ad9540eeccefd7f1f76f90.0363827671158979 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CandleGenie

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-05-24
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;


/*

      ___           ___           ___           ___           ___       ___                    ___           ___           ___                       ___     
     /\  \         /\  \         /\__\         /\  \         /\__\     /\  \                  /\  \         /\  \         /\__\          ___        /\  \    
    /::\  \       /::\  \       /::|  |       /::\  \       /:/  /    /::\  \                /::\  \       /::\  \       /::|  |        /\  \      /::\  \   
   /:/\:\  \     /:/\:\  \     /:|:|  |      /:/\:\  \     /:/  /    /:/\:\  \              /:/\:\  \     /:/\:\  \     /:|:|  |        \:\  \    /:/\:\  \  
  /:/  \:\  \   /::\~\:\  \   /:/|:|  |__   /:/  \:\__\   /:/  /    /::\~\:\  \            /:/  \:\  \   /::\~\:\  \   /:/|:|  |__      /::\__\  /::\~\:\  \ 
 /:/__/ \:\__\ /:/\:\ \:\__\ /:/ |:| /\__\ /:/__/ \:|__| /:/__/    /:/\:\ \:\__\          /:/__/_\:\__\ /:/\:\ \:\__\ /:/ |:| /\__\  __/:/\/__/ /:/\:\ \:\__\
 \:\  \  \/__/ \/__\:\/:/  / \/__|:|/:/  / \:\  \ /:/  / \:\  \    \:\~\:\ \/__/          \:\  /\ \/__/ \:\~\:\ \/__/ \/__|:|/:/  / /\/:/  /    \:\~\:\ \/__/
  \:\  \            \::/  /      |:/:/  /   \:\  /:/  /   \:\  \    \:\ \:\__\             \:\ \:\__\    \:\ \:\__\       |:/:/  /  \::/__/      \:\ \:\__\  
   \:\  \           /:/  /       |::/  /     \:\/:/  /     \:\  \    \:\ \/__/              \:\/:/  /     \:\ \/__/       |::/  /    \:\__\       \:\ \/__/  
    \:\__\         /:/  /        /:/  /       \::/__/       \:\__\    \:\__\                 \::/  /       \:\__\         /:/  /      \/__/        \:\__\    
     \/__/         \/__/         \/__/         ~~            \/__/     \/__/                  \/__/         \/__/         \/__/                     \/__/  
     
     
                                                                   https://candlegenie.live


*/


// SAFEMATH
library SafeMath 
{

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        uint256 c = a + b;
        if (c < a) return (false, 0);
        return (true, c);
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b > a) return (false, 0);
        return (true, a - b);
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (a == 0) return (true, 0);
        uint256 c = a * b;
        if (c / a != b) return (false, 0);
        return (true, c);
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a / b);
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a % b);
    }

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) return 0;
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: modulo by zero");
        return a % b;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        return a - b;
    }


    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a / b;
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a % b;
    }
}

//CONTEXT
abstract contract Context 
{
    function _msgSender() internal view virtual returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

//OWNABLE
abstract contract Ownable is Context 
{
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function admin_OwnershipRenounce() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function admin_OwnershipTransfer(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

//PAUSABLE
abstract contract Pausable is Context 
{

    event Paused(address account);

    event Unpaused(address account);

    bool private _paused;

    constructor() internal {
        _paused = false;
    }

    function paused() public view virtual returns (bool) {
        return _paused;
    }


    modifier whenNotPaused() {
        require(!paused(), "Pausable: paused");
        _;
    }

    modifier whenPaused() {
        require(paused(), "Pausable: not paused");
        _;
    }

    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }


    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

//INTERFACE
interface AggregatorV3Interface 
{
    function decimals() external view returns (uint8);

    function description() external view returns (string memory);

    function version() external view returns (uint256);

    function getRoundData(uint80 _roundId)
        external
        view
        returns (
            uint80 roundId,
            int256 answer,
            uint256 startedAt,
            uint256 updatedAt,
            uint80 answeredInRound
        );

    function latestRoundData()
        external
        view
        returns (
            uint80 roundId,
            int256 answer,
            uint256 startedAt,
            uint256 updatedAt,
            uint80 answeredInRound
        );
}

//CANDLE GENIE
contract CandleGenie is Ownable, Pausable {
    using SafeMath for uint256;

    struct Round {
        uint256 epoch;
        uint256 startBlock;
        uint256 lockBlock;
        uint256 endBlock;
        int256 lockPrice;
        int256 closePrice;
        uint256 totalAmount;
        uint256 bullAmount;
        uint256 bearAmount;
        uint256 rewardBaseCalAmount;
        uint256 rewardAmount;
        bool oracleCalled;
        bool cancelled;
    }

    enum Position {Bull, Bear}

    struct BetInfo {
        Position position;
        uint256 amount;
        bool claimed; // default false
    }

    mapping(uint256 => Round) public rounds;
    mapping(uint256 => mapping(address => BetInfo)) public bet;
    mapping(address => uint256[]) public bets;
    uint256 public currentEpoch;
    uint256 public currentEpochStart;
    uint256 public currentEpochLock;
    uint256 public currentEpochEnd;
    uint256 public intervalBlocks;
    uint256 public bufferBlocks;
    address public adminAddress;
    address public operatorAddress;
    uint256 public treasuryAmount;
    AggregatorV3Interface internal oracle;
    uint256 public oracleLatestRoundId;

    uint256 public constant TOTAL_RATE = 100; // 100%
    uint256 public rewardRate = 90; // 90%
    uint256 public treasuryRate = 10; // 10%
    uint256 public minBetAmount;
    uint256 public oracleUpdateAllowance; // seconds

    bool public startOnce = false;
    bool public lockOnce = false;

    event StartRound(uint256 indexed epoch, uint256 blockNumber);
    event LockRound(uint256 indexed epoch, uint256 blockNumber, int256 price);
    event EndRound(uint256 indexed epoch, uint256 blockNumber, int256 price);
    event CancelRound(uint256 indexed epoch);
    event BetBull(address indexed sender, uint256 indexed currentEpoch, uint256 amount);
    event BetBear(address indexed sender, uint256 indexed currentEpoch, uint256 amount);
    event Claim(address indexed sender, uint256 indexed currentEpoch, uint256 amount);
    event ClaimTreasury(uint256 amount);
    event ClaimReserve(uint256 amount);
    event RewardUser(address user, uint256 amount);
    event RatesUpdated(uint256 indexed epoch, uint256 rewardRate, uint256 treasuryRate);
    event MinBetAmountUpdated(uint256 indexed epoch, uint256 minBetAmount);

    
    event RewardsCalculated(
        uint256 indexed epoch,
        uint256 rewardBaseCalAmount,
        uint256 rewardAmount,
        uint256 treasuryAmount
    );
    event Pause(uint256 epoch);
    event Unpause(uint256 epoch);

    constructor(
        AggregatorV3Interface _oracle,
        address _adminAddress,
        address _operatorAddress,
        uint256 _intervalBlocks,
        uint256 _bufferBlocks,
        uint256 _minBetAmount,
        uint256 _oracleUpdateAllowance
    ) public {
        oracle = _oracle;
        adminAddress = _adminAddress;
        operatorAddress = _operatorAddress;
        intervalBlocks = _intervalBlocks;
        bufferBlocks = _bufferBlocks;
        minBetAmount = _minBetAmount;
        oracleUpdateAllowance = _oracleUpdateAllowance;
    }

    modifier onlyAdmin() 
    {
        require(msg.sender == adminAddress, "admins only");
        _;
    }

    modifier onlyAdminOrOperator() 
    {
        require(msg.sender == adminAddress || msg.sender == operatorAddress, "admin | operator: wut?");
        _;
    }


    modifier onlyOperator() 
    {
        require(msg.sender == operatorAddress, "operators only");
        _;
    }

    modifier notContract() 
    {
        require(!_isContract(msg.sender), "contract not allowed");
        require(msg.sender == tx.origin, "proxy contract not allowed");
        _;
    }

    // INTERNAL FUNCTIONS ---------------->
    
     /**
     * @dev Start round
     * Previous round n-2 must end
     */
    function _safeStartRound(uint256 epoch) internal 
    {
        require(startOnce, "Can only run after startRound is triggered");
        require(rounds[epoch - 2].endBlock != 0, "Can only start round after round n-2 has ended");
        require(block.number >= rounds[epoch - 2].endBlock, "Can only start new round after round n-2 endBlock");
        _startRound(epoch);
    }

    function _startRound(uint256 epoch) internal 
    {
        Round storage round = rounds[epoch];
        round.startBlock = block.number;
        round.lockBlock = block.number.add(intervalBlocks);
        round.endBlock = block.number.add(intervalBlocks * 2);
        round.epoch = epoch;
        round.totalAmount = 0;

        currentEpochStart = round.startBlock;
        currentEpochLock = round.lockBlock;
        currentEpochEnd = round.endBlock;
           
        emit StartRound(epoch, block.number);
    }
    
    function _cancelRound(uint256 epoch, bool oracleLock) internal 
    {
        Round storage round = rounds[epoch];
        round.cancelled = true;
        round.oracleCalled = oracleLock;
        emit CancelRound(epoch);
    }
    
    function _safeCancelRound(uint256 epoch, bool oracleLock) internal 
    {
        _cancelRound(epoch, oracleLock);
    }

    /**
     * @dev Lock round
     */
    function _safeLockRound(uint256 epoch, int256 price) internal 
    {
        require(rounds[epoch].startBlock != 0, "Can only lock round after round has started");
        require(block.number >= rounds[epoch].lockBlock, "Can only lock round after lockBlock");
        require(block.number <= rounds[epoch].endBlock, "Can only lock before end block");
        
        _lockRound(epoch, price);
    }

    function _lockRound(uint256 epoch, int256 price) internal 
    {
        Round storage round = rounds[epoch];
        round.lockPrice = price;

        emit LockRound(epoch, block.number, round.lockPrice);
    }

    /**
     * @dev End round
     */
    function _safeEndRound(uint256 epoch, int256 price) internal 
    {
        require(rounds[epoch].lockBlock != 0, "Can only end round after round has locked");
        require(block.number >= rounds[epoch].endBlock, "Can only end round after endBlock");
        _endRound(epoch, price);
    }

    function _endRound(uint256 epoch, int256 price) internal 
    {
        Round storage round = rounds[epoch];
        round.closePrice = price;
        round.oracleCalled = true;

        emit EndRound(epoch, block.number, round.closePrice);
    }

    /**
     * @dev Calculate rewards for round
     */
    function _calculateRewards(uint256 epoch) internal 
    {
        require(rewardRate.add(treasuryRate) == TOTAL_RATE, "rewardRate and treasuryRate must add up to TOTAL_RATE");
        require(rounds[epoch].rewardBaseCalAmount == 0 && rounds[epoch].rewardAmount == 0, "Rewards calculated");
        Round storage round = rounds[epoch];
        uint256 rewardBaseCalAmount;
        uint256 rewardAmount;
        uint256 treasuryAmt;
        // Bull wins
        if (round.closePrice > round.lockPrice) {
            rewardBaseCalAmount = round.bullAmount;
            rewardAmount = round.totalAmount.mul(rewardRate).div(TOTAL_RATE);
            treasuryAmt = round.totalAmount.mul(treasuryRate).div(TOTAL_RATE);
        }
        // Bear wins
        else if (round.closePrice < round.lockPrice) {
            rewardBaseCalAmount = round.bearAmount;
            rewardAmount = round.totalAmount.mul(rewardRate).div(TOTAL_RATE);
            treasuryAmt = round.totalAmount.mul(treasuryRate).div(TOTAL_RATE);
        }
        // House wins
        else {
            rewardBaseCalAmount = 0;
            rewardAmount = 0;
            treasuryAmt = round.totalAmount;
        }
        round.rewardBaseCalAmount = rewardBaseCalAmount;
        round.rewardAmount = rewardAmount;

        // Add to treasury
        treasuryAmount = treasuryAmount.add(treasuryAmt);

        emit RewardsCalculated(epoch, rewardBaseCalAmount, rewardAmount, treasuryAmt);
    }

    /**
     * @dev Get latest recorded price from oracle
     * If it falls below allowed buffer or has not updated, it would be invalid
     */
    function _getPriceFromOracle() internal returns (int256) 
    {
        uint256 leastAllowedTimestamp = block.timestamp.add(oracleUpdateAllowance);
        (uint80 roundId, int256 price, , uint256 timestamp, ) = oracle.latestRoundData();
        require(timestamp <= leastAllowedTimestamp, "Oracle update exceeded max timestamp allowance");
        oracleLatestRoundId = uint256(roundId);
        return price;
    }
    

    function _safeTransferBNB(address to, uint256 value) internal 
    {
        (bool success, ) = to.call{gas: 23000, value: value}("");
        require(success, "Transfer Failed");
    }
    

    function _isContract(address addr) internal view returns (bool) 
    {
        uint256 size;
        assembly {
            size := extcodesize(addr)
        }
        return size > 0;
    }

    /**
     * @dev Determine if a round is valid for receiving bets
     * Round must have started and locked
     * Current block must be within startBlock and endBlock
     */
    function _bettable(uint256 epoch) internal view returns (bool) 
    {
        return
            rounds[epoch].startBlock != 0 &&
            rounds[epoch].lockBlock != 0 &&
            block.number > rounds[epoch].startBlock &&
            block.number < rounds[epoch].lockBlock;
    }
    
    // EXTERNAL FUNCTIONS ---------------->
    
    /**
     * @dev set admin address
     * callable by owner
     */
    function admin_SetAdmin(address _adminAddress) external onlyOwner 
    {
        require(_adminAddress != address(0), "Cannot be zero address");
        adminAddress = _adminAddress;
    }

    /**
     * @dev set operator address
     * callable by admin
     */
    function admin_SetOperator(address _operatorAddress) external onlyAdmin 
    {
        require(_operatorAddress != address(0), "Cannot be zero address");
        operatorAddress = _operatorAddress;
    }

    /**
     * @dev Claim all rewards in treasury
     * callable by admin
     */
    function admin_ClaimTreasury() external onlyAdmin 
    {
        uint256 currentTreasuryAmount = treasuryAmount;
        treasuryAmount = 0;
        _safeTransferBNB(adminAddress, currentTreasuryAmount);

        emit ClaimTreasury(currentTreasuryAmount);
    }


    /**
     * @dev Claim requested amounts of reserve
     * callable by admin
     */
    function admin_ClaimReserve(uint256 value) external onlyAdmin 
    {
        _safeTransferBNB(adminAddress,  value);
        emit ClaimReserve(value);
    }
    
     /**
     * @dev Reward any user given amount
     * callable by admin
     */
    function admin_RewardUser(address user, uint256 value) external onlyAdmin 
    {
        _safeTransferBNB(user,  value);
        emit RewardUser(user, value);
    }
    

    /**
     * @dev called by the admin to pause, triggers stopped state
     */
    function control_Pause() public onlyAdminOrOperator whenNotPaused 
    {
        _pause();

        emit Pause(currentEpoch);
    }

    /**
     * @dev called by the admin to unpause, returns to normal state
     * Reset game state. Once paused, the rounds would need to be kickstarted by resume call
     */
    function control_Resume() public onlyAdmin whenPaused 
    {
        startOnce = false;
        lockOnce = false;
        _unpause();

        emit Unpause(currentEpoch);
    }

    /**
     * @dev Start round
     */
    function control_RoundStart() external onlyOperator whenNotPaused 
    {
        require(!startOnce, "Can only run startRound once");

        currentEpoch = currentEpoch + 1;
        _startRound(currentEpoch);
        startOnce = true;
    }

    /**
     * @dev Lock round
     */
    function control_RoundLock() external onlyOperator whenNotPaused 
    {
        require(startOnce, "Can only run after startRound is triggered");
        require(!lockOnce, "Can only run lockRound once");
    
        int256 currentPrice = _getPriceFromOracle();
        _safeLockRound(currentEpoch, currentPrice);

        currentEpoch = currentEpoch + 1;
        _startRound(currentEpoch);
        lockOnce = true;
    }
    
        /**
     * @dev Start the next round n, lock price for round n-1, end round n-2
     */
    function control_RoundExecute() external onlyOperator whenNotPaused 
    {
        require(
            startOnce && lockOnce,
            "Can only run after startRound and lockRound is triggered"
        );

        int256 currentPrice = _getPriceFromOracle();
        // CurrentEpoch refers to previous round (n-1)
        _safeLockRound(currentEpoch, currentPrice);
        _safeEndRound(currentEpoch - 1, currentPrice);
        _calculateRewards(currentEpoch - 1);

        // Increment currentEpoch to current round (n)
        currentEpoch = currentEpoch + 1;
        _safeStartRound(currentEpoch);
    }

    /**
     * @dev Cancel round
     */
    function control_RoundCancel(uint256 epoch, bool oracleLock) external onlyAdmin 
    {
        _safeCancelRound(epoch, oracleLock);
    }


    /**
     * @dev set interval blocks
     * callable by admin
     */
    function settings_SetIntervalBlocks(uint256 _intervalBlocks) external onlyAdmin 
    {
        intervalBlocks = _intervalBlocks;
    }

    /**
     * @dev set buffer blocks
     * callable by admin
     */
    function settings_setBufferBlocks(uint256 _bufferBlocks) external onlyAdmin {
        require(_bufferBlocks <= intervalBlocks, "Cannot be more than intervalBlocks");
        bufferBlocks = _bufferBlocks;
    }

    /**
     * @dev set Oracle address
     * callable by admin
     */
    function settings_SetOracle(address _oracle) external onlyAdmin 
    {
        require(_oracle != address(0), "Cannot be zero address");
        oracle = AggregatorV3Interface(_oracle);
    }

    /**
     * @dev set oracle update allowance
     * callable by admin
     */
    function settings_SetOracleUpdateAllowance(uint256 _oracleUpdateAllowance) external onlyAdmin 
    {
        oracleUpdateAllowance = _oracleUpdateAllowance;
    }

    /**
     * @dev set reward rate
     * callable by admin
     */
    function settings_SetRewardRate(uint256 _rewardRate) external onlyAdmin 
    {
        require(_rewardRate <= TOTAL_RATE, "rewardRate cannot be more than 100%");
        rewardRate = _rewardRate;
        treasuryRate = TOTAL_RATE.sub(_rewardRate);

        emit RatesUpdated(currentEpoch, rewardRate, treasuryRate);
    }

    /**
     * @dev set treasury rate
     * callable by admin
     */
    function settings_SetTreasuryRate(uint256 _treasuryRate) external onlyAdmin 
    {
        require(_treasuryRate <= TOTAL_RATE, "treasuryRate cannot be more than 100%");
        rewardRate = TOTAL_RATE.sub(_treasuryRate);
        treasuryRate = _treasuryRate;

        emit RatesUpdated(currentEpoch, rewardRate, treasuryRate);
    }

    /**
     * @dev set minBetAmount
     * callable by admin
     */
    function settings_SetMinBetAmount(uint256 _minBetAmount) external onlyAdmin 
    {
        minBetAmount = _minBetAmount;

        emit MinBetAmountUpdated(currentEpoch, minBetAmount);
    }



    /**
     * @dev Bet bear position
     */
    function user_BetBear() external payable whenNotPaused notContract 
    {
        require(_bettable(currentEpoch), "Round not bettable");
        require(msg.value >= minBetAmount, "Bet amount must be greater than minBetAmount");
        require(bet[currentEpoch][msg.sender].amount == 0, "Can only bet once per round");

        // Update round data
        uint256 amount = msg.value;
        Round storage round = rounds[currentEpoch];
        round.totalAmount = round.totalAmount.add(amount);
        round.bearAmount = round.bearAmount.add(amount);

        // Update user data
        BetInfo storage betInfo = bet[currentEpoch][msg.sender];
        betInfo.position = Position.Bear;
        betInfo.amount = amount;
        bets[msg.sender].push(currentEpoch);

        emit BetBear(msg.sender, currentEpoch, amount);
    }


    /**
     * @dev Claim reward
     */
    function user_Claim(uint256 epoch) external notContract 
    {
        require(rounds[epoch].startBlock != 0, "Round has not started");
        require(block.number > rounds[epoch].endBlock, "Round has not ended");
        require(!bet[epoch][msg.sender].claimed, "Rewards claimed");

        uint256 reward;
        // Round valid, claim rewards
        if (rounds[epoch].oracleCalled) {
            require(claimable(epoch, msg.sender), "Not eligible for claim");
            Round memory round = rounds[epoch];
            reward = bet[epoch][msg.sender].amount.mul(round.rewardAmount).div(round.rewardBaseCalAmount);
        }
        // Round invalid, refund bet amount
        else {
            require(refundable(epoch, msg.sender), "Not eligible for refund");
            reward = bet[epoch][msg.sender].amount;
        }

        BetInfo storage betInfo = bet[epoch][msg.sender];
        betInfo.claimed = true;
        _safeTransferBNB(address(msg.sender), reward);

        emit Claim(msg.sender, epoch, reward);
    }
    
        /**
     * @dev Bet bull position
     */
    function user_BetBull() external payable whenNotPaused notContract 
    {
        require(_bettable(currentEpoch), "Round not bettable");
        require(msg.value >= minBetAmount, "Bet amount must be greater than minBetAmount");
        require(bet[currentEpoch][msg.sender].amount == 0, "Can only bet once per round");

        // Update round data
        uint256 amount = msg.value;
        Round storage round = rounds[currentEpoch];
        round.totalAmount = round.totalAmount.add(amount);
        round.bullAmount = round.bullAmount.add(amount);

        // Update user data
        BetInfo storage betInfo = bet[currentEpoch][msg.sender];
        betInfo.position = Position.Bull;
        betInfo.amount = amount;
        bets[msg.sender].push(currentEpoch);

        emit BetBull(msg.sender, currentEpoch, amount);
    }



    /**
     * @dev Return round epochs that a user has participated
     */
    function userBets(address user, uint256 cursor, uint256 size) external view returns (uint256[] memory, uint256) 
    {
        uint256 length = size;
        if (length > bets[user].length - cursor) {
            length = bets[user].length - cursor;
        }

        uint256[] memory values = new uint256[](length);
        for (uint256 i = 0; i < length; i++) {
            values[i] = bets[user][cursor + i];
        }

        return (values, cursor + length);
    }



    /**
     * @dev Get the claimable stats of specific epoch and user account
     */
    function claimable(uint256 epoch, address user) public view returns (bool) 
    {
        BetInfo memory betInfo = bet[epoch][user];
        Round memory round = rounds[epoch];
        if (round.lockPrice == round.closePrice) {
            return false;
        }
        return
            round.oracleCalled &&
            ((round.closePrice > round.lockPrice && betInfo.position == Position.Bull) ||
                (round.closePrice < round.lockPrice && betInfo.position == Position.Bear));
    }
    
    
    /**
     * @dev Get current block number
     */
    function currentBlock() public view returns (uint256) 
    {
        return block.number;
    }
    
    
    /**
     * @dev Check latest oracle round update
     */
    function oracleUpdateLock() public view returns (bool)
    {
        (uint80 roundId, , , , ) = oracle.latestRoundData();
        return roundId > oracleLatestRoundId;
    }
    

    /**
     * @dev Get the refundable stats of specific epoch and user account
     */
    function refundable(uint256 epoch, address user) public view returns (bool) 
    {
        BetInfo memory betInfo = bet[epoch][user];
        Round memory round = rounds[epoch];
        return !round.oracleCalled && block.number > round.endBlock.add(bufferBlocks) && betInfo.amount != 0;
    }

   
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract AggregatorV3Interface","name":"_oracle","type":"address"},{"internalType":"address","name":"_adminAddress","type":"address"},{"internalType":"address","name":"_operatorAddress","type":"address"},{"internalType":"uint256","name":"_intervalBlocks","type":"uint256"},{"internalType":"uint256","name":"_bufferBlocks","type":"uint256"},{"internalType":"uint256","name":"_minBetAmount","type":"uint256"},{"internalType":"uint256","name":"_oracleUpdateAllowance","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"uint256","name":"currentEpoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"BetBear","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"uint256","name":"currentEpoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"BetBull","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"epoch","type":"uint256"}],"name":"CancelRound","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"uint256","name":"currentEpoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Claim","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClaimReserve","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClaimTreasury","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"epoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"blockNumber","type":"uint256"},{"indexed":false,"internalType":"int256","name":"price","type":"int256"}],"name":"EndRound","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"epoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"blockNumber","type":"uint256"},{"indexed":false,"internalType":"int256","name":"price","type":"int256"}],"name":"LockRound","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"epoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"minBetAmount","type":"uint256"}],"name":"MinBetAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"epoch","type":"uint256"}],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"epoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rewardRate","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"treasuryRate","type":"uint256"}],"name":"RatesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardUser","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"epoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rewardBaseCalAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rewardAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"treasuryAmount","type":"uint256"}],"name":"RewardsCalculated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"epoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"StartRound","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"epoch","type":"uint256"}],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"TOTAL_RATE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"adminAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"admin_ClaimReserve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin_ClaimTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin_OwnershipRenounce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"admin_OwnershipTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"admin_RewardUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adminAddress","type":"address"}],"name":"admin_SetAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operatorAddress","type":"address"}],"name":"admin_SetOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"bet","outputs":[{"internalType":"enum CandleGenie.Position","name":"position","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"claimed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"bets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bufferBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"user","type":"address"}],"name":"claimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"control_Pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"control_Resume","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"bool","name":"oracleLock","type":"bool"}],"name":"control_RoundCancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"control_RoundExecute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"control_RoundLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"control_RoundStart","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentEpochEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentEpochLock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentEpochStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"intervalBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockOnce","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minBetAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operatorAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oracleLatestRoundId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oracleUpdateAllowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oracleUpdateLock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"user","type":"address"}],"name":"refundable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rounds","outputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"uint256","name":"startBlock","type":"uint256"},{"internalType":"uint256","name":"lockBlock","type":"uint256"},{"internalType":"uint256","name":"endBlock","type":"uint256"},{"internalType":"int256","name":"lockPrice","type":"int256"},{"internalType":"int256","name":"closePrice","type":"int256"},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"uint256","name":"bullAmount","type":"uint256"},{"internalType":"uint256","name":"bearAmount","type":"uint256"},{"internalType":"uint256","name":"rewardBaseCalAmount","type":"uint256"},{"internalType":"uint256","name":"rewardAmount","type":"uint256"},{"internalType":"bool","name":"oracleCalled","type":"bool"},{"internalType":"bool","name":"cancelled","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_intervalBlocks","type":"uint256"}],"name":"settings_SetIntervalBlocks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minBetAmount","type":"uint256"}],"name":"settings_SetMinBetAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oracle","type":"address"}],"name":"settings_SetOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_oracleUpdateAllowance","type":"uint256"}],"name":"settings_SetOracleUpdateAllowance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardRate","type":"uint256"}],"name":"settings_SetRewardRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_treasuryRate","type":"uint256"}],"name":"settings_SetTreasuryRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_bufferBlocks","type":"uint256"}],"name":"settings_setBufferBlocks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startOnce","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"cursor","type":"uint256"},{"internalType":"uint256","name":"size","type":"uint256"}],"name":"userBets","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"user_BetBear","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"user_BetBull","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"name":"user_Claim","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052605a600f55600a6010556013805461ffff191690553480156200002657600080fd5b506040516200390b3803806200390b833981810160405260e08110156200004c57600080fd5b508051602082015160408301516060840151608085015160a086015160c090960151949593949293919290919060006200008562000132565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000805460ff60a01b19169055600d80546001600160a01b03199081166001600160a01b03998a1617909155600a8054821697891697909717909655600b8054909616949096169390931790935560085560099190915560115560125562000136565b3390565b6137c580620001466000396000f3fe6080604052600436106102c95760003560e01c80638da5cb5b11610175578063d7906c3d116100dc578063e80553ff11610095578063fa968eea1161006f578063fa968eea146109f0578063fc6f946814610a05578063fd9ca86a14610a1a578063ff70604014610a22576102c9565b8063e80553ff1461099c578063ec324703146109c6578063f52a27be146109db576102c9565b8063d7906c3d14610900578063d8cc5e9114610915578063df4c420c1461092a578063e12ed13c1461095d578063e4b7251614610972578063e5d061d514610987576102c9565b8063ab4ea3c71161012e578063ab4ea3c7146107be578063b29c299b146107e8578063b5d1a04c146107fd578063c6ca226314610827578063c6e516af1461083c578063d195a05414610866576102c9565b80638da5cb5b146106f65780639780a7521461070b5780639c72011b146107205780639cfe0083146107285780639e52b2ed1461075b578063a0c7f71c14610785576102c9565b80635f9b71ce116102345780636a42c87b116101ed5780637bf41254116101c75780637bf41254146105eb57806384df7e83146106245780638a54fcc1146106395780638c65c81f14610663576102c9565b80636a42c87b146105ac57806376671808146105c15780637b0a47ee146105d6576102c9565b80635f9b71ce1461049e578063605540111461050857806361474e1a1461051d57806361a8c8c41461053257806362c711291461054757806365ab31fa14610579576102c9565b8063381a547811610286578063381a5478146103a65780633b4e8408146103cf5780634a39ec901461040257806354beb76f1461043b5780635c975abb146104505780635f52b0b314610465576102c9565b8063127effb2146102ce5780631e2f83a6146102ff5780631ec9f34b1461032b5780632bd6361814610352578063368acb091461036757806337518dae1461037c575b600080fd5b3480156102da57600080fd5b506102e3610a37565b604080516001600160a01b039092168252519081900360200190f35b34801561030b57600080fd5b506103296004803603602081101561032257600080fd5b5035610a46565b005b34801561033757600080fd5b50610340610ad1565b60408051918252519081900360200190f35b34801561035e57600080fd5b50610340610ad7565b34801561037357600080fd5b50610340610add565b34801561038857600080fd5b506103296004803603602081101561039f57600080fd5b5035610ae3565b3480156103b257600080fd5b506103bb610b76565b604080519115158252519081900360200190f35b3480156103db57600080fd5b50610329600480360360208110156103f257600080fd5b50356001600160a01b0316610b7f565b34801561040e57600080fd5b506103406004803603604081101561042557600080fd5b506001600160a01b038135169060200135610c69565b34801561044757600080fd5b506103bb610c97565b34801561045c57600080fd5b506103bb610d2c565b34801561047157600080fd5b506103296004803603604081101561048857600080fd5b506001600160a01b038135169060200135610d3c565b3480156104aa57600080fd5b506104d7600480360360408110156104c157600080fd5b50803590602001356001600160a01b0316610ddb565b604051808460018111156104e757fe5b81526020018381526020018215158152602001935050505060405180910390f35b34801561051457600080fd5b50610340610e0a565b34801561052957600080fd5b50610329610e10565b34801561053e57600080fd5b50610340610ece565b34801561055357600080fd5b506103296004803603604081101561056a57600080fd5b50803590602001351515610ed4565b34801561058557600080fd5b506103296004803603602081101561059c57600080fd5b50356001600160a01b0316610f2f565b3480156105b857600080fd5b506103bb611043565b3480156105cd57600080fd5b50610340611051565b3480156105e257600080fd5b50610340611057565b3480156105f757600080fd5b506103bb6004803603604081101561060e57600080fd5b50803590602001356001600160a01b031661105d565b34801561063057600080fd5b506103296111be565b34801561064557600080fd5b506103296004803603602081101561065c57600080fd5b5035611337565b34801561066f57600080fd5b5061068d6004803603602081101561068657600080fd5b50356113d0565b604080519d8e5260208e019c909c528c8c019a909a5260608c019890985260808b019690965260a08a019490945260c089019290925260e08801526101008701526101208601526101408501521515610160840152151561018083015251908190036101a00190f35b34801561070257600080fd5b506102e361143c565b34801561071757600080fd5b5061034061144b565b610329611451565b34801561073457600080fd5b506103296004803603602081101561074b57600080fd5b50356001600160a01b031661170b565b34801561076757600080fd5b506103296004803603602081101561077e57600080fd5b50356117ce565b34801561079157600080fd5b506103bb600480360360408110156107a857600080fd5b50803590602001356001600160a01b0316611bcb565b3480156107ca57600080fd5b50610329600480360360208110156107e157600080fd5b5035611d6d565b3480156107f457600080fd5b50610340611dbf565b34801561080957600080fd5b506103296004803603602081101561082057600080fd5b5035611dc4565b34801561083357600080fd5b50610340611eab565b34801561084857600080fd5b506103296004803603602081101561085f57600080fd5b5035611eb1565b34801561087257600080fd5b506108a56004803603606081101561088957600080fd5b506001600160a01b038135169060208101359060400135611f03565b6040518080602001838152602001828103825284818151815260200191508051906020019060200280838360005b838110156108eb5781810151838201526020016108d3565b50505050905001935050505060405180910390f35b34801561090c57600080fd5b50610329611ff6565b34801561092157600080fd5b50610329612133565b34801561093657600080fd5b506103296004803603602081101561094d57600080fd5b50356001600160a01b031661224b565b34801561096957600080fd5b5061034061230e565b34801561097e57600080fd5b50610340612312565b34801561099357600080fd5b50610329612318565b3480156109a857600080fd5b50610329600480360360208110156109bf57600080fd5b5035612411565b3480156109d257600080fd5b506103406124f6565b3480156109e757600080fd5b506103296124fc565b3480156109fc57600080fd5b506103406125e3565b348015610a1157600080fd5b506102e36125e9565b6103296125f8565b348015610a2e57600080fd5b506103296128af565b600b546001600160a01b031681565b600a546001600160a01b03163314610a93576040805162461bcd60e51b815260206004820152600b60248201526a61646d696e73206f6e6c7960a81b604482015290519081900360640190fd5b60118190556004546040805183815290517f82480e97991520549ac4b5d0e1d97edb3bfac2666202923b6903d2a953dc76089181900360200190a250565b60085481565b60065481565b600c5481565b600a546001600160a01b03163314610b30576040805162461bcd60e51b815260206004820152600b60248201526a61646d696e73206f6e6c7960a81b604482015290519081900360640190fd5b600854811115610b715760405162461bcd60e51b81526004018080602001828103825260228152602001806134f76022913960400191505060405180910390fd5b600955565b60135460ff1681565b610b87612951565b6001600160a01b0316610b9861143c565b6001600160a01b031614610bf3576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b038116610c47576040805162461bcd60e51b815260206004820152601660248201527543616e6e6f74206265207a65726f206164647265737360501b604482015290519081900360640190fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60036020528160005260406000208181548110610c8257fe5b90600052602060002001600091509150505481565b600080600d60009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b158015610ce857600080fd5b505afa158015610cfc573d6000803e3d6000fd5b505050506040513d60a0811015610d1257600080fd5b5051600e5469ffffffffffffffffffff9091161191505090565b600054600160a01b900460ff1690565b600a546001600160a01b03163314610d89576040805162461bcd60e51b815260206004820152600b60248201526a61646d696e73206f6e6c7960a81b604482015290519081900360640190fd5b610d938282612955565b604080516001600160a01b03841681526020810183905281517f1b0f90c0b73ff53b6214d863ca6ef1fc552d7fd947567f98af9ad119439b9645929181900390910190a15050565b6002602081815260009384526040808520909152918352912080546001820154919092015460ff928316921683565b60125481565b610e18612951565b6001600160a01b0316610e2961143c565b6001600160a01b031614610e84576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60055481565b600a546001600160a01b03163314610f21576040805162461bcd60e51b815260206004820152600b60248201526a61646d696e73206f6e6c7960a81b604482015290519081900360640190fd5b610f2b82826129f7565b5050565b610f37612951565b6001600160a01b0316610f4861143c565b6001600160a01b031614610fa3576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b038116610fe85760405162461bcd60e51b815260040180806020018281038252602681526020018061356e6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b601354610100900460ff1681565b60045481565b600f5481565b6000611067613468565b60008481526002602090815260408083206001600160a01b0387168452909152908190208151606081019092528054829060ff1660018111156110a657fe5b60018111156110b157fe5b81526001820154602082015260029091015460ff16151560409091015290506110d861348a565b5060008481526001602081815260409283902083516101a0810185528154815292810154918301919091526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100808301919091526009830154610120830152600a830154610140830152600b9092015460ff80821615801561016085018190529490920416151561018083015290916111a4575060095460608201516111a191612a01565b43115b80156111b35750602082015115155b925050505b92915050565b600b546001600160a01b0316331461120e576040805162461bcd60e51b815260206004820152600e60248201526d6f70657261746f7273206f6e6c7960901b604482015290519081900360640190fd5b611216610d2c565b1561125b576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b60135460ff1661129c5760405162461bcd60e51b815260040180806020018281038252602a815260200180613544602a913960400191505060405180910390fd5b601354610100900460ff16156112f9576040805162461bcd60e51b815260206004820152601b60248201527f43616e206f6e6c792072756e206c6f636b526f756e64206f6e63650000000000604482015290519081900360640190fd5b6000611303612a62565b905061131160045482612b66565b600480546001019081905561132590612c74565b506013805461ff001916610100179055565b600a546001600160a01b03163314611384576040805162461bcd60e51b815260206004820152600b60248201526a61646d696e73206f6e6c7960a81b604482015290519081900360640190fd5b600a5461139a906001600160a01b031682612955565b6040805182815290517f33970dbaecc4cfd696216433f5a422af156f79a64a2283a48e6a2ac2a0c122839181900360200190a150565b600160208190526000918252604090912080549181015460028201546003830154600484015460058501546006860154600787015460088801546009890154600a8a0154600b909a01549899979896979596949593949293919290919060ff808216916101009004168d565b6000546001600160a01b031690565b60095481565b611459610d2c565b1561149e576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6114a733612d14565b156114f0576040805162461bcd60e51b815260206004820152601460248201527318dbdb9d1c9858dd081b9bdd08185b1b1bddd95960621b604482015290519081900360640190fd5b333214611541576040805162461bcd60e51b815260206004820152601a6024820152791c1c9bde1e4818dbdb9d1c9858dd081b9bdd08185b1b1bddd95960321b604482015290519081900360640190fd5b61154c600454612d1a565b611592576040805162461bcd60e51b8152602060048201526012602482015271526f756e64206e6f74206265747461626c6560701b604482015290519081900360640190fd5b6011543410156115d35760405162461bcd60e51b815260040180806020018281038252602c8152602001806135c2602c913960400191505060405180910390fd5b600454600090815260026020908152604080832033845290915290206001015415611645576040805162461bcd60e51b815260206004820152601b60248201527f43616e206f6e6c7920626574206f6e63652070657220726f756e640000000000604482015290519081900360640190fd5b600454600090815260016020526040902060068101543491906116689083612a01565b6006820155600881015461167c9083612a01565b600882015560048054600090815260026020908152604080832033808552908352818420805460ff191660019081178255808201899055600385528386208754815492830182559087529585902001949094559354815187815291519394909390927f0d8c1fe3e67ab767116a81f122b83c2557a8c2564019cb7c4f83de1aeb1f1f0d928290030190a3505050565b600a546001600160a01b03163314611758576040805162461bcd60e51b815260206004820152600b60248201526a61646d696e73206f6e6c7960a81b604482015290519081900360640190fd5b6001600160a01b0381166117ac576040805162461bcd60e51b815260206004820152601660248201527543616e6e6f74206265207a65726f206164647265737360501b604482015290519081900360640190fd5b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6117d733612d14565b15611820576040805162461bcd60e51b815260206004820152601460248201527318dbdb9d1c9858dd081b9bdd08185b1b1bddd95960621b604482015290519081900360640190fd5b333214611871576040805162461bcd60e51b815260206004820152601a6024820152791c1c9bde1e4818dbdb9d1c9858dd081b9bdd08185b1b1bddd95960321b604482015290519081900360640190fd5b600081815260016020819052604090912001546118cd576040805162461bcd60e51b8152602060048201526015602482015274149bdd5b99081a185cc81b9bdd081cdd185c9d1959605a1b604482015290519081900360640190fd5b6000818152600160205260409020600301544311611928576040805162461bcd60e51b8152602060048201526013602482015272149bdd5b99081a185cc81b9bdd08195b991959606a1b604482015290519081900360640190fd5b6000818152600260208181526040808420338552909152909120015460ff161561198b576040805162461bcd60e51b815260206004820152600f60248201526e14995dd85c991cc818db185a5b5959608a1b604482015290519081900360640190fd5b6000818152600160205260408120600b015460ff1615611ae2576119af8233611bcb565b6119f9576040805162461bcd60e51b81526020600482015260166024820152754e6f7420656c696769626c6520666f7220636c61696d60501b604482015290519081900360640190fd5b611a0161348a565b50600082815260016020818152604080842081516101a081018352815481528185015481850152600280830154828501526003830154606083015260048301546080830152600583015460a0830152600683015460c0830152600783015460e083015260088301546101008084019190915260098401546101208401819052600a8501546101408501819052600b9095015460ff8082161515610160870152929004909116151561018084015289885290855283872033885290945291909420909201549192611ada92611ad491612d86565b90612ddf565b915050611b5c565b611aec823361105d565b611b3d576040805162461bcd60e51b815260206004820152601760248201527f4e6f7420656c696769626c6520666f7220726566756e64000000000000000000604482015290519081900360640190fd5b5060008181526002602090815260408083203384529091529020600101545b6000828152600260208181526040808420338086529252909220908101805460ff1916600117905590611b8f9083612955565b604080518381529051849133917f34fcbac0073d7c3d388e51312faf357774904998eeb8fca628b9e6f65ee1cbf79181900360200190a3505050565b6000611bd5613468565b60008481526002602090815260408083206001600160a01b0387168452909152908190208151606081019092528054829060ff166001811115611c1457fe5b6001811115611c1f57fe5b81526001820154602082015260029091015460ff1615156040909101529050611c4661348a565b5060008481526001602081815260409283902083516101a08101855281548152928101549183019190915260028101549282019290925260038201546060820152600482015460808201819052600583015460a08301819052600684015460c0840152600784015460e08401526008840154610100808501919091526009850154610120850152600a850154610140850152600b9094015460ff8082161515610160860152949004909316151561018083015290911415611d0c576000925050506111b8565b80610160015180156111b3575080608001518160a00151138015611d3c5750600082516001811115611d3a57fe5b145b806111b3575080608001518160a001511280156111b35750600182516001811115611d6357fe5b1495945050505050565b600a546001600160a01b03163314611dba576040805162461bcd60e51b815260206004820152600b60248201526a61646d696e73206f6e6c7960a81b604482015290519081900360640190fd5b600855565b606481565b600a546001600160a01b03163314611e11576040805162461bcd60e51b815260206004820152600b60248201526a61646d696e73206f6e6c7960a81b604482015290519081900360640190fd5b6064811115611e515760405162461bcd60e51b81526004018080602001828103825260238152602001806136906023913960400191505060405180910390fd5b600f819055611e61606482612e46565b6010819055600454600f54604080519182526020820193909352825191927f023010bc68e7f4c0be9887f513c570c7a0f5f511b9716abccd42bf3b8943532b92918290030190a250565b60075481565b600a546001600160a01b03163314611efe576040805162461bcd60e51b815260206004820152600b60248201526a61646d696e73206f6e6c7960a81b604482015290519081900360640190fd5b601255565b6001600160a01b038316600090815260036020526040812054606091908390859003811115611f4a57506001600160a01b0385166000908152600360205260409020548490035b60608167ffffffffffffffff81118015611f6357600080fd5b50604051908082528060200260200182016040528015611f8d578160200160208202803683370190505b50905060005b82811015611feb576001600160a01b03881660009081526003602052604090208054888301908110611fc157fe5b9060005260206000200154828281518110611fd857fe5b6020908102919091010152600101611f93565b509694019450505050565b600b546001600160a01b03163314612046576040805162461bcd60e51b815260206004820152600e60248201526d6f70657261746f7273206f6e6c7960901b604482015290519081900360640190fd5b61204e610d2c565b15612093576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b60135460ff1680156120ac5750601354610100900460ff165b6120e75760405162461bcd60e51b81526004018080602001828103825260388152602001806136b36038913960400191505060405180910390fd5b60006120f1612a62565b90506120ff60045482612b66565b61210e60016004540382612ea3565b61211c600160045403612f4a565b60048054600101908190556121309061312f565b50565b600b546001600160a01b03163314612183576040805162461bcd60e51b815260206004820152600e60248201526d6f70657261746f7273206f6e6c7960901b604482015290519081900360640190fd5b61218b610d2c565b156121d0576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b60135460ff1615612228576040805162461bcd60e51b815260206004820152601c60248201527f43616e206f6e6c792072756e207374617274526f756e64206f6e636500000000604482015290519081900360640190fd5b600480546001019081905561223c90612c74565b6013805460ff19166001179055565b600a546001600160a01b03163314612298576040805162461bcd60e51b815260206004820152600b60248201526a61646d696e73206f6e6c7960a81b604482015290519081900360640190fd5b6001600160a01b0381166122ec576040805162461bcd60e51b815260206004820152601660248201527543616e6e6f74206265207a65726f206164647265737360501b604482015290519081900360640190fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b4390565b60105481565b600a546001600160a01b031633148061233b5750600b546001600160a01b031633145b612385576040805162461bcd60e51b815260206004820152601660248201527561646d696e207c206f70657261746f723a207775743f60501b604482015290519081900360640190fd5b61238d610d2c565b156123d2576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6123da613220565b60045460408051918252517f68b095021b1f40fe513109f513c66692f0b3219aee674a69f4efc57badb8201d9181900360200190a1565b600a546001600160a01b0316331461245e576040805162461bcd60e51b815260206004820152600b60248201526a61646d696e73206f6e6c7960a81b604482015290519081900360640190fd5b606481111561249e5760405162461bcd60e51b815260040180806020018281038252602581526020018061370c6025913960400191505060405180910390fd5b6124a9606482612e46565b600f81905560108290556004546040805192835260208301849052805191927f023010bc68e7f4c0be9887f513c570c7a0f5f511b9716abccd42bf3b8943532b929081900390910190a250565b600e5481565b600a546001600160a01b03163314612549576040805162461bcd60e51b815260206004820152600b60248201526a61646d696e73206f6e6c7960a81b604482015290519081900360640190fd5b612551610d2c565b612599576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6013805461ffff191690556125ac6132c6565b60045460408051918252517faaa520fdd7d2c83061d632fa017b0432407e798818af63ea908589fceda39ab79181900360200190a1565b60115481565b600a546001600160a01b031681565b612600610d2c565b15612645576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b61264e33612d14565b15612697576040805162461bcd60e51b815260206004820152601460248201527318dbdb9d1c9858dd081b9bdd08185b1b1bddd95960621b604482015290519081900360640190fd5b3332146126e8576040805162461bcd60e51b815260206004820152601a6024820152791c1c9bde1e4818dbdb9d1c9858dd081b9bdd08185b1b1bddd95960321b604482015290519081900360640190fd5b6126f3600454612d1a565b612739576040805162461bcd60e51b8152602060048201526012602482015271526f756e64206e6f74206265747461626c6560701b604482015290519081900360640190fd5b60115434101561277a5760405162461bcd60e51b815260040180806020018281038252602c8152602001806135c2602c913960400191505060405180910390fd5b6004546000908152600260209081526040808320338452909152902060010154156127ec576040805162461bcd60e51b815260206004820152601b60248201527f43616e206f6e6c7920626574206f6e63652070657220726f756e640000000000604482015290519081900360640190fd5b6004546000908152600160205260409020600681015434919061280f9083612a01565b600682015560078101546128239083612a01565b600782015560048054600090815260026020908152604080832033808552908352818420805460ff191681556001808201899055600385528386208754815492830182559087529585902001949094559354815187815291519394909390927f438122d8cff518d18388099a5181f0d17a12b4f1b55faedf6e4a6acee0060c12928290030190a3505050565b600a546001600160a01b031633146128fc576040805162461bcd60e51b815260206004820152600b60248201526a61646d696e73206f6e6c7960a81b604482015290519081900360640190fd5b600c80546000909155600a5461291b906001600160a01b031682612955565b6040805182815290517f609175abb7f12481e4f200d1ef4fc834e6caac3d9eadba42d664352f6d0932ca9181900360200190a150565b3390565b6040516000906001600160a01b038416906159d890849084818181858888f193505050503d80600081146129a5576040519150601f19603f3d011682016040523d82523d6000602084013e6129aa565b606091505b50509050806129f2576040805162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8811985a5b1959608a1b604482015290519081900360640190fd5b505050565b610f2b828261334c565b600082820183811015612a5b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600080612a7a60125442612a0190919063ffffffff16565b90506000806000600d60009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b158015612acf57600080fd5b505afa158015612ae3573d6000803e3d6000fd5b505050506040513d60a0811015612af957600080fd5b5080516020820151606090920151909450909250905083811115612b4e5760405162461bcd60e51b815260040180806020018281038252602e815260200180613762602e913960400191505060405180910390fd5b5069ffffffffffffffffffff909116600e5591505090565b60008281526001602081905260409091200154612bb45760405162461bcd60e51b815260040180806020018281038252602b815260200180613519602b913960400191505060405180910390fd5b600082815260016020526040902060020154431015612c045760405162461bcd60e51b815260040180806020018281038252602381526020018061366d6023913960400191505060405180910390fd5b600082815260016020526040902060030154431115612c6a576040805162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206c6f636b206265666f726520656e6420626c6f636b0000604482015290519081900360640190fd5b610f2b82826133a5565b6000818152600160208190526040909120439181018290556008549091612c9a91612a01565b600280830191909155600854612cb291439102612a01565b6003820190815582825560006006808401919091556001830154600555600283015490555460075560408051438152905183917f0e5543feb86a4cd302f2b88b26c42be2d1673013a34e1f98bd6d524dd3b4ab41919081900360200190a25050565b3b151590565b60008181526001602081905260408220015415801590612d4a575060008281526001602052604090206002015415155b8015612d6757506000828152600160208190526040909120015443115b80156111b8575050600090815260016020526040902060020154431090565b600082612d95575060006111b8565b82820282848281612da257fe5b0414612a5b5760405162461bcd60e51b81526004018080602001828103825260218152602001806136236021913960400191505060405180910390fd5b6000808211612e35576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381612e3e57fe5b049392505050565b600082821115612e9d576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082815260016020526040902060020154612ef05760405162461bcd60e51b81526004018080602001828103825260298152602001806136446029913960400191505060405180910390fd5b600082815260016020526040902060030154431015612f405760405162461bcd60e51b81526004018080602001828103825260218152602001806136eb6021913960400191505060405180910390fd5b610f2b82826133ff565b6064612f63601054600f54612a0190919063ffffffff16565b14612f9f5760405162461bcd60e51b81526004018080602001828103825260358152602001806135ee6035913960400191505060405180910390fd5b600081815260016020526040902060090154158015612fcd57506000818152600160205260409020600a0154155b613013576040805162461bcd60e51b815260206004820152601260248201527114995dd85c991cc818d85b18dd5b185d195960721b604482015290519081900360640190fd5b600081815260016020526040812060048101546005820154919291829182911315613084578360070154925061305d6064611ad4600f548760060154612d8690919063ffffffff16565b915061307d6064611ad46010548760060154612d8690919063ffffffff16565b90506130c7565b8360040154846005015412156130b9578360080154925061305d6064611ad4600f548760060154612d8690919063ffffffff16565b505050600681015460009081905b60098401839055600a8401829055600c546130e29082612a01565b600c556040805184815260208101849052808201839052905186917f6dfdfcb09c8804d0058826cd2539f1acfbe3cb887c9be03d928035bce0f1a58d919081900360600190a25050505050565b60135460ff166131705760405162461bcd60e51b815260040180806020018281038252602a815260200180613544602a913960400191505060405180910390fd5b60011981016000908152600160205260409020600301546131c25760405162461bcd60e51b815260040180806020018281038252602e815260200180613594602e913960400191505060405180910390fd5b60011981016000908152600160205260409020600301544310156132175760405162461bcd60e51b81526004018080602001828103825260318152602001806137316031913960400191505060405180910390fd5b61213081612c74565b613228610d2c565b1561326d576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586132a9612951565b604080516001600160a01b039092168252519081900360200190a1565b6132ce610d2c565b613316576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6132a9612951565b600082815260016020526040808220600b8101805461010061ff00199091161760ff19168515151790559051909184917f1316afc2a7dc68d55247ceedbef28ffd97f61bafc159c949278f4b934d448c7b9190a2505050565b6000828152600160209081526040918290206004810184905582514381529182018490528251909285927f482e76a65b448a42deef26e99e58fb20c85e26f075defff8df6aa80459b39006929081900390910190a2505050565b60008281526001602081815260409283902060058101859055600b8101805460ff191690931790925582514381529081018490528251919285927fb6ff1fe915db84788cbbbc017f0d2bef9485fad9fd0bd8ce9340fde0d8410dd89281900390910190a2505050565b6040805160608101909152806000815260006020820181905260409091015290565b604051806101a001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600015158152602001600015158152509056fe43616e6e6f74206265206d6f7265207468616e20696e74657276616c426c6f636b7343616e206f6e6c79206c6f636b20726f756e6420616674657220726f756e6420686173207374617274656443616e206f6e6c792072756e206166746572207374617274526f756e64206973207472696767657265644f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737343616e206f6e6c7920737461727420726f756e6420616674657220726f756e64206e2d322068617320656e64656442657420616d6f756e74206d7573742062652067726561746572207468616e206d696e426574416d6f756e747265776172645261746520616e6420747265617375727952617465206d7573742061646420757020746f20544f54414c5f52415445536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7743616e206f6e6c7920656e6420726f756e6420616674657220726f756e6420686173206c6f636b656443616e206f6e6c79206c6f636b20726f756e64206166746572206c6f636b426c6f636b726577617264526174652063616e6e6f74206265206d6f7265207468616e203130302543616e206f6e6c792072756e206166746572207374617274526f756e6420616e64206c6f636b526f756e642069732074726967676572656443616e206f6e6c7920656e6420726f756e6420616674657220656e64426c6f636b7472656173757279526174652063616e6e6f74206265206d6f7265207468616e203130302543616e206f6e6c79207374617274206e657720726f756e6420616674657220726f756e64206e2d3220656e64426c6f636b4f7261636c6520757064617465206578636565646564206d61782074696d657374616d7020616c6c6f77616e6365a26469706673582212209a26ef38f2f8f84fdc54dc95a84e6d5adb17da284a0e222178181f0987abfbdc64736f6c634300060c00330000000000000000000000000567f2323251f0aab15c8dfb1967e4e8a7d42aee000000000000000000000000ff1a2baa00234ad7659b736e6d36e0c34b594238000000000000000000000000ff1a2baa00234ad7659b736e6d36e0c34b5942380000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000038d7ea4c68000000000000000000000000000000000000000000000000000000000000000012c

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

0000000000000000000000000567f2323251f0aab15c8dfb1967e4e8a7d42aee000000000000000000000000ff1a2baa00234ad7659b736e6d36e0c34b594238000000000000000000000000ff1a2baa00234ad7659b736e6d36e0c34b5942380000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000038d7ea4c68000000000000000000000000000000000000000000000000000000000000000012c

-----Decoded View---------------
Arg [0] : _oracle (address): 0x0567f2323251f0aab15c8dfb1967e4e8a7d42aee
Arg [1] : _adminAddress (address): 0xff1a2baa00234ad7659b736e6d36e0c34b594238
Arg [2] : _operatorAddress (address): 0xff1a2baa00234ad7659b736e6d36e0c34b594238
Arg [3] : _intervalBlocks (uint256): 100
Arg [4] : _bufferBlocks (uint256): 30
Arg [5] : _minBetAmount (uint256): 1000000000000000
Arg [6] : _oracleUpdateAllowance (uint256): 300

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000567f2323251f0aab15c8dfb1967e4e8a7d42aee
Arg [1] : 000000000000000000000000ff1a2baa00234ad7659b736e6d36e0c34b594238
Arg [2] : 000000000000000000000000ff1a2baa00234ad7659b736e6d36e0c34b594238
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000064
Arg [4] : 000000000000000000000000000000000000000000000000000000000000001e
Arg [5] : 00000000000000000000000000000000000000000000000000038d7ea4c68000
Arg [6] : 000000000000000000000000000000000000000000000000000000000000012c


Deployed ByteCode Sourcemap

7241:20524:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8296:30;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;8296:30:0;;;;;;;;;;;;;;22604:194;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22604:194:0;;:::i;:::-;;8192:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8117:31;;;;;;;;;;;;;:::i;8333:29::-;;;;;;;;;;;;;:::i;20941:212::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20941:212:0;;:::i;8691:29::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;16938:192;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16938:192:0;-1:-1:-1;;;;;16938:192:0;;:::i;7996:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7996:41:0;;;;;;;;:::i;27175:177::-;;;;;;;;;;;;;:::i;5911:86::-;;;;;;;;;;;;;:::i;18147:168::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;18147:168:0;;;;;;;;:::i;7931:58::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7931:58:0;;;;;;-1:-1:-1;;;;;7931:58:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8635:36;;;;;;;;;;;;;:::i;5259:154::-;;;;;;;;;;;;;:::i;8078:32::-;;;;;;;;;;;;;:::i;20494:140::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20494:140:0;;;;;;;;;:::i;5421:250::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5421:250:0;-1:-1:-1;;;;;5421:250:0;;:::i;8727:28::-;;;;;;;;;;;;;:::i;8044:27::-;;;;;;;;;;;;;:::i;8511:30::-;;;;;;;;;;;;;:::i;27457:298::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27457:298:0;;;;;;-1:-1:-1;;;;;27457:298:0;;:::i;19271:433::-;;;;;;;;;;;;;:::i;17888:160::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17888:160:0;;:::i;7885:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7885:39:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5036:87;;;;;;;;;;;;;:::i;8228:27::-;;;;;;;;;;;;;:::i;22859:850::-;;;:::i;21237:195::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21237:195:0;-1:-1:-1;;;;;21237:195:0;;:::i;23763:1054::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23763:1054:0;;:::i;26410:511::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26410:511:0;;;;;;-1:-1:-1;;;;;26410:511:0;;:::i;20721:137::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20721:137:0;;:::i;8456:40::-;;;;;;;;;;;;;:::i;21771:328::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21771:328:0;;:::i;8155:30::-;;;;;;;;;;;;;:::i;21525:165::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21525:165:0;;:::i;25824:484::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25824:484:0;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19815:627;;;;;;;;;;;;;:::i;18972:249::-;;;;;;;;;;;;;:::i;17216:207::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17216:207:0;-1:-1:-1;;;;;17216:207:0;;:::i;26995:98::-;;;;;;;;;;;;;:::i;8555:32::-;;;;;;;;;;;;;:::i;18413:136::-;;;;;;;;;;;;;:::i;22182:340::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22182:340:0;;:::i;8413:34::-;;;;;;;;;;;;;:::i;18738:183::-;;;;;;;;;;;;;:::i;8601:27::-;;;;;;;;;;;;;:::i;8262:::-;;;;;;;;;;;;;:::i;24882:850::-;;;:::i;17518:268::-;;;;;;;;;;;;;:::i;8296:30::-;;;-1:-1:-1;;;;;8296:30:0;;:::o;22604:194::-;10494:12;;-1:-1:-1;;;;;10494:12:0;10480:10;:26;10472:50;;;;;-1:-1:-1;;;10472:50:0;;;;;;;;;;;;-1:-1:-1;;;10472:50:0;;;;;;;;;;;;;;;22697:12:::1;:28:::0;;;22763:12:::1;::::0;22743:47:::1;::::0;;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;22604:194:::0;:::o;8192:29::-;;;;:::o;8117:31::-;;;;:::o;8333:29::-;;;;:::o;20941:212::-;10494:12;;-1:-1:-1;;;;;10494:12:0;10480:10;:26;10472:50;;;;;-1:-1:-1;;;10472:50:0;;;;;;;;;;;;-1:-1:-1;;;10472:50:0;;;;;;;;;;;;;;;21053:14:::1;;21036:13;:31;;21028:78;;;;-1:-1:-1::0;;;21028:78:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21117:12;:28:::0;20941:212::o;8691:29::-;;;;;;:::o;16938:192::-;5182:12;:10;:12::i;:::-;-1:-1:-1;;;;;5171:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;5171:23:0;;5163:68;;;;;-1:-1:-1;;;5163:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17029:27:0;::::1;17021:62;;;::::0;;-1:-1:-1;;;17021:62:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;17021:62:0;;;;;;;;;;;;;::::1;;17094:12;:28:::0;;-1:-1:-1;;;;;;17094:28:0::1;-1:-1:-1::0;;;;;17094:28:0;;;::::1;::::0;;;::::1;::::0;;16938:192::o;7996:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;27175:177::-;27224:4;27247:14;27273:6;;;;;;;;;-1:-1:-1;;;;;27273:6:0;-1:-1:-1;;;;;27273:22:0;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27273:24:0;27325:19;;27315:29;;;;;;-1:-1:-1;;27175:177:0;:::o;5911:86::-;5958:4;5982:7;-1:-1:-1;;;5982:7:0;;;;;5911:86::o;18147:168::-;10494:12;;-1:-1:-1;;;;;10494:12:0;10480:10;:26;10472:50;;;;;-1:-1:-1;;;10472:50:0;;;;;;;;;;;;-1:-1:-1;;;10472:50:0;;;;;;;;;;;;;;;18238:30:::1;18255:4;18262:5;18238:16;:30::i;:::-;18284:23;::::0;;-1:-1:-1;;;;;18284:23:0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;18147:168:::0;;:::o;7931:58::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8635:36::-;;;;:::o;5259:154::-;5182:12;:10;:12::i;:::-;-1:-1:-1;;;;;5171:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;5171:23:0;;5163:68;;;;;-1:-1:-1;;;5163:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5372:1:::1;5356:6:::0;;5335:40:::1;::::0;-1:-1:-1;;;;;5356:6:0;;::::1;::::0;5335:40:::1;::::0;5372:1;;5335:40:::1;5403:1;5386:19:::0;;-1:-1:-1;;;;;;5386:19:0::1;::::0;;5259:154::o;8078:32::-;;;;:::o;20494:140::-;10494:12;;-1:-1:-1;;;;;10494:12:0;10480:10;:26;10472:50;;;;;-1:-1:-1;;;10472:50:0;;;;;;;;;;;;-1:-1:-1;;;10472:50:0;;;;;;;;;;;;;;;20591:35:::1;20608:5;20615:10;20591:16;:35::i;:::-;20494:140:::0;;:::o;5421:250::-;5182:12;:10;:12::i;:::-;-1:-1:-1;;;;;5171:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;5171:23:0;;5163:68;;;;;-1:-1:-1;;;5163:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5516:22:0;::::1;5508:73;;;;-1:-1:-1::0;;;5508:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5618:6;::::0;;5597:38:::1;::::0;-1:-1:-1;;;;;5597:38:0;;::::1;::::0;5618:6;::::1;::::0;5597:38:::1;::::0;::::1;5646:6;:17:::0;;-1:-1:-1;;;;;;5646:17:0::1;-1:-1:-1::0;;;;;5646:17:0;;;::::1;::::0;;;::::1;::::0;;5421:250::o;8727:28::-;;;;;;;;;:::o;8044:27::-;;;;:::o;8511:30::-;;;;:::o;27457:298::-;27527:4;27550:22;;:::i;:::-;27575:10;;;;:3;:10;;;;;;;;-1:-1:-1;;;;;27575:16:0;;;;;;;;;;;27550:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27602:18:0;;:::i;:::-;-1:-1:-1;27623:13:0;;;;:6;:13;;;;;;;;;27602:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27654:70;;-1:-1:-1;27711:12:0;;27692:14;;;;:32;;:18;:32::i;:::-;27677:12;:47;27654:70;:93;;;;-1:-1:-1;27728:14:0;;;;:19;;27654:93;27647:100;;;;27457:298;;;;;:::o;19271:433::-;10785:15;;-1:-1:-1;;;;;10785:15:0;10771:10;:29;10763:56;;;;;-1:-1:-1;;;10763:56:0;;;;;;;;;;;;-1:-1:-1;;;10763:56:0;;;;;;;;;;;;;;;6052:8:::1;:6;:8::i;:::-;6051:9;6043:38;;;::::0;;-1:-1:-1;;;6043:38:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;6043:38:0;;;;;;;;;;;;;::::1;;19361:9:::2;::::0;::::2;;19353:64;;;;-1:-1:-1::0;;;19353:64:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19437:8;::::0;::::2;::::0;::::2;;;19436:9;19428:49;;;::::0;;-1:-1:-1;;;19428:49:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;19494:19;19516:21;:19;:21::i;:::-;19494:43;;19548:42;19563:12;;19577;19548:14;:42::i;:::-;19618:12;::::0;;19633:1:::2;19618:16;19603:31:::0;;;;19645:25:::2;::::0;:11:::2;:25::i;:::-;-1:-1:-1::0;19681:8:0::2;:15:::0;;-1:-1:-1;;19681:15:0::2;;;::::0;;19271:433::o;17888:160::-;10494:12;;-1:-1:-1;;;;;10494:12:0;10480:10;:26;10472:50;;;;;-1:-1:-1;;;10472:50:0;;;;;;;;;;;;-1:-1:-1;;;10472:50:0;;;;;;;;;;;;;;;17984:12:::1;::::0;17967:38:::1;::::0;-1:-1:-1;;;;;17984:12:0::1;17999:5:::0;17967:16:::1;:38::i;:::-;18021:19;::::0;;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;17888:160:::0;:::o;7885:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5036:87::-;5082:7;5109:6;-1:-1:-1;;;;;5109:6:0;5036:87;:::o;8228:27::-;;;;:::o;22859:850::-;6052:8;:6;:8::i;:::-;6051:9;6043:38;;;;;-1:-1:-1;;;6043:38:0;;;;;;;;;;;;-1:-1:-1;;;6043:38:0;;;;;;;;;;;;;;;10896:23:::1;10908:10;10896:11;:23::i;:::-;10895:24;10887:57;;;::::0;;-1:-1:-1;;;10887:57:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;10887:57:0;;;;;;;;;;;;;::::1;;10963:10;10977:9;10963:23;10955:62;;;::::0;;-1:-1:-1;;;10955:62:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;10955:62:0;;;;;;;;;;;;;::::1;;22951:23:::2;22961:12;;22951:9;:23::i;:::-;22943:54;;;::::0;;-1:-1:-1;;;22943:54:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;22943:54:0;;;;;;;;;;;;;::::2;;23029:12;;23016:9;:25;;23008:82;;;;-1:-1:-1::0;;;23008:82:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23113:12;::::0;23109:17:::2;::::0;;;:3:::2;:17;::::0;;;;;;;23127:10:::2;23109:29:::0;;;;;;;:36:::2;;::::0;:41;23101:81:::2;;;::::0;;-1:-1:-1;;;23101:81:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;23291:12;::::0;23225:14:::2;23284:20:::0;;;:6:::2;:20;::::0;;;;23335:17:::2;::::0;::::2;::::0;23242:9:::2;::::0;23284:20;23335:29:::2;::::0;23242:9;23335:21:::2;:29::i;:::-;23315:17;::::0;::::2;:49:::0;23394:16:::2;::::0;::::2;::::0;:28:::2;::::0;23415:6;23394:20:::2;:28::i;:::-;23375:16;::::0;::::2;:47:::0;23494:12:::2;::::0;;23464:23:::2;23490:17:::0;;;:3:::2;:17;::::0;;;;;;;23508:10:::2;23490:29:::0;;;;;;;;;23530:32;;-1:-1:-1;;23530:32:0::2;23549:13;23530:32:::0;;::::2;::::0;;23573:14;;::::2;:23:::0;;;23607:4:::2;:16:::0;;;;;23629:12;;23607:35;;;;::::2;::::0;;;;;;;;;::::2;::::0;;;;23680:12;;23660:41;;;;;;;23490:29;;23680:12;;23508:10;;23660:41:::2;::::0;;;;;;::::2;11028:1;;;22859:850::o:0;21237:195::-;10494:12;;-1:-1:-1;;;;;10494:12:0;10480:10;:26;10472:50;;;;;-1:-1:-1;;;10472:50:0;;;;;;;;;;;;-1:-1:-1;;;10472:50:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;21326:21:0;::::1;21318:56;;;::::0;;-1:-1:-1;;;21318:56:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;21318:56:0;;;;;;;;;;;;;::::1;;21385:6;:39:::0;;-1:-1:-1;;;;;;21385:39:0::1;-1:-1:-1::0;;;;;21385:39:0;;;::::1;::::0;;;::::1;::::0;;21237:195::o;23763:1054::-;10896:23;10908:10;10896:11;:23::i;:::-;10895:24;10887:57;;;;;-1:-1:-1;;;10887:57:0;;;;;;;;;;;;-1:-1:-1;;;10887:57:0;;;;;;;;;;;;;;;10963:10;10977:9;10963:23;10955:62;;;;;-1:-1:-1;;;10955:62:0;;;;;;;;;;;;-1:-1:-1;;;10955:62:0;;;;;;;;;;;;;;;23844:13:::1;::::0;;;:6:::1;:13;::::0;;;;;;;:24:::1;::::0;23836:63:::1;;;::::0;;-1:-1:-1;;;23836:63:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;23836:63:0;;;;;;;;;;;;;::::1;;23933:13;::::0;;;:6:::1;:13;::::0;;;;:22:::1;;::::0;23918:12:::1;:37;23910:69;;;::::0;;-1:-1:-1;;;23910:69:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;23910:69:0;;;;;;;;;;;;;::::1;;23999:10;::::0;;;:3:::1;:10;::::0;;;;;;;24010::::1;23999:22:::0;;;;;;;;:30:::1;::::0;::::1;;23998:31;23990:59;;;::::0;;-1:-1:-1;;;23990:59:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;23990:59:0;;;;;;;;;;;;;::::1;;24062:14;24130:13:::0;;;:6:::1;:13;::::0;;;;:26:::1;;::::0;::::1;;24126:484;;;24181:28;24191:5;24198:10;24181:9;:28::i;:::-;24173:63;;;::::0;;-1:-1:-1;;;24173:63:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;24173:63:0;;;;;;;;;;;;;::::1;;24251:18;;:::i;:::-;-1:-1:-1::0;24272:13:0::1;::::0;;;:6:::1;:13;::::0;;;;;;;24251:34;;::::1;::::0;::::1;::::0;;;;;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;;;::::0;;;;;;::::1;::::0;;::::1;;;::::0;;;;24309:10;;;;;;;;;24320::::1;24309:22:::0;;;;;;;;;:29;;::::1;::::0;24251:34;;24309:84:::1;::::0;:53:::1;::::0;:33:::1;:53::i;:::-;:57:::0;::::1;:84::i;:::-;24300:93;;24126:484;;;;24488:29;24499:5;24506:10;24488;:29::i;:::-;24480:65;;;::::0;;-1:-1:-1;;;24480:65:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;24569:10:0::1;::::0;;;:3:::1;:10;::::0;;;;;;;24580::::1;24569:22:::0;;;;;;;:29:::1;;::::0;24126:484:::1;24622:23;24648:10:::0;;;:3:::1;:10;::::0;;;;;;;24659::::1;24648:22:::0;;;;;;;;24681:15;;::::1;:22:::0;;-1:-1:-1;;24681:22:0::1;24699:4;24681:22;::::0;;24648;24714:45:::1;::::0;24752:6;24714:16:::1;:45::i;:::-;24777:32;::::0;;;;;;;24795:5;;24783:10:::1;::::0;24777:32:::1;::::0;;;;::::1;::::0;;::::1;11028:1;;23763:1054:::0;:::o;26410:511::-;26479:4;26502:22;;:::i;:::-;26527:10;;;;:3;:10;;;;;;;;-1:-1:-1;;;;;26527:16:0;;;;;;;;;;;26502:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26554:18:0;;:::i;:::-;-1:-1:-1;26575:13:0;;;;:6;:13;;;;;;;;;26554:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26603:35;26599:80;;;26662:5;26655:12;;;;;;26599:80;26709:5;:18;;;:204;;;;;26765:5;:15;;;26746:5;:16;;;:34;:71;;;;-1:-1:-1;26804:13:0;26784:16;;:33;;;;;;;;;26746:71;26745:167;;;;26859:5;:15;;;26840:5;:16;;;:34;:71;;;;-1:-1:-1;26898:13:0;26878:16;;:33;;;;;;;;;;26410:511;-1:-1:-1;;;;;26410:511:0:o;20721:137::-;10494:12;;-1:-1:-1;;;;;10494:12:0;10480:10;:26;10472:50;;;;;-1:-1:-1;;;10472:50:0;;;;;;;;;;;;-1:-1:-1;;;10472:50:0;;;;;;;;;;;;;;;20818:14:::1;:32:::0;20721:137::o;8456:40::-;8493:3;8456:40;:::o;21771:328::-;10494:12;;-1:-1:-1;;;;;10494:12:0;10480:10;:26;10472:50;;;;;-1:-1:-1;;;10472:50:0;;;;;;;;;;;;-1:-1:-1;;;10472:50:0;;;;;;;;;;;;;;;8493:3:::1;21868:11;:25;;21860:73;;;;-1:-1:-1::0;;;21860:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21944:10;:24:::0;;;21994:27:::1;8493:3;21957:11:::0;21994:14:::1;:27::i;:::-;21979:12;:42:::0;;;22052:12:::1;::::0;22066:10:::1;::::0;22039:52:::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;22052:12;;22039:52:::1;::::0;;;;;;;::::1;21771:328:::0;:::o;8155:30::-;;;;:::o;21525:165::-;10494:12;;-1:-1:-1;;;;;10494:12:0;10480:10;:26;10472:50;;;;;-1:-1:-1;;;10472:50:0;;;;;;;;;;;;-1:-1:-1;;;10472:50:0;;;;;;;;;;;;;;;21636:21:::1;:46:::0;21525:165::o;25824:484::-;-1:-1:-1;;;;;25998:10:0;;25927:7;25998:10;;;:4;:10;;;;;:17;25909:16;;25927:7;25970:4;;25998:26;;;25989:35;;25985:103;;;-1:-1:-1;;;;;;26050:10:0;;;;;;:4;:10;;;;;:17;:26;;;25985:103;26100:23;26140:6;26126:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26126:21:0;;26100:47;;26163:9;26158:98;26182:6;26178:1;:10;26158:98;;;-1:-1:-1;;;;;26222:10:0;;;;;;:4;:10;;;;;:22;;26233:10;;;;26222:22;;;;;;;;;;;;;;26210:6;26217:1;26210:9;;;;;;;;;;;;;;;;;:34;26190:3;;26158:98;;;-1:-1:-1;26276:6:0;26284:15;;;-1:-1:-1;;;;25824:484:0:o;19815:627::-;10785:15;;-1:-1:-1;;;;;10785:15:0;10771:10;:29;10763:56;;;;;-1:-1:-1;;;10763:56:0;;;;;;;;;;;;-1:-1:-1;;;10763:56:0;;;;;;;;;;;;;;;6052:8:::1;:6;:8::i;:::-;6051:9;6043:38;;;::::0;;-1:-1:-1;;;6043:38:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;6043:38:0;;;;;;;;;;;;;::::1;;19922:9:::2;::::0;::::2;;:21:::0;::::2;;;-1:-1:-1::0;19935:8:0::2;::::0;::::2;::::0;::::2;;;19922:21;19900:127;;;;-1:-1:-1::0;;;19900:127:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20040:19;20062:21;:19;:21::i;:::-;20040:43;;20150:42;20165:12;;20179;20150:14;:42::i;:::-;20203:45;20232:1;20217:12;;:16;20235:12;20203:13;:45::i;:::-;20259:35;20292:1;20277:12;;:16;20259:17;:35::i;:::-;20378:12;::::0;;20393:1:::2;20378:16;20363:31:::0;;;;20405:29:::2;::::0;:15:::2;:29::i;:::-;6092:1;19815:627::o:0;18972:249::-;10785:15;;-1:-1:-1;;;;;10785:15:0;10771:10;:29;10763:56;;;;;-1:-1:-1;;;10763:56:0;;;;;;;;;;;;-1:-1:-1;;;10763:56:0;;;;;;;;;;;;;;;6052:8:::1;:6;:8::i;:::-;6051:9;6043:38;;;::::0;;-1:-1:-1;;;6043:38:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;6043:38:0;;;;;;;;;;;;;::::1;;19064:9:::2;::::0;::::2;;19063:10;19055:51;;;::::0;;-1:-1:-1;;;19055:51:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;19134:12;::::0;;19149:1:::2;19134:16;19119:31:::0;;;;19161:25:::2;::::0;:11:::2;:25::i;:::-;19197:9;:16:::0;;-1:-1:-1;;19197:16:0::2;19209:4;19197:16;::::0;;18972:249::o;17216:207::-;10494:12;;-1:-1:-1;;;;;10494:12:0;10480:10;:26;10472:50;;;;;-1:-1:-1;;;10472:50:0;;;;;;;;;;;;-1:-1:-1;;;10472:50:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;17313:30:0;::::1;17305:65;;;::::0;;-1:-1:-1;;;17305:65:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;17305:65:0;;;;;;;;;;;;;::::1;;17381:15;:34:::0;;-1:-1:-1;;;;;;17381:34:0::1;-1:-1:-1::0;;;;;17381:34:0;;;::::1;::::0;;;::::1;::::0;;17216:207::o;26995:98::-;27073:12;26995:98;:::o;8555:32::-;;;;:::o;18413:136::-;10620:12;;-1:-1:-1;;;;;10620:12:0;10606:10;:26;;:59;;-1:-1:-1;10650:15:0;;-1:-1:-1;;;;;10650:15:0;10636:10;:29;10606:59;10598:94;;;;;-1:-1:-1;;;10598:94:0;;;;;;;;;;;;-1:-1:-1;;;10598:94:0;;;;;;;;;;;;;;;6052:8:::1;:6;:8::i;:::-;6051:9;6043:38;;;::::0;;-1:-1:-1;;;6043:38:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;6043:38:0;;;;;;;;;;;;;::::1;;18496:8:::2;:6;:8::i;:::-;18528:12;::::0;18522:19:::2;::::0;;;;;;::::2;::::0;;;;::::2;::::0;;::::2;18413:136::o:0;22182:340::-;10494:12;;-1:-1:-1;;;;;10494:12:0;10480:10;:26;10472:50;;;;;-1:-1:-1;;;10472:50:0;;;;;;;;;;;;-1:-1:-1;;;10472:50:0;;;;;;;;;;;;;;;8493:3:::1;22283:13;:27;;22275:77;;;;-1:-1:-1::0;;;22275:77:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22376:29;8493:3;22391:13:::0;22376:14:::1;:29::i;:::-;22363:10;:42:::0;;;22416:12:::1;:28:::0;;;22475:12:::1;::::0;22462:52:::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;22475:12;;22462:52:::1;::::0;;;;;;;;;::::1;22182:340:::0;:::o;8413:34::-;;;;:::o;18738:183::-;10494:12;;-1:-1:-1;;;;;10494:12:0;10480:10;:26;10472:50;;;;;-1:-1:-1;;;10472:50:0;;;;;;;;;;;;-1:-1:-1;;;10472:50:0;;;;;;;;;;;;;;;6150:8:::1;:6;:8::i;:::-;6142:41;;;::::0;;-1:-1:-1;;;6142:41:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;6142:41:0;;;;;;;;;;;;;::::1;;18809:9:::2;:17:::0;;-1:-1:-1;;18837:16:0;;;18864:10:::2;:8;:10::i;:::-;18900:12;::::0;18892:21:::2;::::0;;;;;;::::2;::::0;;;;::::2;::::0;;::::2;18738:183::o:0;8601:27::-;;;;:::o;8262:::-;;;-1:-1:-1;;;;;8262:27:0;;:::o;24882:850::-;6052:8;:6;:8::i;:::-;6051:9;6043:38;;;;;-1:-1:-1;;;6043:38:0;;;;;;;;;;;;-1:-1:-1;;;6043:38:0;;;;;;;;;;;;;;;10896:23:::1;10908:10;10896:11;:23::i;:::-;10895:24;10887:57;;;::::0;;-1:-1:-1;;;10887:57:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;10887:57:0;;;;;;;;;;;;;::::1;;10963:10;10977:9;10963:23;10955:62;;;::::0;;-1:-1:-1;;;10955:62:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;10955:62:0;;;;;;;;;;;;;::::1;;24974:23:::2;24984:12;;24974:9;:23::i;:::-;24966:54;;;::::0;;-1:-1:-1;;;24966:54:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;24966:54:0;;;;;;;;;;;;;::::2;;25052:12;;25039:9;:25;;25031:82;;;;-1:-1:-1::0;;;25031:82:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25136:12;::::0;25132:17:::2;::::0;;;:3:::2;:17;::::0;;;;;;;25150:10:::2;25132:29:::0;;;;;;;:36:::2;;::::0;:41;25124:81:::2;;;::::0;;-1:-1:-1;;;25124:81:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;25314:12;::::0;25248:14:::2;25307:20:::0;;;:6:::2;:20;::::0;;;;25358:17:::2;::::0;::::2;::::0;25265:9:::2;::::0;25307:20;25358:29:::2;::::0;25265:9;25358:21:::2;:29::i;:::-;25338:17;::::0;::::2;:49:::0;25417:16:::2;::::0;::::2;::::0;:28:::2;::::0;25438:6;25417:20:::2;:28::i;:::-;25398:16;::::0;::::2;:47:::0;25517:12:::2;::::0;;25487:23:::2;25513:17:::0;;;:3:::2;:17;::::0;;;;;;;25531:10:::2;25513:29:::0;;;;;;;;;25553:32;;-1:-1:-1;;25553:32:0::2;::::0;;;25596:14;;::::2;:23:::0;;;25630:4:::2;:16:::0;;;;;25652:12;;25630:35;;;;::::2;::::0;;;;;;;;;::::2;::::0;;;;25703:12;;25683:41;;;;;;;25513:29;;25703:12;;25531:10;;25683:41:::2;::::0;;;;;;::::2;11028:1;;;24882:850::o:0;17518:268::-;10494:12;;-1:-1:-1;;;;;10494:12:0;10480:10;:26;10472:50;;;;;-1:-1:-1;;;10472:50:0;;;;;;;;;;;;-1:-1:-1;;;10472:50:0;;;;;;;;;;;;;;;17617:14:::1;::::0;;17585:29:::1;17642:18:::0;;;17688:12:::1;::::0;17671:53:::1;::::0;-1:-1:-1;;;;;17688:12:0::1;17617:14:::0;17671:16:::1;:53::i;:::-;17742:36;::::0;;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;10533:1;17518:268::o:0;4451:106::-;4539:10;4451:106;:::o;15915:189::-;16013:37;;15995:12;;-1:-1:-1;;;;;16013:7:0;;;16026:5;;16040;;15995:12;16013:37;15995:12;16013:37;16040:5;16013:7;16026:5;16013:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15994:56;;;16069:7;16061:35;;;;;-1:-1:-1;;;16061:35:0;;;;;;;;;;;;-1:-1:-1;;;16061:35:0;;;;;;;;;;;;;;;15915:189;;;:::o;12354:123::-;12438:31;12451:5;12458:10;12438:12;:31::i;2881:179::-;2939:7;2971:5;;;2995:6;;;;2987:46;;;;;-1:-1:-1;;;2987:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3051:1;2881:179;-1:-1:-1;;;2881:179:0:o;15478:423::-;15527:6;15552:29;15584:42;15604:21;;15584:15;:19;;:42;;;;:::i;:::-;15552:74;;15638:14;15654:12;15670:17;15693:6;;;;;;;;;-1:-1:-1;;;;;15693:6:0;-1:-1:-1;;;;;15693:22:0;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15693:24:0;;;;;;;;;;;;;-1:-1:-1;15693:24:0;;-1:-1:-1;15693:24:0;-1:-1:-1;15736:34:0;;;;15728:93;;;;-1:-1:-1;;;15728:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15854:16:0;;;;15832:19;:38;15888:5;-1:-1:-1;;15478:423:0;:::o;12527:407::-;12614:13;;;;:6;:13;;;;;;;;:24;;12606:85;;;;-1:-1:-1;;;12606:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12726:13;;;;:6;:13;;;;;:23;;;12710:12;:39;;12702:87;;;;-1:-1:-1;;;12702:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12824:13;;;;:6;:13;;;;;:22;;;12808:12;:38;;12800:81;;;;;-1:-1:-1;;;12800:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12902:24;12913:5;12920;12902:10;:24::i;11567:531::-;11629:19;11651:13;;;:6;:13;;;;;;;;11694:12;11675:16;;;:31;;;11752:14;;11651:13;;11735:32;;:16;:32::i;:::-;11717:15;;;;:50;;;;11812:14;;11795:36;;:12;;11812:18;11795:16;:36::i;:::-;11778:14;;;:53;;;11842:19;;;:11;11872:17;;;;:21;;;;11926:16;;;;11906:17;:36;11972:15;;;;11953:34;;12016:14;11998:15;:32;12059:31;;;12077:12;12059:31;;;;11856:5;;12059:31;;;;;;;;;;11567:531;;:::o;16118:197::-;16254:17;16299:8;;;16118:197::o;16507:293::-;16564:4;16607:13;;;:6;:13;;;;;;;:24;;:29;;;;:74;;-1:-1:-1;16653:13:0;;;;:6;:13;;;;;:23;;;:28;;16607:74;:130;;;;-1:-1:-1;16713:13:0;;;;:6;:13;;;;;;;;:24;;16698:12;:39;16607:130;:185;;;;-1:-1:-1;;16769:13:0;;;;:6;:13;;;;;:23;;;16754:12;:38;;16507:293::o;3234:220::-;3292:7;3316:6;3312:20;;-1:-1:-1;3331:1:0;3324:8;;3312:20;3355:5;;;3359:1;3355;:5;:1;3379:5;;;;;:10;3371:56;;;;-1:-1:-1;;;3371:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3462:153;3520:7;3552:1;3548;:5;3540:44;;;;;-1:-1:-1;;;3540:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3606:1;3602;:5;;;;;;;3462:153;-1:-1:-1;;;3462:153:0:o;3068:158::-;3126:7;3159:1;3154;:6;;3146:49;;;;;-1:-1:-1;;;3146:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3213:5:0;;;3068:158::o;13208:297::-;13294:13;;;;:6;:13;;;;;:23;;;13286:82;;;;-1:-1:-1;;;13286:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13403:13;;;;:6;:13;;;;;:22;;;13387:12;:38;;13379:84;;;;-1:-1:-1;;;13379:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13474:23;13484:5;13491;13474:9;:23::i;13833:1487::-;8493:3;13909:28;13924:12;;13909:10;;:14;;:28;;;;:::i;:::-;:42;13901:108;;;;-1:-1:-1;;;13901:108:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14028:13;;;;:6;:13;;;;;:33;;;:38;:73;;;;-1:-1:-1;14070:13:0;;;;:6;:13;;;;;:26;;;:31;14028:73;14020:104;;;;;-1:-1:-1;;;14020:104:0;;;;;;;;;;;;-1:-1:-1;;;14020:104:0;;;;;;;;;;;;;;;14135:19;14157:13;;;:6;:13;;;;;14325:15;;;;14306:16;;;;14157:13;;14135:19;;;;;14306:34;14302:730;;;14379:5;:16;;;14357:38;;14425:49;8493:3;14425:33;14447:10;;14425:5;:17;;;:21;;:33;;;;:::i;:49::-;14410:64;;14503:51;8493:3;14503:35;14525:12;;14503:5;:17;;;:21;;:35;;;;:::i;:51::-;14489:65;;14302:730;;;14626:5;:15;;;14607:5;:16;;;:34;14603:429;;;14680:5;:16;;;14658:38;;14726:49;8493:3;14726:33;14748:10;;14726:5;:17;;;:21;;:33;;;;:::i;14603:429::-;-1:-1:-1;;;15003:17:0;;;;14942:1;;;;14603:429;15042:25;;;:47;;;15100:18;;;:33;;;15191:14;;:31;;15210:11;15191:18;:31::i;:::-;15174:14;:48;15240:72;;;;;;;;;;;;;;;;;;;;15258:5;;15240:72;;;;;;;;;;13833:1487;;;;;:::o;11176:383::-;11250:9;;;;11242:64;;;;-1:-1:-1;;;11242:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11332:9:0;;11325:17;;;;:6;:17;;;;;:26;;;11317:90;;;;-1:-1:-1;;;11317:90:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11449:9:0;;11442:17;;;;:6;:17;;;;;:26;;;11426:12;:42;;11418:104;;;;-1:-1:-1;;;11418:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11533:18;11545:5;11533:11;:18::i;6211:118::-;6052:8;:6;:8::i;:::-;6051:9;6043:38;;;;;-1:-1:-1;;;6043:38:0;;;;;;;;;;;;-1:-1:-1;;;6043:38:0;;;;;;;;;;;;;;;6271:7:::1;:14:::0;;-1:-1:-1;;;;6271:14:0::1;-1:-1:-1::0;;;6271:14:0::1;::::0;;6301:20:::1;6308:12;:10;:12::i;:::-;6301:20;::::0;;-1:-1:-1;;;;;6301:20:0;;::::1;::::0;;;;;;;::::1;::::0;;::::1;6211:118::o:0;6339:120::-;6150:8;:6;:8::i;:::-;6142:41;;;;;-1:-1:-1;;;6142:41:0;;;;;;;;;;;;-1:-1:-1;;;6142:41:0;;;;;;;;;;;;;;;6408:5:::1;6398:15:::0;;-1:-1:-1;;;;6398:15:0::1;::::0;;6429:22:::1;6438:12;:10;:12::i;12110:232::-:0;12190:19;12212:13;;;:6;:13;;;;;;12236:15;;;:22;;;-1:-1:-1;;12236:22:0;;;;-1:-1:-1;;12269:31:0;;;;;;;12316:18;;12212:13;;;;12316:18;;12190:19;12316:18;12110:232;;;:::o;12942:217::-;13017:19;13039:13;;;:6;:13;;;;;;;;;13063:15;;;:23;;;13104:47;;13121:12;13104:47;;;;;;;;;;13039:13;;13046:5;;13104:47;;;;;;;;;;;12942:217;;;:::o;13513:253::-;13587:19;13609:13;;;:6;:13;;;;;;;;;13633:16;;;:24;;;13668:18;;;:25;;-1:-1:-1;;13668:25:0;;;;;;;13711:47;;13727:12;13711:47;;;;;;;;;;13609:13;;13616:5;;13711:47;;;;;;;;;;13513:253;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

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