Contract 0x32e64E75091d13C64F11Db67Ea94Ac16951629B9

 
Ad
Ad
Txn Hash Method
Block
From
To
Value
0x1d8420e2ac49c46713dac201383a9194479331c8d0a79aa56772ad5a012fe8ceBuy GUM126858292021-06-22 19:15:252 hrs 2 mins ago0x49539c89bdd869f11c576dad67a78580aeae9240 IN  0x32e64e75091d13c64f11db67ea94ac16951629b95 Ether0.003308493535.5
0x49af1cfff309b9f752310ec124e21736888cf252873269d789b519605ee0d5fbBuy GUM126858262021-06-22 19:14:262 hrs 3 mins ago0x49539c89bdd869f11c576dad67a78580aeae9240 IN  0x32e64e75091d13c64f11db67ea94ac16951629b95 Ether0.00326189535535.000003815
0x3988dcdf5d3e58ef5bc09742214baa6e7e3b0e86575ef76e5720024cdc706b4aBuy126815362021-06-22 3:09:4918 hrs 8 mins ago0x6a767fc6514ddbfba5ec0874ebd355bd39e59967 IN  0x32e64e75091d13c64f11db67ea94ac16951629b90.05 Ether0.0036011627830.350116984
0x16b16a682057212610bbf28c88b4101f0dd17110e0ec2222484b45991a6d0020Buy126764702021-06-21 8:04:261 day 13 hrs ago0x6a767fc6514ddbfba5ec0874ebd355bd39e59967 IN  0x32e64e75091d13c64f11db67ea94ac16951629b90.1 Ether0.00245287858
0xcaa9afe13686f04d1026f1e6af415299e1867f88a22997827be7a77581c3a923Buy126764702021-06-21 8:04:261 day 13 hrs ago0x6a767fc6514ddbfba5ec0874ebd355bd39e59967 IN  0x32e64e75091d13c64f11db67ea94ac16951629b90.1 Ether0.00266433306663.000001561
0xff0b7c207b5d6e2cc16bbad899b3cb33e1318f708c47b31d2e0b0c8f806fd7ecBuy126764702021-06-21 8:04:261 day 13 hrs ago0x6a767fc6514ddbfba5ec0874ebd355bd39e59967 IN  0x32e64e75091d13c64f11db67ea94ac16951629b90.1 Ether0.00228414654
0x38a92f8ff62d5df31fcb78e218f427fc142a561191ee19ca94d987400cd70935Buy126764702021-06-21 8:04:261 day 13 hrs ago0x6a767fc6514ddbfba5ec0874ebd355bd39e59967 IN  0x32e64e75091d13c64f11db67ea94ac16951629b90.1 Ether0.00689539248
0x3fba58c7f50cf425b4a7e772330daac51e247ce5bde0b69717ef6fec2582fcccBuy GUM126753302021-06-21 3:39:541 day 17 hrs ago0x947bcd5c661bb3aee0526d1ffa15ab302005b699 IN  0x32e64e75091d13c64f11db67ea94ac16951629b90.05 Ether0.00139765515
0xd7607049f6a12a72e3bf66cfb8849b9bff1908558345fb07b52adf9c3cedd5aaBuy GUM126743052021-06-20 23:48:001 day 21 hrs ago0x6b3d7fcf457c86a13d178304ea3248e6b42c35e2 IN  0x32e64e75091d13c64f11db67ea94ac16951629b90.05 Ether0.0004576665.5
0x76917851e6eed19313bddadc662e37f548756046a3f7008c876a61153093fc8aBuy GUM126702072021-06-20 8:36:192 days 12 hrs ago0x97edf63009f01c259943595e65275c0a74ec9efa IN  0x32e64e75091d13c64f11db67ea94ac16951629b90.1 Ether0.0009260862039.939
0x089fd6d2caef443a2986562ec5b7c98faed0534fef032000e419f25a02199ac6Buy126687212021-06-20 2:59:052 days 18 hrs ago0x6a767fc6514ddbfba5ec0874ebd355bd39e59967 IN  0x32e64e75091d13c64f11db67ea94ac16951629b90.1 Ether0.0011863410
0x5e4519cc7f40f2765b7a32769f7920a1e3724513e9c68f777d4448e7c1eeb720Buy126585342021-06-18 12:59:094 days 8 hrs ago0x6a767fc6514ddbfba5ec0874ebd355bd39e59967 IN  0x32e64e75091d13c64f11db67ea94ac16951629b90.05 Ether0.00163015515
0xa46dfb72623be868babd5f8b47637c4397891f0ce3d3f8243c80bbfe312a6b69Buy GUM126526792021-06-17 15:17:305 days 6 hrs ago0x6e9beddb24e876188a8a2c123774e61fb66e26a5 IN  0x32e64e75091d13c64f11db67ea94ac16951629b90.05 Ether0.001847750422.2
0xa0b30f1ad4f26fc7b6ae90eebd82df09fdc6ede9cc632e13ba5213a773b73eacBuy GUM126526332021-06-17 15:06:225 days 6 hrs ago0x6e9beddb24e876188a8a2c123774e61fb66e26a5 IN  0x32e64e75091d13c64f11db67ea94ac16951629b90.1 Ether0.00232993628
0x44dd3d854f05d6d38084aa7da51cfd080a063b541d3c2f86bb40e30d5a76a25fBuy126459712021-06-16 14:14:496 days 7 hrs ago0x6a767fc6514ddbfba5ec0874ebd355bd39e59967 IN  0x32e64e75091d13c64f11db67ea94ac16951629b90.05 Ether0.001554252714.3
0x3551f1c948581ce5e5e0880ba7f12c475561d27473bb9f0a619629ad3ed05591Buy126441642021-06-16 7:30:226 days 13 hrs ago0x6a767fc6514ddbfba5ec0874ebd355bd39e59967 IN  0x32e64e75091d13c64f11db67ea94ac16951629b90.05 Ether0.00118642017310.000001459
0x31dbd7f25f7a7609f809e9a78be8b5c20c7dccf889da219ee43115d87fd454edBuy GUM126404142021-06-15 17:32:167 days 3 hrs ago0x97edf63009f01c259943595e65275c0a74ec9efa IN  0x32e64e75091d13c64f11db67ea94ac16951629b90.1 Ether0.00232992525
0x6acdacbbcbdee2ed10042469bc8e7b31dcfb1e646e1ac994ed6407224b661ae1Buy GUM126386452021-06-15 10:59:437 days 10 hrs ago0xb50f23d909c00f04ea526bf2b53859f2c26bb83b IN  0x32e64e75091d13c64f11db67ea94ac16951629b90.1 Ether0.00130447814
0x060fa606bf7bfa09172ded04c896a13b4554835118e36ff7d03ea1cc04bf3088Buy GUM126386352021-06-15 10:57:077 days 10 hrs ago0xb50f23d909c00f04ea526bf2b53859f2c26bb83b IN  0x32e64e75091d13c64f11db67ea94ac16951629b90.1 Ether0.00130475814
0x7a42c9ec2dd7e405c13336ff210ba8bb4e774b225d250fa17cf2f7f7f661e92dBuy GUM126386342021-06-15 10:57:057 days 10 hrs ago0xb50f23d909c00f04ea526bf2b53859f2c26bb83b IN  0x32e64e75091d13c64f11db67ea94ac16951629b90.1 Ether0.00130475814
0xb91e72a947c52ee2ce685df60607edab7a22fc428331df1c4e97810c5451dd84Buy126383282021-06-15 9:49:347 days 11 hrs ago0x6a767fc6514ddbfba5ec0874ebd355bd39e59967 IN  0x32e64e75091d13c64f11db67ea94ac16951629b90.05 Ether0.0011863410
0x80cc04c4e2f5cd63b551be2596afec9a73b45bd5fb0708e76eff961d9b77a36bBuy126375902021-06-15 7:00:017 days 14 hrs ago0x6a767fc6514ddbfba5ec0874ebd355bd39e59967 IN  0x32e64e75091d13c64f11db67ea94ac16951629b90.1 Ether0.00130484211
0xc3d3e6ee7814afbfb95470b6f9f41cc547d6e7ec4145606f3198e12df000c6aeBuy GUM126364662021-06-15 2:56:247 days 18 hrs ago0x94c1b1e54e27dd2fb5a11db01177c94356cacb38 IN  0x32e64e75091d13c64f11db67ea94ac16951629b90.1 Ether0.00139795508815.000000954
0xe855f8ef3e36d6951f7b6caa3643db32efbbf24be81b493fcfe7df366319bf9eBuy126354752021-06-14 23:09:087 days 22 hrs ago0x6a767fc6514ddbfba5ec0874ebd355bd39e59967 IN  0x32e64e75091d13c64f11db67ea94ac16951629b90.05 Ether0.00119557911
0xc70c00caf1eb0df2dd1762e0c41ebb753a56e41d338d7bd1b5de3af7de13125aBuy126350172021-06-14 21:29:067 days 23 hrs ago0x6a767fc6514ddbfba5ec0874ebd355bd39e59967 IN  0x32e64e75091d13c64f11db67ea94ac16951629b90.05 Ether0.0029655525
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x1d8420e2ac49c46713dac201383a9194479331c8d0a79aa56772ad5a012fe8ce126858292021-06-22 19:15:252 hrs 2 mins ago 0x32e64e75091d13c64f11db67ea94ac16951629b9 MCH: Land Pool1.5 Ether
0x1d8420e2ac49c46713dac201383a9194479331c8d0a79aa56772ad5a012fe8ce126858292021-06-22 19:15:252 hrs 2 mins ago 0x32e64e75091d13c64f11db67ea94ac16951629b90xd5e4868b51439ac87279b0d0117b7e2f364750581 Ether
0x49af1cfff309b9f752310ec124e21736888cf252873269d789b519605ee0d5fb126858262021-06-22 19:14:262 hrs 3 mins ago 0x32e64e75091d13c64f11db67ea94ac16951629b9 MCH: Land Pool1.5 Ether
0x49af1cfff309b9f752310ec124e21736888cf252873269d789b519605ee0d5fb126858262021-06-22 19:14:262 hrs 3 mins ago 0x32e64e75091d13c64f11db67ea94ac16951629b90xd5e4868b51439ac87279b0d0117b7e2f364750581 Ether
0x3988dcdf5d3e58ef5bc09742214baa6e7e3b0e86575ef76e5720024cdc706b4a126815362021-06-22 3:09:4918 hrs 8 mins ago 0x32e64e75091d13c64f11db67ea94ac16951629b9 MCH: Land Pool0.015 Ether
0x3988dcdf5d3e58ef5bc09742214baa6e7e3b0e86575ef76e5720024cdc706b4a126815362021-06-22 3:09:4918 hrs 8 mins ago 0x32e64e75091d13c64f11db67ea94ac16951629b90x3334b54f74b6b19524f06b69c34304eb40d4155e0.0025 Ether
0x38a92f8ff62d5df31fcb78e218f427fc142a561191ee19ca94d987400cd70935126764702021-06-21 8:04:261 day 13 hrs ago 0x32e64e75091d13c64f11db67ea94ac16951629b9 MCH: Land Pool0.03 Ether
0x38a92f8ff62d5df31fcb78e218f427fc142a561191ee19ca94d987400cd70935126764702021-06-21 8:04:261 day 13 hrs ago 0x32e64e75091d13c64f11db67ea94ac16951629b90xb890b9b37a3111a5214c90db7ba9a3ee587e30180.005 Ether
0x3fba58c7f50cf425b4a7e772330daac51e247ce5bde0b69717ef6fec2582fccc126753302021-06-21 3:39:541 day 17 hrs ago 0x32e64e75091d13c64f11db67ea94ac16951629b9 MCH: Land Pool0.015 Ether
0x3fba58c7f50cf425b4a7e772330daac51e247ce5bde0b69717ef6fec2582fccc126753302021-06-21 3:39:541 day 17 hrs ago 0x32e64e75091d13c64f11db67ea94ac16951629b90x16ca17a0645adce0953309a6ef1607a96c9420810.0025 Ether
0xd7607049f6a12a72e3bf66cfb8849b9bff1908558345fb07b52adf9c3cedd5aa126743052021-06-20 23:48:001 day 21 hrs ago 0x32e64e75091d13c64f11db67ea94ac16951629b9 MCH: Land Pool0.015 Ether
0x76917851e6eed19313bddadc662e37f548756046a3f7008c876a61153093fc8a126702072021-06-20 8:36:192 days 12 hrs ago 0x32e64e75091d13c64f11db67ea94ac16951629b9 MCH: Land Pool0.03 Ether
0x76917851e6eed19313bddadc662e37f548756046a3f7008c876a61153093fc8a126702072021-06-20 8:36:192 days 12 hrs ago 0x32e64e75091d13c64f11db67ea94ac16951629b90x5fd794a8364198cf74c6e71f7efc1754a2641f300.02 Ether
0x089fd6d2caef443a2986562ec5b7c98faed0534fef032000e419f25a02199ac6126687212021-06-20 2:59:052 days 18 hrs ago 0x32e64e75091d13c64f11db67ea94ac16951629b9 MCH: Land Pool0.03 Ether
0x089fd6d2caef443a2986562ec5b7c98faed0534fef032000e419f25a02199ac6126687212021-06-20 2:59:052 days 18 hrs ago 0x32e64e75091d13c64f11db67ea94ac16951629b90xd5e4868b51439ac87279b0d0117b7e2f364750580.02 Ether
0x5e4519cc7f40f2765b7a32769f7920a1e3724513e9c68f777d4448e7c1eeb720126585342021-06-18 12:59:094 days 8 hrs ago 0x32e64e75091d13c64f11db67ea94ac16951629b9 MCH: Land Pool0.015 Ether
0xa46dfb72623be868babd5f8b47637c4397891f0ce3d3f8243c80bbfe312a6b69126526792021-06-17 15:17:305 days 6 hrs ago 0x32e64e75091d13c64f11db67ea94ac16951629b9 MCH: Land Pool0.015 Ether
0xa0b30f1ad4f26fc7b6ae90eebd82df09fdc6ede9cc632e13ba5213a773b73eac126526332021-06-17 15:06:225 days 6 hrs ago 0x32e64e75091d13c64f11db67ea94ac16951629b9 MCH: Land Pool0.03 Ether
0x44dd3d854f05d6d38084aa7da51cfd080a063b541d3c2f86bb40e30d5a76a25f126459712021-06-16 14:14:496 days 7 hrs ago 0x32e64e75091d13c64f11db67ea94ac16951629b9 MCH: Land Pool0.015 Ether
0x3551f1c948581ce5e5e0880ba7f12c475561d27473bb9f0a619629ad3ed05591126441642021-06-16 7:30:226 days 13 hrs ago 0x32e64e75091d13c64f11db67ea94ac16951629b9 MCH: Land Pool0.015 Ether
0x3551f1c948581ce5e5e0880ba7f12c475561d27473bb9f0a619629ad3ed05591126441642021-06-16 7:30:226 days 13 hrs ago 0x32e64e75091d13c64f11db67ea94ac16951629b90x3334b54f74b6b19524f06b69c34304eb40d4155e0.0025 Ether
0x31dbd7f25f7a7609f809e9a78be8b5c20c7dccf889da219ee43115d87fd454ed126404142021-06-15 17:32:167 days 3 hrs ago 0x32e64e75091d13c64f11db67ea94ac16951629b9 MCH: Land Pool0.03 Ether
0x31dbd7f25f7a7609f809e9a78be8b5c20c7dccf889da219ee43115d87fd454ed126404142021-06-15 17:32:167 days 3 hrs ago 0x32e64e75091d13c64f11db67ea94ac16951629b90x5fd794a8364198cf74c6e71f7efc1754a2641f300.02 Ether
0x6acdacbbcbdee2ed10042469bc8e7b31dcfb1e646e1ac994ed6407224b661ae1126386452021-06-15 10:59:437 days 10 hrs ago 0x32e64e75091d13c64f11db67ea94ac16951629b9 MCH: Land Pool0.03 Ether
0x6acdacbbcbdee2ed10042469bc8e7b31dcfb1e646e1ac994ed6407224b661ae1126386452021-06-15 10:59:437 days 10 hrs ago 0x32e64e75091d13c64f11db67ea94ac16951629b90x5fd794a8364198cf74c6e71f7efc1754a2641f300.02 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MCHGUMGatewayV11

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-07-27
*/

