Contract 0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd

 
Txn Hash
Block
From
To
Value [Txn Fee]
0x073d9ea0d6eaf728ef5939cba2f013f18f7ce495a3651522a31b292353f757c160762482021-03-28 14:17:2587 days 1 hr ago0xe5cb7987b7913cfe8591b816e9bc5e072dcad166 IN  0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd0 BNB0.00250176
0x04272733eef34acb013a5ba36e740c3fd03d1352e8d945a47f0f893900ad4cea60411292021-03-27 8:56:2288 days 7 hrs ago0x2d1581848862c7f1d0579bb0b0804ebec9244df9 IN  0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd0 BNB0.00196997
0xb30602ed614ad7d57af8dd2ebc051d789b8e3bfdf9037fc19eba6c0460485f5959166692021-03-22 23:53:0292 days 16 hrs ago0x66c5af79b424d5e8fa2d26f94a52e144f3848d0f IN  0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd0 BNB0.0019466
0x86774f8cffeb4fdcc3021eadfb525029a0b65f45adacb56fd2a79fbea7fb609a59165772021-03-22 23:48:2692 days 16 hrs ago0x66c5af79b424d5e8fa2d26f94a52e144f3848d0f IN  0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd0 BNB0.00266307
0x75694a4571e532e0570aede464bc89a565088996a35fda02b10f7a236bef668258535482021-03-20 18:56:3594 days 21 hrs ago0x8f492f2df0546dceacfefb8f22fb9d87b6a48b81 IN  0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd0 BNB0.00211997
0x6b89dfb8c6b82f779f470b8a67f1e37500719235e729db8baba5d28b9c9c35ab58495342021-03-20 15:35:5395 days 21 mins ago0x63c159d19e03dce6fade353117b939f2eebc7fd3 IN  0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd0 BNB0.00194672
0xb4d7e2cef94b935910287a353cb02c92927124acfe17e8ea588ad313f171e56b57488992021-03-17 3:39:0198 days 12 hrs ago0x2cad0b9714ac7f5c9c5789b3d7130637dd972a2c IN  0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd0 BNB0.00224672
0x2186b9fd5e56f6ed64b4fd03b0ad366703c30f75bf684b2be86bd614d2fe26d257488082021-03-17 3:34:2898 days 12 hrs ago0x2cad0b9714ac7f5c9c5789b3d7130637dd972a2c IN  0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd0 BNB0.00265176
0x453e83709de6601e59a701f399a1ecc5d2ab912ebc2f764893db2c90c80fe86657306202021-03-16 12:23:5199 days 3 hrs agoSquirrel Finance: Deployer IN  0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd0 BNB0.00253294
0x30e31415ec4be8af7275761079ab722eaf3fcc01b4b8a4aae40aad6e8e14ca6957171142021-03-16 1:07:5399 days 14 hrs ago0x6006194271b5559b9560775c0432a90944456cb0 IN  0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd0 BNB0.00243201
0x3e4631e618086bf84d88c3ba48391824bea958a148d66c4b19afb6190b53f64757012932021-03-15 11:56:03100 days 4 hrs ago0xabecc1757f728d822c74312da4503fcfd8620663 IN  0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd0 BNB0.00228213
0x7201fd3d7d5a3ea9b7abf90119b17e1cf637c38e8a25d62cc61a4b2a1632304857009292021-03-15 11:37:51100 days 4 hrs ago0x193c050c6bf4ee8a13fbb31c2de58c36a94509ff IN  0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd0 BNB0.00243201
0x2ca60beec36a0935e1243d4b22a4d590810f3133718758bce8e80d6c7cdd31d756994212021-03-15 10:21:57100 days 5 hrs ago0x13bf392653932163edc5546e814394941684df1f IN  0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd0 BNB0.00224684
0xf143721f96e1192d6f1f88690442b586fc989e8513833b288c80c9295ee0018856994122021-03-15 10:21:27100 days 5 hrs ago0x13bf392653932163edc5546e814394941684df1f IN  0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd0 BNB0.00204898
0x5526c6bce25d7d4b61d4b0ce49f57cdca08ccc2dd08ccaa921ab35cd7b5cdfe856863122021-03-14 23:26:03100 days 16 hrs ago0x63c159d19e03dce6fade353117b939f2eebc7fd3 IN  0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd0 BNB0.00266319
0xa1f4e11c4158eadb888cf8892188aa6a6af3ace8a75c59956fc2a2219f2e705256759702021-03-14 14:48:42101 days 1 hr ago0xf96f7105ce7229968042115d36a7d60af8ad87ef IN  0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd0 BNB0.00243189
0x18914b640570698fe8dd161c03ee8716a2e1007d673c1b08b6ad36f1f0c2ed8656736032021-03-14 12:50:10101 days 3 hrs agoSquirrel Finance: Deployer IN  0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd0 BNB0.00253294
0x0e7b4330e987cd022c2b424e65024ac581cb1047b69de4af4aa892fe3c98343556648052021-03-14 5:29:42101 days 10 hrs ago0x6e25712182f22454cdd9f448ee125e38bdf77811 IN  0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd0 BNB0.00203536
0x943d0a75fa065bfc4b8afa53c777137f5ff9c7de79660cb1eaaa2ea90b6473d756648022021-03-14 5:29:33101 days 10 hrs ago0x6e25712182f22454cdd9f448ee125e38bdf77811 IN  0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd0 BNB0.00159256
0xf46e37e28efe09f0720f02129ea3fc0de947ca2cc3c6ba052f2b8d04330020c356627772021-03-14 3:48:07101 days 12 hrs ago0xbb5d100af098c5036112fc70e8639c74193b0486 IN  0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd0 BNB0.00224684
0x85ecc44354d701168d367a1344b182603117cbabd6119d00c967466cd385b5ec56521772021-03-13 18:57:57101 days 20 hrs ago0x16e343d794b6b78998353f14e8faa931326e682a IN  0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd0 BNB0.00243225
0xc7703912bbca6b22701d3c4be930fd35ad7ba1dfffb88fd9ad8b4536a231fb7756509812021-03-13 17:58:09101 days 21 hrs ago0x9c7b84be5d69bb41a718a4af921e44730a277f90 IN  0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd0 BNB0.00239684
0x439789042bc374edf7ca5e9c541b40d3131ffe48574e0ea61cecd7e674501d8b56509712021-03-13 17:57:39101 days 21 hrs ago0x9c7b84be5d69bb41a718a4af921e44730a277f90 IN  0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd0 BNB0.00250176
0x8ce0639bc1ad3ba92106ac7c201b944a267d05a76b98545afd653a35fc5535b956508082021-03-13 17:49:30101 days 22 hrs ago0xefb25e792914123b3d19015510be7cde4822c2ad IN  0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd0 BNB0.00228225
0x393a4a58333b76909d691d4ed17670da0bfdf80292fe1b32c8ff76744785529956504822021-03-13 17:32:50101 days 22 hrs ago0x6f71097f9186e0a062155badbf0b0824890ca322 IN  0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd0 BNB0.00209684
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x7196a176cf388cb212996a2c0854f8b43691430c9ac6e878c16cc515f16ba64054711202021-03-07 11:48:57108 days 4 hrs ago 0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd 0x45c12738c089224f66cd7a1c85301d79c45e2ded0 BNB
0x7196a176cf388cb212996a2c0854f8b43691430c9ac6e878c16cc515f16ba64054711202021-03-07 11:48:57108 days 4 hrs ago 0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd 0xef6e807fd2c0ef5883a03ed1b962333e8c9b725f0 BNB
0x7196a176cf388cb212996a2c0854f8b43691430c9ac6e878c16cc515f16ba64054711202021-03-07 11:48:57108 days 4 hrs ago 0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd Viking Swap: VIKING Token0 BNB
0x7196a176cf388cb212996a2c0854f8b43691430c9ac6e878c16cc515f16ba64054711202021-03-07 11:48:57108 days 4 hrs ago 0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd 0xef6e807fd2c0ef5883a03ed1b962333e8c9b725f0 BNB
0x7196a176cf388cb212996a2c0854f8b43691430c9ac6e878c16cc515f16ba64054711202021-03-07 11:48:57108 days 4 hrs ago 0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd Viking Swap: VIKING Token0 BNB
0xc0a16b3f9c0ee8feb94dec5c0c4274970fe02f0c7b50956a193a019504217ce254709932021-03-07 11:42:36108 days 4 hrs ago 0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd 0xef6e807fd2c0ef5883a03ed1b962333e8c9b725f0 BNB
0xc0a16b3f9c0ee8feb94dec5c0c4274970fe02f0c7b50956a193a019504217ce254709932021-03-07 11:42:36108 days 4 hrs ago 0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd Viking Swap: VIKING Token0 BNB
0xc0a16b3f9c0ee8feb94dec5c0c4274970fe02f0c7b50956a193a019504217ce254709932021-03-07 11:42:36108 days 4 hrs ago 0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd 0xef6e807fd2c0ef5883a03ed1b962333e8c9b725f0 BNB
0xc0a16b3f9c0ee8feb94dec5c0c4274970fe02f0c7b50956a193a019504217ce254709932021-03-07 11:42:36108 days 4 hrs ago 0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd Viking Swap: VIKING Token0 BNB
0xc0a16b3f9c0ee8feb94dec5c0c4274970fe02f0c7b50956a193a019504217ce254709932021-03-07 11:42:36108 days 4 hrs ago 0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd Viking Swap: VIKING Token0 BNB
0x6378476d86432f232966c499a19a3da562933c7f1bf9a37a7efeb3bf72bfdce454709832021-03-07 11:42:06108 days 4 hrs ago 0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd 0x45c12738c089224f66cd7a1c85301d79c45e2ded0 BNB
0x6378476d86432f232966c499a19a3da562933c7f1bf9a37a7efeb3bf72bfdce454709832021-03-07 11:42:06108 days 4 hrs ago 0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd 0xef6e807fd2c0ef5883a03ed1b962333e8c9b725f0 BNB
0x6378476d86432f232966c499a19a3da562933c7f1bf9a37a7efeb3bf72bfdce454709832021-03-07 11:42:06108 days 4 hrs ago 0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd Viking Swap: VIKING Token0 BNB
0x6378476d86432f232966c499a19a3da562933c7f1bf9a37a7efeb3bf72bfdce454709832021-03-07 11:42:06108 days 4 hrs ago 0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd 0xef6e807fd2c0ef5883a03ed1b962333e8c9b725f0 BNB
0x6378476d86432f232966c499a19a3da562933c7f1bf9a37a7efeb3bf72bfdce454709832021-03-07 11:42:06108 days 4 hrs ago 0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd Viking Swap: VIKING Token0 BNB
0xe09b5f48ef0faa82e727d6342a73b27a536c803bed351eaf9fee851d502bb27c54709062021-03-07 11:38:15108 days 4 hrs ago 0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd 0xef6e807fd2c0ef5883a03ed1b962333e8c9b725f0 BNB
0xe09b5f48ef0faa82e727d6342a73b27a536c803bed351eaf9fee851d502bb27c54709062021-03-07 11:38:15108 days 4 hrs ago 0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd Viking Swap: VIKING Token0 BNB
0xe09b5f48ef0faa82e727d6342a73b27a536c803bed351eaf9fee851d502bb27c54709062021-03-07 11:38:15108 days 4 hrs ago 0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd 0xef6e807fd2c0ef5883a03ed1b962333e8c9b725f0 BNB
0xe09b5f48ef0faa82e727d6342a73b27a536c803bed351eaf9fee851d502bb27c54709062021-03-07 11:38:15108 days 4 hrs ago 0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd Viking Swap: VIKING Token0 BNB
0xe09b5f48ef0faa82e727d6342a73b27a536c803bed351eaf9fee851d502bb27c54709062021-03-07 11:38:15108 days 4 hrs ago 0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd Viking Swap: VIKING Token0 BNB
0x1490bc67cd0d48566e019e43305f24a1943112ee8dff0baba7dd1c1ccc29652d54706892021-03-07 11:27:24108 days 4 hrs ago 0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd 0x45c12738c089224f66cd7a1c85301d79c45e2ded0 BNB
0x1490bc67cd0d48566e019e43305f24a1943112ee8dff0baba7dd1c1ccc29652d54706892021-03-07 11:27:24108 days 4 hrs ago 0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd 0xef6e807fd2c0ef5883a03ed1b962333e8c9b725f0 BNB
0x1490bc67cd0d48566e019e43305f24a1943112ee8dff0baba7dd1c1ccc29652d54706892021-03-07 11:27:24108 days 4 hrs ago 0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd Viking Swap: VIKING Token0 BNB
0x1490bc67cd0d48566e019e43305f24a1943112ee8dff0baba7dd1c1ccc29652d54706892021-03-07 11:27:24108 days 4 hrs ago 0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd 0xef6e807fd2c0ef5883a03ed1b962333e8c9b725f0 BNB
0x1490bc67cd0d48566e019e43305f24a1943112ee8dff0baba7dd1c1ccc29652d54706892021-03-07 11:27:24108 days 4 hrs ago 0x02e9c92ed65f46bc2841bed4cc03a7877c74b7dd Viking Swap: VIKING Token0 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
InsuredVikingFarm

