ETH Price: $3,288.34 (-0.34%)

Contract

0xF26D144BD92260fB1C770B5b19b8Caf2C5529e62
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
0xb261ee2f69459e37e791a5bfaec5098ebb647e7be77036f4bccc1c598cf04373 Claim Many Rewar...(pending)2024-12-23 15:03:0130 mins ago1734966181IN
0xF26D144B...2C5529e62
0 ETH(Pending)(Pending)
Claim Many Rewar...207554902024-09-15 10:42:4799 days ago1726396967IN
0xF26D144B...2C5529e62
0 ETH0.000346951.37347079
Claim Many Rewar...207554662024-09-15 10:37:5999 days ago1726396679IN
0xF26D144B...2C5529e62
0 ETH0.000346951.37358752
Claim Many Rewar...207554592024-09-15 10:36:3599 days ago1726396595IN
0xF26D144B...2C5529e62
0 ETH0.000364131.44148074
Claim Many Rewar...207554402024-09-15 10:32:4799 days ago1726396367IN
0xF26D144B...2C5529e62
0 ETH0.000387331.53333228
Claim Many Rewar...207553192024-09-15 10:08:3599 days ago1726394915IN
0xF26D144B...2C5529e62
0 ETH0.000344761.36491302
Claim Many Rewar...207553102024-09-15 10:06:4799 days ago1726394807IN
0xF26D144B...2C5529e62
0 ETH0.001235031.32709932
Claim Many Rewar...207552962024-09-15 10:03:5999 days ago1726394639IN
0xF26D144B...2C5529e62
0 ETH0.001289431.40699667
Claim Many Rewar...207551872024-09-15 9:42:1199 days ago1726393331IN
0xF26D144B...2C5529e62
0 ETH0.000893331.32989817
Claim Many Rewar...207551382024-09-15 9:32:2399 days ago1726392743IN
0xF26D144B...2C5529e62
0 ETH0.000579991.30177032
Claim Many Rewar...207551192024-09-15 9:28:3599 days ago1726392515IN
0xF26D144B...2C5529e62
0 ETH0.001107761.2981054
Claim Many Rewar...206606432024-09-02 4:57:59112 days ago1725253079IN
0xF26D144B...2C5529e62
0 ETH0.000277760.58007154
Claim Many Rewar...206604902024-09-02 4:27:23112 days ago1725251243IN
0xF26D144B...2C5529e62
0 ETH0.000283690.59271161
Claim Many Rewar...205381412024-08-16 2:16:47129 days ago1723774607IN
0xF26D144B...2C5529e62
0 ETH0.000270361.07034315
Claim Many Rewar...204530842024-08-04 5:25:47141 days ago1722749147IN
0xF26D144B...2C5529e62
0 ETH0.000040591
Claim Many Rewar...204530332024-08-04 5:15:35141 days ago1722748535IN
0xF26D144B...2C5529e62
0 ETH0.000034651
Claim Many Rewar...204518782024-08-04 1:24:11141 days ago1722734651IN
0xF26D144B...2C5529e62
0 ETH0.000030091
Claim Many Rewar...204155232024-07-29 23:30:47146 days ago1722295847IN
0xF26D144B...2C5529e62
0 ETH0.000029541
Claim Many Rewar...204083002024-07-28 23:20:23147 days ago1722208823IN
0xF26D144B...2C5529e62
0 ETH0.000031
Claim Many Rewar...204083002024-07-28 23:20:23147 days ago1722208823IN
0xF26D144B...2C5529e62
0 ETH0.000056021
Claim Many Rewar...204083002024-07-28 23:20:23147 days ago1722208823IN
0xF26D144B...2C5529e62
0 ETH0.000030011
Claim Many Rewar...203956702024-07-27 5:03:35149 days ago1722056615IN
0xF26D144B...2C5529e62
0 ETH0.000050771
Claim Many Rewar...203710232024-07-23 18:27:59152 days ago1721759279IN
0xF26D144B...2C5529e62
0 ETH0.00148595
Claim Many Rewar...203708552024-07-23 17:54:11152 days ago1721757251IN
0xF26D144B...2C5529e62
0 ETH0.000118183.92054781
Claim Many Rewar...203652442024-07-22 23:06:47153 days ago1721689607IN
0xF26D144B...2C5529e62
0 ETH0.000090393
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CampaignBank

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2020-02-13
*/

pragma solidity ^0.5.0;
pragma experimental ABIEncoderV2;

/**
 * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.
 *
 * These functions can be used to verify that a message was signed by the holder
 * of the private keys of a given address.
 */
library ECDSA {
    /**
     * @dev Returns the address that signed a hashed message (`hash`) with
     * `signature`. This address can then be used for verification purposes.
     *
     * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:
     * this function rejects them by requiring the `s` value to be in the lower
     * half order, and the `v` value to be either 27 or 28.
     *
     * NOTE: This call _does not revert_ if the signature is invalid, or
     * if the signer is otherwise unable to be retrieved. In those scenarios,
     * the zero address is returned.
     *
     * IMPORTANT: `hash` _must_ be the result of a hash operation for the
     * verification to be secure: it is possible to craft signatures that
     * recover to arbitrary addresses for non-hashed data. A safe way to ensure
     * this is by receiving a hash of the original message (which may otherwise
     * be too long), and then calling {toEthSignedMessageHash} on it.
     */
    function recover(bytes32 hash, bytes memory signature) internal pure returns (address) {
        // Check the signature length
        if (signature.length != 65) {
            return (address(0));
        }

        // Divide the signature in r, s and v variables
        bytes32 r;
        bytes32 s;
        uint8 v;

        // ecrecover takes the signature parameters, and the only way to get them
        // currently is to use assembly.
        // solhint-disable-next-line no-inline-assembly
        assembly {
            r := mload(add(signature, 0x20))
            s := mload(add(signature, 0x40))
            v := byte(0, mload(add(signature, 0x60)))
        }

        // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature
        // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines
        // the valid range for s in (281): 0 < s < secp256k1n ÷ 2 + 1, and for v in (282): v ∈ {27, 28}. Most
        // signatures from current libraries generate a unique signature with an s-value in the lower half order.
        //
        // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value
        // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or
        // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept
        // these malleable signatures as well.
        if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) {
            return address(0);
        }

        if (v != 27 && v != 28) {
            return address(0);
        }

        // If the signature is valid (and not malleable), return the signer address
        return ecrecover(hash, v, r, s);
    }

    /**
     * @dev Returns an Ethereum Signed Message, created from a `hash`. This
     * replicates the behavior of the
     * https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign[`eth_sign`]
     * JSON-RPC method.
     *
     * See {recover}.
     */
    function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32) {
        // 32 is the length in bytes of hash,
        // enforced by the type signature above
        return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash));
    }
}