pragma solidity 0.5.17;
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));
    }
}

library Uint256 {

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

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

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

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0, "division by 0");
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0, "modulo by 0");
        return a % b;
    }

    function toString(uint256 a) internal pure returns (string memory) {
        bytes32 retBytes32;
        uint256 len = 0;
        if (a == 0) {
            retBytes32 = "0";
            len++;
        } else {
            uint256 value = a;
            while (value > 0) {
                retBytes32 = bytes32(uint256(retBytes32) / (2 ** 8));
                retBytes32 |= bytes32(((value % 10) + 48) * 2 ** (8 * 31));
                value /= 10;
                len++;
            }
        }

        bytes memory ret = new bytes(len);
        uint256 i;

        for (i = 0; i < len; i++) {
            ret[i] = retBytes32[i];
        }
        return string(ret);
    }
}

library Roles {
    struct Role {
        mapping (address => bool) bearer;
    }

    function add(Role storage role, address account) internal {
        require(!has(role, account), "role already has the account");
        role.bearer[account] = true;
    }

    function remove(Role storage role, address account) internal {
        require(has(role, account), "role dosen't have the account");
        role.bearer[account] = false;
    }

    function has(Role storage role, address account) internal view returns (bool) {
        return role.bearer[account];
    }
}

interface IERC165 {
    function supportsInterface(bytes4 interfaceID) external view returns (bool);
}