Compiler Version
v0.5.8+commit.23d335f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-02-26
*/

pragma solidity 0.5.8;

/**
 *
 * https://squirrel.finance
 * 
 * SquirrelFinance is a DeFi project which offers farm insurance
 *
 */


contract InsuredVikingFarm {
    using SafeMath for uint256;

    ERC20 constant viking = ERC20(0x896eDE222D3f7f3414e136a2791BDB08AAa25Ce0);
    ERC20 constant nuts = ERC20(0x8893D5fA71389673C5c4b9b3cb4EE1ba71207556);

    NutsStaking constant nutsStaking = NutsStaking(0x45C12738C089224F66CD7A1c85301d79C45E2dEd);
    VikingPool constant cakePool = VikingPool(0xEf6e807fD2c0Ef5883A03Ed1b962333E8C9b725f);
    
    OracleSimpleBNBViking vikingTwap = OracleSimpleBNBViking(0x5d6941926310E5563e02Ac164BEF76fb9D961edA);
    OracleSimpleBNBNuts nutsTwap = OracleSimpleBNBNuts(0xD0A80f37E2958B6484E82B9bDC679726B3cE7eCA);
    UniswapV2 pancake = UniswapV2(0x05fF2B0DB69458A0750badebc4f9e13aDd608C7F);
    SquirrelGoverance governance = SquirrelGoverance(0x32031eeD8c80f90C543DcF88a90d347f988e37EF);

    mapping(address => uint256) public balances;
    mapping(address => int256) public payoutsTo;

    uint256 public totalDeposits;
    uint256 public profitPerShare;
    uint256 constant internal magnitude = 2 ** 64;
    
    mapping(address => int256) public nutsPayoutsTo;
    uint256 public nutsProfitPerShare;
    
    uint256 public nutsPerEpoch;
    uint256 public payoutEndTime;
    uint256 public lastDripTime;

    uint256 constant nutsPercent = 20;
    uint256 public pendingNutsAlloc;
    uint256 nutsCompPerCake;
    bool compensationUsed;
    address blobby = msg.sender;

    constructor() public {
        nuts.approve(address(nutsStaking), 2 ** 255);
        viking.approve(address(cakePool), 2 ** 255);
        viking.approve(address(pancake), 2 ** 255);
    }

    function deposit(uint256 amount) external {
        address farmer = msg.sender;
        require(farmer == tx.origin);
        require(!compensationUsed); // Don't let people deposit after compensation is needed
        require(viking.transferFrom(address(farmer), address(this), amount));
        pullOutstandingDivs();
        dripNuts();
        
        cakePool.deposit(11, amount);
        balances[farmer] += amount;
        totalDeposits += amount;
        payoutsTo[farmer] += (int256) (profitPerShare * amount);
        nutsPayoutsTo[farmer] += (int256) (nutsProfitPerShare * amount);
    }

    function claimYield() public {
        address farmer = msg.sender;
        pullOutstandingDivs();
        dripNuts();

        uint256 dividends = (uint256) ((int256)(profitPerShare * balances[farmer]) - payoutsTo[farmer]) / magnitude;
        if (dividends > 0) {
            payoutsTo[farmer] += (int256) (dividends * magnitude);
            viking.transfer(farmer, dividends);
        }
        
        uint256 nutsDividends = (uint256) ((int256)(nutsProfitPerShare * balances[farmer]) - nutsPayoutsTo[farmer]) / magnitude;
        if (nutsDividends > 0) {
            nutsPayoutsTo[farmer] += (int256) (nutsDividends * magnitude);
            nuts.transfer(farmer, nutsDividends);
        }
    }
    
    function depositYield() external {
        address farmer = msg.sender;
        require(!compensationUsed); // Don't let people deposit after compensation is needed
        pullOutstandingDivs();
        dripNuts();
        
        uint256 dividends = (uint256) ((int256)(profitPerShare * balances[farmer]) - payoutsTo[farmer]) / magnitude;
        uint256 nutsDividends = (uint256) ((int256)(nutsProfitPerShare * balances[farmer]) - nutsPayoutsTo[farmer]) / magnitude;
        int256 nutsPayoutChange; // Avoids updating nutsPayoutsTo twice
        
        if (dividends > 0) {
            cakePool.deposit(11, dividends);
            balances[farmer] += dividends;
            totalDeposits += dividends;
            payoutsTo[farmer] += ((int256) (dividends * magnitude) + (int256) (profitPerShare * dividends)); // Divs + Deposit
            nutsPayoutChange += (int256) (nutsProfitPerShare * dividends);
        }
        
        if (nutsDividends > 0) {
            nutsPayoutChange += (int256) (nutsDividends * magnitude);
            nutsStaking.depositFor(farmer, nutsDividends);
        }
        
        if (nutsPayoutChange != 0) {
            nutsPayoutsTo[farmer] += nutsPayoutChange;
        }
    }

    function pullOutstandingDivs() internal {
        uint256 beforeBalance = viking.balanceOf(address(this));
        address(cakePool).call(abi.encodePacked(cakePool.deposit.selector, abi.encode(11, 0)));

        uint256 divsGained = viking.balanceOf(address(this)) - beforeBalance;
        if (divsGained > 0) {
            uint256 nutsCut = (divsGained * nutsPercent) / 100; // 20%
            pendingNutsAlloc += nutsCut;
            profitPerShare += (divsGained - nutsCut) * magnitude / totalDeposits;
        }
    }

    function cashout(uint256 amount) external {
        address farmer = msg.sender;
        claimYield();

        uint256 systemTotal = totalDeposits;
        balances[farmer] = balances[farmer].sub(amount);
        payoutsTo[farmer] -= (int256) (profitPerShare * amount);
        nutsPayoutsTo[farmer] -= (int256) (nutsProfitPerShare * amount);
        totalDeposits = totalDeposits.sub(amount);

        uint256 beforeBalance = viking.balanceOf(address(this));
        address(cakePool).call(abi.encodePacked(cakePool.withdraw.selector, abi.encode(11, amount)));

        uint256 gained = viking.balanceOf(address(this)) - beforeBalance;
        require(viking.transfer(farmer, gained));
        
        if (gained < (amount * 95) / 100) {
            compensate(farmer, amount - gained, amount, systemTotal);
        }
    }
    
    function compensate(address farmer, uint256 amountShort, uint256 farmersCashout, uint256 systemAmount) internal {
        if (!compensationUsed) {
            compensationUsed = true; // Flag to end deposits
            
            uint256 totalCakeShort = (amountShort * systemAmount) / farmersCashout;
            uint256 cakeNutsValue = (totalCakeShort * vikingTwap.consult(address(viking), (10 ** 18))) / nutsTwap.consult(address(nuts), (10 ** 18)); // cake * (cake price divided by nuts price)
            uint256 beforeBalance = nuts.balanceOf(address(this));
            address(governance).call(abi.encodePacked(governance.pullCollateral.selector, abi.encode(cakeNutsValue)));
            uint256 nutsCover = nuts.balanceOf(address(this)) - beforeBalance;
            nutsCompPerCake = (nutsCover * 1000) / systemAmount; // * 1000 to avoid roundings
        }
        nuts.transfer(farmer, (farmersCashout * nutsCompPerCake) / 1000);
    }
    
    function sweepNuts(uint256 amount, uint256 minNuts, uint256 percentBurnt) external {
        require(msg.sender == blobby);
        require(percentBurnt <= 100);
        pendingNutsAlloc = pendingNutsAlloc.sub(amount);
        
        address[] memory path = new address[](3);
        path[0] = address(viking);
        path[1] = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c; // wbnb
        path[2] = address(nuts);
        
        uint256 beforeBalance = nuts.balanceOf(address(this));
        pancake.swapExactTokensForTokens(amount, minNuts, path, address(this), 2 ** 255);
        
        uint256 nutsGained = nuts.balanceOf(address(this)) - beforeBalance;
        uint256 toBurn = (nutsGained * percentBurnt) / 100;
        if (toBurn > 0) {
            nuts.burn(toBurn);
        }
        if (nutsGained > toBurn) {
            nutsStaking.distributeDivs(nutsGained - toBurn);
        }
        vikingTwap.update();
        nutsTwap.update();
    }
    
    function setWeeksRewards(uint256 amount) external {
        require(msg.sender == address(governance));
        dripNuts();
        uint256 remainder;
        if (now < payoutEndTime) {
            remainder = nutsPerEpoch * (payoutEndTime - now);
        }
        nutsPerEpoch = (amount + remainder) / 7 days;
        payoutEndTime = now + 7 days;
    }
    
    function dripNuts() internal {
        uint256 divs;
        if (now < payoutEndTime) {
            divs = nutsPerEpoch * (now - lastDripTime);
        } else if (lastDripTime < payoutEndTime) {
            divs = nutsPerEpoch * (payoutEndTime - lastDripTime);
        }
        lastDripTime = now;

        if (divs > 0) {
            nutsProfitPerShare += divs * magnitude / totalDeposits;
        }
    }

    // For beta this function just avoids blackholing cake IF an issue causing compensation is later resolved
    function withdrawAfterSystemClosed(uint256 amount) external {
        require(msg.sender == blobby);
        require(compensationUsed); // Cannot be called unless compensation was triggered

        if (amount > 0) {
            cakePool.withdraw(11, amount);
        } else {
            cakePool.emergencyWithdraw(0);
        }
        viking.transfer(msg.sender, viking.balanceOf(address(this)));
    }
    
    function updateGovenance(address newGov) external {
        require(msg.sender == blobby);
        require(!compensationUsed);
        governance = SquirrelGoverance(newGov); // Used for pulling NUTS compensation only
    }

    function dividendsOf(address farmer) view public returns (uint256) {
        uint256 unClaimedDivs = cakePool.pendingEgg(11, address(this));
        unClaimedDivs -= (unClaimedDivs * nutsPercent) / 100; // -20%
        uint256 totalProfitPerShare = profitPerShare + ((unClaimedDivs * magnitude) / totalDeposits); // Add new profitPerShare to existing profitPerShare
        return (uint256) ((int256)(totalProfitPerShare * balances[farmer]) - payoutsTo[farmer]) / magnitude;
    }
    
    function nutsDividendsOf(address farmer) view public returns (uint256) {
        uint256 totalProfitPerShare = nutsProfitPerShare;
        uint256 divs;
        if (now < payoutEndTime) {
            divs = nutsPerEpoch * (now - lastDripTime);
        } else if (lastDripTime < payoutEndTime) {
            divs = nutsPerEpoch * (payoutEndTime - lastDripTime);
        }
        
        if (divs > 0) {
            totalProfitPerShare += divs * magnitude / totalDeposits;
        }
        return (uint256) ((int256)(totalProfitPerShare * balances[farmer]) - nutsPayoutsTo[farmer]) / magnitude;
    }
}


