Contract 0x6db8381b2b41b74e17f5d4eb82e8d5b04dda0a82 5

 
Txn Hash Method
Index
From
To
Value
0x7cfbe0b76d0580cb07576f7613aa282ddc616ad244ff784e2710b1bbad7ed019Edit136974332022-07-02 13:21:022 days 10 hrs ago0x4fabaa6ba3a055ea184d11ba3e78664cdb63f776 IN  0x6db8381b2b41b74e17f5d4eb82e8d5b04dda0a820.006 Ether0.0000913996770.001
0xdfe796a5d9219f5dcb9615f0d59f3712da27c5f33e1116549824223c19f7f67eEdit61582312022-04-21 10:27:5874 days 13 hrs ago0x1acd7992ef21e7e560624dcfcc411e942de5d856 IN  0x6db8381b2b41b74e17f5d4eb82e8d5b04dda0a820.004 Ether0.0002399990210.001
0x7b99cc1b86a72427803289ad772153093b20987ec31d48813d8c4a43dbbb0f59Edit56083292022-04-10 11:53:0885 days 12 hrs ago 0x4c6767e261b070b1cf1046dd4ec8ea48c6fee1e5 IN  0x6db8381b2b41b74e17f5d4eb82e8d5b04dda0a820.003 Ether0.0000840760210.001
0x181721f31a90c921937e210fac627890315beb479d6c788748549721c3c7c6fdEdit19755812022-01-05 22:30:32180 days 1 hr ago0xeda33431b2c7f2cf7c4677f5d40accc4e5319fc6 IN  0x6db8381b2b41b74e17f5d4eb82e8d5b04dda0a820.01 Ether00.001
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x50da25d723fa38161d2356663edf3a539224c3b75a5474e488751c57c0ea49f114049032021-12-21 3:52:33195 days 20 hrs ago 0x83aa38958768b9615b138339cbd8601fc2963d4d  Contract Creation0 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
OrchidLottery1

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 99999999 runs

Other Settings:
istanbul EvmVersion, GNU AGPLv3 license
File 1 of 1 : lottery1.sol
/* Orchid - WebRTC P2P VPN Market (on Ethereum)
 * Copyright (C) 2017-2021  The Orchid Authors
*/

/* GNU Affero General Public License, Version 3 {{{ */
/* SPDX-License-Identifier: AGPL-3.0-or-later */
/*
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.

 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.

 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
**/
/* }}} */


pragma solidity 0.7.6;
pragma abicoder v2;

interface IERC20 {}