/// @title ERC-165 Standard Interface Detection
/// @dev See https://eips.ethereum.org/EIPS/eip-165
contract ERC165 is IERC165 {
    bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;
    mapping(bytes4 => bool) private _supportedInterfaces;

    constructor () internal {
        _registerInterface(_INTERFACE_ID_ERC165);
    }

    function supportsInterface(bytes4 interfaceId) external view returns (bool) {
        return _supportedInterfaces[interfaceId];
    }

    function _registerInterface(bytes4 interfaceId) internal {
        require(interfaceId != 0xffffffff, "ERC165: invalid interface id");
        _supportedInterfaces[interfaceId] = true;
    }
}

contract Withdrawable {
    using Roles for Roles.Role;

    event WithdrawerAdded(address indexed account);
    event WithdrawerRemoved(address indexed account);

    Roles.Role private withdrawers;

    constructor() public {
        withdrawers.add(msg.sender);
    }

    modifier onlyWithdrawer() {
        require(isWithdrawer(msg.sender), "Must be withdrawer");
        _;
    }

    function isWithdrawer(address account) public view returns (bool) {
        return withdrawers.has(account);
    }

    function addWithdrawer(address account) public onlyWithdrawer() {
        withdrawers.add(account);
        emit WithdrawerAdded(account);
    }

    function removeWithdrawer(address account) public onlyWithdrawer() {
        withdrawers.remove(account);
        emit WithdrawerRemoved(account);
    }

    function withdrawEther() public onlyWithdrawer() {
        msg.sender.transfer(address(this).balance);
    }

}

interface IERC173 /* is ERC165 */ {
    /// @dev This emits when ownership of a contract changes.
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /// @notice Get the address of the owner
    /// @return The address of the owner.
    function owner() external view returns (address);

    /// @notice Set the address of the new owner of the contract
    /// @param _newOwner The address of the new owner of the contract
    function transferOwnership(address _newOwner) external;
}

contract ERC173 is IERC173, ERC165  {
    address private _owner;

    constructor() public {
        _registerInterface(0x7f5828d0);
        _transferOwnership(msg.sender);
    }

    modifier onlyOwner() {
        require(msg.sender == owner(), "Must be owner");
        _;
    }

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

    function transferOwnership(address _newOwner) public onlyOwner() {
        _transferOwnership(_newOwner);
    }

    function _transferOwnership(address _newOwner) internal {
        address previousOwner = owner();
	_owner = _newOwner;
        emit OwnershipTransferred(previousOwner, _newOwner);
    }
}

contract Operatable is ERC173 {
    using Roles for Roles.Role;

    event OperatorAdded(address indexed account);
    event OperatorRemoved(address indexed account);

    event Paused(address account);
    event Unpaused(address account);

    bool private _paused;
    Roles.Role private operators;

    constructor() public {
        operators.add(msg.sender);
        _paused = false;
    }

    modifier onlyOperator() {
        require(isOperator(msg.sender), "Must be operator");
        _;
    }

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

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

    function transferOwnership(address _newOwner) public onlyOperator() {
        _transferOwnership(_newOwner);
    }

    function isOperator(address account) public view returns (bool) {
        return operators.has(account);
    }

    function addOperator(address account) public onlyOperator() {
        operators.add(account);
        emit OperatorAdded(account);
    }

    function removeOperator(address account) public onlyOperator() {
        operators.remove(account);
        emit OperatorRemoved(account);
    }

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

    function pause() public onlyOperator() whenNotPaused() {
        _paused = true;
        emit Paused(msg.sender);
    }

    function unpause() public onlyOperator() whenPaused() {
        _paused = false;
        emit Unpaused(msg.sender);
    }

}

interface LandSectorAsset {
    function getTotalVolume(uint16 _landType) external view returns (uint256);
}

interface MCHLandPool {
    function addEthToLandPool(uint16 _landType, address _purchaseBy) external payable;
}

interface IngameMoney {
    function hashTransactedAt(bytes32 _hash) external view returns(uint256);
    function buy(address payable _user, address payable _referrer, uint256 _referralBasisPoint, bytes calldata _signature, bytes32 _hash)
        external
        payable;
}