contract NutsStaking {
    function depositFor(address player, uint256 amount) external;
    function distributeDivs(uint256 amount) external;
}

contract OracleSimpleBNBViking {
    function consult(address token, uint amountIn) external view returns (uint amountOut);
    function update() external;
}

contract OracleSimpleBNBNuts {
    function consult(address token, uint amountIn) external view returns (uint amountOut);
    function update() external;
}


interface SquirrelGoverance {
    function pullCollateral(uint256 amount) external returns (uint256 compensation);
    function compensationAvailable(address farm) external view returns (uint256);
    
}

interface VikingPool {
    function deposit(uint256 _pid, uint256 _amount) external;
    function withdraw(uint256 _pid, uint256 _amount) external;
    function emergencyWithdraw(uint256 _pid) external;
    function pendingEgg(uint256 _pid, address _user) external view returns (uint256); 
}


interface UniswapV2 {
    function swapExactTokensForTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts);
}


interface ERC20 {
  function totalSupply() external view returns (uint256);
  function balanceOf(address who) external view returns (uint256);
  function allowance(address owner, address spender) external view returns (uint256);
  function transfer(address to, uint256 value) external returns (bool);
  function approve(address spender, uint256 value) external returns (bool);
  function approveAndCall(address spender, uint tokens, bytes calldata data) external returns (bool success);
  function transferFrom(address from, address to, uint256 value) external returns (bool);
  function burn(uint256 amount) external;