contract OrchidLottery1 {
    uint64 private immutable day_;

    constructor(uint64 day) {
        day_ = day;
    }


    struct Account {
        uint256 escrow_amount_;
        uint256 unlock_warned_;
    }

    mapping(bytes32 => Account) accounts_;

    event Create(IERC20 indexed token, address indexed funder, address indexed signer);
    event Update(bytes32 indexed key, uint256 escrow_amount);
    event Delete(bytes32 indexed key, uint256 unlock_warned);

    function read(IERC20 token, address funder, address signer) external view returns (uint256, uint256) {
        Account storage account = accounts_[keccak256(abi.encodePacked(token, funder, signer))];
        return (account.escrow_amount_, account.unlock_warned_);
    }


    function send_(address sender, IERC20 token, uint256 retrieve) private {
        if (retrieve != 0) {
            (bool success, bytes memory result) = address(token).call(
                abi.encodeWithSignature("transfer(address,uint256)", sender, retrieve));
            require(success && (result.length == 0 || abi.decode(result, (bool))));
        }
    }

    function edit(IERC20 token, uint256 amount, address signer, int256 adjust, int256 warn, uint256 retrieve) external {
        require(token != IERC20(0));
        (bool success, bytes memory result) = address(token).call(
            abi.encodeWithSignature("transferFrom(address,address,uint256)", msg.sender, this, amount));
        require(success && abi.decode(result, (bool)));

        edit_(msg.sender, token, amount, signer, adjust, warn, retrieve);
        send_(msg.sender, token, retrieve);
    }

    function tokenFallback(address sender, uint256 amount, bytes calldata data) public {
        require(data.length >= 4);
        bytes4 selector; assembly { selector := calldataload(data.offset) }

        if (false) {
        } else if (selector == bytes4(keccak256("edit(address,int256,int256,uint256)"))) {
            address signer; int256 adjust; int256 warn; uint256 retrieve;
            (signer, adjust, warn, retrieve) = abi.decode(data[4:],
                (address, int256, int256, uint256));
            edit_(sender, IERC20(msg.sender), amount, signer, adjust, warn, retrieve);
            send_(sender, IERC20(msg.sender), retrieve);
        } else require(false);
    }

    function onTokenTransfer(address sender, uint256 amount, bytes calldata data) external returns (bool) {
        tokenFallback(sender, amount, data);
        return true;
    }

    function edit(address signer, int256 adjust, int256 warn, uint256 retrieve) external payable {
        edit_(msg.sender, IERC20(0), msg.value, signer, adjust, warn, retrieve);

        if (retrieve != 0) {
            (bool success,) = msg.sender.call{value: retrieve}("");
            require(success);
        }
    }

    function edit_(address funder, IERC20 token, uint256 amount, address signer, int256 adjust, int256 warn, uint256 retrieve) private {
        bytes32 key = keccak256(abi.encodePacked(token, funder, signer));
        Account storage account = accounts_[key];

        uint256 backup;
        uint256 escrow;

        if (adjust != 0 || amount != retrieve) {
            backup = account.escrow_amount_;
            if (backup == 0)
                emit Create(token, funder, signer);
            escrow = backup >> 128;
            amount += uint128(backup);
        }
    {
        uint256 marked;
        uint256 warned;
        uint256 unlock;

        if (adjust < 0 || warn != 0) {
            warned = account.unlock_warned_;
            marked = warned >> 192;
            unlock = uint64(warned >> 128);
            warned = uint128(warned);
        }

        if (warn > 0) {
            unlock = block.timestamp + day_;

            warned += uint256(warn);
            require(warned >= uint256(warn));
        }

        if (adjust < 0) {
            require(unlock - 1 < block.timestamp);

            uint256 recover = uint256(-adjust);
            require(int256(recover) != adjust);

            require(recover <= escrow);
            amount += recover;
            escrow -= recover;

            require(recover <= warned);
            warned -= recover;
        } else if (adjust != 0) {
            uint256 transfer = uint256(adjust);

            require(transfer <= amount);
            amount -= transfer;
            escrow += transfer;
        }

        if (warn < 0) {
            uint256 decrease = uint256(-warn);
            require(int256(decrease) != warn);

            require(decrease <= warned);
            warned -= decrease;
        }

        if (retrieve != 0) {
            require(retrieve <= amount);
            amount -= retrieve;
        }

        if (unlock != 0) {
            require(warned < 1 << 128);

            uint256 cache = marked << 192 | (warned == 0 ? 0 : unlock << 128 | warned);
            account.unlock_warned_ = cache;
            emit Delete(key, cache);
        }
    } {
        require(amount < 1 << 128);
        require(escrow < 1 << 128);

        uint256 cache = escrow << 128 | amount;
        if (cache != backup) {
            account.escrow_amount_ = cache;
            emit Update(key, cache);
        }
    } }


    struct Loop {
        uint256 closed_;
        mapping(address => uint256) merchants_;
    }

    mapping(address => Loop) private loops_;

    event Enroll(address indexed funder, address indexed recipient);

    function enroll(bool cancel, address[] calldata recipients) external {
        Loop storage loop = loops_[msg.sender];

        uint i = recipients.length;
        if (i == 0) {
            loop.closed_ = cancel ? 0 : block.timestamp + day_;
            emit Enroll(msg.sender, address(0));
        } else {
            uint256 value = cancel ? uint256(-1) : block.timestamp + day_;
            do {
                address recipient = recipients[--i];
                require(recipient != address(0));
                loop.merchants_[recipient] = value;
                emit Enroll(msg.sender, recipient);
            } while (i != 0);
        }
    }

    function enrolled(address funder, address recipient) external view returns (uint256) {
        Loop storage loop = loops_[funder];
        if (recipient == address(0))
            return loop.closed_;
        else
            return loop.merchants_[recipient];
    }

    function mark(IERC20 token, address signer, uint64 marked) external {
        require(marked <= block.timestamp);
        bytes32 key = keccak256(abi.encodePacked(token, msg.sender, signer));
        Account storage account = accounts_[key];
        uint256 cache = account.unlock_warned_;
        cache = uint256(marked) << 192 | uint192(cache);
        account.unlock_warned_ = cache;
        emit Delete(key, cache);
    }


    /*struct Track {
        uint96 expire;
        address owner;
    }*/

    struct Track {
        uint256 packed;
    }

    mapping(bytes32 => Track) private tracks_;

    function save(uint256 count, bytes32 seed) external {
        for (seed = keccak256(abi.encodePacked(
            keccak256(abi.encodePacked(seed, msg.sender))
        , address(0))); count-- != 0; seed = keccak256(abi.encodePacked(seed)))
            tracks_[seed].packed = uint256(msg.sender);
    }

    function spend_(bytes32 refund) private {
        Track storage track = tracks_[refund];
        uint256 packed = track.packed;
        if (packed >> 160 <= block.timestamp)
            if (address(packed) == msg.sender)
                delete track.packed;
    }


    /*struct Ticket {
        uint256 data;
        uint256 reveal;

        uint64 issued;
        uint64 nonce;
        uint128 amount;

        uint31 expire;
        uint64 ratio;
        address funder;
        uint1 v;

        bytes32 r;
        bytes32 s;
    }*/

    struct Ticket {
        bytes32 data;
        bytes32 reveal;
        uint256 packed0;
        uint256 packed1;
        bytes32 r;
        bytes32 s;
    }

    function claim_(IERC20 token, address recipient, Ticket calldata ticket) private returns (uint256) {
        uint256 expire = (ticket.packed0 >> 192) + (ticket.packed1 >> 225);
        if (expire <= block.timestamp)
            return 0;

        if (uint64(ticket.packed1 >> 161) < uint64(uint256(keccak256(abi.encodePacked(ticket.reveal, uint128(ticket.packed0 >> 128))))))
            return 0;

        bytes32 digest; assembly { digest := chainid() }
        digest = keccak256(abi.encodePacked(
            byte(0x19), byte(0x00), this, digest, token,
            recipient, keccak256(abi.encodePacked(ticket.reveal)),
            ticket.packed0, ticket.packed1 >> 1, ticket.data));

        address signer = ecrecover(digest, uint8((ticket.packed1 & 1) + 27), ticket.r, ticket.s);

        address funder = address(ticket.packed1 >> 1);
        bytes32 key = keccak256(abi.encodePacked(token, funder, signer));
        Account storage account = accounts_[key];
    {
        Loop storage loop = loops_[funder];
        if (loop.closed_ - 1 < block.timestamp)
            if (loop.merchants_[recipient] <= account.unlock_warned_ >> 192)
                return 0;
    } {
        Track storage track = tracks_[keccak256(abi.encodePacked(digest, signer))];
        if (track.packed != 0)
            return 0;
        track.packed = expire << 160 | uint256(msg.sender);
    }
        uint256 amount = uint128(ticket.packed0);
        uint256 cache = account.escrow_amount_;

        if (uint128(cache) >= amount)
            cache -= amount;
        else {
            amount = uint128(cache);
            cache = 0;
        }

        account.escrow_amount_ = cache;
        emit Update(key, cache);
        return amount;
    }

    function claim(IERC20 token, address recipient, Ticket[] calldata tickets, bytes32[] calldata refunds) external {
        for (uint256 i = refunds.length; i != 0; )
            spend_(refunds[--i]);

        uint256 segment; assembly { segment := mload(0x40) }

        uint256 amount = 0;
        for (uint256 i = tickets.length; i != 0; ) {
            amount += claim_(token, recipient, tickets[--i]);
            assembly { mstore(0x40, segment) }
        }

        if (amount != 0) {
            bytes32 key = keccak256(abi.encodePacked(token, recipient, recipient));
            Account storage account = accounts_[key];

            uint256 cache = account.escrow_amount_;
            if (cache == 0)
                emit Create(token, recipient, recipient);

            require(uint128(cache) + amount < 1 << 128);
            cache += amount;
            account.escrow_amount_ = cache;
            emit Update(key, cache);
        }
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 99999999
  },
  "evmVersion": "istanbul",
  "metadata": {
    "bytecodeHash": "none"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint64","name":"day","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IERC20","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"funder","type":"address"},{"indexed":true,"internalType":"address","name":"signer","type":"address"}],"name":"Create","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"key","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"unlock_warned","type":"uint256"}],"name":"Delete","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"funder","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"}],"name":"Enroll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"key","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"escrow_amount","type":"uint256"}],"name":"Update","type":"event"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"components":[{"internalType":"bytes32","name":"data","type":"bytes32"},{"internalType":"bytes32","name":"reveal","type":"bytes32"},{"internalType":"uint256","name":"packed0","type":"uint256"},{"internalType":"uint256","name":"packed1","type":"uint256"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct OrchidLottery1.Ticket[]","name":"tickets","type":"tuple[]"},{"internalType":"bytes32[]","name":"refunds","type":"bytes32[]"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"signer","type":"address"},{"internalType":"int256","name":"adjust","type":"int256"},{"internalType":"int256","name":"warn","type":"int256"},{"internalType":"uint256","name":"retrieve","type":"uint256"}],"name":"edit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"int256","name":"adjust","type":"int256"},{"internalType":"int256","name":"warn","type":"int256"},{"internalType":"uint256","name":"retrieve","type":"uint256"}],"name":"edit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bool","name":"cancel","type":"bool"},{"internalType":"address[]","name":"recipients","type":"address[]"}],"name":"enroll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"funder","type":"address"},{"internalType":"address","name":"recipient","type":"address"}],"name":"enrolled","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"signer","type":"address"},{"internalType":"uint64","name":"marked","type":"uint64"}],"name":"mark","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onTokenTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"funder","type":"address"},{"internalType":"address","name":"signer","type":"address"}],"name":"read","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"count","type":"uint256"},{"internalType":"bytes32","name":"seed","type":"bytes32"}],"name":"save","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"tokenFallback","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a060405234801561001057600080fd5b50604051611a14380380611a1483398101604081905261002f91610044565b60c01b6001600160c01b031916608052610072565b600060208284031215610055578081fd5b81516001600160401b038116811461006b578182fd5b9392505050565b60805160c01c61197b6100996000398061071152806107815280611020525061197b6000f3fe6080604052600436106100b15760003560e01c80635fe65fef11610069578063a4c0ed361161004e578063a4c0ed36146101a2578063c0ee0b8a146101cf578063c6a69689146101ef576100b1565b80635fe65fef1461016257806384992d5114610182576100b1565b8063248d0fd71161009a578063248d0fd7146100f85780635185c7d71461011857806359c8b7f01461014f576100b1565b806313171586146100b65780631cea28c0146100d8575b600080fd5b3480156100c257600080fd5b506100d66100d1366004611577565b61021c565b005b3480156100e457600080fd5b506100d66100f33660046116dd565b6103ef565b34801561010457600080fd5b506100d6610113366004611682565b6104b1565b34801561012457600080fd5b5061013861013336600461152d565b610607565b604051610146929190611905565b60405180910390f35b6100d661015d366004611425565b610661565b34801561016e57600080fd5b506100d661017d3660046114da565b6106f5565b34801561018e57600080fd5b506100d661019d366004611637565b61089f565b3480156101ae57600080fd5b506101c26101bd36600461143a565b61099e565b60405161014691906118dc565b3480156101db57600080fd5b506100d66101ea36600461143a565b6109b7565b3480156101fb57600080fd5b5061020f61020a3660046113ed565b610a5d565b6040516101469190611798565b805b8015610266577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161026183838381811061025557fe5b90506020020135610ac5565b61021e565b506040516000845b80156102bf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016102b289898989858181106102a757fe5b905060c00201610b08565b820191508260405261026e565b5080156103e55760008888896040516020016102dd93929190611840565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152928390529120805491925090806103715760405173ffffffffffffffffffffffffffffffffffffffff808c169182918e16907fb224da6575b2c2ffd42454faedb236f7dbe5f92a0c96bb99c0273dbe98464c7e90600090a45b70010000000000000000000000000000000084826fffffffffffffffffffffffffffffffff1601106103a257600080fd5b830180825560405183907f05241a2ddcbea46fa2f8b84beea5d0d8c0fd21414503d644982a75ccf1d986aa906103d9908490611798565b60405180910390a25050505b5050505050505050565b80336040516020016104029291906117a1565b60405160208183030381529060405280519060200120600060405160200161042b9291906117a1565b6040516020818303038152906040528051906020012090505b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820191156104ad57600081815260026020908152604091829020339055905161049091839101611798565b604051602081830303815290604052805190602001209050610444565b5050565b73ffffffffffffffffffffffffffffffffffffffff86166104d157600080fd5b6000808773ffffffffffffffffffffffffffffffffffffffff1633308960405160240161050093929190611885565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052516105819190611807565b6000604051808303816000865af19150503d80600081146105be576040519150601f19603f3d011682016040523d82523d6000602084013e6105c3565b606091505b50915091508180156105e45750808060200190518101906105e491906114be565b6105ed57600080fd5b6105fc33898989898989610eb6565b6103e5338985611225565b600080600080600087878760405160200161062493929190611840565b6040516020818303038152906040528051906020012081526020019081526020016000209050806000015481600101549250925050935093915050565b6106713360003487878787610eb6565b80156106ef5760003373ffffffffffffffffffffffffffffffffffffffff168260405161069d90611882565b60006040518083038185875af1925050503d80600081146106da576040519150601f19603f3d011682016040523d82523d6000602084013e6106df565b606091505b50509050806106ed57600080fd5b505b50505050565b33600090815260016020526040902081806107785784610741577f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff164201610744565b60005b825560405160009033907ffcf9bcb7a2649802047845bf82b0575e170753e2fb50c2e1552bcebc3c38ca9f908390a36106ed565b6000856107b1577f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1642016107d3565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b90505b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90910190600085858481811061080957fe5b905060200201602081019061081e9190611397565b905073ffffffffffffffffffffffffffffffffffffffff811661084057600080fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526001860160205260408082208590555133917ffcf9bcb7a2649802047845bf82b0575e170753e2fb50c2e1552bcebc3c38ca9f91a350816107d657505050505050565b428167ffffffffffffffff1611156108b657600080fd5b60008333846040516020016108cd93929190611840565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018152828252805160209182012060008181529182905291902060018101805477ffffffffffffffffffffffffffffffffffffffffffffffff1660c087901b7fffffffffffffffff0000000000000000000000000000000000000000000000001617908190559193509183907fe9d5d4bdc29068f77666497419c28b4aa58fe071a9dc2e1c5fde003d86701a6d9061098e908490611798565b60405180910390a2505050505050565b60006109ac858585856109b7565b506001949350505050565b60048110156109c557600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081167f59c8b7f00000000000000000000000000000000000000000000000000000000014156100b1576000808080610a23866004818a611913565b810190610a3091906113b3565b92965090945092509050610a4989338a87878787610eb6565b610a54893383611225565b505050506106ed565b73ffffffffffffffffffffffffffffffffffffffff808316600090815260016020526040812090918316610a9357549050610abf565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001909101602052604090205490505b92915050565b600081815260026020526040902080544260a082901c11610b035773ffffffffffffffffffffffffffffffffffffffff8116331415610b0357600082555b505050565b6000604082013560c01c606083013560e11c01428111610b2c576000915050610eaf565b826020013560808460400135901c604051602001610b4b9291906117d4565b6040516020818303038152906040528051906020012060001c67ffffffffffffffff1660a18460600135901c67ffffffffffffffff161015610b91576000915050610eaf565b6000469050601960f81b600060f81b308389898960200135604051602001610bb99190611798565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120610c119998979695949390928e01359160608f013560011c918f3591016116fe565b60405160208183030381529060405280519060200120905060006001828660600135600116601b0187608001358860a0013560405160008152602001604052604051610c6094939291906118e7565b6020604051602081039080840390855afa158015610c82573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101519250606087013560011c9150600090610ccc908a9084908690602001611840565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181528151602092830120600081815280845282812073ffffffffffffffffffffffffffffffffffffffff87168252600190945291909120805491935090427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011015610dc05760c08260010154901c8160010160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610dc0576000975050505050505050610eaf565b506000600260008787604051602001610dda9291906117a1565b60405160208183030381529060405280519060200120815260200190815260200160002090508060000154600014610e1c576000975050505050505050610eaf565b60a087901b3317905580546fffffffffffffffffffffffffffffffff60408a01358116919081168211610e5157819003610e68565b6fffffffffffffffffffffffffffffffff16905060005b80835560405184907f05241a2ddcbea46fa2f8b84beea5d0d8c0fd21414503d644982a75ccf1d986aa90610e9d908490611798565b60405180910390a25096505050505050505b9392505050565b6000868886604051602001610ecd93929190611840565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181528151602092830120600081815292839052908220909250908086151580610f225750848914155b15610fc1578254915081610fa2578773ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fb224da6575b2c2ffd42454faedb236f7dbe5f92a0c96bb99c0273dbe98464c7e60405160405180910390a45b608082901c9050816fffffffffffffffffffffffffffffffff16890198505b6000806000808a1280610fd357508815155b1561100857505050600183015460c081901c906fffffffffffffffffffffffffffffffff81169060801c67ffffffffffffffff165b600089131561104e575087014267ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016018882101561104e57600080fd5b60008a12156110a45742600182031061106657600080fd5b60008a9003808b141561107857600080fd5b8481111561108557600080fd5b9b8c019b93849003938281111561109b57600080fd5b909103906110c3565b89156110c357898c8111156110b857600080fd5b9b8c90039b93909301925b60008912156110f0576000899003808a14156110de57600080fd5b828111156110eb57600080fd5b909103905b8715611109578b88111561110357600080fd5b878c039b505b801561118e57700100000000000000000000000000000000821061112c57600080fd5b600082156111405782608083901b17611143565b60005b60c085901b179050808760010181905550877fe9d5d4bdc29068f77666497419c28b4aa58fe071a9dc2e1c5fde003d86701a6d826040516111849190611798565b60405180910390a2505b50505070010000000000000000000000000000000089106111ae57600080fd5b70010000000000000000000000000000000081106111cb57600080fd5b608081901b89178281146112175780845560405185907f05241a2ddcbea46fa2f8b84beea5d0d8c0fd21414503d644982a75ccf1d986aa9061120e908490611798565b60405180910390a25b505050505050505050505050565b8015610b03576000808373ffffffffffffffffffffffffffffffffffffffff1685846040516024016112589291906118b6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052516112d99190611807565b6000604051808303816000865af19150503d8060008114611316576040519150601f19603f3d011682016040523d82523d6000602084013e61131b565b606091505b509150915081801561134557508051158061134557508080602001905181019061134591906114be565b6106ed57600080fd5b60008083601f84011261135f578182fd5b50813567ffffffffffffffff811115611376578182fd5b602083019150836020808302850101111561139057600080fd5b9250929050565b6000602082840312156113a8578081fd5b8135610eaf8161193b565b600080600080608085870312156113c8578283fd5b84356113d38161193b565b966020860135965060408601359560600135945092505050565b600080604083850312156113ff578182fd5b823561140a8161193b565b9150602083013561141a8161193b565b809150509250929050565b600080600080608085870312156113c8578384fd5b6000806000806060858703121561144f578384fd5b843561145a8161193b565b935060208501359250604085013567ffffffffffffffff8082111561147d578384fd5b818701915087601f830112611490578384fd5b81358181111561149e578485fd5b8860208285010111156114af578485fd5b95989497505060200194505050565b6000602082840312156114cf578081fd5b8151610eaf81611960565b6000806000604084860312156114ee578283fd5b83356114f981611960565b9250602084013567ffffffffffffffff811115611514578283fd5b6115208682870161134e565b9497909650939450505050565b600080600060608486031215611541578283fd5b833561154c8161193b565b9250602084013561155c8161193b565b9150604084013561156c8161193b565b809150509250925092565b6000806000806000806080878903121561158f578182fd5b863561159a8161193b565b955060208701356115aa8161193b565b9450604087013567ffffffffffffffff808211156115c6578384fd5b818901915089601f8301126115d9578384fd5b8135818111156115e7578485fd5b8a602060c0830285010111156115fb578485fd5b602083019650809550506060890135915080821115611618578384fd5b5061162589828a0161134e565b979a9699509497509295939492505050565b60008060006060848603121561164b578081fd5b83356116568161193b565b925060208401356116668161193b565b9150604084013567ffffffffffffffff8116811461156c578182fd5b60008060008060008060c0878903121561169a578384fd5b86356116a58161193b565b95506020870135945060408701356116bc8161193b565b959894975094956060810135955060808101359460a0909101359350915050565b600080604083850312156116ef578182fd5b50508035926020909101359150565b7fff000000000000000000000000000000000000000000000000000000000000009a8b1681529890991660018901527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606097881b811660028a0152601689019690965293861b851660368801529190941b909216604a850152605e840192909252607e830152609e82015260be81019190915260de0190565b90815260200190565b91825260601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602082015260340190565b91825260801b7fffffffffffffffffffffffffffffffff0000000000000000000000000000000016602082015260300190565b60008251815b81811015611827576020818601810151858301520161180d565b818111156118355782828501525b509190910192915050565b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b8116825292841b83166014820152921b166028820152603c0190565b90565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b901515815260200190565b93845260ff9290921660208401526040830152606082015260800190565b918252602082015260400190565b60008085851115611922578182fd5b8386111561192e578182fd5b5050820193919092039150565b73ffffffffffffffffffffffffffffffffffffffff8116811461195d57600080fd5b50565b801515811461195d57600080fdfea164736f6c6343000706000a0000000000000000000000000000000000000000000000000000000000015180

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