contract MCHGUMGatewayV11 is Operatable, Withdrawable {
    using Uint256 for uint256;
    struct Campaign {
        uint8 purchaseType;
        uint8 subPurchaseType;
        uint8 proxyPurchaseType;
    }

    uint8 constant PURCHASE_NORMAL = 0;
    uint8 constant PURCHASE_ETH_BACK = 1;
    uint8 constant PURCHASE_UP20 = 2;
    uint8 constant PURCHASE_REGULAR = 3;
    uint8 constant PURCHASE_ETH_BACK_UP20 = 4;

    Campaign public campaign;

    mapping(uint256 => bool) public payableOptions;
    address public validater;

    LandSectorAsset public landSectorAsset;
    MCHLandPool public landPool;
    uint256 public landBasisPoint;

    uint256 constant BASE = 10000;
    uint256 private nonce;
    uint16 public chanceDenom;
    uint256 public ethBackBasisPoint;
    bytes private salt;
    mapping(bytes32 => uint256) public hashTransactedAt;

    event Sold(
        address indexed user,
        address indexed referrer,
        uint8 purchaseType,
        uint256 grossValue,
        uint256 referralValue,
        uint256 landValue,
        uint256 netValue,
        uint16 indexed landType
    );

    event CampaignUpdated(
        uint8 purchaseType,
        uint8 subPurchaseType,
        uint8 proxyPurchaseType
    );

    event LandBasisPointUpdated(
        uint256 landBasisPoint
    );

    constructor(
        address _validater,
        address _landSectorAssetAddress,
        address payable _landPoolAddress
    ) public payable {
        setValidater(_validater);
        setLandSectorAssetAddress(_landSectorAssetAddress);
        setLandPoolAddress(_landPoolAddress);
        setCampaign(0, 0, 0);
        updateLandBasisPoint(3000);
        updateEthBackBasisPoint(5000);
        updateChance(25);
        salt = bytes("iiNg4uJulaa4Yoh7");

        nonce = 222;

        // payableOptions[0] = true;
        payableOptions[0.03 ether] = true;
        payableOptions[0.05 ether] = true;
        payableOptions[0.1 ether] = true;
        payableOptions[0.5 ether] = true;
        payableOptions[1 ether] = true;
        payableOptions[5 ether] = true;
        payableOptions[10 ether] = true;
    }

    function setValidater(address _varidater) public onlyOperator() {
        validater = _varidater;
    }

    function setPayableOption(uint256 _option, bool desired) external onlyOperator() {
        payableOptions[_option] = desired;
    }

    function setCampaign(
        uint8 _purchaseType,
        uint8 _subPurchaseType,
        uint8 _proxyPurchaseType
    )
        public
        onlyOperator()
    {
        campaign = Campaign(_purchaseType, _subPurchaseType, _proxyPurchaseType);
        emit CampaignUpdated(_purchaseType, _subPurchaseType, _proxyPurchaseType);
    }

    function setLandSectorAssetAddress(address _landSectorAssetAddress) public onlyOwner() {
        landSectorAsset = LandSectorAsset(_landSectorAssetAddress);
    }

    function setLandPoolAddress(address payable _landPoolAddress) public onlyOwner() {
        landPool = MCHLandPool(_landPoolAddress);
    }

    function updateLandBasisPoint(uint256 _newLandBasisPoint) public onlyOwner() {
        landBasisPoint = _newLandBasisPoint;
        emit LandBasisPointUpdated(
            landBasisPoint
        );
    }

    function updateChance(uint16 _newchanceDenom) public onlyOperator() {
        chanceDenom = _newchanceDenom;
    }

    function updateEthBackBasisPoint(uint256 _ethBackBasisPoint) public onlyOperator() {
        ethBackBasisPoint = _ethBackBasisPoint;
    }

    function buy(
        address payable _user,
        address payable _referrer,
        uint256 _referralBasisPoint,
        uint16 _landType,
        bytes memory _signature,
        bytes32 _hash
    )
        public
        payable
        whenNotPaused()
    {
        require(_referralBasisPoint + ethBackBasisPoint + landBasisPoint <= BASE, "Invalid basis points");
        require(payableOptions[msg.value], "Invalid msg.value");
        require(validateSig(encodeData(_user, _referrer, _referralBasisPoint, _landType), _signature), "Invalid signature");
        if (_hash != bytes32(0)) {
            recordHash(_hash);
        }
        uint8 purchaseType = campaign.proxyPurchaseType;
        uint256 netValue = msg.value;
        uint256 referralValue = _referrerBack(_referrer, _referralBasisPoint);
        uint256 landValue = _landPoolBack(_landType);
        netValue = msg.value.sub(referralValue).sub(landValue);

        emit Sold(
            _user,
            _referrer,
            purchaseType,
            msg.value,
            referralValue,
            landValue,
            netValue,
            _landType
        );
    }

    function buyGUM(
        address payable _referrer,
        uint256 _referralBasisPoint,
        uint16 _landType,
        bytes memory _signature
    )
        public
        payable
    {
        require(_referralBasisPoint + ethBackBasisPoint + landBasisPoint <= BASE, "Invalid basis points");
        require(payableOptions[msg.value], "Invalid msg.value");
        require(validateSig(encodeData(msg.sender, _referrer, _referralBasisPoint, _landType), _signature), "Invalid signature");

        uint8 purchaseType = campaign.purchaseType;
        uint256 netValue = msg.value;
        uint256 referralValue = 0;
        uint256 landValue = 0;

        if (purchaseType == PURCHASE_ETH_BACK || purchaseType == PURCHASE_ETH_BACK_UP20) {
            if (getRandom(chanceDenom, nonce, msg.sender) == 0) {
                uint256 ethBackValue = _ethBack(msg.sender, ethBackBasisPoint);
                netValue = netValue.sub(ethBackValue);
            } else {
                purchaseType = campaign.subPurchaseType;
                referralValue = _referrerBack(_referrer, _referralBasisPoint);
                landValue = _landPoolBack(_landType);
                netValue = msg.value.sub(referralValue).sub(landValue);
            }
            nonce++;
        } else {
            referralValue = _referrerBack(_referrer, _referralBasisPoint);
            landValue = _landPoolBack(_landType);
            netValue = msg.value.sub(referralValue).sub(landValue);
        }

        emit Sold(
            msg.sender,
            _referrer,
            purchaseType,
            msg.value,
            referralValue,
            landValue,
            netValue,
            _landType
        );
    }

    function recordHash(bytes32 _hash) internal {
        require(hashTransactedAt[_hash] == 0, "The hash is already transacted");
        hashTransactedAt[_hash] = block.number;
    }

    function getRandom(uint16 max, uint256 _nonce, address _sender) public view returns (uint16) {
        return uint16(
            bytes2(
                keccak256(
                    abi.encodePacked(
                        blockhash(block.number-1),
                        _sender,
                        _nonce,
                        salt
                    )
                )
            )
        ) % max;
    }

    function _ethBack(address payable _buyer, uint256 _ethBackBasisPoint) internal returns (uint256) {
        uint256 ethBackValue = msg.value.mul(_ethBackBasisPoint).div(BASE);
        _buyer.transfer(ethBackValue);
        return ethBackValue;
    }

    function _landPoolBack(uint16 _landType) internal returns (uint256) {
        if(_landType == 0) {
            return 0;
        }
        require(landSectorAsset.getTotalVolume(_landType) != 0, "Invalid _landType");

        uint256 landValue;
        landValue = msg.value.mul(landBasisPoint).div(BASE);
        landPool.addEthToLandPool.value(landValue)(_landType, msg.sender);
        return landValue;
    }

    function _referrerBack(address payable _referrer, uint256 _referralBasisPoint) internal returns (uint256) {
        if(_referrer == address(0x0) || _referrer == msg.sender) {
            return 0;
        }
        uint256 referralValue = msg.value.mul(_referralBasisPoint).div(BASE);
        _referrer.transfer(referralValue);
        return referralValue;
    }

    function encodeData(address _sender, address _referrer, uint256 _referralBasisPoint, uint16 _landType) public pure returns (bytes32) {
        return keccak256(abi.encode(
                            _sender,
                            _referrer,
                            _referralBasisPoint,
                            _landType
                            )
                    );
    }

    function validateSig(bytes32 _message, bytes memory _signature) public view returns (bool) {
        require(validater != address(0), "validater must be set");
        address signer = ECDSA.recover(ECDSA.toEthSignedMessageHash(_message), _signature);
        return (signer == validater);
    }

    function recover(bytes32 _message, bytes memory _signature) public pure returns (address) {
        address signer = ECDSA.recover(ECDSA.toEthSignedMessageHash(_message), _signature);
        return signer;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_validater","type":"address"},{"internalType":"address","name":"_landSectorAssetAddress","type":"address"},{"internalType":"address payable","name":"_landPoolAddress","type":"address"}],"payable":true,"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"purchaseType","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"subPurchaseType","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"proxyPurchaseType","type":"uint8"}],"name":"CampaignUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"landBasisPoint","type":"uint256"}],"name":"LandBasisPointUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"OperatorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"OperatorRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":false,"internalType":"uint8","name":"purchaseType","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"grossValue","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"referralValue","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"landValue","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"netValue","type":"uint256"},{"indexed":true,"internalType":"uint16","name":"landType","type":"uint16"}],"name":"Sold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"WithdrawerAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"WithdrawerRemoved","type":"event"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addWithdrawer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"_user","type":"address"},{"internalType":"address payable","name":"_referrer","type":"address"},{"internalType":"uint256","name":"_referralBasisPoint","type":"uint256"},{"internalType":"uint16","name":"_landType","type":"uint16"},{"internalType":"bytes","name":"_signature","type":"bytes"},{"internalType":"bytes32","name":"_hash","type":"bytes32"}],"name":"buy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"_referrer","type":"address"},{"internalType":"uint256","name":"_referralBasisPoint","type":"uint256"},{"internalType":"uint16","name":"_landType","type":"uint16"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"buyGUM","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"campaign","outputs":[{"internalType":"uint8","name":"purchaseType","type":"uint8"},{"internalType":"uint8","name":"subPurchaseType","type":"uint8"},{"internalType":"uint8","name":"proxyPurchaseType","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"chanceDenom","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_referrer","type":"address"},{"internalType":"uint256","name":"_referralBasisPoint","type":"uint256"},{"internalType":"uint16","name":"_landType","type":"uint16"}],"name":"encodeData","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"ethBackBasisPoint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint16","name":"max","type":"uint16"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_sender","type":"address"}],"name":"getRandom","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"hashTransactedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isWithdrawer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"landBasisPoint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"landPool","outputs":[{"internalType":"contract MCHLandPool","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"landSectorAsset","outputs":[{"internalType":"contract LandSectorAsset","name":"","type":"address"}],"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":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"payableOptions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_message","type":"bytes32"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"recover","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeWithdrawer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint8","name":"_purchaseType","type":"uint8"},{"internalType":"uint8","name":"_subPurchaseType","type":"uint8"},{"internalType":"uint8","name":"_proxyPurchaseType","type":"uint8"}],"name":"setCampaign","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"_landPoolAddress","type":"address"}],"name":"setLandPoolAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_landSectorAssetAddress","type":"address"}],"name":"setLandSectorAssetAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_option","type":"uint256"},{"internalType":"bool","name":"desired","type":"bool"}],"name":"setPayableOption","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_varidater","type":"address"}],"name":"setValidater","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint16","name":"_newchanceDenom","type":"uint16"}],"name":"updateChance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_ethBackBasisPoint","type":"uint256"}],"name":"updateEthBackBasisPoint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_newLandBasisPoint","type":"uint256"}],"name":"updateLandBasisPoint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_message","type":"bytes32"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"validateSig","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"validater","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040526040516200412d3803806200412d833981810160405260608110156200002957600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050620000666301ffc9a760e01b6200032960201b60201c565b6200007e637f5828d060e01b6200032960201b60201c565b6200008f336200043260201b60201c565b620000aa336002620004e560201b62002ef91790919060201c565b6000600160146101000a81548160ff021916908315150217905550620000e0336003620004e560201b62002ef91790919060201c565b620000f183620005c960201b60201c565b62000102826200069160201b60201c565b62000113816200078660201b60201c565b6200012860008060006200087b60201b60201c565b6200013b610bb8620009e960201b60201c565b6200014e61138862000add60201b60201c565b62000160601962000b6b60201b60201c565b6040518060400160405280601081526020017f69694e6734754a756c616134596f683700000000000000000000000000000000815250600d9080519060200190620001ad92919062000cb6565b5060de600a81905550600160056000666a94d74f430000815260200190815260200160002060006101000a81548160ff02191690831515021790555060016005600066b1a2bc2ec50000815260200190815260200160002060006101000a81548160ff02191690831515021790555060016005600067016345785d8a0000815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560006706f05b59d3b20000815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000670de0b6b3a7640000815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000674563918244f40000815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000678ac7230489e80000815260200190815260200160002060006101000a81548160ff02191690831515021790555050505062000d65565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415620003c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006200044462000c0f60201b60201c565b905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620004f7828262000c3960201b60201c565b156200056b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f726f6c6520616c72656164792068617320746865206163636f756e740000000081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b620005da3362000c9260201b60201c565b6200064d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b620006a162000c0f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161462000742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f4d757374206265206f776e65720000000000000000000000000000000000000081525060200191505060405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6200079662000c0f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161462000837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f4d757374206265206f776e65720000000000000000000000000000000000000081525060200191505060405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6200088c3362000c9260201b60201c565b620008ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b60405180606001604052808460ff1681526020018360ff1681526020018260ff16815250600460008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff1602179055509050507fe49bc7af060cc5d9279e2e61607f66121d7982a25145a843a953c6467b54a855838383604051808460ff1660ff1681526020018360ff1660ff1681526020018260ff1660ff168152602001935050505060405180910390a1505050565b620009f962000c0f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161462000a9a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f4d757374206265206f776e65720000000000000000000000000000000000000081525060200191505060405180910390fd5b806009819055507f08b4dffafa4ded0562a5e93aa208211a383d061c852d480d58d9dca03d747f326009546040518082815260200191505060405180910390a150565b62000aee3362000c9260201b60201c565b62000b61576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b80600c8190555050565b62000b7c3362000c9260201b60201c565b62000bef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b80600b60006101000a81548161ffff021916908361ffff16021790555050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600062000caf82600262000c3960201b62002fd41790919060201c565b9050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000cf957805160ff191683800117855562000d2a565b8280016001018555821562000d2a579182015b8281111562000d2957825182559160200191906001019062000d0c565b5b50905062000d39919062000d3d565b5090565b62000d6291905b8082111562000d5e57600081600090555060010162000d44565b5090565b90565b6133b88062000d756000396000f3fe60806040526004361061020f5760003560e01c806375edbf4611610118578063ac8a584a116100a0578063d86c8cfd1161006f578063d86c8cfd14610d84578063d95b18eb14610e6e578063dba8f3f614610ec5578063ea62f55414610f1c578063f2fde38b14610f575761020f565b8063ac8a584a14610c68578063bcd0ad2b14610cb9578063c14e50ce14610cf8578063d3aa600e14610d495761020f565b80638da5cb5b116100e75780638da5cb5b14610a7b5780639004e5c514610ad25780639870d7fe14610b3b578063996bf1bd14610b8c578063a93c34e514610be35761020f565b806375edbf46146108a9578063811e539c146109c65780638456cb5914610a115780638970285014610a285761020f565b806347be64171161019b578063662fa38f1161016a578063662fa38f1461075e5780636d70f7ae146107a5578063711bd9eb1461080e5780637362377b1461085f57806375184dd6146108765761020f565b806347be64171461066257806356788a8c1461068d5780635c975abb146106de57806365f892ad1461070d5761020f565b8063277a3f7a116101e2578063277a3f7a146104605780632d09986f146105535780632d11ecf2146105a457806336977d9b146105f35780633f4ba83a1461064b5761020f565b806301ffc9a7146102145780630f43dd901461028657806319045a251461032357806323a24a9414610435575b600080fd5b34801561022057600080fd5b5061026c6004803603602081101561023757600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610fa8565b604051808215151515815260200191505060405180910390f35b34801561029257600080fd5b5061030d600480360360808110156102a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803561ffff16906020019092919050505061100f565b6040518082815260200191505060405180910390f35b34801561032f57600080fd5b506103f36004803603604081101561034657600080fd5b81019080803590602001909291908035906020019064010000000081111561036d57600080fd5b82018360208201111561037f57600080fd5b803590602001918460018302840111640100000000831117156103a157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506110ba565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561044157600080fd5b5061044a6110db565b6040518082815260200191505060405180910390f35b6105516004803603608081101561047657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803561ffff169060200190929190803590602001906401000000008111156104cb57600080fd5b8201836020820111156104dd57600080fd5b803590602001918460018302840111640100000000831117156104ff57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506110e1565b005b34801561055f57600080fd5b506105a26004803603602081101561057657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611459565b005b3480156105b057600080fd5b506105dd600480360360208110156105c757600080fd5b8101908080359060200190929190505050611545565b6040518082815260200191505060405180910390f35b3480156105ff57600080fd5b506106496004803603606081101561061657600080fd5b81019080803560ff169060200190929190803560ff169060200190929190803560ff16906020019092919050505061155d565b005b34801561065757600080fd5b506106606116c2565b005b34801561066e57600080fd5b5061067761183f565b6040518082815260200191505060405180910390f35b34801561069957600080fd5b506106dc600480360360208110156106b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611845565b005b3480156106ea57600080fd5b506106f361191a565b604051808215151515815260200191505060405180910390f35b34801561071957600080fd5b5061075c6004803603602081101561073057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611931565b005b34801561076a57600080fd5b506107a36004803603604081101561078157600080fd5b8101908080359060200190929190803515159060200190929190505050611a1d565b005b3480156107b157600080fd5b506107f4600480360360208110156107c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ac7565b604051808215151515815260200191505060405180910390f35b34801561081a57600080fd5b5061085d6004803603602081101561083157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ae4565b005b34801561086b57600080fd5b50610874611bb9565b005b34801561088257600080fd5b5061088b611c7d565b604051808261ffff1661ffff16815260200191505060405180910390f35b6109c4600480360360c08110156108bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803561ffff1690602001909291908035906020019064010000000081111561093457600080fd5b82018360208201111561094657600080fd5b8035906020019184600183028401116401000000008311171561096857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050611c91565b005b3480156109d257600080fd5b506109db611fbc565b604051808460ff1660ff1681526020018360ff1660ff1681526020018260ff1660ff168152602001935050505060405180910390f35b348015610a1d57600080fd5b50610a26611ffb565b005b348015610a3457600080fd5b50610a6160048036036020811015610a4b57600080fd5b8101908080359060200190929190505050612178565b604051808215151515815260200191505060405180910390f35b348015610a8757600080fd5b50610a90612198565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ade57600080fd5b50610b2160048036036020811015610af557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121c2565b604051808215151515815260200191505060405180910390f35b348015610b4757600080fd5b50610b8a60048036036020811015610b5e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121df565b005b348015610b9857600080fd5b50610ba16122b4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610bef57600080fd5b50610c4a60048036036060811015610c0657600080fd5b81019080803561ffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122da565b604051808261ffff1661ffff16815260200191505060405180910390f35b348015610c7457600080fd5b50610cb760048036036020811015610c8b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123bf565b005b348015610cc557600080fd5b50610cf660048036036020811015610cdc57600080fd5b81019080803561ffff169060200190929190505050612494565b005b348015610d0457600080fd5b50610d4760048036036020811015610d1b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061252f565b005b348015610d5557600080fd5b50610d8260048036036020811015610d6c57600080fd5b81019080803590602001909291905050506125ee565b005b348015610d9057600080fd5b50610e5460048036036040811015610da757600080fd5b810190808035906020019092919080359060200190640100000000811115610dce57600080fd5b820183602082011115610de057600080fd5b80359060200191846001830284011164010000000083111715610e0257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506126d9565b604051808215151515815260200191505060405180910390f35b348015610e7a57600080fd5b50610e8361280f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ed157600080fd5b50610eda612835565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f2857600080fd5b50610f5560048036036020811015610f3f57600080fd5b810190808035906020019092919050505061285b565b005b348015610f6357600080fd5b50610fa660048036036020811015610f7a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506128e0565b005b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b600084848484604051602001808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018261ffff1661ffff168152602001945050505050604051602081830303815290604052805190602001209050949350505050565b6000806110cf6110c985612967565b846129bf565b90508091505092915050565b600c5481565b612710600954600c548501011115611161576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f496e76616c696420626173697320706f696e747300000000000000000000000081525060200191505060405180910390fd5b6005600034815260200190815260200160002060009054906101000a900460ff166111f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964206d73672e76616c756500000000000000000000000000000081525060200191505060405180910390fd5b6112096112033386868661100f565b826126d9565b61127b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b6000600460000160009054906101000a900460ff169050600034905060008090506000809050600160ff168460ff1614806112bc5750600460ff168460ff16145b156113805760006112e0600b60009054906101000a900461ffff16600a54336122da565b61ffff1614156113155760006112f833600c54612ac3565b905061130d8185612b4090919063ffffffff16565b935050611369565b600460000160019054906101000a900460ff1693506113348888612bc3565b915061133f86612cb5565b9050611366816113588434612b4090919063ffffffff16565b612b4090919063ffffffff16565b92505b600a600081548092919060010191905055506113bf565b61138a8888612bc3565b915061139586612cb5565b90506113bc816113ae8434612b4090919063ffffffff16565b612b4090919063ffffffff16565b92505b8561ffff168873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fef8be8195589a8a6990d8ec940c79dd6a43c0ac18064d5682feeb99c599dd3e5873487878a604051808660ff1660ff1681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a45050505050505050565b611461612198565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611501576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f4d757374206265206f776e65720000000000000000000000000000000000000081525060200191505060405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e6020528060005260406000206000915090505481565b61156633611ac7565b6115d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b60405180606001604052808460ff1681526020018360ff1681526020018260ff16815250600460008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff1602179055509050507fe49bc7af060cc5d9279e2e61607f66121d7982a25145a843a953c6467b54a855838383604051808460ff1660ff1681526020018360ff1660ff1681526020018260ff1660ff168152602001935050505060405180910390a1505050565b6116cb33611ac7565b61173d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff166117bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b6000600160146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60095481565b61184e336121c2565b6118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d7573742062652077697468647261776572000000000000000000000000000081525060200191505060405180910390fd5b6118d4816003612ef990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fa1a8c5d4571c30d14645a130aa34aa21e2983b734153cce6cbc9eb750f5db49d60405160405180910390a250565b6000600160149054906101000a900460ff16905090565b611939612198565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f4d757374206265206f776e65720000000000000000000000000000000000000081525060200191505060405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a2633611ac7565b611a98576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b806005600084815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611add826002612fd490919063ffffffff16565b9050919050565b611aed336121c2565b611b5f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d7573742062652077697468647261776572000000000000000000000000000081525060200191505060405180910390fd5b611b7381600361302d90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f4c2d50c11eee24ae13f209880951e560d483a69ccf4d53af33195df596295a9e60405160405180910390a250565b611bc2336121c2565b611c34576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d7573742062652077697468647261776572000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611c7a573d6000803e3d6000fd5b50565b600b60009054906101000a900461ffff1681565b600160149054906101000a900460ff1615611d14576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b612710600954600c548601011115611d94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f496e76616c696420626173697320706f696e747300000000000000000000000081525060200191505060405180910390fd5b6005600034815260200190815260200160002060009054906101000a900460ff16611e27576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964206d73672e76616c756500000000000000000000000000000081525060200191505060405180910390fd5b611e3c611e368787878761100f565b836126d9565b611eae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b6000801b8114611ec257611ec181613107565b5b6000600460000160029054906101000a900460ff16905060003490506000611eea8888612bc3565b90506000611ef787612cb5565b9050611f1e81611f108434612b4090919063ffffffff16565b612b4090919063ffffffff16565b92508661ffff168973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fef8be8195589a8a6990d8ec940c79dd6a43c0ac18064d5682feeb99c599dd3e5873487878a604051808660ff1660ff1681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a450505050505050505050565b60048060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16905083565b61200433611ac7565b612076576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff16156120f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b60018060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60056020528060005260406000206000915054906101000a900460ff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006121d8826003612fd490919063ffffffff16565b9050919050565b6121e833611ac7565b61225a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b61226e816002612ef990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d60405160405180910390a250565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008361ffff1660014303408385600d604051602001808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401838152602001828054600181600116156101000203166002900480156123895780601f10612367576101008083540402835291820191612389565b820191906000526020600020905b815481529060010190602001808311612375575b50509450505050506040516020818303038152906040528051906020012060f01c61ffff16816123b557fe5b0690509392505050565b6123c833611ac7565b61243a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b61244e81600261302d90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d60405160405180910390a250565b61249d33611ac7565b61250f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b80600b60006101000a81548161ffff021916908361ffff16021790555050565b61253833611ac7565b6125aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6125f6612198565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f4d757374206265206f776e65720000000000000000000000000000000000000081525060200191505060405180910390fd5b806009819055507f08b4dffafa4ded0562a5e93aa208211a383d061c852d480d58d9dca03d747f326009546040518082815260200191505060405180910390a150565b60008073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561279f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f76616c696461746572206d75737420626520736574000000000000000000000081525060200191505060405180910390fd5b60006127b36127ad85612967565b846129bf565b9050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161491505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61286433611ac7565b6128d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b80600c8190555050565b6128e933611ac7565b61295b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b612964816131ab565b50565b60008160405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c01828152602001915050604051602081830303815290604052805190602001209050919050565b600060418251146129d35760009050612abd565b60008060006020850151925060408501519150606085015160001a90507f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08260001c1115612a275760009350505050612abd565b601b8160ff1614158015612a3f5750601c8160ff1614155b15612a505760009350505050612abd565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612aad573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b600080612aed612710612adf853461325690919063ffffffff16565b6132f990919063ffffffff16565b90508373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612b35573d6000803e3d6000fd5b508091505092915050565b600081831015612bb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f7375627472616374696f6e206f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612c2a57503373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15612c385760009050612caf565b6000612c61612710612c53853461325690919063ffffffff16565b6132f990919063ffffffff16565b90508373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612ca9573d6000803e3d6000fd5b50809150505b92915050565b6000808261ffff161415612ccc5760009050612ef4565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fbba7b62846040518263ffffffff1660e01b8152600401808261ffff1661ffff16815260200191505060206040518083038186803b158015612d4957600080fd5b505afa158015612d5d573d6000803e3d6000fd5b505050506040513d6020811015612d7357600080fd5b81019080805190602001909291905050501415612df8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964205f6c616e645479706500000000000000000000000000000081525060200191505060405180910390fd5b6000612e23612710612e156009543461325690919063ffffffff16565b6132f990919063ffffffff16565b9050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e274e18e8285336040518463ffffffff1660e01b8152600401808361ffff1661ffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001925050506000604051808303818588803b158015612ed657600080fd5b505af1158015612eea573d6000803e3d6000fd5b5050505050809150505b919050565b612f038282612fd4565b15612f76576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f726f6c6520616c72656164792068617320746865206163636f756e740000000081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6130378282612fd4565b6130a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f726f6c6520646f73656e2774206861766520746865206163636f756e7400000081525060200191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600e60008381526020019081526020016000205414613190576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f546865206861736820697320616c7265616479207472616e736163746564000081525060200191505060405180910390fd5b43600e60008381526020019081526020016000208190555050565b60006131b5612198565b905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008083141561326957600090506132f3565b600082840290508284828161327a57fe5b04146132ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6d756c7469706c69636174696f6e206f766572666c6f7700000000000000000081525060200191505060405180910390fd5b809150505b92915050565b600080821415613371576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6469766973696f6e20627920300000000000000000000000000000000000000081525060200191505060405180910390fd5b81838161337a57fe5b0490509291505056fea265627a7a7231582072cbecedcfdde0aa7ae75e043f762c17529ebb1476f977c0185f3b2d6da55d3764736f6c6343000511003200000000000000000000000035c5fd312ef06b88ae7d2f9928dbebf486d0784d000000000000000000000000617913dd43dbdf4236b85ec7bdf9adfd7e35b3400000000000000000000000004a627b324189014fa757ed7cc730b180879232d7

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