/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
contract Ownable {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () internal {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(isOwner(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Returns true if the caller is the current owner.
     */
    function isOwner() public view returns (bool) {
        return msg.sender == _owner;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     */
    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract CampaignBank is Ownable {
    using ECDSA for bytes32;

    mapping(address => bool) public trustedSigner;
    mapping(bytes32 => bool) public alreadySent;

    event RegisteredSigner(
        address indexed sender,
        address indexed signer,
        uint256 indexed date
    );
    event RemovedSigner(
        address indexed sender,
        address indexed signer,
        uint256 indexed date
    );
    event Rewarded(
        address indexed targetContract,
        bytes32 indexed hashedSig,
        bytes payload,
        uint256 signedTimestamp,
        bytes signature,
        address sender
    );

    constructor() public Ownable() {}

    function registerTrustedSigner(address target, bool allowed)
        public
        onlyOwner
    {
        if (allowed && !trustedSigner[target]) {
            trustedSigner[target] = true;
            emit RegisteredSigner(msg.sender, target, block.timestamp);
        } else if (!allowed && trustedSigner[target]) {
            trustedSigner[target] = false;
            emit RemovedSigner(msg.sender, target, block.timestamp);
        }
    }

    event TransactionRelayed(
        address indexed sender,
        address indexed targetContract,
        bytes payload,
        uint256 value,
        bytes signature
    );

    function claimManyRewards(
        address[] memory targetContract,
        bytes[] memory payload,
        uint256[] memory expirationTimestamp,
        bytes[] memory signature
    ) public {
        require(
            targetContract.length == payload.length,
            "Arrays should be of the same size"
        );
        require(
            targetContract.length == expirationTimestamp.length,
            "Arrays should be of the same size"
        );
        require(
            targetContract.length == signature.length,
            "Arrays should be of the same size"
        );
        uint256 length = targetContract.length;

        for (uint256 i = 0; i < length; i++) {
            if (
                !claimReward(
                    targetContract[i],
                    payload[i],
                    expirationTimestamp[i],
                    signature[i]
                )
            ) {
                revert("Transaction failed");
            }
        }
    }

    function claimReward(
        address targetContract,
        bytes memory payload,
        uint256 expirationTimestamp,
        bytes memory signature
    ) public returns (bool) {
        require(block.timestamp < expirationTimestamp, "Signature too old");

        bytes memory blob = abi.encode(
            targetContract,
            payload,
            expirationTimestamp
        );
        bytes32 signed = keccak256(blob);
        bytes32 verify = signed.toEthSignedMessageHash();
        require(!alreadySent[signed], "Already sent!");

        require(
            trustedSigner[verify.recover(signature)],
            "Invalid signature provided"
        );

        alreadySent[signed] = true;

        bool result;
        (result,) = targetContract.call(payload);
        if (!result) {
            revert("Failed call");
        }

        emit Rewarded(
            targetContract,
            signed,
            payload,
            expirationTimestamp,
            signature,
            msg.sender
        );

        return true;
    }

    function halt() public onlyOwner {
        selfdestruct(address(uint256(owner())));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"signer","type":"address"},{"indexed":true,"internalType":"uint256","name":"date","type":"uint256"}],"name":"RegisteredSigner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"signer","type":"address"},{"indexed":true,"internalType":"uint256","name":"date","type":"uint256"}],"name":"RemovedSigner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"targetContract","type":"address"},{"indexed":true,"internalType":"bytes32","name":"hashedSig","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"payload","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"signedTimestamp","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"signature","type":"bytes"},{"indexed":false,"internalType":"address","name":"sender","type":"address"}],"name":"Rewarded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"targetContract","type":"address"},{"indexed":false,"internalType":"bytes","name":"payload","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"signature","type":"bytes"}],"name":"TransactionRelayed","type":"event"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"alreadySent","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"targetContract","type":"address[]"},{"internalType":"bytes[]","name":"payload","type":"bytes[]"},{"internalType":"uint256[]","name":"expirationTimestamp","type":"uint256[]"},{"internalType":"bytes[]","name":"signature","type":"bytes[]"}],"name":"claimManyRewards","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"targetContract","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint256","name":"expirationTimestamp","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"claimReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"halt","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"registerTrustedSigner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"trustedSigner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3611a51806100dc6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80638da5cb5b116100665780638da5cb5b1461011f5780638f32d59b1461013d578063b2e767b91461015b578063e9e211a11461018b578063f2fde38b146101bb5761009e565b80633b1590cb146100a35780635ed7ca5b146100bf578063715018a6146100c957806388280fa0146100d35780638ba1be4c146100ef575b600080fd5b6100bd60048036036100b89190810190611015565b6101d7565b005b6100c7610446565b005b6100d16104c3565b005b6100ed60048036036100e891908101906110e4565b6105c9565b005b61010960048036036101049190810190611051565b610755565b60405161011691906115cd565b60405180910390f35b610127610a19565b6040516101349190611574565b60405180910390f35b610145610a42565b60405161015291906115cd565b60405180910390f35b610175600480360361017091908101906111a7565b610a99565b60405161018291906115cd565b60405180910390f35b6101a560048036036101a09190810190610fec565b610ab9565b6040516101b291906115cd565b60405180910390f35b6101d560048036036101d09190810190610fec565b610ad9565b005b6101df610a42565b61021e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021590611700565b60405180910390fd5b8080156102755750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156103315760018060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550428273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f969a7868194f6dc0b5cef08d07da8e6b3871bdb1e17154810fa60d85880b287e60405160405180910390a4610442565b801580156103885750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15610441576000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550428273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167facd41378bbd901f06db8205d5ec29579b5b23b52b2ede171c251134b38d80d7b60405160405180910390a45b5b5050565b61044e610a42565b61048d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048490611700565b60405180910390fd5b610495610a19565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6104cb610a42565b61050a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050190611700565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b825184511461060d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060490611680565b60405180910390fd5b8151845114610651576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064890611680565b60405180910390fd5b8051845114610695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068c90611680565b60405180910390fd5b60008451905060008090505b8181101561074d576107018682815181106106b857fe5b60200260200101518683815181106106cc57fe5b60200260200101518684815181106106e057fe5b60200260200101518685815181106106f457fe5b6020026020010151610755565b610740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073790611740565b60405180910390fd5b80806001019150506106a1565b505050505050565b6000824210610799576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610790906116c0565b60405180910390fd5b60608585856040516020016107b09392919061158f565b604051602081830303815290604052905060008180519060200120905060006107d882610b2c565b90506002600083815260200190815260200160002060009054906101000a900460ff161561083b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083290611720565b60405180910390fd5b600160006108528784610b5c90919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166108d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d090611760565b60405180910390fd5b60016002600084815260200190815260200160002060006101000a81548160ff02191690831515021790555060008873ffffffffffffffffffffffffffffffffffffffff168860405161092c9190611537565b6000604051808303816000865af19150503d8060008114610969576040519150601f19603f3d011682016040523d82523d6000602084013e61096e565b606091505b505080915050806109b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ab906116e0565b60405180910390fd5b828973ffffffffffffffffffffffffffffffffffffffff167f37117caaaab0b823cf81e70efa1e14cc33e0152b31f85a847bf9ff7ffe2435bc8a8a8a33604051610a01949392919061162d565b60405180910390a36001945050505050949350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b60026020528060005260406000206000915054906101000a900460ff1681565b60016020528060005260406000206000915054906101000a900460ff1681565b610ae1610a42565b610b20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1790611700565b60405180910390fd5b610b2981610c48565b50565b600081604051602001610b3f919061154e565b604051602081830303815290604052805190602001209050919050565b60006041825114610b705760009050610c42565b60008060006020850151925060408501519150606085015160001a90507f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08260001c1115610bc45760009350505050610c42565b601b8160ff1614158015610bdc5750601c8160ff1614155b15610bed5760009350505050610c42565b60018682858560405160008152602001604052604051610c1094939291906115e8565b6020604051602081039080840390855afa158015610c32573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610caf906116a0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081359050610d85816119b2565b92915050565b600082601f830112610d9c57600080fd5b8135610daf610daa826117ad565b611780565b91508181835260208401935060208101905083856020840282011115610dd457600080fd5b60005b83811015610e045781610dea8882610d76565b845260208401935060208301925050600181019050610dd7565b5050505092915050565b600082601f830112610e1f57600080fd5b8135610e32610e2d826117d5565b611780565b9150818183526020840193506020810190508360005b83811015610e785781358601610e5e8882610f2f565b845260208401935060208301925050600181019050610e48565b5050505092915050565b600082601f830112610e9357600080fd5b8135610ea6610ea1826117fd565b611780565b91508181835260208401935060208101905083856020840282011115610ecb57600080fd5b60005b83811015610efb5781610ee18882610fd7565b845260208401935060208301925050600181019050610ece565b5050505092915050565b600081359050610f14816119c9565b92915050565b600081359050610f29816119e0565b92915050565b600082601f830112610f4057600080fd5b8135610f53610f4e82611825565b611780565b91508082526020830160208301858383011115610f6f57600080fd5b610f7a838284611955565b50505092915050565b600082601f830112610f9457600080fd5b8135610fa7610fa282611851565b611780565b91508082526020830160208301858383011115610fc357600080fd5b610fce838284611955565b50505092915050565b600081359050610fe6816119f7565b92915050565b600060208284031215610ffe57600080fd5b600061100c84828501610d76565b91505092915050565b6000806040838503121561102857600080fd5b600061103685828601610d76565b925050602061104785828601610f05565b9150509250929050565b6000806000806080858703121561106757600080fd5b600061107587828801610d76565b945050602085013567ffffffffffffffff81111561109257600080fd5b61109e87828801610f83565b93505060406110af87828801610fd7565b925050606085013567ffffffffffffffff8111156110cc57600080fd5b6110d887828801610f83565b91505092959194509250565b600080600080608085870312156110fa57600080fd5b600085013567ffffffffffffffff81111561111457600080fd5b61112087828801610d8b565b945050602085013567ffffffffffffffff81111561113d57600080fd5b61114987828801610e0e565b935050604085013567ffffffffffffffff81111561116657600080fd5b61117287828801610e82565b925050606085013567ffffffffffffffff81111561118f57600080fd5b61119b87828801610e0e565b91505092959194509250565b6000602082840312156111b957600080fd5b60006111c784828501610f1a565b91505092915050565b6111d98161191f565b82525050565b6111e8816118c0565b82525050565b6111f7816118d2565b82525050565b611206816118de565b82525050565b61121d611218826118de565b611997565b82525050565b600061122e8261187d565b6112388185611888565b9350611248818560208601611964565b611251816119a1565b840191505092915050565b60006112678261187d565b6112718185611899565b9350611281818560208601611964565b80840191505092915050565b600061129a6021836118a4565b91507f4172726179732073686f756c64206265206f66207468652073616d652073697a60008301527f65000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611300601c836118b5565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b60006113406026836118a4565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006113a66011836118a4565b91507f5369676e617475726520746f6f206f6c640000000000000000000000000000006000830152602082019050919050565b60006113e6600b836118a4565b91507f4661696c65642063616c6c0000000000000000000000000000000000000000006000830152602082019050919050565b60006114266020836118a4565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000611466600d836118a4565b91507f416c72656164792073656e7421000000000000000000000000000000000000006000830152602082019050919050565b60006114a66012836118a4565b91507f5472616e73616374696f6e206661696c656400000000000000000000000000006000830152602082019050919050565b60006114e6601a836118a4565b91507f496e76616c6964207369676e61747572652070726f76696465640000000000006000830152602082019050919050565b61152281611908565b82525050565b61153181611912565b82525050565b6000611543828461125c565b915081905092915050565b6000611559826112f3565b9150611565828461120c565b60208201915081905092915050565b600060208201905061158960008301846111df565b92915050565b60006060820190506115a460008301866111df565b81810360208301526115b68185611223565b90506115c56040830184611519565b949350505050565b60006020820190506115e260008301846111ee565b92915050565b60006080820190506115fd60008301876111fd565b61160a6020830186611528565b61161760408301856111fd565b61162460608301846111fd565b95945050505050565b600060808201905081810360008301526116478187611223565b90506116566020830186611519565b81810360408301526116688185611223565b905061167760608301846111d0565b95945050505050565b600060208201905081810360008301526116998161128d565b9050919050565b600060208201905081810360008301526116b981611333565b9050919050565b600060208201905081810360008301526116d981611399565b9050919050565b600060208201905081810360008301526116f9816113d9565b9050919050565b6000602082019050818103600083015261171981611419565b9050919050565b6000602082019050818103600083015261173981611459565b9050919050565b6000602082019050818103600083015261175981611499565b9050919050565b60006020820190508181036000830152611779816114d9565b9050919050565b6000604051905081810181811067ffffffffffffffff821117156117a357600080fd5b8060405250919050565b600067ffffffffffffffff8211156117c457600080fd5b602082029050602081019050919050565b600067ffffffffffffffff8211156117ec57600080fd5b602082029050602081019050919050565b600067ffffffffffffffff82111561181457600080fd5b602082029050602081019050919050565b600067ffffffffffffffff82111561183c57600080fd5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff82111561186857600080fd5b601f19601f8301169050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b60006118cb826118e8565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061192a82611931565b9050919050565b600061193c82611943565b9050919050565b600061194e826118e8565b9050919050565b82818337600083830152505050565b60005b83811015611982578082015181840152602081019050611967565b83811115611991576000848401525b50505050565b6000819050919050565b6000601f19601f8301169050919050565b6119bb816118c0565b81146119c657600080fd5b50565b6119d2816118d2565b81146119dd57600080fd5b50565b6119e9816118de565b81146119f457600080fd5b50565b611a0081611908565b8114611a0b57600080fd5b5056fea365627a7a7231582011e5cd3de85c1b12f667ce3ca96c080d8bebe1aa987adcb772d3dccf3b78a3ef6c6578706572696d656e74616cf564736f6c63430005100040

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061009e5760003560e01c80638da5cb5b116100665780638da5cb5b1461011f5780638f32d59b1461013d578063b2e767b91461015b578063e9e211a11461018b578063f2fde38b146101bb5761009e565b80633b1590cb146100a35780635ed7ca5b146100bf578063715018a6146100c957806388280fa0146100d35780638ba1be4c146100ef575b600080fd5b6100bd60048036036100b89190810190611015565b6101d7565b005b6100c7610446565b005b6100d16104c3565b005b6100ed60048036036100e891908101906110e4565b6105c9565b005b61010960048036036101049190810190611051565b610755565b60405161011691906115cd565b60405180910390f35b610127610a19565b6040516101349190611574565b60405180910390f35b610145610a42565b60405161015291906115cd565b60405180910390f35b610175600480360361017091908101906111a7565b610a99565b60405161018291906115cd565b60405180910390f35b6101a560048036036101a09190810190610fec565b610ab9565b6040516101b291906115cd565b60405180910390f35b6101d560048036036101d09190810190610fec565b610ad9565b005b6101df610a42565b61021e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021590611700565b60405180910390fd5b8080156102755750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156103315760018060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550428273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f969a7868194f6dc0b5cef08d07da8e6b3871bdb1e17154810fa60d85880b287e60405160405180910390a4610442565b801580156103885750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15610441576000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550428273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167facd41378bbd901f06db8205d5ec29579b5b23b52b2ede171c251134b38d80d7b60405160405180910390a45b5b5050565b61044e610a42565b61048d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048490611700565b60405180910390fd5b610495610a19565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6104cb610a42565b61050a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050190611700565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b825184511461060d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060490611680565b60405180910390fd5b8151845114610651576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064890611680565b60405180910390fd5b8051845114610695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068c90611680565b60405180910390fd5b60008451905060008090505b8181101561074d576107018682815181106106b857fe5b60200260200101518683815181106106cc57fe5b60200260200101518684815181106106e057fe5b60200260200101518685815181106106f457fe5b6020026020010151610755565b610740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073790611740565b60405180910390fd5b80806001019150506106a1565b505050505050565b6000824210610799576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610790906116c0565b60405180910390fd5b60608585856040516020016107b09392919061158f565b604051602081830303815290604052905060008180519060200120905060006107d882610b2c565b90506002600083815260200190815260200160002060009054906101000a900460ff161561083b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083290611720565b60405180910390fd5b600160006108528784610b5c90919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166108d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d090611760565b60405180910390fd5b60016002600084815260200190815260200160002060006101000a81548160ff02191690831515021790555060008873ffffffffffffffffffffffffffffffffffffffff168860405161092c9190611537565b6000604051808303816000865af19150503d8060008114610969576040519150601f19603f3d011682016040523d82523d6000602084013e61096e565b606091505b505080915050806109b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ab906116e0565b60405180910390fd5b828973ffffffffffffffffffffffffffffffffffffffff167f37117caaaab0b823cf81e70efa1e14cc33e0152b31f85a847bf9ff7ffe2435bc8a8a8a33604051610a01949392919061162d565b60405180910390a36001945050505050949350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b60026020528060005260406000206000915054906101000a900460ff1681565b60016020528060005260406000206000915054906101000a900460ff1681565b610ae1610a42565b610b20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1790611700565b60405180910390fd5b610b2981610c48565b50565b600081604051602001610b3f919061154e565b604051602081830303815290604052805190602001209050919050565b60006041825114610b705760009050610c42565b60008060006020850151925060408501519150606085015160001a90507f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08260001c1115610bc45760009350505050610c42565b601b8160ff1614158015610bdc5750601c8160ff1614155b15610bed5760009350505050610c42565b60018682858560405160008152602001604052604051610c1094939291906115e8565b6020604051602081039080840390855afa158015610c32573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610caf906116a0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081359050610d85816119b2565b92915050565b600082601f830112610d9c57600080fd5b8135610daf610daa826117ad565b611780565b91508181835260208401935060208101905083856020840282011115610dd457600080fd5b60005b83811015610e045781610dea8882610d76565b845260208401935060208301925050600181019050610dd7565b5050505092915050565b600082601f830112610e1f57600080fd5b8135610e32610e2d826117d5565b611780565b9150818183526020840193506020810190508360005b83811015610e785781358601610e5e8882610f2f565b845260208401935060208301925050600181019050610e48565b5050505092915050565b600082601f830112610e9357600080fd5b8135610ea6610ea1826117fd565b611780565b91508181835260208401935060208101905083856020840282011115610ecb57600080fd5b60005b83811015610efb5781610ee18882610fd7565b845260208401935060208301925050600181019050610ece565b5050505092915050565b600081359050610f14816119c9565b92915050565b600081359050610f29816119e0565b92915050565b600082601f830112610f4057600080fd5b8135610f53610f4e82611825565b611780565b91508082526020830160208301858383011115610f6f57600080fd5b610f7a838284611955565b50505092915050565b600082601f830112610f9457600080fd5b8135610fa7610fa282611851565b611780565b91508082526020830160208301858383011115610fc357600080fd5b610fce838284611955565b50505092915050565b600081359050610fe6816119f7565b92915050565b600060208284031215610ffe57600080fd5b600061100c84828501610d76565b91505092915050565b6000806040838503121561102857600080fd5b600061103685828601610d76565b925050602061104785828601610f05565b9150509250929050565b6000806000806080858703121561106757600080fd5b600061107587828801610d76565b945050602085013567ffffffffffffffff81111561109257600080fd5b61109e87828801610f83565b93505060406110af87828801610fd7565b925050606085013567ffffffffffffffff8111156110cc57600080fd5b6110d887828801610f83565b91505092959194509250565b600080600080608085870312156110fa57600080fd5b600085013567ffffffffffffffff81111561111457600080fd5b61112087828801610d8b565b945050602085013567ffffffffffffffff81111561113d57600080fd5b61114987828801610e0e565b935050604085013567ffffffffffffffff81111561116657600080fd5b61117287828801610e82565b925050606085013567ffffffffffffffff81111561118f57600080fd5b61119b87828801610e0e565b91505092959194509250565b6000602082840312156111b957600080fd5b60006111c784828501610f1a565b91505092915050565b6111d98161191f565b82525050565b6111e8816118c0565b82525050565b6111f7816118d2565b82525050565b611206816118de565b82525050565b61121d611218826118de565b611997565b82525050565b600061122e8261187d565b6112388185611888565b9350611248818560208601611964565b611251816119a1565b840191505092915050565b60006112678261187d565b6112718185611899565b9350611281818560208601611964565b80840191505092915050565b600061129a6021836118a4565b91507f4172726179732073686f756c64206265206f66207468652073616d652073697a60008301527f65000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611300601c836118b5565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b60006113406026836118a4565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006113a66011836118a4565b91507f5369676e617475726520746f6f206f6c640000000000000000000000000000006000830152602082019050919050565b60006113e6600b836118a4565b91507f4661696c65642063616c6c0000000000000000000000000000000000000000006000830152602082019050919050565b60006114266020836118a4565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000611466600d836118a4565b91507f416c72656164792073656e7421000000000000000000000000000000000000006000830152602082019050919050565b60006114a66012836118a4565b91507f5472616e73616374696f6e206661696c656400000000000000000000000000006000830152602082019050919050565b60006114e6601a836118a4565b91507f496e76616c6964207369676e61747572652070726f76696465640000000000006000830152602082019050919050565b61152281611908565b82525050565b61153181611912565b82525050565b6000611543828461125c565b915081905092915050565b6000611559826112f3565b9150611565828461120c565b60208201915081905092915050565b600060208201905061158960008301846111df565b92915050565b60006060820190506115a460008301866111df565b81810360208301526115b68185611223565b90506115c56040830184611519565b949350505050565b60006020820190506115e260008301846111ee565b92915050565b60006080820190506115fd60008301876111fd565b61160a6020830186611528565b61161760408301856111fd565b61162460608301846111fd565b95945050505050565b600060808201905081810360008301526116478187611223565b90506116566020830186611519565b81810360408301526116688185611223565b905061167760608301846111d0565b95945050505050565b600060208201905081810360008301526116998161128d565b9050919050565b600060208201905081810360008301526116b981611333565b9050919050565b600060208201905081810360008301526116d981611399565b9050919050565b600060208201905081810360008301526116f9816113d9565b9050919050565b6000602082019050818103600083015261171981611419565b9050919050565b6000602082019050818103600083015261173981611459565b9050919050565b6000602082019050818103600083015261175981611499565b9050919050565b60006020820190508181036000830152611779816114d9565b9050919050565b6000604051905081810181811067ffffffffffffffff821117156117a357600080fd5b8060405250919050565b600067ffffffffffffffff8211156117c457600080fd5b602082029050602081019050919050565b600067ffffffffffffffff8211156117ec57600080fd5b602082029050602081019050919050565b600067ffffffffffffffff82111561181457600080fd5b602082029050602081019050919050565b600067ffffffffffffffff82111561183c57600080fd5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff82111561186857600080fd5b601f19601f8301169050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b60006118cb826118e8565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061192a82611931565b9050919050565b600061193c82611943565b9050919050565b600061194e826118e8565b9050919050565b82818337600083830152505050565b60005b83811015611982578082015181840152602081019050611967565b83811115611991576000848401525b50505050565b6000819050919050565b6000601f19601f8301169050919050565b6119bb816118c0565b81146119c657600080fd5b50565b6119d2816118d2565b81146119dd57600080fd5b50565b6119e9816118de565b81146119f457600080fd5b50565b611a0081611908565b8114611a0b57600080fd5b5056fea365627a7a7231582011e5cd3de85c1b12f667ce3ca96c080d8bebe1aa987adcb772d3dccf3b78a3ef6c6578706572696d656e74616cf564736f6c63430005100040

Deployed Bytecode Sourcemap

6140:3585:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6140:3585:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6836:457;;;;;;;;;;;;;;;;:::i;:::-;;9631:91;;;:::i;:::-;;5394:140;;;:::i;:::-;;7489:1027;;;;;;;;;;;;;;;;:::i;:::-;;8524:1099;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4585:79;;;:::i;:::-;;;;;;;;;;;;;;;;4951:92;;;:::i;:::-;;;;;;;;;;;;;;;;6264:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6212:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;5689:109;;;;;;;;;;;;;;;;:::i;:::-;;6836:457;4797:9;:7;:9::i;:::-;4789:54;;;;;;;;;;;;;;;;;;;;;;6952:7;:33;;;;;6964:13;:21;6978:6;6964:21;;;;;;;;;;;;;;;;;;;;;;;;;6963:22;6952:33;6948:338;;;7026:4;7002:13;:21;7016:6;7002:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;7087:15;7079:6;7050:53;;7067:10;7050:53;;;;;;;;;;;;6948:338;;;7126:7;7125:8;:33;;;;;7137:13;:21;7151:6;7137:21;;;;;;;;;;;;;;;;;;;;;;;;;7125:33;7121:165;;;7199:5;7175:13;:21;7189:6;7175:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;7258:15;7250:6;7224:50;;7238:10;7224:50;;;;;;;;;;;;7121:165;6948:338;6836:457;;:::o;9631:91::-;4797:9;:7;:9::i;:::-;4789:54;;;;;;;;;;;;;;;;;;;;;;9704:7;:5;:7::i;:::-;9696:16;;9675:39;;;5394:140;4797:9;:7;:9::i;:::-;4789:54;;;;;;;;;;;;;;;;;;;;;;5493:1;5456:40;;5477:6;;;;;;;;;;;5456:40;;;;;;;;;;;;5524:1;5507:6;;:19;;;;;;;;;;;;;;;;;;5394:140::o;7489:1027::-;7744:7;:14;7719;:21;:39;7697:122;;;;;;;;;;;;;;;;;;;;;;7877:19;:26;7852:14;:21;:51;7830:134;;;;;;;;;;;;;;;;;;;;;;8022:9;:16;7997:14;:21;:41;7975:124;;;;;;;;;;;;;;;;;;;;;;8110:14;8127;:21;8110:38;;8166:9;8178:1;8166:13;;8161:348;8185:6;8181:1;:10;8161:348;;;8236:183;8270:14;8285:1;8270:17;;;;;;;;;;;;;;8310:7;8318:1;8310:10;;;;;;;;;;;;;;8343:19;8363:1;8343:22;;;;;;;;;;;;;;8388:9;8398:1;8388:12;;;;;;;;;;;;;;8236:11;:183::i;:::-;8213:285;;8454:28;;;;;;;;;;;;;;;;;;;8213:285;8193:3;;;;;;;8161:348;;;;7489:1027;;;;;:::o;8524:1099::-;8703:4;8746:19;8728:15;:37;8720:67;;;;;;;;;;;;;;;;;;;;;;8800:17;8845:14;8874:7;8896:19;8820:106;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8820:106:0;;;8800:126;;8937:14;8964:4;8954:15;;;;;;8937:32;;8980:14;8997:31;:6;:29;:31::i;:::-;8980:48;;9048:11;:19;9060:6;9048:19;;;;;;;;;;;;;;;;;;;;;9047:20;9039:46;;;;;;;;;;;;;;;;;;;;;;9120:13;:40;9134:25;9149:9;9134:6;:14;;:25;;;;:::i;:::-;9120:40;;;;;;;;;;;;;;;;;;;;;;;;;9098:116;;;;;;;;;;;;;;;;;;;;;;9249:4;9227:11;:19;9239:6;9227:19;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;9266:11;9300:14;:19;;9320:7;9300:28;;;;;;;;;;;;;;;;;;;;;;;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;;9288:40:0;;;;;9344:6;9339:61;;9367:21;;;;;;;;;;;;;;;;;;;9339:61;9469:6;9440:14;9417:174;;;9490:7;9512:19;9546:9;9570:10;9417:174;;;;;;;;;;;;;;;;;;9611:4;9604:11;;;;;;8524:1099;;;;;;:::o;4585:79::-;4623:7;4650:6;;;;;;;;;;;4643:13;;4585:79;:::o;4951:92::-;4991:4;5029:6;;;;;;;;;;;5015:20;;:10;:20;;;5008:27;;4951:92;:::o;6264:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;6212:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;5689:109::-;4797:9;:7;:9::i;:::-;4789:54;;;;;;;;;;;;;;;;;;;;;;5762:28;5781:8;5762:18;:28::i;:::-;5689:109;:::o;3492:269::-;3561:7;3747:4;3694:58;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3694:58:0;;;3684:69;;;;;;3677:76;;3492:269;;;:::o;1288:1930::-;1366:7;1449:2;1429:9;:16;:22;1425:74;;1484:1;1468:19;;;;1425:74;1568:9;1588;1608:7;1860:4;1849:9;1845:20;1839:27;1834:32;;1906:4;1895:9;1891:20;1885:27;1880:32;;1960:4;1949:9;1945:20;1939:27;1936:1;1931:36;1926:41;;2890:66;2885:1;2877:10;;:79;2873:129;;;2988:1;2973:17;;;;;;;2873:129;3023:2;3018:1;:7;;;;:18;;;;;3034:2;3029:1;:7;;;;3018:18;3014:68;;;3068:1;3053:17;;;;;;;3014:68;3186:24;3196:4;3202:1;3205;3208;3186:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3186:24:0;;;;;;;;3179:31;;;;;1288:1930;;;;;:::o;5904:229::-;5998:1;5978:22;;:8;:22;;;;5970:73;;;;;;;;;;;;;;;;;;;;;;6088:8;6059:38;;6080:6;;;;;;;;;;;6059:38;;;;;;;;;;;;6117:8;6108:6;;:17;;;;;;;;;;;;;;;;;;5904:229;:::o;5:130:-1:-;;85:6;72:20;63:29;;97:33;124:5;97:33;;;57:78;;;;;160:707;;277:3;270:4;262:6;258:17;254:27;244:2;;295:1;292;285:12;244:2;332:6;319:20;354:80;369:64;426:6;369:64;;;354:80;;;345:89;;451:5;476:6;469:5;462:21;506:4;498:6;494:17;484:27;;528:4;523:3;519:14;512:21;;581:6;628:3;620:4;612:6;608:17;603:3;599:27;596:36;593:2;;;645:1;642;635:12;593:2;670:1;655:206;680:6;677:1;674:13;655:206;;;738:3;760:37;793:3;781:10;760:37;;;755:3;748:50;821:4;816:3;812:14;805:21;;849:4;844:3;840:14;833:21;;712:149;702:1;699;695:9;690:14;;655:206;;;659:14;237:630;;;;;;;;891:693;;1013:3;1006:4;998:6;994:17;990:27;980:2;;1031:1;1028;1021:12;980:2;1068:6;1055:20;1090:85;1105:69;1167:6;1105:69;;;1090:85;;;1081:94;;1192:5;1217:6;1210:5;1203:21;1247:4;1239:6;1235:17;1225:27;;1269:4;1264:3;1260:14;1253:21;;1322:6;1355:1;1340:238;1365:6;1362:1;1359:13;1340:238;;;1448:3;1435:17;1427:6;1423:30;1472:42;1510:3;1498:10;1472:42;;;1467:3;1460:55;1538:4;1533:3;1529:14;1522:21;;1566:4;1561:3;1557:14;1550:21;;1397:181;1387:1;1384;1380:9;1375:14;;1340:238;;;1344:14;973:611;;;;;;;;1610:707;;1727:3;1720:4;1712:6;1708:17;1704:27;1694:2;;1745:1;1742;1735:12;1694:2;1782:6;1769:20;1804:80;1819:64;1876:6;1819:64;;;1804:80;;;1795:89;;1901:5;1926:6;1919:5;1912:21;1956:4;1948:6;1944:17;1934:27;;1978:4;1973:3;1969:14;1962:21;;2031:6;2078:3;2070:4;2062:6;2058:17;2053:3;2049:27;2046:36;2043:2;;;2095:1;2092;2085:12;2043:2;2120:1;2105:206;2130:6;2127:1;2124:13;2105:206;;;2188:3;2210:37;2243:3;2231:10;2210:37;;;2205:3;2198:50;2271:4;2266:3;2262:14;2255:21;;2299:4;2294:3;2290:14;2283:21;;2162:149;2152:1;2149;2145:9;2140:14;;2105:206;;;2109:14;1687:630;;;;;;;;2325:124;;2402:6;2389:20;2380:29;;2414:30;2438:5;2414:30;;;2374:75;;;;;2456:130;;2536:6;2523:20;2514:29;;2548:33;2575:5;2548:33;;;2508:78;;;;;2594:432;;2691:3;2684:4;2676:6;2672:17;2668:27;2658:2;;2709:1;2706;2699:12;2658:2;2746:6;2733:20;2768:60;2783:44;2820:6;2783:44;;;2768:60;;;2759:69;;2848:6;2841:5;2834:21;2884:4;2876:6;2872:17;2917:4;2910:5;2906:16;2952:3;2943:6;2938:3;2934:16;2931:25;2928:2;;;2969:1;2966;2959:12;2928:2;2979:41;3013:6;3008:3;3003;2979:41;;;2651:375;;;;;;;;3035:440;;3136:3;3129:4;3121:6;3117:17;3113:27;3103:2;;3154:1;3151;3144:12;3103:2;3191:6;3178:20;3213:64;3228:48;3269:6;3228:48;;;3213:64;;;3204:73;;3297:6;3290:5;3283:21;3333:4;3325:6;3321:17;3366:4;3359:5;3355:16;3401:3;3392:6;3387:3;3383:16;3380:25;3377:2;;;3418:1;3415;3408:12;3377:2;3428:41;3462:6;3457:3;3452;3428:41;;;3096:379;;;;;;;;3483:130;;3563:6;3550:20;3541:29;;3575:33;3602:5;3575:33;;;3535:78;;;;;3620:241;;3724:2;3712:9;3703:7;3699:23;3695:32;3692:2;;;3740:1;3737;3730:12;3692:2;3775:1;3792:53;3837:7;3828:6;3817:9;3813:22;3792:53;;;3782:63;;3754:97;3686:175;;;;;3868:360;;;3986:2;3974:9;3965:7;3961:23;3957:32;3954:2;;;4002:1;3999;3992:12;3954:2;4037:1;4054:53;4099:7;4090:6;4079:9;4075:22;4054:53;;;4044:63;;4016:97;4144:2;4162:50;4204:7;4195:6;4184:9;4180:22;4162:50;;;4152:60;;4123:95;3948:280;;;;;;4235:825;;;;;4408:3;4396:9;4387:7;4383:23;4379:33;4376:2;;;4425:1;4422;4415:12;4376:2;4460:1;4477:53;4522:7;4513:6;4502:9;4498:22;4477:53;;;4467:63;;4439:97;4595:2;4584:9;4580:18;4567:32;4619:18;4611:6;4608:30;4605:2;;;4651:1;4648;4641:12;4605:2;4671:62;4725:7;4716:6;4705:9;4701:22;4671:62;;;4661:72;;4546:193;4770:2;4788:53;4833:7;4824:6;4813:9;4809:22;4788:53;;;4778:63;;4749:98;4906:2;4895:9;4891:18;4878:32;4930:18;4922:6;4919:30;4916:2;;;4962:1;4959;4952:12;4916:2;4982:62;5036:7;5027:6;5016:9;5012:22;4982:62;;;4972:72;;4857:193;4370:690;;;;;;;;5067:1181;;;;;5332:3;5320:9;5311:7;5307:23;5303:33;5300:2;;;5349:1;5346;5339:12;5300:2;5412:1;5401:9;5397:17;5384:31;5435:18;5427:6;5424:30;5421:2;;;5467:1;5464;5457:12;5421:2;5487:78;5557:7;5548:6;5537:9;5533:22;5487:78;;;5477:88;;5363:208;5630:2;5619:9;5615:18;5602:32;5654:18;5646:6;5643:30;5640:2;;;5686:1;5683;5676:12;5640:2;5706:83;5781:7;5772:6;5761:9;5757:22;5706:83;;;5696:93;;5581:214;5854:2;5843:9;5839:18;5826:32;5878:18;5870:6;5867:30;5864:2;;;5910:1;5907;5900:12;5864:2;5930:78;6000:7;5991:6;5980:9;5976:22;5930:78;;;5920:88;;5805:209;6073:2;6062:9;6058:18;6045:32;6097:18;6089:6;6086:30;6083:2;;;6129:1;6126;6119:12;6083:2;6149:83;6224:7;6215:6;6204:9;6200:22;6149:83;;;6139:93;;6024:214;5294:954;;;;;;;;6255:241;;6359:2;6347:9;6338:7;6334:23;6330:32;6327:2;;;6375:1;6372;6365:12;6327:2;6410:1;6427:53;6472:7;6463:6;6452:9;6448:22;6427:53;;;6417:63;;6389:97;6321:175;;;;;6503:142;6594:45;6633:5;6594:45;;;6589:3;6582:58;6576:69;;;6652:113;6735:24;6753:5;6735:24;;;6730:3;6723:37;6717:48;;;6772:104;6849:21;6864:5;6849:21;;;6844:3;6837:34;6831:45;;;6883:113;6966:24;6984:5;6966:24;;;6961:3;6954:37;6948:48;;;7003:152;7104:45;7124:24;7142:5;7124:24;;;7104:45;;;7099:3;7092:58;7086:69;;;7162:343;;7272:38;7304:5;7272:38;;;7322:70;7385:6;7380:3;7322:70;;;7315:77;;7397:52;7442:6;7437:3;7430:4;7423:5;7419:16;7397:52;;;7470:29;7492:6;7470:29;;;7465:3;7461:39;7454:46;;7252:253;;;;;;7512:356;;7640:38;7672:5;7640:38;;;7690:88;7771:6;7766:3;7690:88;;;7683:95;;7783:52;7828:6;7823:3;7816:4;7809:5;7805:16;7783:52;;;7856:6;7851:3;7847:16;7840:23;;7620:248;;;;;;7876:370;;8036:67;8100:2;8095:3;8036:67;;;8029:74;;8136:34;8132:1;8127:3;8123:11;8116:55;8205:3;8200:2;8195:3;8191:12;8184:25;8237:2;8232:3;8228:12;8221:19;;8022:224;;;;8255:400;;8433:85;8515:2;8510:3;8433:85;;;8426:92;;8551:66;8547:1;8542:3;8538:11;8531:87;8646:2;8641:3;8637:12;8630:19;;8419:236;;;;8664:375;;8824:67;8888:2;8883:3;8824:67;;;8817:74;;8924:34;8920:1;8915:3;8911:11;8904:55;8993:8;8988:2;8983:3;8979:12;8972:30;9030:2;9025:3;9021:12;9014:19;;8810:229;;;;9048:317;;9208:67;9272:2;9267:3;9208:67;;;9201:74;;9308:19;9304:1;9299:3;9295:11;9288:40;9356:2;9351:3;9347:12;9340:19;;9194:171;;;;9374:311;;9534:67;9598:2;9593:3;9534:67;;;9527:74;;9634:13;9630:1;9625:3;9621:11;9614:34;9676:2;9671:3;9667:12;9660:19;;9520:165;;;;9694:332;;9854:67;9918:2;9913:3;9854:67;;;9847:74;;9954:34;9950:1;9945:3;9941:11;9934:55;10017:2;10012:3;10008:12;10001:19;;9840:186;;;;10035:313;;10195:67;10259:2;10254:3;10195:67;;;10188:74;;10295:15;10291:1;10286:3;10282:11;10275:36;10339:2;10334:3;10330:12;10323:19;;10181:167;;;;10357:318;;10517:67;10581:2;10576:3;10517:67;;;10510:74;;10617:20;10613:1;10608:3;10604:11;10597:41;10666:2;10661:3;10657:12;10650:19;;10503:172;;;;10684:326;;10844:67;10908:2;10903:3;10844:67;;;10837:74;;10944:28;10940:1;10935:3;10931:11;10924:49;11001:2;10996:3;10992:12;10985:19;;10830:180;;;;11018:113;11101:24;11119:5;11101:24;;;11096:3;11089:37;11083:48;;;11138:107;11217:22;11233:5;11217:22;;;11212:3;11205:35;11199:46;;;11252:262;;11396:93;11485:3;11476:6;11396:93;;;11389:100;;11506:3;11499:10;;11377:137;;;;;11521:511;;11748:148;11892:3;11748:148;;;11741:155;;11907:75;11978:3;11969:6;11907:75;;;12004:2;11999:3;11995:12;11988:19;;12024:3;12017:10;;11729:303;;;;;12039:213;;12157:2;12146:9;12142:18;12134:26;;12171:71;12239:1;12228:9;12224:17;12215:6;12171:71;;;12128:124;;;;;12259:519;;12451:2;12440:9;12436:18;12428:26;;12465:71;12533:1;12522:9;12518:17;12509:6;12465:71;;;12584:9;12578:4;12574:20;12569:2;12558:9;12554:18;12547:48;12609:76;12680:4;12671:6;12609:76;;;12601:84;;12696:72;12764:2;12753:9;12749:18;12740:6;12696:72;;;12422:356;;;;;;;12785:201;;12897:2;12886:9;12882:18;12874:26;;12911:65;12973:1;12962:9;12958:17;12949:6;12911:65;;;12868:118;;;;;12993:539;;13191:3;13180:9;13176:19;13168:27;;13206:71;13274:1;13263:9;13259:17;13250:6;13206:71;;;13288:68;13352:2;13341:9;13337:18;13328:6;13288:68;;;13367:72;13435:2;13424:9;13420:18;13411:6;13367:72;;;13450;13518:2;13507:9;13503:18;13494:6;13450:72;;;13162:370;;;;;;;;13539:731;;13785:3;13774:9;13770:19;13762:27;;13836:9;13830:4;13826:20;13822:1;13811:9;13807:17;13800:47;13861:76;13932:4;13923:6;13861:76;;;13853:84;;13948:72;14016:2;14005:9;14001:18;13992:6;13948:72;;;14068:9;14062:4;14058:20;14053:2;14042:9;14038:18;14031:48;14093:76;14164:4;14155:6;14093:76;;;14085:84;;14180:80;14256:2;14245:9;14241:18;14232:6;14180:80;;;13756:514;;;;;;;;14277:407;;14468:2;14457:9;14453:18;14445:26;;14518:9;14512:4;14508:20;14504:1;14493:9;14489:17;14482:47;14543:131;14669:4;14543:131;;;14535:139;;14439:245;;;;14691:407;;14882:2;14871:9;14867:18;14859:26;;14932:9;14926:4;14922:20;14918:1;14907:9;14903:17;14896:47;14957:131;15083:4;14957:131;;;14949:139;;14853:245;;;;15105:407;;15296:2;15285:9;15281:18;15273:26;;15346:9;15340:4;15336:20;15332:1;15321:9;15317:17;15310:47;15371:131;15497:4;15371:131;;;15363:139;;15267:245;;;;15519:407;;15710:2;15699:9;15695:18;15687:26;;15760:9;15754:4;15750:20;15746:1;15735:9;15731:17;15724:47;15785:131;15911:4;15785:131;;;15777:139;;15681:245;;;;15933:407;;16124:2;16113:9;16109:18;16101:26;;16174:9;16168:4;16164:20;16160:1;16149:9;16145:17;16138:47;16199:131;16325:4;16199:131;;;16191:139;;16095:245;;;;16347:407;;16538:2;16527:9;16523:18;16515:26;;16588:9;16582:4;16578:20;16574:1;16563:9;16559:17;16552:47;16613:131;16739:4;16613:131;;;16605:139;;16509:245;;;;16761:407;;16952:2;16941:9;16937:18;16929:26;;17002:9;16996:4;16992:20;16988:1;16977:9;16973:17;16966:47;17027:131;17153:4;17027:131;;;17019:139;;16923:245;;;;17175:407;;17366:2;17355:9;17351:18;17343:26;;17416:9;17410:4;17406:20;17402:1;17391:9;17387:17;17380:47;17441:131;17567:4;17441:131;;;17433:139;;17337:245;;;;17589:256;;17651:2;17645:9;17635:19;;17689:4;17681:6;17677:17;17788:6;17776:10;17773:22;17752:18;17740:10;17737:34;17734:62;17731:2;;;17809:1;17806;17799:12;17731:2;17829:10;17825:2;17818:22;17629:216;;;;;17852:304;;18011:18;18003:6;18000:30;17997:2;;;18043:1;18040;18033:12;17997:2;18078:4;18070:6;18066:17;18058:25;;18141:4;18135;18131:15;18123:23;;17934:222;;;;18163:309;;18327:18;18319:6;18316:30;18313:2;;;18359:1;18356;18349:12;18313:2;18394:4;18386:6;18382:17;18374:25;;18457:4;18451;18447:15;18439:23;;18250:222;;;;18479:304;;18638:18;18630:6;18627:30;18624:2;;;18670:1;18667;18660:12;18624:2;18705:4;18697:6;18693:17;18685:25;;18768:4;18762;18758:15;18750:23;;18561:222;;;;18790:317;;18929:18;18921:6;18918:30;18915:2;;;18961:1;18958;18951:12;18915:2;19028:4;19024:9;19017:4;19009:6;19005:17;19001:33;18993:41;;19092:4;19086;19082:15;19074:23;;18852:255;;;;19114:321;;19257:18;19249:6;19246:30;19243:2;;;19289:1;19286;19279:12;19243:2;19356:4;19352:9;19345:4;19337:6;19333:17;19329:33;19321:41;;19420:4;19414;19410:15;19402:23;;19180:255;;;;19442:121;;19535:5;19529:12;19519:22;;19500:63;;;;19571:162;;19685:6;19680:3;19673:19;19722:4;19717:3;19713:14;19698:29;;19666:67;;;;;19742:144;;19877:3;19862:18;;19855:31;;;;;19895:163;;20010:6;20005:3;19998:19;20047:4;20042:3;20038:14;20023:29;;19991:67;;;;;20067:145;;20203:3;20188:18;;20181:31;;;;;20220:91;;20282:24;20300:5;20282:24;;;20271:35;;20265:46;;;;20318:85;;20391:5;20384:13;20377:21;20366:32;;20360:43;;;;20410:72;;20472:5;20461:16;;20455:27;;;;20489:121;;20562:42;20555:5;20551:54;20540:65;;20534:76;;;;20617:72;;20679:5;20668:16;;20662:27;;;;20696:81;;20767:4;20760:5;20756:16;20745:27;;20739:38;;;;20784:129;;20871:37;20902:5;20871:37;;;20858:50;;20852:61;;;;20920:121;;20999:37;21030:5;20999:37;;;20986:50;;20980:61;;;;21048:108;;21127:24;21145:5;21127:24;;;21114:37;;21108:48;;;;21164:145;21245:6;21240:3;21235;21222:30;21301:1;21292:6;21287:3;21283:16;21276:27;21215:94;;;;21318:268;21383:1;21390:101;21404:6;21401:1;21398:13;21390:101;;;21480:1;21475:3;21471:11;21465:18;21461:1;21456:3;21452:11;21445:39;21426:2;21423:1;21419:10;21414:15;;21390:101;;;21506:6;21503:1;21500:13;21497:2;;;21571:1;21562:6;21557:3;21553:16;21546:27;21497:2;21367:219;;;;;21594:74;;21658:5;21647:16;;21641:27;;;;21675:97;;21763:2;21759:7;21754:2;21747:5;21743:14;21739:28;21729:38;;21723:49;;;;21780:117;21849:24;21867:5;21849:24;;;21842:5;21839:35;21829:2;;21888:1;21885;21878:12;21829:2;21823:74;;21904:111;21970:21;21985:5;21970:21;;;21963:5;21960:32;21950:2;;22006:1;22003;21996:12;21950:2;21944:71;;22022:117;22091:24;22109:5;22091:24;;;22084:5;22081:35;22071:2;;22130:1;22127;22120:12;22071:2;22065:74;;22146:117;22215:24;22233:5;22215:24;;;22208:5;22205:35;22195:2;;22254:1;22251;22244:12;22195:2;22189:74;

Swarm Source

bzzr://11e5cd3de85c1b12f667ce3ca96c080d8bebe1aa987adcb772d3dccf3b78a3ef

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.