0000000000000000000000000000000000000000000000000000000000015180

-----Decoded View---------------
Arg [0] : day (uint64): 86400

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000015180


Deployed ByteCode Sourcemap

950:10676:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10674:950;;;;;;;;;;-1:-1:-1;10674:950:0;;;;;:::i;:::-;;:::i;:::-;;7924:301;;;;;;;;;;-1:-1:-1;7924:301:0;;;;;:::i;:::-;;:::i;2067:506::-;;;;;;;;;;-1:-1:-1;2067:506:0;;;;;:::i;:::-;;:::i;1423:270::-;;;;;;;;;;-1:-1:-1;1423:270:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;3450:319;;;;;;:::i;:::-;;:::i;6388:652::-;;;;;;;;;;-1:-1:-1;6388:652:0;;;;;:::i;:::-;;:::i;7318:425::-;;;;;;;;;;-1:-1:-1;7318:425:0;;;;;:::i;:::-;;:::i;3269:175::-;;;;;;;;;;-1:-1:-1;3269:175:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2579:684::-;;;;;;;;;;-1:-1:-1;2579:684:0;;;;;:::i;:::-;;:::i;7046:266::-;;;;;;;;;;-1:-1:-1;7046:266:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10674:950::-;10813:7;10796:75;10829:6;;10796:75;;10866:3;;10851:20;10858:7;;10866:3;10858:12;;;;;;;;;;;;;10851:6;:20::i;:::-;10796:75;;;-1:-1:-1;10927:4:0;10921:11;10882:15;10989:7;10972:163;11005:6;;10972:163;;11072:3;;11039:38;11046:5;11053:9;11064:7;;11072:3;11064:12;;;;;;;;;;;;11039:6;:38::i;:::-;11029:48;;;;11115:7;11109:4;11102:21;11100:25;;;-1:-1:-1;11149:11:0;;11145:473;;11176:11;11217:5;11224:9;11235;11200:45;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;11190:56;;11200:45;11190:56;;;;11260:23;11286:14;;;;;;;;;11331:22;;11190:56;;-1:-1:-1;11286:14:0;11371:10;11367:72;;11404:35;;;;;;;;;;;;;;;;;11367:72;11488:8;11479:6;11470:5;11462:23;;;:34;11454:43;;;;;;11511:15;;11540:30;;;11589:18;;11596:3;;11589:18;;;;11511:15;;11589:18;:::i;:::-;;;;;;;;11145:473;;;;10674:950;;;;;;;;:::o;7924:301::-;8065:4;8071:10;8048:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8038:45;;;;;;8102:1;8008:97;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7998:108;;;;;;7991:115;;7986:232;8108:7;;;;:12;7986:232;;8176:13;;;;:7;:13;;;;;;;;;8207:10;8176:42;;8139:22;;;;8184:4;;8139:22;;:::i;:::-;;;;;;;;;;;;;8129:33;;;;;;8122:40;;7986:232;;;7924:301;;:::o;2067:506::-;2200:18;;;2192:27;;;;;;2230:12;2244:19;2275:5;2267:19;;2365:10;2377:4;2383:6;2300:90;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2267:124;;;2300:90;2267:124;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2229:162;;;;2409:7;:37;;;;;2431:6;2420:26;;;;;;;;;;;;:::i;:::-;2401:46;;;;;;2458:64;2464:10;2476:5;2483:6;2491;2499;2507:4;2513:8;2458:5;:64::i;:::-;2532:34;2538:10;2550:5;2557:8;2532:5;:34::i;1423:270::-;1506:7;1515;1534:23;1560:9;:61;1597:5;1604:6;1612;1580:39;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1570:50;;;;;;1560:61;;;;;;;;;;;1534:87;;1639:7;:22;;;1663:7;:22;;;1631:55;;;;;1423:270;;;;;;:::o;3450:319::-;3553:71;3559:10;3578:1;3582:9;3593:6;3601;3609:4;3615:8;3553:5;:71::i;:::-;3639:13;;3635:128;;3669:12;3686:10;:15;;3709:8;3686:36;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3668:54;;;3744:7;3736:16;;;;;;3635:128;;3450:319;;;;:::o;6388:652::-;6494:10;6467:17;6487:18;;;:6;:18;;;;;6525:10;6556:6;6552:482;;6593:6;:35;;6624:4;6606:22;;:15;:22;6593:35;;;6602:1;6593:35;6578:50;;6647:30;;6578:12;;6654:10;;6647:30;;6578:12;;6647:30;6552:482;;;6708:13;6724:6;:45;;6765:4;6747:22;;:15;:22;6724:45;;;6741:2;6724:45;6708:61;;6783:241;6835:3;;;;;6804:17;6824:10;;6835:3;6824:15;;;;;;;;;;;;;;;;;;;;:::i;:::-;6804:35;-1:-1:-1;6865:23:0;;;6857:32;;;;;;6907:26;;;;;;;:15;;;:26;;;;;;:34;;;6964:29;6971:10;;6964:29;;;-1:-1:-1;7016:6:0;6783:241;;6552:482;6388:652;;;;;:::o;7318:425::-;7414:15;7404:6;:25;;;;7396:34;;;;;;7440:11;7481:5;7488:10;7500:6;7464:43;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;7454:54;;7464:43;7454:54;;;;7518:23;7544:14;;;;;;;;;;7584:22;;;;;7624:39;;7643:3;7624:22;;;;;:39;7673:30;;;;7454:54;;-1:-1:-1;7544:14:0;7454:54;;7718:18;;;;7624:39;;7718:18;:::i;:::-;;;;;;;;7318:425;;;;;;:::o;3269:175::-;3365:4;3381:35;3395:6;3403;3411:4;;3381:13;:35::i;:::-;-1:-1:-1;3433:4:0;3269:175;;;;;;:::o;2579:684::-;2695:1;2680:16;;;2672:25;;;;;;2747;;2816:68;;;;;2812:444;;;2900:14;;;;3020:8;:4;3025:1;3020:4;;:8;:::i;:::-;3009:72;;;;;;;:::i;:::-;2974:107;;-1:-1:-1;2974:107:0;;-1:-1:-1;2974:107:0;-1:-1:-1;2974:107:0;-1:-1:-1;3095:73:0;3101:6;3116:10;3129:6;2974:107;;;;3095:5;:73::i;:::-;3182:43;3188:6;3203:10;3216:8;3182:5;:43::i;:::-;2812:444;;;;;;7046:266;7161:14;;;;7122:7;7161:14;;;:6;:14;;;;;7122:7;;7189:23;;7185:120;;7233:12;;-1:-1:-1;7226:19:0;;7185:120;7279:26;;;;;;;:15;;;;:26;;;;;;;-1:-1:-1;7046:266:0;;;;;:::o;8231:263::-;8281:19;8303:15;;;:7;:15;;;;;8345:12;;8388:15;8381:3;8371:13;;;:32;8367:120;;8421:29;;;8440:10;8421:29;8417:70;;;8475:12;8468:19;;8417:70;8231:263;;;:::o;8935:1733::-;9025:7;9062:14;;;;9080:3;9062:21;9088:14;;;;9106:3;9088:21;9061:49;9134:15;9124:25;;9120:51;;9170:1;9163:8;;;;;9120:51;9260:6;:13;;;9301:3;9283:6;:14;;;:21;;9243:63;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9233:74;;;;;;9225:83;;9186:123;;9211:3;9193:6;:14;;;:21;;9186:123;;;9182:149;;;9330:1;9323:8;;;;;9182:149;9342:14;9379:9;9369:19;;9453:4;9448:10;;9465:4;9460:10;;9472:4;9478:6;9486:5;9505:9;9543:6;:13;;;9526:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;9516:42;;9526:31;9516:42;;;;9418:203;;;;;;;;9516:42;;9572:14;;;;9588;;;;9606:1;9588:19;;9609:11;;;9418:203;;:::i;:::-;;;;;;;;;;;;;9408:214;;;;;;9399:223;;9633:14;9650:71;9660:6;9675;:14;;;9692:1;9675:18;9697:2;9674:25;9702:6;:8;;;9712:6;:8;;;9650:71;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9650:71:0;;;;;;;-1:-1:-1;9757:14:0;;;;9775:1;9757:19;;-1:-1:-1;9732:14:0;;9811:39;;9828:5;;9757:19;;9650:71;;;9811:39;;:::i;:::-;;;;;;;;;;;;;;9801:50;;9811:39;9801:50;;;;9861:23;9887:14;;;;;;;;;9937;;;;;:6;:14;;;;;;;9965:12;;9801:50;;-1:-1:-1;9937:14:0;9984:15;9965:16;;;;:34;9961:141;;;10073:3;10047:7;:22;;;:29;;10017:4;:15;;:26;10033:9;10017:26;;;;;;;;;;;;;;;;:59;10013:89;;10101:1;10094:8;;;;;;;;;;;10013:89;8935:1733;10120:19;10142:7;:52;10177:6;10185;10160:32;;;;;;;;;:::i;:::-;;;;;;;;;;;;;10150:43;;;;;;10142:52;;;;;;;;;;;10120:74;;10208:5;:12;;;10224:1;10208:17;10204:43;;10246:1;10239:8;;;;;;;;;;;10204:43;10282:3;10272:13;;;10296:10;10272:35;10257:50;;10389:22;;10323:40;10348:14;;;;10323:40;;;10389:22;10426:24;;;-1:-1:-1;10422:143:0;;10464:15;;;10422:143;;;10508:23;;;-1:-1:-1;10553:1:0;10422:143;10575:30;;;10620:18;;10627:3;;10620:18;;;;10600:5;;10620:18;:::i;:::-;;;;;;;;-1:-1:-1;10655:6:0;-1:-1:-1;;;;;;;8935:1733:0;;;;;;:::o;3775:2392::-;3916:11;3957:5;3964:6;3972;3940:39;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;3930:50;;3940:39;3930:50;;;;3990:23;4016:14;;;;;;;;;;3930:50;;-1:-1:-1;4016:14:0;3990:23;4094:11;;;;:33;;;4119:8;4109:6;:18;;4094:33;4090:251;;;4152:22;;;-1:-1:-1;4192:11:0;4188:67;;4248:6;4226:29;;4240:6;4226:29;;4233:5;4226:29;;;;;;;;;;;;4188:67;4288:3;4278:6;:13;;4269:22;;4323:6;4305:25;;;;;;4090:251;4356:14;4380;4404;4442:1;4433:6;:10;:23;;;-1:-1:-1;4447:9:0;;;4433:23;4429:203;;;-1:-1:-1;;;4481:22:0;;;;4536:3;4526:13;;;;4597:24;;;;4579:3;4569:13;4553:30;;4429:203;4653:1;4646:4;:8;4642:154;;;-1:-1:-1;4716:23:0;;4679:15;:22;4697:4;4679:22;;4761:23;;;;4753:32;;;;;;4819:1;4810:6;:10;4806:538;;;4857:15;4853:1;4844:6;:10;:28;4836:37;;;;;;4888:15;4914:7;;;4944:25;;;;4936:34;;;;;;5004:6;4993:7;:17;;4985:26;;;;;;5025:17;;;;5056;;;;;5096;;;;5088:26;;;;;;5128:17;;;;4806:538;;;5166:11;;5162:182;;5220:6;5250:18;;;;5242:27;;;;;;5283:18;;;;;5315;;;;;5162:182;5365:1;5358:4;:8;5354:193;;;5382:16;5409:5;;;5437:24;;;;5429:33;;;;;;5497:6;5485:8;:18;;5477:27;;;;;;5518:18;;;;5354:193;5561:13;;5557:103;;5610:6;5598:8;:18;;5590:27;;;;;;5641:8;5631:18;;;;5557:103;5674:11;;5670:238;;5718:8;5709:6;:17;5701:26;;;;;;5742:13;5775:11;;:40;;5809:6;5803:3;5793:6;:13;;:22;5775:40;;;5789:1;5775:40;5768:3;5758:6;:13;;:58;5742:74;;5855:5;5830:7;:22;;:30;;;;5886:3;5879:18;5891:5;5879:18;;;;;;:::i;:::-;;;;;;;;5670:238;;3775:2392;;;5942:8;5933:6;:17;5925:26;;;;;;5978:8;5969:6;:17;5961:26;;;;;;6024:3;6014:13;;;:22;;6050:15;;;6046:113;;6081:30;;;6130:18;;6137:3;;6130:18;;;;6106:5;;6130:18;:::i;:::-;;;;;;;;6046:113;3775:2392;;;;;;;;;;;;:::o;1700:361::-;1785:13;;1781:274;;1815:12;1829:19;1860:5;1852:19;;1942:6;1950:8;1889:70;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1852:108;;;1889:70;1852:108;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1814:146;;;;1982:7;:61;;;;-1:-1:-1;1994:13:0;;:18;;:48;;;2027:6;2016:26;;;;;;;;;;;;:::i;:::-;1974:70;;;;;14:404:1;;;147:3;140:4;132:6;128:17;124:27;114:2;;172:8;162;155:26;114:2;-1:-1:-1;202:20:1;;245:18;234:30;;231:2;;;284:8;274;267:26;231:2;328:4;320:6;316:17;304:29;;391:3;384:4;376;368:6;364:17;356:6;352:30;348:41;345:50;342:2;;;408:1;405;398:12;342:2;104:314;;;;;:::o;423:259::-;;535:2;523:9;514:7;510:23;506:32;503:2;;;556:6;548;541:22;503:2;600:9;587:23;619:33;646:5;619:33;:::i;687:470::-;;;;;856:3;844:9;835:7;831:23;827:33;824:2;;;878:6;870;863:22;824:2;922:9;909:23;941:33;968:5;941:33;:::i;:::-;993:5;1045:2;1030:18;;1017:32;;-1:-1:-1;1096:2:1;1081:18;;1068:32;;1147:2;1132:18;1119:32;;-1:-1:-1;814:343:1;-1:-1:-1;;;814:343:1:o;1162:402::-;;;1291:2;1279:9;1270:7;1266:23;1262:32;1259:2;;;1312:6;1304;1297:22;1259:2;1356:9;1343:23;1375:33;1402:5;1375:33;:::i;:::-;1427:5;-1:-1:-1;1484:2:1;1469:18;;1456:32;1497:35;1456:32;1497:35;:::i;:::-;1551:7;1541:17;;;1249:315;;;;;:::o;1569:462::-;;;;;1730:3;1718:9;1709:7;1705:23;1701:33;1698:2;;;1752:6;1744;1737:22;2036:846;;;;;2201:2;2189:9;2180:7;2176:23;2172:32;2169:2;;;2222:6;2214;2207:22;2169:2;2266:9;2253:23;2285:33;2312:5;2285:33;:::i;:::-;2337:5;-1:-1:-1;2389:2:1;2374:18;;2361:32;;-1:-1:-1;2444:2:1;2429:18;;2416:32;2467:18;2497:14;;;2494:2;;;2529:6;2521;2514:22;2494:2;2572:6;2561:9;2557:22;2547:32;;2617:7;2610:4;2606:2;2602:13;2598:27;2588:2;;2644:6;2636;2629:22;2588:2;2689;2676:16;2715:2;2707:6;2704:14;2701:2;;;2736:6;2728;2721:22;2701:2;2786:7;2781:2;2772:6;2768:2;2764:15;2760:24;2757:37;2754:2;;;2812:6;2804;2797:22;2754:2;2159:723;;;;-1:-1:-1;;2848:2:1;2840:11;;-1:-1:-1;;;2159:723:1:o;2887:257::-;;3007:2;2995:9;2986:7;2982:23;2978:32;2975:2;;;3028:6;3020;3013:22;2975:2;3065:9;3059:16;3084:30;3108:5;3084:30;:::i;3149:594::-;;;;3310:2;3298:9;3289:7;3285:23;3281:32;3278:2;;;3331:6;3323;3316:22;3278:2;3375:9;3362:23;3394:30;3418:5;3394:30;:::i;:::-;3443:5;-1:-1:-1;3499:2:1;3484:18;;3471:32;3526:18;3515:30;;3512:2;;;3563:6;3555;3548:22;3512:2;3607:76;3675:7;3666:6;3655:9;3651:22;3607:76;:::i;:::-;3268:475;;3702:8;;-1:-1:-1;3581:102:1;;-1:-1:-1;;;;3268:475:1:o;3748:557::-;;;;3906:2;3894:9;3885:7;3881:23;3877:32;3874:2;;;3927:6;3919;3912:22;3874:2;3971:9;3958:23;3990:33;4017:5;3990:33;:::i;:::-;4042:5;-1:-1:-1;4099:2:1;4084:18;;4071:32;4112:35;4071:32;4112:35;:::i;:::-;4166:7;-1:-1:-1;4225:2:1;4210:18;;4197:32;4238:35;4197:32;4238:35;:::i;:::-;4292:7;4282:17;;;3864:441;;;;;:::o;4310:1318::-;;;;;;;4581:3;4569:9;4560:7;4556:23;4552:33;4549:2;;;4603:6;4595;4588:22;4549:2;4647:9;4634:23;4666:33;4693:5;4666:33;:::i;:::-;4718:5;-1:-1:-1;4775:2:1;4760:18;;4747:32;4788:35;4747:32;4788:35;:::i;:::-;4842:7;-1:-1:-1;4900:2:1;4885:18;;4872:32;4923:18;4953:14;;;4950:2;;;4985:6;4977;4970:22;4950:2;5028:6;5017:9;5013:22;5003:32;;5073:7;5066:4;5062:2;5058:13;5054:27;5044:2;;5100:6;5092;5085:22;5044:2;5145;5132:16;5171:2;5163:6;5160:14;5157:2;;;5192:6;5184;5177:22;5157:2;5253:7;5248:2;5240:4;5232:6;5228:17;5224:2;5220:26;5216:35;5213:48;5210:2;;;5279:6;5271;5264:22;5210:2;5315;5311;5307:11;5297:21;;5337:6;5327:16;;;5396:2;5385:9;5381:18;5368:32;5352:48;;5425:2;5415:8;5412:16;5409:2;;;5446:6;5438;5431:22;5409:2;;5490:78;5560:7;5549:8;5538:9;5534:24;5490:78;:::i;:::-;4539:1089;;;;-1:-1:-1;4539:1089:1;;-1:-1:-1;4539:1089:1;;5587:8;;4539:1089;-1:-1:-1;;;4539:1089:1:o;5633:604::-;;;;5790:2;5778:9;5769:7;5765:23;5761:32;5758:2;;;5811:6;5803;5796:22;5758:2;5855:9;5842:23;5874:33;5901:5;5874:33;:::i;:::-;5926:5;-1:-1:-1;5983:2:1;5968:18;;5955:32;5996:35;5955:32;5996:35;:::i;:::-;6050:7;-1:-1:-1;6109:2:1;6094:18;;6081:32;6157:18;6144:32;;6132:45;;6122:2;;6196:6;6188;6181:22;6242:687;;;;;;;6449:3;6437:9;6428:7;6424:23;6420:33;6417:2;;;6471:6;6463;6456:22;6417:2;6515:9;6502:23;6534:33;6561:5;6534:33;:::i;:::-;6586:5;-1:-1:-1;6638:2:1;6623:18;;6610:32;;-1:-1:-1;6694:2:1;6679:18;;6666:32;6707:35;6666:32;6707:35;:::i;:::-;6407:522;;;;-1:-1:-1;6761:7:1;;6815:2;6800:18;;6787:32;;-1:-1:-1;6866:3:1;6851:19;;6838:33;;6918:3;6903:19;;;6890:33;;-1:-1:-1;6407:522:1;-1:-1:-1;;6407:522:1:o;6934:258::-;;;7063:2;7051:9;7042:7;7038:23;7034:32;7031:2;;;7084:6;7076;7069:22;7031:2;-1:-1:-1;;7112:23:1;;;7182:2;7167:18;;;7154:32;;-1:-1:-1;7021:171:1:o;7197:1042::-;7619:66;7706:15;;;7694:28;;7751:15;;;;7747:1;7738:11;;7731:36;7786:66;7889:2;7885:15;;;7881:24;;7877:1;7868:11;;7861:45;7931:2;7922:12;;7915:28;;;;7977:15;;;7973:24;;7968:2;7959:12;;7952:46;8032:15;;;;8028:24;;;8023:2;8014:12;;8007:46;8078:2;8069:12;;8062:28;;;;8115:3;8106:13;;8099:29;8153:3;8144:13;;8137:29;8191:3;8182:13;;8175:29;;;;8229:3;8220:13;;7599:640::o;8244:182::-;8373:19;;;8417:2;8408:12;;8363:63::o;8431:329::-;8588:19;;;8645:2;8641:15;8658:66;8637:88;8632:2;8623:12;;8616:110;8751:2;8742:12;;8578:182::o;9115:330::-;9272:19;;;9329:3;9325:16;9343:66;9321:89;9316:2;9307:12;;9300:111;9436:2;9427:12;;9262:183::o;9450:430::-;;9617:6;9611:13;9642:3;9654:129;9668:6;9665:1;9662:13;9654:129;;;9766:4;9750:14;;;9746:25;;9740:32;9727:11;;;9720:53;9683:12;9654:129;;;9801:6;9798:1;9795:13;9792:2;;;9836:3;9827:6;9822:3;9818:16;9811:29;9792:2;-1:-1:-1;9858:16:1;;;;;9587:293;-1:-1:-1;;9587:293:1:o;9885:479::-;10108:66;10203:2;10199:15;;;10195:24;;10183:37;;10254:15;;;10250:24;;10245:2;10236:12;;10229:46;10309:15;;10305:24;10300:2;10291:12;;10284:46;10355:2;10346:12;;10088:276::o;10837:205::-;11037:3;11028:14::o;11047:437::-;11298:42;11367:15;;;11349:34;;11419:15;;;;11414:2;11399:18;;11392:43;11466:2;11451:18;;11444:34;;;;11276:2;11261:18;;11243:241::o;11489:297::-;11693:42;11681:55;;;;11663:74;;11768:2;11753:18;;11746:34;11651:2;11636:18;;11618:168::o;11791:187::-;11956:14;;11949:22;11931:41;;11919:2;11904:18;;11886:92::o;11983:398::-;12210:25;;;12283:4;12271:17;;;;12266:2;12251:18;;12244:45;12320:2;12305:18;;12298:34;12363:2;12348:18;;12341:34;12197:3;12182:19;;12164:217::o;12568:248::-;12742:25;;;12798:2;12783:18;;12776:34;12730:2;12715:18;;12697:119::o;12821:363::-;;;12979:8;12967:10;12964:24;12961:2;;;13009:9;12998;12991:28;12961:2;13046:6;13036:8;13033:20;13030:2;;;13074:9;13063;13056:28;13030:2;-1:-1:-1;;13108:23:1;;;13153:25;;;;;-1:-1:-1;12951:233:1:o;13189:156::-;13277:42;13270:5;13266:54;13259:5;13256:65;13246:2;;13335:1;13332;13325:12;13246:2;13236:109;:::o;13350:120::-;13438:5;13431:13;13424:21;13417:5;13414:32;13404:2;;13460:1;13457;13450:12

Swarm Source

none://164736f6c6343000706000a
Block Transaction Difficulty Gas Used Reward
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.