  event Transfer(address indexed from, address indexed to, uint256 value);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}


library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  /**
  * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}

Contract ABI

[{"constant":true,"inputs":[{"name":"farmer","type":"address"}],"name":"dividendsOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"},{"name":"minNuts","type":"uint256"},{"name":"percentBurnt","type":"uint256"}],"name":"sweepNuts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"payoutsTo","outputs":[{"name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimYield","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"depositYield","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nutsProfitPerShare","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"farmer","type":"address"}],"name":"nutsDividendsOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"withdrawAfterSystemClosed","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"setWeeksRewards","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalDeposits","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"profitPerShare","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pendingNutsAlloc","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"nutsPayoutsTo","outputs":[{"name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newGov","type":"address"}],"name":"updateGovenance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"cashout","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nutsPerEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"payoutEndTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastDripTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]

6080604052600080546001600160a01b0319908116735d6941926310e5563e02ac164bef76fb9d961eda1790915560018054821673d0a80f37e2958b6484e82b9bdc679726b3ce7eca1790556002805482167305ff2b0db69458a0750badebc4f9e13add608c7f179055600380549091167332031eed8c80f90c543dcf88a90d347f988e37ef179055600f80543361010002610100600160a81b0319909116179055348015620000ae57600080fd5b50604080517f095ea7b30000000000000000000000000000000000000000000000000000000081527345c12738c089224f66cd7a1c85301d79c45e2ded60048201527f800000000000000000000000000000000000000000000000000000000000000060248201529051738893d5fa71389673c5c4b9b3cb4ee1ba712075569163095ea7b39160448083019260209291908290030181600087803b1580156200015657600080fd5b505af11580156200016b573d6000803e3d6000fd5b505050506040513d60208110156200018257600080fd5b5050604080517f095ea7b300000000000000000000000000000000000000000000000000000000815273ef6e807fd2c0ef5883a03ed1b962333e8c9b725f60048201527f80000000000000000000000000000000000000000000000000000000000000006024820152905173896ede222d3f7f3414e136a2791bdb08aaa25ce09163095ea7b39160448083019260209291908290030181600087803b1580156200022b57600080fd5b505af115801562000240573d6000803e3d6000fd5b505050506040513d60208110156200025757600080fd5b5050600254604080517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0390921660048301527f800000000000000000000000000000000000000000000000000000000000000060248301525173896ede222d3f7f3414e136a2791bdb08aaa25ce09163095ea7b39160448083019260209291908290030181600087803b158015620002f857600080fd5b505af11580156200030d573d6000803e3d6000fd5b505050506040513d60208110156200032457600080fd5b5050611da380620003366000396000f3fe608060405234801561001057600080fd5b506004361061012b5760003560e01c80637d882097116100ad578063a9e732bb11610071578063a9e732bb146102bb578063b6b55f25146102d8578063db7c632c146102f5578063e7a04371146102fd578063fba1f7b0146103055761012b565b80637d882097146102575780638650e92a1461025f57806395d4b35314610267578063a53513131461026f578063a7059a3f146102955761012b565b806347046891116100f457806347046891146101e75780635a02c6b7146101ef57806364c91158146101f75780636eb8012b1461021d5780637c1b52ea1461023a5761012b565b806265318b146101305780631106fe1814610168578063152c8c241461019357806327e235e3146101b9578063406cf229146101df575b600080fd5b6101566004803603602081101561014657600080fd5b50356001600160a01b031661030d565b60408051918252519081900360200190f35b6101916004803603606081101561017e57600080fd5b50803590602081013590604001356103fb565b005b610156600480360360208110156101a957600080fd5b50356001600160a01b0316610929565b610156600480360360208110156101cf57600080fd5b50356001600160a01b031661093b565b61019161094d565b610191610b2f565b610156610d25565b6101566004803603602081101561020d57600080fd5b50356001600160a01b0316610d2b565b6101916004803603602081101561023357600080fd5b5035610dba565b6101916004803603602081101561025057600080fd5b5035610fd1565b61015661101b565b610156611021565b610156611027565b6101566004803603602081101561028557600080fd5b50356001600160a01b031661102d565b610191600480360360208110156102ab57600080fd5b50356001600160a01b031661103f565b610191600480360360208110156102d157600080fd5b503561108d565b610191600480360360208110156102ee57600080fd5b503561143a565b6101566115cf565b6101566115d5565b6101566115db565b60408051600160e01b63f456426f028152600b60048201523060248201529051600091829173ef6e807fd2c0ef5883a03ed1b962333e8c9b725f9163f456426f916044808301926020929190829003018186803b15801561036d57600080fd5b505afa158015610381573d6000803e3d6000fd5b505050506040513d602081101561039757600080fd5b5051905060646014820204810390506000600654600160401b8302816103b957fe5b6007546001600160a01b03871660009081526005602090815260408083205460049092529091205493909204019250600160401b918302035b04949350505050565b600f5461010090046001600160a01b0316331461041757600080fd5b606481111561042557600080fd5b600d54610438908463ffffffff6115e116565b600d556040805160038082526080820190925260609160208201838038833901905050905073896ede222d3f7f3414e136a2791bdb08aaa25ce08160008151811061047f57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505073bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c816001815181106104c157fe5b60200260200101906001600160a01b031690816001600160a01b031681525050738893d5fa71389673c5c4b9b3cb4ee1ba712075568160028151811061050357fe5b6001600160a01b0390921660209283029190910182015260408051600160e01b6370a082310281523060048201529051600092738893d5fa71389673c5c4b9b3cb4ee1ba71207556926370a082319260248083019392829003018186803b15801561056d57600080fd5b505afa158015610581573d6000803e3d6000fd5b505050506040513d602081101561059757600080fd5b5051600254604051600160e01b6338ed173902815260048101888152602482018890523060648301819052600160ff1b6084840181905260a060448501908152885160a486015288519697506001600160a01b03909516956338ed1739958c958c958b95949390929160c401906020878101910280838360005b83811015610629578181015183820152602001610611565b505050509050019650505050505050600060405180830381600087803b15801561065257600080fd5b505af1158015610666573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561068f57600080fd5b8101908080516401000000008111156106a757600080fd5b820160208101848111156106ba57600080fd5b81518560208202830111640100000000821117156106d757600080fd5b505060408051600160e01b6370a08231028152306004820152905160009550869450738893d5fa71389673c5c4b9b3cb4ee1ba7120755693506370a0823192506024808301926020929190829003018186803b15801561073657600080fd5b505afa15801561074a573d6000803e3d6000fd5b505050506040513d602081101561076057600080fd5b505103905060648482020480156107e457738893d5fa71389673c5c4b9b3cb4ee1ba712075566001600160a01b03166342966c68826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156107cb57600080fd5b505af11580156107df573d6000803e3d6000fd5b505050505b8082111561085c5760408051600160e21b63224b8185028152828403600482015290517345c12738c089224f66cd7a1c85301d79c45e2ded9163892e061491602480830192600092919082900301818387803b15801561084357600080fd5b505af1158015610857573d6000803e3d6000fd5b505050505b6000805460408051600160e01b63a2e6204502815290516001600160a01b039092169263a2e620459260048084019382900301818387803b1580156108a057600080fd5b505af11580156108b4573d6000803e3d6000fd5b50505050600160009054906101000a90046001600160a01b03166001600160a01b031663a2e620456040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561090857600080fd5b505af115801561091c573d6000803e3d6000fd5b5050505050505050505050565b60056020526000908152604090205481565b60046020526000908152604090205481565b336109566115f3565b61095e61188f565b6001600160a01b0381166000908152600560209081526040808320546004909252822054600754600160401b929102030490508015610a44576001600160a01b03821660008181526005602090815260408083208054600160401b87020190558051600160e01b63a9059cbb0281526004810194909452602484018590525173896ede222d3f7f3414e136a2791bdb08aaa25ce09363a9059cbb9360448083019493928390030190829087803b158015610a1757600080fd5b505af1158015610a2b573d6000803e3d6000fd5b505050506040513d6020811015610a4157600080fd5b50505b6001600160a01b0382166000908152600860209081526040808320546004909252822054600954600160401b929102030490508015610b2a576001600160a01b03831660008181526008602090815260408083208054600160401b87020190558051600160e01b63a9059cbb02815260048101949094526024840185905251738893d5fa71389673c5c4b9b3cb4ee1ba712075569363a9059cbb9360448083019493928390030190829087803b158015610afd57600080fd5b505af1158015610b11573d6000803e3d6000fd5b505050506040513d6020811015610b2757600080fd5b50505b505050565b600f54339060ff1615610b4157600080fd5b610b496115f3565b610b5161188f565b6001600160a01b038116600090815260056020908152604080832054600480845282852054600754600886529386205491909452600954600160401b9385029290920383900494919093029290920304908215610c6a5760408051600160e31b631c57762b028152600b600482015260248101859052905173ef6e807fd2c0ef5883a03ed1b962333e8c9b725f9163e2bbb15891604480830192600092919082900301818387803b158015610c0557600080fd5b505af1158015610c19573d6000803e3d6000fd5b505050506001600160a01b0384166000908152600460209081526040808320805487019055600680548701905560075460059092529091208054918502600160401b86020190910190556009548302015b8115610cfa5760408051600160e11b6317a790f10281526001600160a01b0386166004820152602481018490529051600160401b840292909201917345c12738c089224f66cd7a1c85301d79c45e2ded91632f4f21e291604480830192600092919082900301818387803b158015610ce157600080fd5b505af1158015610cf5573d6000803e3d6000fd5b505050505b8015610d1f576001600160a01b03841660009081526008602052604090208054820190555b50505050565b60095481565b60008060095490506000600b54421015610d4f57600c544203600a54029050610d69565b600b54600c541015610d6957600c54600b5403600a540290505b8015610d8657600654600160401b820281610d8057fe5b04820191505b6001600160a01b038416600090815260086020908152604080832054600490925290912054600160401b91908402036103f2565b600f5461010090046001600160a01b03163314610dd657600080fd5b600f5460ff16610de557600080fd5b8015610e655760408051600160e41b630441a3e7028152600b600482015260248101839052905173ef6e807fd2c0ef5883a03ed1b962333e8c9b725f9163441a3e7091604480830192600092919082900301818387803b158015610e4857600080fd5b505af1158015610e5c573d6000803e3d6000fd5b50505050610ed2565b60408051600160e11b6329897547028152600060048201819052915173ef6e807fd2c0ef5883a03ed1b962333e8c9b725f92635312ea8e926024808201939182900301818387803b158015610eb957600080fd5b505af1158015610ecd573d6000803e3d6000fd5b505050505b60408051600160e01b6370a08231028152306004820152905173896ede222d3f7f3414e136a2791bdb08aaa25ce09163a9059cbb91339184916370a0823191602480820192602092909190829003018186803b158015610f3157600080fd5b505afa158015610f45573d6000803e3d6000fd5b505050506040513d6020811015610f5b57600080fd5b50516040805163ffffffff851660e01b81526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b158015610fa757600080fd5b505af1158015610fbb573d6000803e3d6000fd5b505050506040513d6020811015610b2a57600080fd5b6003546001600160a01b03163314610fe857600080fd5b610ff061188f565b6000600b544210156110085742600b5403600a540290505b62093a809101819004600a554201600b55565b60065481565b60075481565b600d5481565b60086020526000908152604090205481565b600f5461010090046001600160a01b0316331461105b57600080fd5b600f5460ff161561106b57600080fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b3361109661094d565b6006546001600160a01b0382166000908152600460205260409020546110c2908463ffffffff6115e116565b6001600160a01b038316600090815260046020908152604080832093909355600754600582528383208054918802909103905560095460089091529190208054918502909103905560065461111d908463ffffffff6115e116565b60065560408051600160e01b6370a08231028152306004820152905160009173896ede222d3f7f3414e136a2791bdb08aaa25ce0916370a0823191602480820192602092909190829003018186803b15801561117857600080fd5b505afa15801561118c573d6000803e3d6000fd5b505050506040513d60208110156111a257600080fd5b505160408051600b60208281019190915281830188905282518083038401815260608301909352600160e41b630441a3e70260808301818152845195965073ef6e807fd2c0ef5883a03ed1b962333e8c9b725f959194939092608490910191908401908083835b602083106112285780518252601f199092019160209182019101611209565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040526040518082805190602001908083835b6020831061128c5780518252601f19909201916020918201910161126d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146112ee576040519150601f19603f3d011682016040523d82523d6000602084013e6112f3565b606091505b505060408051600160e01b6370a08231028152306004820152905160009250839173896ede222d3f7f3414e136a2791bdb08aaa25ce0916370a0823191602480820192602092909190829003018186803b15801561135057600080fd5b505afa158015611364573d6000803e3d6000fd5b505050506040513d602081101561137a57600080fd5b505160408051600160e01b63a9059cbb0281526001600160a01b03881660048201529290910360248301819052905190925073896ede222d3f7f3414e136a2791bdb08aaa25ce09163a9059cbb9160448083019260209291908290030181600087803b1580156113e957600080fd5b505af11580156113fd573d6000803e3d6000fd5b505050506040513d602081101561141357600080fd5b505161141e57600080fd5b6064605f860204811015610b2757610b278482870387866118f1565b3332811461144757600080fd5b600f5460ff161561145757600080fd5b60408051600160e01b6323b872dd0281526001600160a01b038316600482015230602482015260448101849052905173896ede222d3f7f3414e136a2791bdb08aaa25ce0916323b872dd9160648083019260209291908290030181600087803b1580156114c357600080fd5b505af11580156114d7573d6000803e3d6000fd5b505050506040513d60208110156114ed57600080fd5b50516114f857600080fd5b6115006115f3565b61150861188f565b60408051600160e31b631c57762b028152600b600482015260248101849052905173ef6e807fd2c0ef5883a03ed1b962333e8c9b725f9163e2bbb15891604480830192600092919082900301818387803b15801561156557600080fd5b505af1158015611579573d6000803e3d6000fd5b505050506001600160a01b03166000908152600460209081526040808320805485019055600680548501905560075460058352818420805491860290910190556009546008909252909120805491909202019055565b600a5481565b600b5481565b600c5481565b6000828211156115ed57fe5b50900390565b60408051600160e01b6370a08231028152306004820152905160009173896ede222d3f7f3414e136a2791bdb08aaa25ce0916370a0823191602480820192602092909190829003018186803b15801561164b57600080fd5b505afa15801561165f573d6000803e3d6000fd5b505050506040513d602081101561167557600080fd5b505160408051600b60208281019190915260008284015282518083038401815260608301909352600160e31b631c57762b0260808301818152845195965073ef6e807fd2c0ef5883a03ed1b962333e8c9b725f959194939092608490910191908401908083835b602083106116fb5780518252601f1990920191602091820191016116dc565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040526040518082805190602001908083835b6020831061175f5780518252601f199092019160209182019101611740565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146117c1576040519150601f19603f3d011682016040523d82523d6000602084013e6117c6565b606091505b505060408051600160e01b6370a08231028152306004820152905160009250839173896ede222d3f7f3414e136a2791bdb08aaa25ce0916370a0823191602480820192602092909190829003018186803b15801561182357600080fd5b505afa158015611837573d6000803e3d6000fd5b505050506040513d602081101561184d57600080fd5b5051039050801561188b57600d805460646014840204908101909155600654600160401b828403028161187c57fe5b60078054929091049091019055505b5050565b6000600b544210156118ab57600c544203600a540290506118c5565b600b54600c5410156118c557600c54600b5403600a540290505b42600c5580156118ee57600654600160401b8202816118e057fe5b600980549290910490910190555b50565b600f5460ff16611cc257600f805460ff191660011790556000828483028161191557fe5b60015460408051600160e01b633ddac953028152738893d5fa71389673c5c4b9b3cb4ee1ba712075566004820152670de0b6b3a7640000602482015290519390920493506000926001600160a01b0390911691633ddac953916044808301926020929190829003018186803b15801561198d57600080fd5b505afa1580156119a1573d6000803e3d6000fd5b505050506040513d60208110156119b757600080fd5b505160005460408051600160e01b633ddac95302815273896ede222d3f7f3414e136a2791bdb08aaa25ce06004820152670de0b6b3a7640000602482015290516001600160a01b0390921691633ddac95391604480820192602092909190829003018186803b158015611a2957600080fd5b505afa158015611a3d573d6000803e3d6000fd5b505050506040513d6020811015611a5357600080fd5b5051830281611a5e57fe5b60408051600160e01b6370a082310281523060048201529051929091049250600091738893d5fa71389673c5c4b9b3cb4ee1ba71207556916370a08231916024808301926020929190829003018186803b158015611abb57600080fd5b505afa158015611acf573d6000803e3d6000fd5b505050506040513d6020811015611ae557600080fd5b5051600354604080516020818101879052825180830382018152828401909352600160e11b637d984777026060830181815284519697506001600160a01b0390951695909492606401918401908083835b60208310611b555780518252601f199092019160209182019101611b36565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040526040518082805190602001908083835b60208310611bb95780518252601f199092019160209182019101611b9a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611c1b576040519150601f19603f3d011682016040523d82523d6000602084013e611c20565b606091505b505060408051600160e01b6370a082310281523060048201529051600092508391738893d5fa71389673c5c4b9b3cb4ee1ba71207556916370a0823191602480820192602092909190829003018186803b158015611c7d57600080fd5b505afa158015611c91573d6000803e3d6000fd5b505050506040513d6020811015611ca757600080fd5b5051039050846103e8820281611cb957fe5b04600e55505050505b738893d5fa71389673c5c4b9b3cb4ee1ba712075566001600160a01b031663a9059cbb856103e8600e54860281611cf557fe5b046040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611d4557600080fd5b505af1158015611d59573d6000803e3d6000fd5b505050506040513d6020811015611d6f57600080fd5b50505050505056fea165627a7a72305820bc209d4452d9107fbc5cb6b9f9bd28b605845871c50f15be7531c834ea59a13e0029

Deployed ByteCode Sourcemap

148:10273:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;148:10273:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9307:485;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9307:485:0;-1:-1:-1;;;;;9307:485:0;;:::i;:::-;;;;;;;;;;;;;;;;6739:980;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6739:980:0;;;;;;;;;;;;:::i;:::-;;1011:43;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1011:43:0;-1:-1:-1;;;;;1011:43:0;;:::i;961:::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;961:43:0;-1:-1:-1;;;;;961:43:0;;:::i;2389:718::-;;;:::i;3119:1244::-;;;:::i;1246:33::-;;;:::i;9804:614::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9804:614:0;-1:-1:-1;;;;;9804:614:0;;:::i;8645:415::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8645:415:0;;:::i;7731:364::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7731:364:0;;:::i;1063:28::-;;;:::i;1098:29::-;;;:::i;1437:31::-;;;:::i;1192:47::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1192:47:0;-1:-1:-1;;;;;1192:47:0;;:::i;9072:227::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9072:227:0;-1:-1:-1;;;;;9072:227:0;;:::i;4910:845::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4910:845:0;;:::i;1768:613::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1768:613:0;;:::i;1292:27::-;;;:::i;1326:28::-;;;:::i;1361:27::-;;;:::i;9307:485::-;9409:38;;;-1:-1:-1;;;;;9409:38:0;;9429:2;9409:38;;;;9441:4;9409:38;;;;;;9365:7;;;;516:42;;9409:19;;:38;;;;;;;;;;;;;;516:42;9409:38;;;5:2:-1;;;;30:1;27;20:12;5:2;9409:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9409:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9409:38:0;;-1:-1:-1;9507:3:0;1428:2;9476:27;;9475:35;9458:52;;;;9529:27;9607:13;;-1:-1:-1;;;9578:13:0;:25;9577:43;;;;;9559:14;;-1:-1:-1;;;;;9754:17:0;;;;;;:9;:17;;;;;;;;;9734:8;:16;;;;;;;9577:43;;;;9559:62;;-1:-1:-1;;;;1172:7:0;9712:38;;9703:68;9692:92;;;9307:485;-1:-1:-1;;;;9307:485:0:o;6739:980::-;6855:6;;;;;-1:-1:-1;;;;;6855:6:0;6841:10;:20;6833:29;;;;;;6897:3;6881:12;:19;;6873:28;;;;;;6931:16;;:28;;6952:6;6931:28;:20;:28;:::i;:::-;6912:16;:47;7004:16;;;7018:1;7004:16;;;;;;;;;6980:21;;7004:16;;;6980:21;;105:10:-1;7004:16:0;88:34:-1;136:17;;-1:-1;7004:16:0;6980:40;;247:42;7031:4;7036:1;7031:7;;;;;;;;;;;;;:25;-1:-1:-1;;;;;7031:25:0;;;-1:-1:-1;;;;;7031:25:0;;;;;7077:42;7067:4;7072:1;7067:7;;;;;;;;;;;;;:52;-1:-1:-1;;;;;7067:52:0;;;-1:-1:-1;;;;;7067:52:0;;;;;325:42;7138:4;7143:1;7138:7;;;;;;;;-1:-1:-1;;;;;7138:23:0;;;:7;;;;;;;;;;:23;7206:29;;;-1:-1:-1;;;;;7206:29:0;;7229:4;7206:29;;;;;;7182:21;;325:42;;7206:14;;:29;;;;;7138:7;7206:29;;;;;325:42;7206:29;;;5:2:-1;;;;30:1;27;20:12;5:2;7206:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7206:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7206:29:0;7246:7;;:80;;-1:-1:-1;;;;;7246:80:0;;;;;;;;;;;;;;7310:4;7246:80;;;;;;-1:-1:-1;;;7246:80:0;;;;;;;;;;;;;;;;;;;;;7206:29;;-1:-1:-1;;;;;;7246:7:0;;;;:32;;7279:6;;7287:7;;7296:4;;7310;7317:8;7246:80;;;;;;7206:29;7246:80;;;;;;;;:7;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7246:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7246:80:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7246:80:0;;;;;;39:16:-1;36:1;17:17;2:54;101:4;7246:80:0;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;7246:80:0;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;219:3;213:10;331:9;325:2;311:12;307:21;289:16;285:44;282:59;261:11;247:12;244:29;233:116;230:2;;;362:1;359;352:12;230:2;-1:-1;;7368:29:0;;;-1:-1:-1;;;;;7368:29:0;;7391:4;7368:29;;;;;;7347:18;;-1:-1:-1;7400:13:0;;-1:-1:-1;325:42:0;;-1:-1:-1;7368:14:0;;-1:-1:-1;7368:29:0;;;;;;;;;;;;;;325:42;7368:29;;;5:2:-1;;;;30:1;27;20:12;5:2;7368:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7368:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7368:29:0;:45;;-1:-1:-1;7471:3:0;7442:25;;;7441:33;7489:10;;7485:60;;325:42;-1:-1:-1;;;;;7516:9:0;;7526:6;7516:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7516:17:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7516:17:0;;;;7485:60;7572:6;7559:10;:19;7555:99;;;7595:47;;;-1:-1:-1;;;;;7595:47:0;;7622:19;;;7595:47;;;;;;424:42;;7595:26;;:47;;;;;-1:-1:-1;;7595:47:0;;;;;;;-1:-1:-1;424:42:0;7595:47;;;5:2:-1;;;;30:1;27;20:12;5:2;7595:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7595:47:0;;;;7555:99;7664:10;;;:19;;;-1:-1:-1;;;;;7664:19:0;;;;-1:-1:-1;;;;;7664:10:0;;;;:17;;:19;;;;;;;;;;:10;;:19;;;5:2:-1;;;;30:1;27;20:12;5:2;7664:19:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7664:19:0;;;;7694:8;;;;;;;;;-1:-1:-1;;;;;7694:8:0;-1:-1:-1;;;;;7694:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7694:17:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7694:17:0;;;;6739:980;;;;;;;:::o;1011:43::-;;;;;;;;;;;;;:::o;961:::-;;;;;;;;;;;;;:::o;2389:718::-;2446:10;2467:21;:19;:21::i;:::-;2499:10;:8;:10::i;:::-;-1:-1:-1;;;;;2599:17:0;;2522;2599;;;:9;:17;;;;;;;;;2579:8;:16;;;;;;2562:14;;-1:-1:-1;;;1172:7:0;2562:33;;2553:63;2542:87;;-1:-1:-1;2644:13:0;;2640:148;;-1:-1:-1;;;;;2674:17:0;;;;;;:9;:17;;;;;;;;:53;;-1:-1:-1;;;2705:21:0;;2674:53;;;2742:34;;-1:-1:-1;;;;;2742:34:0;;;;;;;;;;;;;;;;247:42;;2742:15;;:34;;;;;2674:17;2742:34;;;;;;;;247:42;2742:34;;;5:2:-1;;;;30:1;27;20:12;5:2;2742:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2742:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;2640:148:0;-1:-1:-1;;;;;2893:21:0;;2808;2893;;;:13;:21;;;;;;;;;2873:8;:16;;;;;;2852:18;;-1:-1:-1;;;1172:7:0;2852:37;;2843:71;2832:95;;-1:-1:-1;2942:17:0;;2938:162;;-1:-1:-1;;;;;2976:21:0;;;;;;:13;:21;;;;;;;;:61;;-1:-1:-1;;;3011:25:0;;2976:61;;;3052:36;;-1:-1:-1;;;;;3052:36:0;;;;;;;;;;;;;;;;325:42;;3052:13;;:36;;;;;2976:21;3052:36;;;;;;;;325:42;3052:36;;;5:2:-1;;;;30:1;27;20:12;5:2;3052:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3052:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;2938:162:0;2389:718;;;:::o;3119:1244::-;3210:16;;3180:10;;3210:16;;3209:17;3201:26;;;;;;3295:21;:19;:21::i;:::-;3327:10;:8;:10::i;:::-;-1:-1:-1;;;;;3435:17:0;;3358;3435;;;:9;:17;;;;;;;;;3415:8;:16;;;;;;;3398:14;;3561:13;:21;;;;;;3541:16;;;;3520:18;;-1:-1:-1;;;3398:33:0;;;3389:63;;;;3378:87;;;;3520:37;;;;3511:71;;;;3500:95;;3693:13;;3689:366;;3723:31;;;-1:-1:-1;;;;;3723:31:0;;3740:2;3723:31;;;;;;;;;;;;516:42;;3723:16;;:31;;;;;-1:-1:-1;;3723:31:0;;;;;;;-1:-1:-1;516:42:0;3723:31;;;5:2:-1;;;;30:1;27;20:12;5:2;3723:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;;;;3769:16:0;;;;;;:8;:16;;;;;;;;:29;;;;;;3813:13;:26;;;;;;3921:14;;3854:9;:17;;;;;;:95;;3921:26;;;-1:-1:-1;;;3886:21:0;;3876:72;3854:95;;;;;4012:18;;:30;;3982:61;3689:366;4079:17;;4075:166;;4184:45;;;-1:-1:-1;;;;;4184:45:0;;-1:-1:-1;;;;;4184:45:0;;;;;;;;;;;;;;-1:-1:-1;;;4143:25:0;;4113:56;;;;;424:42;;4184:22;;:45;;;;;-1:-1:-1;;4184:45:0;;;;;;;-1:-1:-1;424:42:0;4184:45;;;5:2:-1;;;;30:1;27;20:12;5:2;4184:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4184:45:0;;;;4075:166;4265:21;;4261:95;;-1:-1:-1;;;;;4303:21:0;;;;;;:13;:21;;;;;:41;;;;;;4261:95;3119:1244;;;;:::o;1246:33::-;;;;:::o;9804:614::-;9866:7;9886:27;9916:18;;9886:48;;9945:12;9978:13;;9972:3;:19;9968:213;;;10037:12;;10031:3;:18;10015:12;;:35;10008:42;;9968:213;;;10087:13;;10072:12;;:28;10068:113;;;10156:12;;10140:13;;:28;10124:12;;:45;10117:52;;10068:113;10205:8;;10201:96;;10272:13;;-1:-1:-1;;;10253:4:0;:16;:32;;;;;;10230:55;;;;10201:96;-1:-1:-1;;;;;10376:21:0;;;;;;:13;:21;;;;;;;;;10356:8;:16;;;;;;;-1:-1:-1;;;1172:7:0;10334:38;;;10325:72;10314:96;;8645:415;8738:6;;;;;-1:-1:-1;;;;;8738:6:0;8724:10;:20;8716:29;;;;;;8764:16;;;;8756:25;;;;;;8852:10;;8848:134;;8879:29;;;-1:-1:-1;;;;;8879:29:0;;8897:2;8879:29;;;;;;;;;;;;516:42;;8879:17;;:29;;;;;-1:-1:-1;;8879:29:0;;;;;;;-1:-1:-1;516:42:0;8879:29;;;5:2:-1;;;;30:1;27;20:12;5:2;8879:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8879:29:0;;;;8848:134;;;8941:29;;;-1:-1:-1;;;;;8941:29:0;;8968:1;8941:29;;;;;;;;516:42;;8941:26;;:29;;;;;;;;;;;8968:1;516:42;8941:29;;;5:2:-1;;;;30:1;27;20:12;5:2;8941:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8941:29:0;;;;8848:134;9020:31;;;-1:-1:-1;;;;;9020:31:0;;9045:4;9020:31;;;;;;247:42;;8992:15;;9008:10;;247:42;;9020:16;;:31;;;;;;;;;;;;;;;247:42;9020:31;;;5:2:-1;;;;30:1;27;20:12;5:2;9020:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9020:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9020:31:0;8992:60;;;;;;;;;;-1:-1:-1;;;;;8992:60:0;;;;;;;;;;;;;;;;;;;;9020:31;;8992:60;;;;;;;-1:-1:-1;8992:60:0;;;;5:2:-1;;;;30:1;27;20:12;5:2;8992:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8992:60:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;7731:364:0;7822:10;;-1:-1:-1;;;;;7822:10:0;7800;:33;7792:42;;;;;;7845:10;:8;:10::i;:::-;7866:17;7904:13;;7898:3;:19;7894:100;;;7978:3;7962:13;;:19;7946:12;;:36;7934:48;;7894:100;8042:6;8020:18;;8019:29;;;8004:12;:44;8075:3;:12;8059:13;:28;7731:364::o;1063:28::-;;;;:::o;1098:29::-;;;;:::o;1437:31::-;;;;:::o;1192:47::-;;;;;;;;;;;;;:::o;9072:227::-;9155:6;;;;;-1:-1:-1;;;;;9155:6:0;9141:10;:20;9133:29;;;;;;9182:16;;;;9181:17;9173:26;;;;;;9210:10;:38;;-1:-1:-1;;;;;;9210:38:0;-1:-1:-1;;;;;9210:38:0;;;;;;;;;;9072:227::o;4910:845::-;4980:10;5001:12;:10;:12::i;:::-;5048:13;;-1:-1:-1;;;;;5091:16:0;;5026:19;5091:16;;;:8;:16;;;;;;:28;;5112:6;5091:28;:20;:28;:::i;:::-;-1:-1:-1;;;;;5072:16:0;;;;;;:8;:16;;;;;;;;:47;;;;5161:14;;5130:9;:17;;;;;:55;;5161:23;;;5130:55;;;;;5231:18;;5196:13;:21;;;;;;:63;;5231:27;;;5196:63;;;;;5286:13;;:25;;5178:6;5286:25;:17;:25;:::i;:::-;5270:13;:41;5348:31;;;-1:-1:-1;;;;;5348:31:0;;5373:4;5348:31;;;;;;5324:21;;247:42;;5348:16;;:31;;;;;;;;;;;;;;;247:42;5348:31;;;5:2:-1;;;;30:1;27;20:12;5:2;5348:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5348:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5348:31:0;5458:22;;;5469:2;5348:31;5458:22;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;5458:22:0;;;;;;-1:-1:-1;;;;;5413:68:0;;;;;;;;5348:31;;-1:-1:-1;516:42:0;;5430:26;;5458:22;5413:68;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;5413:68:0;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5413:68:0;;;5390:92;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;5390:92:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;-1:-1;;5512:31:0;;;-1:-1:-1;;;;;5512:31:0;;5537:4;5512:31;;;;;;5495:14;;-1:-1:-1;5546:13:0;;247:42;;5512:16;;:31;;;;;;;;;;;;;;;247:42;5512:31;;;5:2:-1;;;;30:1;27;20:12;5:2;5512:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5512:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5512:31:0;5578;;;-1:-1:-1;;;;;5578:31:0;;-1:-1:-1;;;;;5578:31:0;;;;;;5512:47;;;;5578:31;;;;;;;;5512:47;;-1:-1:-1;247:42:0;;5578:15;;:31;;;;;5512;;5578;;;;;;;-1:-1:-1;247:42:0;5578:31;;;5:2:-1;;;;30:1;27;20:12;5:2;5578:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5578:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5578:31:0;5570:40;;;;;;5660:3;5654:2;5645:11;;5644:19;5635:6;:28;5631:117;;;5680:56;5691:6;5708;5699;:15;5716:6;5724:11;5680:10;:56::i;1768:613::-;1838:10;1877:9;1867:19;;1859:28;;;;;;1907:16;;;;1906:17;1898:26;;;;;;2000:59;;;-1:-1:-1;;;;;2000:59:0;;-1:-1:-1;;;;;2000:59:0;;;;;;2045:4;2000:59;;;;;;;;;;;;247:42;;2000:19;;:59;;;;;;;;;;;;;;-1:-1:-1;247:42:0;2000:59;;;5:2:-1;;;;30:1;27;20:12;5:2;2000:59:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2000:59:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2000:59:0;1992:68;;;;;;2071:21;:19;:21::i;:::-;2103:10;:8;:10::i;:::-;2134:28;;;-1:-1:-1;;;;;2134:28:0;;2151:2;2134:28;;;;;;;;;;;;516:42;;2134:16;;:28;;;;;-1:-1:-1;;2134:28:0;;;;;;;-1:-1:-1;516:42:0;2134:28;;;5:2:-1;;;;30:1;27;20:12;5:2;2134:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;;;;2173:16:0;;;;;:8;:16;;;;;;;;:26;;;;;;2210:13;:23;;;;;;2275:14;;2244:9;:17;;;;;:55;;2275:23;;;2244:55;;;;;2345:18;;2310:13;:21;;;;;;:63;;2345:27;;;;2310:63;;;1768:613::o;1292:27::-;;;;:::o;1326:28::-;;;;:::o;1361:27::-;;;;:::o;13157:113::-;13215:7;13243:1;13238;:6;;13231:14;;;;-1:-1:-1;13259:5:0;;;13157:113::o;4371:531::-;4446:31;;;-1:-1:-1;;;;;4446:31:0;;4471:4;4446:31;;;;;;4422:21;;247:42;;4446:16;;:31;;;;;;;;;;;;;;;247:42;4446:31;;;5:2:-1;;;;30:1;27;20:12;5:2;4446:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4446:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4446:31:0;4555:17;;;4566:2;4446:31;4555:17;;;;;;;4570:1;4555:17;;;;;;26:21:-1;;;22:32;;6:49;;4555:17:0;;;;;;-1:-1:-1;;;;;4511:62:0;;;;;;;;4446:31;;-1:-1:-1;516:42:0;;4528:25;;4555:17;4511:62;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4511:62:0;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4511:62:0;;;4488:86;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4488:86:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;-1:-1;;4608:31:0;;;-1:-1:-1;;;;;4608:31:0;;4633:4;4608:31;;;;;;4587:18;;-1:-1:-1;4642:13:0;;247:42;;4608:16;;:31;;;;;;;;;;;;;;;247:42;4608:31;;;5:2:-1;;;;30:1;27;20:12;5:2;4608:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4608:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4608:31:0;:47;;-1:-1:-1;4670:14:0;;4666:229;;4773:16;:27;;4748:3;1428:2;4720:24;;4719:32;4773:27;;;;;;4870:13;;-1:-1:-1;;;4834:20:0;;;4833:34;4870:13;4833:50;;;;4815:14;:68;;4833:50;;;;4815:68;;;;;-1:-1:-1;4666:229:0;4371:531;;:::o;8107:419::-;8147:12;8180:13;;8174:3;:19;8170:213;;;8239:12;;8233:3;:18;8217:12;;:35;8210:42;;8170:213;;;8289:13;;8274:12;;:28;8270:113;;;8358:12;;8342:13;;:28;8326:12;;:45;8319:52;;8270:113;8408:3;8393:12;:18;8428:8;;8424:95;;8494:13;;-1:-1:-1;;;8475:4:0;:16;:32;;;;;8453:18;:54;;8475:32;;;;8453:54;;;;;8424:95;8107:419;:::o;5767:960::-;5895:16;;;;5890:755;;5928:16;:23;;-1:-1:-1;;5928:23:0;5947:4;5928:23;;;:16;6060:14;6030:26;;;6060:14;6029:45;;;;6182:8;;:43;;;-1:-1:-1;;;;;6182:43:0;;325:42;6182:43;;;;6215:8;6182:43;;;;;;6029:45;;;;;-1:-1:-1;6089:21:0;;-1:-1:-1;;;;;6182:8:0;;;;:16;;:43;;;;;;;;;;;;;;:8;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;6182:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6182:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6182:43:0;6131:10;;:47;;;-1:-1:-1;;;;;6131:47:0;;247:42;6131:47;;;;6168:8;6131:47;;;;;;-1:-1:-1;;;;;6131:10:0;;;;:18;;:47;;;;;6182:43;;6131:47;;;;;;;;:10;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;6131:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6131:47:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6131:47:0;6114:64;;6113:112;;;;;6309:29;;;-1:-1:-1;;;;;6309:29:0;;6332:4;6309:29;;;;;;6113:112;;;;;-1:-1:-1;6285:21:0;;325:42;;6309:14;;:29;;;;;;;;;;;;;;325:42;6309:29;;;5:2:-1;;;;30:1;27;20:12;5:2;6309:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6309:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6309:29:0;6361:10;;6431:25;;;6309:29;6431:25;;;;;;;;26:21:-1;;;22:32;;6:49;;6431:25:0;;;;;;-1:-1:-1;;;;;6378:79:0;;;;;;;;6309:29;;-1:-1:-1;;;;;;6361:10:0;;;;6395:34;;6378:79;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;6378:79:0;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6378:79:0;;;6353:105;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;6353:105:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;-1:-1;;6493:29:0;;;-1:-1:-1;;;;;6493:29:0;;6516:4;6493:29;;;;;;6473:17;;-1:-1:-1;6525:13:0;;325:42;;6493:14;;:29;;;;;;;;;;;;;;;325:42;6493:29;;;5:2:-1;;;;30:1;27;20:12;5:2;6493:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6493:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6493:29:0;:45;;-1:-1:-1;6592:12:0;6584:4;6572:16;;6592:12;6571:33;;;;;6553:15;:51;-1:-1:-1;;;;5890:755:0;325:42;-1:-1:-1;;;;;6655:13:0;;6669:6;6714:4;6695:15;;6678:14;:32;6677:41;;;;;;6655:64;;;;;;;;;;;;;-1:-1:-1;;;;;6655:64:0;-1:-1:-1;;;;;6655:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6655:64:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6655:64:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5767:960:0:o

Swarm Source

bzzr://bc209d4452d9107fbc5cb6b9f9bd28b605845871c50f15be7531c834ea59a13e
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.