00000000000000000000000035c5fd312ef06b88ae7d2f9928dbebf486d0784d000000000000000000000000617913dd43dbdf4236b85ec7bdf9adfd7e35b3400000000000000000000000004a627b324189014fa757ed7cc730b180879232d7

-----Decoded View---------------
Arg [0] : _validater (address): 0x35c5fd312ef06b88ae7d2f9928dbebf486d0784d
Arg [1] : _landSectorAssetAddress (address): 0x617913dd43dbdf4236b85ec7bdf9adfd7e35b340
Arg [2] : _landPoolAddress (address): 0x4a627b324189014fa757ed7cc730b180879232d7

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000035c5fd312ef06b88ae7d2f9928dbebf486d0784d
Arg [1] : 000000000000000000000000617913dd43dbdf4236b85ec7bdf9adfd7e35b340
Arg [2] : 0000000000000000000000004a627b324189014fa757ed7cc730b180879232d7


Deployed ByteCode Sourcemap

10875:9223:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6174:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6174:135:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6174:135:0;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19164:401;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19164:401:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;19164:401:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19880:215;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19880:215:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19880:215:0;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;19880:215:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;19880:215:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;19880:215:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;19880:215:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11642:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11642:32:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15701:1751;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;15701:1751:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;15701:1751:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;15701:1751:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;15701:1751:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;15701:1751:0;;;;;;;;;;;;;;;:::i;:::-;;13700:164;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13700:164:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13700:164:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;11706:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11706:51:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11706:51:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13346:346;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13346:346:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13346:346:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10227:124;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10227:124:0;;;:::i;:::-;;11508:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11508:29:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7049:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7049:147:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7049:147:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;10011:78;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10011:78:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13872:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13872:140:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13872:140:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;13205:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13205:133:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13205:133:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9589:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9589:112:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9589:112:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7204:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7204:155:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7204:155:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;7367:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7367:110:0;;;:::i;:::-;;11610:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11610:25:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14508:1185;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;14508:1185:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;14508:1185:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;14508:1185:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;14508:1185:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;14508:1185:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11310:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11310:24:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10097:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10097:122:0;;;:::i;:::-;;11343:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11343:46:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11343:46:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8327:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8327:79:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6925:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6925:116:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6925:116:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9709:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9709:139:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9709:139:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;11474:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11474:27:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17651:437;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17651:437:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17651:437:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9856:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9856:147:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9856:147:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;14236:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14236:116:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14236:116:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;13092:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13092:105:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13092:105:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;14020:208;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14020:208:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14020:208:0;;;;;;;;;;;;;;;;;:::i;:::-;;19573:299;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19573:299:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19573:299:0;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;19573:299:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;19573:299:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;19573:299:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;19573:299:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11396:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11396:24:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11429:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11429:38:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14360:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14360:140:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14360:140:0;;;;;;;;;;;;;;;;;:::i;:::-;;9465:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9465:116:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9465:116:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;6174:135;6244:4;6268:20;:33;6289:11;6268:33;;;;;;;;;;;;;;;;;;;;;;;;;;;6261:40;;6174:135;;;:::o;19164:401::-;19288:7;19366;19404:9;19444:19;19494:9;19325:209;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;19325:209:0;;;19315:242;;;;;;19308:249;;19164:401;;;;;;:::o;19880:215::-;19961:7;19981:14;19998:65;20012:38;20041:8;20012:28;:38::i;:::-;20052:10;19998:13;:65::i;:::-;19981:82;;20081:6;20074:13;;;19880:215;;;;:::o;11642:32::-;;;;:::o;15701:1751::-;11570:5;15958:14;;15938:17;;15916:19;:39;:56;:64;;15908:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16024:14;:25;16039:9;16024:25;;;;;;;;;;;;;;;;;;;;;16016:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16090:90;16102:65;16113:10;16125:9;16136:19;16157:9;16102:10;:65::i;:::-;16169:10;16090:11;:90::i;:::-;16082:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16215:18;16236:8;:21;;;;;;;;;;;;16215:42;;16268:16;16287:9;16268:28;;16307:21;16331:1;16307:25;;16343:17;16363:1;16343:21;;11171:1;16381:33;;:12;:33;;;:75;;;;11300:1;16418:38;;:12;:38;;;16381:75;16377:836;;;16522:1;16477:41;16487:11;;;;;;;;;;;16500:5;;16507:10;16477:9;:41::i;:::-;:46;;;16473:493;;;16544:20;16567:39;16576:10;16588:17;;16567:8;:39::i;:::-;16544:62;;16636:26;16649:12;16636:8;:12;;:26;;;;:::i;:::-;16625:37;;16473:493;;;;16718:8;:24;;;;;;;;;;;;16703:39;;16777:45;16791:9;16802:19;16777:13;:45::i;:::-;16761:61;;16853:24;16867:9;16853:13;:24::i;:::-;16841:36;;16907:43;16940:9;16907:28;16921:13;16907:9;:13;;:28;;;;:::i;:::-;:32;;:43;;;;:::i;:::-;16896:54;;16473:493;16980:5;;:7;;;;;;;;;;;;;16377:836;;;17036:45;17050:9;17061:19;17036:13;:45::i;:::-;17020:61;;17108:24;17122:9;17108:13;:24::i;:::-;17096:36;;17158:43;17191:9;17158:28;17172:13;17158:9;:13;;:28;;;;:::i;:::-;:32;;:43;;;;:::i;:::-;17147:54;;16377:836;17424:9;17230:214;;17274:9;17230:214;;17249:10;17230:214;;;17298:12;17325:9;17349:13;17377:9;17401:8;17230:214;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15701:1751;;;;;;;;:::o;13700:164::-;8274:7;:5;:7::i;:::-;8260:21;;:10;:21;;;8252:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13832:23;13798:15;;:58;;;;;;;;;;;;;;;;;;13700:164;:::o;11706:51::-;;;;;;;;;;;;;;;;;:::o;13346:346::-;9192:22;9203:10;9192;:22::i;:::-;9184:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13539:61;;;;;;;;13548:13;13539:61;;;;;;13563:16;13539:61;;;;;;13581:18;13539:61;;;;;13528:8;:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13616:68;13632:13;13647:16;13665:18;13616:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13346:346;;;:::o;10227:124::-;9192:22;9203:10;9192;:22::i;:::-;9184:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9405:7;;;;;;;;;;;9397:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10302:5;10292:7;;:15;;;;;;;;;;;;;;;;;;10323:20;10332:10;10323:20;;;;;;;;;;;;;;;;;;;;;;10227:124::o;11508:29::-;;;;:::o;7049:147::-;6850:24;6863:10;6850:12;:24::i;:::-;6842:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7124:24;7140:7;7124:11;:15;;:24;;;;:::i;:::-;7180:7;7164:24;;;;;;;;;;;;7049:147;:::o;10011:78::-;10050:4;10074:7;;;;;;;;;;;10067:14;;10011:78;:::o;13872:140::-;8274:7;:5;:7::i;:::-;8260:21;;:10;:21;;;8252:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13987:16;13964:8;;:40;;;;;;;;;;;;;;;;;;13872:140;:::o;13205:133::-;9192:22;9203:10;9192;:22::i;:::-;9184:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13323:7;13297:14;:23;13312:7;13297:23;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;13205:133;;:::o;9589:112::-;9647:4;9671:22;9685:7;9671:9;:13;;:22;;;;:::i;:::-;9664:29;;9589:112;;;:::o;7204:155::-;6850:24;6863:10;6850:12;:24::i;:::-;6842:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7282:27;7301:7;7282:11;:18;;:27;;;;:::i;:::-;7343:7;7325:26;;;;;;;;;;;;7204:155;:::o;7367:110::-;6850:24;6863:10;6850:12;:24::i;:::-;6842:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7427:10;:19;;:42;7447:21;7427:42;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7427:42:0;7367:110::o;11610:25::-;;;;;;;;;;;;;:::o;14508:1185::-;9308:7;;;;;;;;;;;9307:8;9299:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11570:5;14843:14;;14823:17;;14801:19;:39;:56;:64;;14793:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14909:14;:25;14924:9;14909:25;;;;;;;;;;;;;;;;;;;;;14901:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14975:85;14987:60;14998:5;15005:9;15016:19;15037:9;14987:10;:60::i;:::-;15049:10;14975:11;:85::i;:::-;14967:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15114:1;15106:10;;15097:5;:19;15093:69;;15133:17;15144:5;15133:10;:17::i;:::-;15093:69;15172:18;15193:8;:26;;;;;;;;;;;;15172:47;;15230:16;15249:9;15230:28;;15269:21;15293:45;15307:9;15318:19;15293:13;:45::i;:::-;15269:69;;15349:17;15369:24;15383:9;15369:13;:24::i;:::-;15349:44;;15415:43;15448:9;15415:28;15429:13;15415:9;:13;;:28;;;;:::i;:::-;:32;;:43;;;;:::i;:::-;15404:54;;15665:9;15476:209;;15515:9;15476:209;;15495:5;15476:209;;;15539:12;15566:9;15590:13;15618:9;15642:8;15476:209;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9347:1;;;;14508:1185;;;;;;:::o;11310:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10097:122::-;9192:22;9203:10;9192;:22::i;:::-;9184:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9308:7;;;;;;;;;;;9307:8;9299:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10173:4;10163:7;;:14;;;;;;;;;;;;;;;;;;10193:18;10200:10;10193:18;;;;;;;;;;;;;;;;;;;;;;10097:122::o;11343:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;8327:79::-;8365:7;8392:6;;;;;;;;;;;8385:13;;8327:79;:::o;6925:116::-;6985:4;7009:24;7025:7;7009:11;:15;;:24;;;;:::i;:::-;7002:31;;6925:116;;;:::o;9709:139::-;9192:22;9203:10;9192;:22::i;:::-;9184:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9780:22;9794:7;9780:9;:13;;:22;;;;:::i;:::-;9832:7;9818:22;;;;;;;;;;;;9709:139;:::o;11474:27::-;;;;;;;;;;;;;:::o;17651:437::-;17736:6;18077:3;17762:318;;17906:1;17893:12;:14;17883:25;17935:7;17969:6;18002:4;17840:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;17840:189:0;;;17808:240;;;;;;17762:312;;:318;;;;;;;;17755:325;;17651:437;;;;;:::o;9856:147::-;9192:22;9203:10;9192;:22::i;:::-;9184:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9930:25;9947:7;9930:9;:16;;:25;;;;:::i;:::-;9987:7;9971:24;;;;;;;;;;;;9856:147;:::o;14236:116::-;9192:22;9203:10;9192;:22::i;:::-;9184:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14329:15;14315:11;;:29;;;;;;;;;;;;;;;;;;14236:116;:::o;13092:105::-;9192:22;9203:10;9192;:22::i;:::-;9184:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13179:10;13167:9;;:22;;;;;;;;;;;;;;;;;;13092:105;:::o;14020:208::-;8274:7;:5;:7::i;:::-;8260:21;;:10;:21;;;8252:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14125:18;14108:14;:35;;;;14159:61;14195:14;;14159:61;;;;;;;;;;;;;;;;;;14020:208;:::o;19573:299::-;19658:4;19704:1;19683:23;;:9;;;;;;;;;;;:23;;;;19675:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19743:14;19760:65;19774:38;19803:8;19774:28;:38::i;:::-;19814:10;19760:13;:65::i;:::-;19743:82;;19854:9;;;;;;;;;;;19844:19;;:6;:19;;;19836:28;;;19573:299;;;;:::o;11396:24::-;;;;;;;;;;;;;:::o;11429:38::-;;;;;;;;;;;;;:::o;14360:140::-;9192:22;9203:10;9192;:22::i;:::-;9184:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14474:18;14454:17;:38;;;;14360:140;:::o;9465:116::-;9192:22;9203:10;9192;:22::i;:::-;9184:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9544:29;9563:9;9544:18;:29::i;:::-;9465:116;:::o;3243:269::-;3312:7;3498:4;3445:58;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3445:58:0;;;3435:69;;;;;;3428:76;;3243:269;;;:::o;1039:1930::-;1117:7;1200:2;1180:9;:16;:22;1176:74;;1235:1;1219:19;;;;1176:74;1319:9;1339;1359:7;1611:4;1600:9;1596:20;1590:27;1585:32;;1657:4;1646:9;1642:20;1636:27;1631:32;;1711:4;1700:9;1696:20;1690:27;1687:1;1682:36;1677:41;;2641:66;2636:1;2628:10;;:79;2624:129;;;2739:1;2724:17;;;;;;;2624:129;2774:2;2769:1;:7;;;;:18;;;;;2785:2;2780:1;:7;;;;2769:18;2765:68;;;2819:1;2804:17;;;;;;;2765:68;2937:24;2947:4;2953:1;2956;2959;2937:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2937:24:0;;;;;;;;2930:31;;;;;1039:1930;;;;;:::o;18096:252::-;18184:7;18204:20;18227:43;11570:5;18227:33;18241:18;18227:9;:13;;:33;;;;:::i;:::-;:37;;:43;;;;:::i;:::-;18204:66;;18281:6;:15;;:29;18297:12;18281:29;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18281:29:0;18328:12;18321:19;;;18096:252;;;;:::o;3721:148::-;3779:7;3812:1;3807;:6;;3799:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3860:1;3856;:5;3849:12;;3721:148;;;;:::o;18786:370::-;18883:7;18927:3;18906:25;;:9;:25;;;:52;;;;18948:10;18935:23;;:9;:23;;;18906:52;18903:92;;;18982:1;18975:8;;;;18903:92;19005:21;19029:44;11570:5;19029:34;19043:19;19029:9;:13;;:34;;;;:::i;:::-;:38;;:44;;;;:::i;:::-;19005:68;;19084:9;:18;;:33;19103:13;19084:33;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19084:33:0;19135:13;19128:20;;;18786:370;;;;;:::o;18356:422::-;18415:7;18451:1;18438:9;:14;;;18435:54;;;18476:1;18469:8;;;;18435:54;18552:1;18507:15;;;;;;;;;;;:30;;;18538:9;18507:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18507:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18507:41:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18507:41:0;;;;;;;;;;;;;;;;:46;;18499:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18588:17;18628:39;11570:5;18628:29;18642:14;;18628:9;:13;;:29;;;;:::i;:::-;:33;;:39;;;;:::i;:::-;18616:51;;18678:8;;;;;;;;;;;:25;;;18710:9;18721;18732:10;18678:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18678:65:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18678:65:0;;;;;18761:9;18754:16;;;18356:422;;;;:::o;5213:175::-;5291:18;5295:4;5301:7;5291:3;:18::i;:::-;5290:19;5282:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5376:4;5353;:11;;:20;5365:7;5353:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;5213:175;;:::o;5583:124::-;5655:4;5679;:11;;:20;5691:7;5679:20;;;;;;;;;;;;;;;;;;;;;;;;;5672:27;;5583:124;;;;:::o;5396:179::-;5476:18;5480:4;5486:7;5476:3;:18::i;:::-;5468:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5562:5;5539:4;:11;;:20;5551:7;5539:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;5396:179;;:::o;17460:183::-;17550:1;17523:16;:23;17540:5;17523:23;;;;;;;;;;;;:28;17515:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17623:12;17597:16;:23;17614:5;17597:23;;;;;;;;;;;:38;;;;17460:183;:::o;8535:190::-;8602:21;8626:7;:5;:7::i;:::-;8602:31;;8646:9;8637:6;;:18;;;;;;;;;;;;;;;;;;8707:9;8671:46;;8692:13;8671:46;;;;;;;;;;;;8535:190;;:::o;3877:236::-;3935:7;3964:1;3959;:6;3955:47;;;3989:1;3982:8;;;;3955:47;4012:9;4028:1;4024;:5;4012:17;;4057:1;4052;4048;:5;;;;;;:10;4040:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4104:1;4097:8;;;3877:236;;;;;:::o;4121:141::-;4179:7;4212:1;4207;:6;;4199:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4253:1;4249;:5;;;;;;4242:12;;4121:141;;;;:::o

Swarm Source

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