Contract 0x659163627e53d0627a99d5e15D960937d9B05357

 

Contract Overview

Balance:
1.47 BNB

BNB Value:
$933.11 (@ $634.77/BNB)

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x425d50dc107a8032a1a5b7e0048be0adff478aeb62a561db999927721ea7a8e8Set Soft Cap127340142021-11-17 22:04:3212 days 17 hrs agoSpore Engineering: Deployer IN  0x659163627e53d0627a99d5e15d960937d9b053570 BNB0.000139325
0xb55ab5610999f3d242569edb7deecfa95ac5520de4d8e018b96852e964558f50Set Hard Cap127339892021-11-17 22:03:1712 days 17 hrs agoSpore Engineering: Deployer IN  0x659163627e53d0627a99d5e15d960937d9b053570 BNB0.000139545
0xee7b16c6080371782f09822d81ab07d8fe8ac79cecbc81f123a30ef69182d5f8Buy Tokens123967232021-11-05 19:45:0224 days 19 hrs ago0xef0bb4d98745a19ef7ef5269a00ba7e2dfa67035 IN  0x659163627e53d0627a99d5e15d960937d9b053570.16 BNB0.000446675
0x8397597f503eaaefa40eef5d0fa3eb9eef80a3d4a09dbe2b383736038d870a77Buy Tokens123563672021-11-04 9:22:1426 days 5 hrs ago0xfc3628072a4566a412ea93937169dec1ac4d64de IN  0x659163627e53d0627a99d5e15d960937d9b053570.1 BNB0.000446675
0xb04b23923eb4aaacc895dcd4a71c78806bb0f62b7e79ff0c25fc272f73d31642Buy Tokens123506892021-11-04 4:16:3526 days 11 hrs ago0x979185a97875250b9cb251218232c86e037f0e58 IN  0x659163627e53d0627a99d5e15d960937d9b053570.04 BNB0.000446675
0x201f448060a810270a60ef2d15c38470676359ca0c420844bf9a22146cfcc487Buy Tokens123307452021-11-03 10:58:5227 days 4 hrs ago0x36b964cb65ad90df1dd76d4a6f2b9c39c9348094 IN  0x659163627e53d0627a99d5e15d960937d9b053570.1 BNB0.000446675
0x2bf611dca9f0afddca858570ffdc8332e4ff00fbcbea4c55b92178f1d0394e28Buy Tokens123087492021-11-02 15:56:5027 days 23 hrs ago0xa6c6a2e63c32e909f071fb5e879ce472f71ad114 IN  0x659163627e53d0627a99d5e15d960937d9b053570.02 BNB0.000446675
0x5dfc6794dc59e1fe7a2a63fcb90795d91fe1ecc3e636ee6e7b97fa326ef1f664Buy Tokens123052582021-11-02 13:00:2428 days 2 hrs ago0x5953d009299f31fac1d7b08176cc7a7a571405cb IN  0x659163627e53d0627a99d5e15d960937d9b053570.03 BNB0.000296675
0xf0b8109a3f4e226eb6d1e76b8eea8d1e361a36fe6c90bf3fec965a79f091b7aaBuy Tokens122647932021-11-01 2:12:1529 days 13 hrs agoSpore Engineering: Deployer IN  0x659163627e53d0627a99d5e15d960937d9b053570.02 BNB0.000296675
0x670aa8d7a42f2bc9667481273703c0f149c6f7fcd965090553bfca96dc6bddb1Buy Tokens122284832021-10-30 19:46:4730 days 19 hrs ago0x369eeb3b822136bf56859c25a693dc347869834d IN  0x659163627e53d0627a99d5e15d960937d9b053570.5 BNB0.000446675
0xe343a428d67171a05d84762ac3f7466ffdb0dec8af58ad94f7b0d7e090260b57Buy Tokens122054882021-10-30 0:23:1631 days 14 hrs ago0x084de16ff152c514bab5fc345319680afc11b2b0 IN  0x659163627e53d0627a99d5e15d960937d9b053570.09 BNB0.000446675
0xc45acaf585e7a4e565231794c8c372f50cd30fe222ea419aa4dd094b776ce48dBuy Tokens122040482021-10-29 23:10:3331 days 16 hrs ago0x5268c69ee86e60c5df5ab15b6944ac1c3ce819c9 IN  0x659163627e53d0627a99d5e15d960937d9b053570.03 BNB0.000446675
0x9c2617a9f3003f706140dec3ef4b0596eb2db4c68282e4f67734ae1dd6fb37dfBuy Tokens121961672021-10-29 15:55:5531 days 23 hrs agoSpore Engineering: Deployer IN  0x659163627e53d0627a99d5e15d960937d9b053570.02 BNB0.000296675
0x9a6985fda317166e22c084fa799195aa8c0272761c4b75f520b696bbde3692f7Buy Tokens121958572021-10-29 15:39:4431 days 23 hrs ago0x5953d009299f31fac1d7b08176cc7a7a571405cb IN  0x659163627e53d0627a99d5e15d960937d9b053570.02 BNB0.000296675
0xb6b049794b19daf87c45ba4010cbd46bd20f7ab694512859ec3a25acd67210b5Buy Tokens121958432021-10-29 15:39:0231 days 23 hrs ago0x5953d009299f31fac1d7b08176cc7a7a571405cb IN  0x659163627e53d0627a99d5e15d960937d9b053570.04 BNB0.000296675
0x1ae618828f9d0554bc845dbd4d7cb4c29c2ca61736202d8a9be8d2196cbdc9f2Buy Tokens121955552021-10-29 15:23:3531 days 23 hrs ago0x75da1bf00d57c01bf3e817a2e5c7bdbf6b1e7766 IN  0x659163627e53d0627a99d5e15d960937d9b053570.06 BNB0.000446675
0xb6cf490260f3c9d4f545287446fdb38e6a85f2a198cbec00e1127a2f7ff0339aBuy Tokens121950712021-10-29 14:54:5332 days 23 mins agoSpore Engineering: Deployer IN  0x659163627e53d0627a99d5e15d960937d9b053570.02 BNB0.000296675
0xd242961707b49be7675dc1afef98b05341b0249e86eaee599adb90c1661a4929Buy Tokens121797542021-10-29 2:05:3032 days 13 hrs ago0xafd5369241e4aa18bd86f7bfb614706a2f3017f9 IN  0x659163627e53d0627a99d5e15d960937d9b053570.02 BNB0.000446675
0x20a0b2f6840c5b8ebdb81aed3f9d206359fbdbfaebaad757a06c46145cf75e6eBuy Tokens121775692021-10-29 0:15:1132 days 15 hrs agoSpore Engineering: Deployer IN  0x659163627e53d0627a99d5e15d960937d9b053570.08 BNB0.000296675
0xdf047b3a1c0218fe28887df191b03020f9ba3e86b0a8e9fbff94a6402de1fffbBuy Tokens121775412021-10-29 0:13:4732 days 15 hrs ago0x5953d009299f31fac1d7b08176cc7a7a571405cb IN  0x659163627e53d0627a99d5e15d960937d9b053570.08 BNB0.000296675
0x9f1046c54b4d5671a53f645c49f6c015d5889646e8f78c92b9ba7fa03c941b7fBuy Tokens121772892021-10-29 0:01:1132 days 15 hrs ago0x5953d009299f31fac1d7b08176cc7a7a571405cb IN  0x659163627e53d0627a99d5e15d960937d9b053570.02 BNB0.000446675
0xe9116aea4579c85d1c4341a8a1621669dc0dc2747553dc41e1f1e674a1145819Buy Tokens121772792021-10-29 0:00:4132 days 15 hrs agoSpore Engineering: Deployer IN  0x659163627e53d0627a99d5e15d960937d9b053570.02 BNB0.000521675
0x6c21ee6cfd22fd9f96fafa68725519a6d6bc3ab99891959dcfe344bcef5f365fStart Presale121649702021-10-28 13:28:5733 days 1 hr agoSpore Engineering: Deployer IN  0x659163627e53d0627a99d5e15d960937d9b053570 BNB0.000289205
0x741e77f2b9ad83a5ed1e8dc7a2554d4244a960370a456f5137cacdc69d231868Set Token121649192021-10-28 13:26:1433 days 1 hr agoSpore Engineering: Deployer IN  0x659163627e53d0627a99d5e15d960937d9b053570 BNB0.00014473
0xab0ac4330e3ebea60607e8260bf0e8def0155ff24edcf79fecef0360ea81ae07Refund Me121646082021-10-28 13:10:1933 days 2 hrs agoSpore Engineering: Deployer IN  0x659163627e53d0627a99d5e15d960937d9b053570 BNB0.000127035
[ Download CSV Export 
Latest 3 internal transactions
Parent Txn Hash Block From To Value
0xab0ac4330e3ebea60607e8260bf0e8def0155ff24edcf79fecef0360ea81ae07121646082021-10-28 13:10:1933 days 2 hrs ago 0x659163627e53d0627a99d5e15d960937d9b05357Spore Engineering: Deployer0.02 BNB
0xdf96c773cb41980b4d6d086257b98187c6a1ce17303901460eecba784e8a46c4121632892021-10-28 12:04:1333 days 3 hrs ago 0x659163627e53d0627a99d5e15d960937d9b05357Spore Engineering: Deployer0.02 BNB
0x2dfe17122c0b2ce00016a8498758703c55f6b854778aef0d82903192d21b2041121379842021-10-27 14:51:4134 days 26 mins ago 0x659163627e53d0627a99d5e15d960937d9b05357Spore Engineering: Deployer0.1 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
OilPresale

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-10-27
*/

// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.9;

library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";

    function toString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }

    function toHexString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0x00";
        }
        uint256 temp = value;
        uint256 length = 0;
        while (temp != 0) {
            length++;
            temp >>= 8;
        }
        return toHexString(value, length);
    }

    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _HEX_SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }
}

library EnumerableSet {
    struct Set {
        bytes32[] _values;
        mapping(bytes32 => uint256) _indexes;
    }

    function _add(Set storage set, bytes32 value) private returns (bool) {
        if (!_contains(set, value)) {
            set._values.push(value);
            set._indexes[value] = set._values.length;
            return true;
        } else {
            return false;
        }
    }

    function _remove(Set storage set, bytes32 value) private returns (bool) {
        uint256 valueIndex = set._indexes[value];

        if (valueIndex != 0) {
            uint256 toDeleteIndex = valueIndex - 1;
            uint256 lastIndex = set._values.length - 1;

            if (lastIndex != toDeleteIndex) {
                bytes32 lastvalue = set._values[lastIndex];

                set._values[toDeleteIndex] = lastvalue;
                set._indexes[lastvalue] = valueIndex;
            }

            set._values.pop();

            delete set._indexes[value];

            return true;
        } else {
            return false;
        }
    }

    function _contains(Set storage set, bytes32 value) private view returns (bool) {
        return set._indexes[value] != 0;
    }

    function _length(Set storage set) private view returns (uint256) {
        return set._values.length;
    }

    function _at(Set storage set, uint256 index) private view returns (bytes32) {
        return set._values[index];
    }

    function _values(Set storage set) private view returns (bytes32[] memory) {
        return set._values;
    }

    struct Bytes32Set {
        Set _inner;
    }

    function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {
        return _add(set._inner, value);
    }

    function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {
        return _remove(set._inner, value);
    }

    function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {
        return _contains(set._inner, value);
    }

    function length(Bytes32Set storage set) internal view returns (uint256) {
        return _length(set._inner);
    }

    function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {
        return _at(set._inner, index);
    }

    function values(Bytes32Set storage set) internal view returns (bytes32[] memory) {
        return _values(set._inner);
    }

    struct AddressSet {
        Set _inner;
    }

    function add(AddressSet storage set, address value) internal returns (bool) {
        return _add(set._inner, bytes32(uint256(uint160(value))));
    }

    function remove(AddressSet storage set, address value) internal returns (bool) {
        return _remove(set._inner, bytes32(uint256(uint160(value))));
    }

    function contains(AddressSet storage set, address value) internal view returns (bool) {
        return _contains(set._inner, bytes32(uint256(uint160(value))));
    }

    function length(AddressSet storage set) internal view returns (uint256) {
        return _length(set._inner);
    }

    function at(AddressSet storage set, uint256 index) internal view returns (address) {
        return address(uint160(uint256(_at(set._inner, index))));
    }

    function values(AddressSet storage set) internal view returns (address[] memory) {
        bytes32[] memory store = _values(set._inner);
        address[] memory result;

        assembly {
            result := store
        }

        return result;
    }

    struct UintSet {
        Set _inner;
    }

    function add(UintSet storage set, uint256 value) internal returns (bool) {
        return _add(set._inner, bytes32(value));
    }

    function remove(UintSet storage set, uint256 value) internal returns (bool) {
        return _remove(set._inner, bytes32(value));
    }

    function contains(UintSet storage set, uint256 value) internal view returns (bool) {
        return _contains(set._inner, bytes32(value));
    }

    function length(UintSet storage set) internal view returns (uint256) {
        return _length(set._inner);
    }

    function at(UintSet storage set, uint256 index) internal view returns (uint256) {
        return uint256(_at(set._inner, index));
    }

    function values(UintSet storage set) internal view returns (uint256[] memory) {
        bytes32[] memory store = _values(set._inner);
        uint256[] memory result;

        assembly {
            result := store
        }

        return result;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

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

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

interface IAccessControl {
    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);
    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);
    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);

    function hasRole(bytes32 role, address account) external view returns (bool);
    function getRoleAdmin(bytes32 role) external view returns (bytes32);
    function grantRole(bytes32 role, address account) external;
    function revokeRole(bytes32 role, address account) external;
    function renounceRole(bytes32 role, address account) external;
}

interface IAccessControlEnumerable is IAccessControl {
    function getRoleMember(bytes32 role, uint256 index) external view returns (address);
    function getRoleMemberCount(bytes32 role) external view returns (uint256);
}

abstract contract ReentrancyGuard {
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    modifier nonReentrant() {
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        _status = _ENTERED;
        _;

        _status = _NOT_ENTERED;
    }
}

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

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

abstract contract Pausable is Context {
    event Paused(address account);
    event Unpaused(address account);

    bool private _paused;

    constructor() {
        _paused = false;
    }

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

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

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

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

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

abstract contract ERC165 is IERC165 {
    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IERC165).interfaceId;
    }
}

abstract contract AccessControl is Context, IAccessControl, ERC165 {
    struct RoleData {
        mapping(address => bool) members;
        bytes32 adminRole;
    }

    mapping(bytes32 => RoleData) private _roles;
    bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;

    modifier onlyRole(bytes32 role) {
        _checkRole(role, _msgSender());
        _;
    }

    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);
    }

    function hasRole(bytes32 role, address account) public view override returns (bool) {
        return _roles[role].members[account];
    }

    function _checkRole(bytes32 role, address account) internal view {
        if (!hasRole(role, account)) {
            revert(
                string(
                    abi.encodePacked(
                        "AccessControl: account ",
                        Strings.toHexString(uint160(account), 20),
                        " is missing role ",
                        Strings.toHexString(uint256(role), 32)
                    )
                )
            );
        }
    }

    function getRoleAdmin(bytes32 role) public view override returns (bytes32) {
        return _roles[role].adminRole;
    }

    function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {
        _grantRole(role, account);
    }

    function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {
        _revokeRole(role, account);
    }

    function renounceRole(bytes32 role, address account) public virtual override {
        require(account == _msgSender(), "AccessControl: can only renounce roles for self");

        _revokeRole(role, account);
    }

    function _setupRole(bytes32 role, address account) internal virtual {
        _grantRole(role, account);
    }

    function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {
        bytes32 previousAdminRole = getRoleAdmin(role);
        _roles[role].adminRole = adminRole;
        emit RoleAdminChanged(role, previousAdminRole, adminRole);
    }

    function _grantRole(bytes32 role, address account) internal virtual {
        if (!hasRole(role, account)) {
            _roles[role].members[account] = true;
            emit RoleGranted(role, account, _msgSender());
        }
    }

    function _revokeRole(bytes32 role, address account) internal virtual {
        if (hasRole(role, account)) {
            _roles[role].members[account] = false;
            emit RoleRevoked(role, account, _msgSender());
        }
    }
}

abstract contract AccessControlEnumerable is IAccessControlEnumerable, AccessControl {
    using EnumerableSet for EnumerableSet.AddressSet;

    mapping(bytes32 => EnumerableSet.AddressSet) private _roleMembers;

    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IAccessControlEnumerable).interfaceId || super.supportsInterface(interfaceId);
    }

    function getRoleMember(bytes32 role, uint256 index) public view override returns (address) {
        return _roleMembers[role].at(index);
    }

    function getRoleMemberCount(bytes32 role) public view override returns (uint256) {
        return _roleMembers[role].length();
    }

    function grantRole(bytes32 role, address account) public virtual override(AccessControl, IAccessControl) {
        super.grantRole(role, account);
        _roleMembers[role].add(account);
    }

    function revokeRole(bytes32 role, address account) public virtual override(AccessControl, IAccessControl) {
        super.revokeRole(role, account);
        _roleMembers[role].remove(account);
    }

    function renounceRole(bytes32 role, address account) public virtual override(AccessControl, IAccessControl) {
        super.renounceRole(role, account);
        _roleMembers[role].remove(account);
    }

    function _setupRole(bytes32 role, address account) internal virtual override {
        super._setupRole(role, account);
        _roleMembers[role].add(account);
    }
}

contract OilPresale is ReentrancyGuard, Pausable, AccessControlEnumerable {
    
    IERC20 public token;
    address payable public wallet;
    bool public startRefund = false;
    
    bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE");
    
    uint256 public availableTokensPresale;
    uint256 public endPresale;
    uint256 public minPurchase;
    uint256 public maxPurchase;
    uint256 public hardCap;
    uint256 public softCap;
    uint256 public weiRaised;
    uint256 public rate;
    
    mapping (address => uint256) public contributions;
    mapping (address => uint256) public tokensBack;
    
    event TokensPurchased(address purchaser, uint256 value, uint256 amount);
    event TokenClaimed(address purchaser, uint256 amount);
    event Refund(address recipient, uint256 amount);
    
    error RevertTokenPurchase(string);
    
    constructor(uint256 _rate, address payable _wallet, IERC20 _token) {
        _setupRole(DEFAULT_ADMIN_ROLE, msg.sender);
        _setupRole(PAUSER_ROLE, msg.sender);
        
        rate = _rate;
        wallet = _wallet;
        token = _token;
    }
    
    modifier onlyOwner() {
        require(hasRole(DEFAULT_ADMIN_ROLE, msg.sender), "must have admin role to pause");
        _;
    }
    
    modifier presaleIsActive() {
        uint256 weiAmount = msg.value;
        address beneficiary = msg.sender;
        
        if (endPresale == 0 || block.timestamp > endPresale || availableTokensPresale == 0) {
            revert RevertTokenPurchase("Pre-sale is over");
        }
        
        if (weiAmount == 0) {
            revert RevertTokenPurchase("weiAmount is 0");
        }
        
        if (weiAmount < minPurchase) {
            revert RevertTokenPurchase("have to send at least: 0.1 BNB / 200 OIL");
        }
        
        if ((contributions[beneficiary] + weiAmount) > maxPurchase) {
            revert RevertTokenPurchase("cannot buy more than: 1 BNB / 2000 OIL");
        }
        
        if ((weiRaised + weiAmount) > hardCap) {
            revert RevertTokenPurchase("Hard Cap reached");
        }
        
        if (beneficiary == address(this)) {
            revert RevertTokenPurchase("beneficiary is the contract address");
        }
        
        _;
    }
    
    function setWalletReceiver(address payable newWallet) external onlyOwner {
        wallet = newWallet;
    }
    
    function setToken(IERC20 newToken) external onlyOwner {
        token = newToken;
    }
    
    function setHardCap(uint256 value) external onlyOwner {
        hardCap = value;
    }
    
    function setSoftCap(uint256 value) external onlyOwner {
        softCap = value;
    }
    
    function setMaxPurchase(uint256 value) external onlyOwner {
        maxPurchase = value;
    }
    
     function setMinPurchase(uint256 value) external onlyOwner {
        minPurchase = value;
    }
    
    function setRate(uint256 newRate) external onlyOwner {
        rate = newRate;
    }
    
    function setEndPresale(uint256 newEndPresale) external onlyOwner {
        endPresale = newEndPresale;
    }
    
    function setAvailableTokens(uint256 amount) public onlyOwner {
        if(amount == 0) {
            availableTokensPresale = token.balanceOf(address(this));
        }
        else {
            availableTokensPresale = amount;
        }
    }
    
    function pause() public virtual {
        require(hasRole(PAUSER_ROLE, msg.sender), "must have pauser role to pause");
        _pause();
    }

    function unpause() public virtual {
        require(hasRole(PAUSER_ROLE, msg.sender), "must have pauser role to unpause");
        _unpause();
    }
    
    function startPresale(uint _endDate, uint _minPurchase, uint _maxPurchase, uint _softCap, uint _hardCap) external onlyOwner {
        
        availableTokensPresale = token.balanceOf(address(this));
        
        require(_endDate > block.timestamp, 'duration should be > 0');
        require(_softCap < _hardCap, "Softcap must be lower than 1000 BNB");
        require(_minPurchase < _maxPurchase, "minPurchase must be lower than 1 BNB");
        require(availableTokensPresale > 0 , 'availableTokens must be > 0');
        require(_minPurchase > 0, 'minPurchase should > 0');
        
        startRefund = false;
        weiRaised = 0;
        
        endPresale = _endDate; 
        minPurchase = _minPurchase;
        maxPurchase = _maxPurchase;
        softCap = _softCap;
        hardCap = _hardCap;
    }
    
    function stopPresale() external onlyOwner {
        if(weiRaised >= softCap) {
            wallet.transfer(address(this).balance); //bnb is retrieved from contract
            if(availableTokensPresale > 0) {
                token.transfer(wallet, availableTokensPresale); //remaining presale oil tokens are retrieved from contract   
            }
        }
        else{
            endPresale = 0;
            startRefund = true;
            token.transfer(wallet, token.balanceOf(address(this))); //all presale oil tokens are retrieved from contract
        }
    }
    
    function buyTokens() external nonReentrant whenNotPaused presaleIsActive payable {
        uint256 weiAmount = msg.value;
        address beneficiary = msg.sender;
        uint256 tokens = (weiAmount/rate)*10**18;
        
        weiRaised = weiRaised+weiAmount;
        availableTokensPresale = availableTokensPresale-tokens;
        contributions[beneficiary] = contributions[beneficiary]+weiAmount;
        tokensBack[beneficiary] = tokensBack[beneficiary]+tokens;
        
        emit TokensPurchased(msg.sender, weiAmount, tokens);
    }
    
    function claimTokens() external nonReentrant whenNotPaused {
        require(endPresale < block.timestamp, 'Presale should not be active');
        require(startRefund == false, 'refund is currently active');
        
        uint256 amount = tokensBack[msg.sender];
        
        require(amount > 0, 'you didnt purchased any tokens');
        
        contributions[msg.sender] = 0;
        tokensBack[msg.sender] = 0;
        
        token.transfer(msg.sender, amount);
        
        emit TokenClaimed(msg.sender, amount);
    }
    
    function refundMe() external nonReentrant whenNotPaused {
        require(endPresale < block.timestamp, 'Presale should not be active');
        require(startRefund == true, 'no refund available');
        
        uint256 amount = contributions[msg.sender];
        
        require(amount > 0, 'you have no BNB to claim');
        require(address(this).balance >= amount, 'contract have no BNB to claim');
        
		contributions[msg.sender] = 0;
        tokensBack[msg.sender] = 0;
        
	    address payable recipient = payable(msg.sender);
		recipient.transfer(amount);
		
		emit Refund(msg.sender, amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"_rate","type":"uint256"},{"internalType":"address payable","name":"_wallet","type":"address"},{"internalType":"contract IERC20","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"RevertTokenPurchase","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Refund","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"purchaser","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokenClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"purchaser","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokensPurchased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"availableTokensPresale","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"claimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"contributions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endPresale","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"hardCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPurchase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minPurchase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"refundMe","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setAvailableTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newEndPresale","type":"uint256"}],"name":"setEndPresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setHardCap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setMaxPurchase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setMinPurchase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newRate","type":"uint256"}],"name":"setRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setSoftCap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"newToken","type":"address"}],"name":"setToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newWallet","type":"address"}],"name":"setWalletReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"softCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_endDate","type":"uint256"},{"internalType":"uint256","name":"_minPurchase","type":"uint256"},{"internalType":"uint256","name":"_maxPurchase","type":"uint256"},{"internalType":"uint256","name":"_softCap","type":"uint256"},{"internalType":"uint256","name":"_hardCap","type":"uint256"}],"name":"startPresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startRefund","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stopPresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokensBack","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"wallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"weiRaised","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

60806040526000600560146101000a81548160ff0219169083151502179055503480156200002c57600080fd5b50604051620046fd380380620046fd8339818101604052810190620000529190620004e4565b60016000819055506000600160006101000a81548160ff0219169083151502179055506200008a6000801b336200014e60201b60201c565b620000bc7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336200014e60201b60201c565b82600d8190555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505062000540565b6200016582826200019660201b620021aa1760201c565b620001918160036000858152602001908152602001600020620001ac60201b620021b81790919060201c565b505050565b620001a88282620001e460201b60201c565b5050565b6000620001dc836000018373ffffffffffffffffffffffffffffffffffffffff1660001b620002d660201b60201c565b905092915050565b620001f682826200035060201b60201c565b620002d25760016002600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000277620003bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620002ea8383620003c360201b60201c565b620003455782600001829080600181540180825580915050600190039060005260206000200160009091909190915055826000018054905083600101600084815260200190815260200160002081905550600190506200034a565b600090505b92915050565b60006002600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b600080836001016000848152602001908152602001600020541415905092915050565b600080fd5b6000819050919050565b6200040081620003eb565b81146200040c57600080fd5b50565b6000815190506200042081620003f5565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004538262000426565b9050919050565b620004658162000446565b81146200047157600080fd5b50565b60008151905062000485816200045a565b92915050565b6000620004988262000426565b9050919050565b6000620004ac826200048b565b9050919050565b620004be816200049f565b8114620004ca57600080fd5b50565b600081519050620004de81620004b3565b92915050565b6000806000606084860312156200050057620004ff620003e6565b5b600062000510868287016200040f565b9350506020620005238682870162000474565b92505060406200053686828701620004cd565b9150509250925092565b6141ad80620005506000396000f3fe60806040526004361061023b5760003560e01c80639010d07c1161012e578063d547741f116100ab578063e8307d001161006f578063e8307d0014610806578063f6d893ec1461082f578063fb76c4d514610858578063fb86a40414610881578063fc0c546a146108ac5761023b565b8063d547741f14610723578063d572d5f71461074c578063d5cf5c7214610775578063e06c85f31461079e578063e63ab1e9146107db5761023b565b8063a43be57b116100f2578063a43be57b1461065d578063adf4a14414610688578063ca15c873146106b3578063d0febe4c146106f0578063d18d944b146106fa5761023b565b80639010d07c14610562578063906a26e01461059f57806391d14854146105ca578063977b055b14610607578063a217fddf146106325761023b565b80634042b66f116101bc5780635a9e426b116101805780635a9e426b146104b75780635c975abb146104ce5780636d561d04146104f957806371189742146105225780638456cb591461054b5761023b565b80634042b66f146103e257806342e94c901461040d57806348c54b9d1461044a578063521eb2731461046157806352df7ecd1461048c5761023b565b80632f2ff15d116102035780632f2ff15d1461032557806333b5b62e1461034e57806334fcf4371461037957806336568abe146103a25780633f4ba83a146103cb5761023b565b806301ffc9a714610240578063144fa6d71461027d5780631ad2ad1a146102a6578063248a9ca3146102bd5780632c4e722e146102fa575b600080fd5b34801561024c57600080fd5b5061026760048036038101906102629190612c28565b6108d7565b6040516102749190612c70565b60405180910390f35b34801561028957600080fd5b506102a4600480360381019061029f9190612cfb565b610951565b005b3480156102b257600080fd5b506102bb6109e1565b005b3480156102c957600080fd5b506102e460048036038101906102df9190612d5e565b610d28565b6040516102f19190612d9a565b60405180910390f35b34801561030657600080fd5b5061030f610d48565b60405161031c9190612dce565b60405180910390f35b34801561033157600080fd5b5061034c60048036038101906103479190612e15565b610d4e565b005b34801561035a57600080fd5b50610363610d82565b6040516103709190612dce565b60405180910390f35b34801561038557600080fd5b506103a0600480360381019061039b9190612e81565b610d88565b005b3480156103ae57600080fd5b506103c960048036038101906103c49190612e15565b610dde565b005b3480156103d757600080fd5b506103e0610e12565b005b3480156103ee57600080fd5b506103f7610e85565b6040516104049190612dce565b60405180910390f35b34801561041957600080fd5b50610434600480360381019061042f9190612eae565b610e8b565b6040516104419190612dce565b60405180910390f35b34801561045657600080fd5b5061045f610ea3565b005b34801561046d57600080fd5b506104766111d8565b6040516104839190612efc565b60405180910390f35b34801561049857600080fd5b506104a16111fe565b6040516104ae9190612dce565b60405180910390f35b3480156104c357600080fd5b506104cc611204565b005b3480156104da57600080fd5b506104e3611519565b6040516104f09190612c70565b60405180910390f35b34801561050557600080fd5b50610520600480360381019061051b9190612f17565b611530565b005b34801561052e57600080fd5b5061054960048036038101906105449190612e81565b6117c8565b005b34801561055757600080fd5b5061056061181e565b005b34801561056e57600080fd5b5061058960048036038101906105849190612f92565b611891565b6040516105969190612fe1565b60405180910390f35b3480156105ab57600080fd5b506105b46118c0565b6040516105c19190612dce565b60405180910390f35b3480156105d657600080fd5b506105f160048036038101906105ec9190612e15565b6118c6565b6040516105fe9190612c70565b60405180910390f35b34801561061357600080fd5b5061061c611931565b6040516106299190612dce565b60405180910390f35b34801561063e57600080fd5b50610647611937565b6040516106549190612d9a565b60405180910390f35b34801561066957600080fd5b5061067261193e565b60405161067f9190612dce565b60405180910390f35b34801561069457600080fd5b5061069d611944565b6040516106aa9190612c70565b60405180910390f35b3480156106bf57600080fd5b506106da60048036038101906106d59190612d5e565b611957565b6040516106e79190612dce565b60405180910390f35b6106f861197b565b005b34801561070657600080fd5b50610721600480360381019061071c9190612e81565b611e10565b005b34801561072f57600080fd5b5061074a60048036038101906107459190612e15565b611e66565b005b34801561075857600080fd5b50610773600480360381019061076e9190613028565b611e9a565b005b34801561078157600080fd5b5061079c60048036038101906107979190612e81565b611f2a565b005b3480156107aa57600080fd5b506107c560048036038101906107c09190612eae565b611f80565b6040516107d29190612dce565b60405180910390f35b3480156107e757600080fd5b506107f0611f98565b6040516107fd9190612d9a565b60405180910390f35b34801561081257600080fd5b5061082d60048036038101906108289190612e81565b611fbc565b005b34801561083b57600080fd5b5061085660048036038101906108519190612e81565b612012565b005b34801561086457600080fd5b5061087f600480360381019061087a9190612e81565b612128565b005b34801561088d57600080fd5b5061089661217e565b6040516108a39190612dce565b60405180910390f35b3480156108b857600080fd5b506108c1612184565b6040516108ce91906130b4565b60405180910390f35b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061094a5750610949826121e8565b5b9050919050565b61095e6000801b336118c6565b61099d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109949061312c565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6109ee6000801b336118c6565b610a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a249061312c565b60405180910390fd5b600b54600c5410610b8657600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610aa0573d6000803e3d6000fd5b5060006006541115610b8157600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166006546040518363ffffffff1660e01b8152600401610b2d92919061316d565b602060405180830381600087803b158015610b4757600080fd5b505af1158015610b5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7f91906131c2565b505b610d26565b60006007819055506001600560146101000a81548160ff021916908315150217905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c659190612fe1565b60206040518083038186803b158015610c7d57600080fd5b505afa158015610c91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb59190613204565b6040518363ffffffff1660e01b8152600401610cd292919061316d565b602060405180830381600087803b158015610cec57600080fd5b505af1158015610d00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2491906131c2565b505b565b600060026000838152602001908152602001600020600101549050919050565b600d5481565b610d588282612262565b610d7d81600360008581526020019081526020016000206121b890919063ffffffff16565b505050565b60085481565b610d956000801b336118c6565b610dd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcb9061312c565b60405180910390fd5b80600d8190555050565b610de8828261228b565b610e0d816003600085815260200190815260200160002061230e90919063ffffffff16565b505050565b610e3c7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336118c6565b610e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e729061327d565b60405180910390fd5b610e8361233e565b565b600c5481565b600e6020528060005260406000206000915090505481565b60026000541415610ee9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee0906132e9565b60405180910390fd5b6002600081905550610ef9611519565b15610f39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3090613355565b60405180910390fd5b4260075410610f7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f74906133c1565b60405180910390fd5b60001515600560149054906101000a900460ff16151514610fd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fca9061342d565b60405180910390fd5b6000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811161105a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105190613499565b60405180910390fd5b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016111419291906134b9565b602060405180830381600087803b15801561115b57600080fd5b505af115801561116f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119391906131c2565b507fe42df0d9493dfd0d7f69902c895b94c190a53e8c27876a86f45e7c997d9d8f7c33826040516111c59291906134b9565b60405180910390a1506001600081905550565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b6002600054141561124a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611241906132e9565b60405180910390fd5b600260008190555061125a611519565b1561129a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129190613355565b60405180910390fd5b42600754106112de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d5906133c1565b60405180910390fd5b60011515600560149054906101000a900460ff16151514611334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132b9061352e565b60405180910390fd5b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081116113bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b29061359a565b60405180910390fd5b804710156113fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f590613606565b60405180910390fd5b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060003390508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156114d3573d6000803e3d6000fd5b507fbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d33836040516115059291906134b9565b60405180910390a150506001600081905550565b6000600160009054906101000a900460ff16905090565b61153d6000801b336118c6565b61157c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115739061312c565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016115d79190612fe1565b60206040518083038186803b1580156115ef57600080fd5b505afa158015611603573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116279190613204565b60068190555042851161166f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166690613672565b60405180910390fd5b8082106116b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a890613704565b60405180910390fd5b8284106116f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ea90613796565b60405180910390fd5b600060065411611738576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172f90613802565b60405180910390fd5b6000841161177b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117729061386e565b60405180910390fd5b6000600560146101000a81548160ff0219169083151502179055506000600c8190555084600781905550836008819055508260098190555081600b8190555080600a819055505050505050565b6117d56000801b336118c6565b611814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180b9061312c565b60405180910390fd5b8060098190555050565b6118487f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336118c6565b611887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187e906138da565b60405180910390fd5b61188f6123e0565b565b60006118b8826003600086815260200190815260200160002061248290919063ffffffff16565b905092915050565b600b5481565b60006002600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60095481565b6000801b81565b60075481565b600560149054906101000a900460ff1681565b60006119746003600084815260200190815260200160002061249c565b9050919050565b600260005414156119c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b8906132e9565b60405180910390fd5b60026000819055506119d1611519565b15611a11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0890613355565b60405180910390fd5b6000349050600033905060006007541480611a2d575060075442115b80611a3a57506000600654145b15611a7a576040517f85b45df0000000000000000000000000000000000000000000000000000000008152600401611a7190613946565b60405180910390fd5b6000821415611abe576040517f85b45df0000000000000000000000000000000000000000000000000000000008152600401611ab5906139b2565b60405180910390fd5b600854821015611b03576040517f85b45df0000000000000000000000000000000000000000000000000000000008152600401611afa90613a44565b60405180910390fd5b60095482600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b519190613a93565b1115611b92576040517f85b45df0000000000000000000000000000000000000000000000000000000008152600401611b8990613b5b565b60405180910390fd5b600a5482600c54611ba39190613a93565b1115611be4576040517f85b45df0000000000000000000000000000000000000000000000000000000008152600401611bdb90613bc7565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c53576040517f85b45df0000000000000000000000000000000000000000000000000000000008152600401611c4a90613c59565b60405180910390fd5b600034905060003390506000670de0b6b3a7640000600d5484611c769190613ca8565b611c809190613cd9565b905082600c54611c909190613a93565b600c8190555080600654611ca49190613d33565b60068190555082600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cf59190613a93565b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d839190613a93565b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f8fafebcaf9d154343dad25669bfa277f4fbacd7ac6b0c4fed522580e040a0f33338483604051611df993929190613d67565b60405180910390a150505050506001600081905550565b611e1d6000801b336118c6565b611e5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e539061312c565b60405180910390fd5b80600a8190555050565b611e7082826124b1565b611e95816003600085815260200190815260200160002061230e90919063ffffffff16565b505050565b611ea76000801b336118c6565b611ee6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edd9061312c565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611f376000801b336118c6565b611f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6d9061312c565b60405180910390fd5b80600b8190555050565b600f6020528060005260406000206000915090505481565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b611fc96000801b336118c6565b612008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fff9061312c565b60405180910390fd5b8060088190555050565b61201f6000801b336118c6565b61205e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120559061312c565b60405180910390fd5b600081141561211d57600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016120c29190612fe1565b60206040518083038186803b1580156120da57600080fd5b505afa1580156120ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121129190613204565b600681905550612125565b806006819055505b50565b6121356000801b336118c6565b612174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216b9061312c565b60405180910390fd5b8060078190555050565b600a5481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6121b482826124da565b5050565b60006121e0836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6125bb565b905092915050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061225b575061225a8261262b565b5b9050919050565b61226b82610d28565b61227c81612277612695565b61269d565b61228683836124da565b505050565b612293612695565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f790613e10565b60405180910390fd5b61230a828261273a565b5050565b6000612336836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61281c565b905092915050565b612346611519565b612385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237c90613e7c565b60405180910390fd5b6000600160006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6123c9612695565b6040516123d69190612fe1565b60405180910390a1565b6123e8611519565b15612428576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241f90613355565b60405180910390fd5b60018060006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861246b612695565b6040516124789190612fe1565b60405180910390a1565b60006124918360000183612930565b60001c905092915050565b60006124aa8260000161295b565b9050919050565b6124ba82610d28565b6124cb816124c6612695565b61269d565b6124d5838361273a565b505050565b6124e482826118c6565b6125b75760016002600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061255c612695565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60006125c7838361296c565b612620578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612625565b600090505b92915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b6126a782826118c6565b612736576126cc8173ffffffffffffffffffffffffffffffffffffffff16601461298f565b6126da8360001c602061298f565b6040516020016126eb929190613fae565b6040516020818303038152906040526040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272d9190614032565b60405180910390fd5b5050565b61274482826118c6565b156128185760006002600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506127bd612695565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000808360010160008481526020019081526020016000205490506000811461292457600060018261284e9190613d33565b90506000600186600001805490506128669190613d33565b90508181146128d557600086600001828154811061288757612886614054565b5b90600052602060002001549050808760000184815481106128ab576128aa614054565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b856000018054806128e9576128e8614083565b5b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061292a565b60009150505b92915050565b600082600001828154811061294857612947614054565b5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b6060600060028360026129a29190613cd9565b6129ac9190613a93565b67ffffffffffffffff8111156129c5576129c46140b2565b5b6040519080825280601f01601f1916602001820160405280156129f75781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612a2f57612a2e614054565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612a9357612a92614054565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002612ad39190613cd9565b612add9190613a93565b90505b6001811115612b7d577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110612b1f57612b1e614054565b5b1a60f81b828281518110612b3657612b35614054565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080612b76906140e1565b9050612ae0565b5060008414612bc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb890614157565b60405180910390fd5b8091505092915050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612c0581612bd0565b8114612c1057600080fd5b50565b600081359050612c2281612bfc565b92915050565b600060208284031215612c3e57612c3d612bcb565b5b6000612c4c84828501612c13565b91505092915050565b60008115159050919050565b612c6a81612c55565b82525050565b6000602082019050612c856000830184612c61565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612cb682612c8b565b9050919050565b6000612cc882612cab565b9050919050565b612cd881612cbd565b8114612ce357600080fd5b50565b600081359050612cf581612ccf565b92915050565b600060208284031215612d1157612d10612bcb565b5b6000612d1f84828501612ce6565b91505092915050565b6000819050919050565b612d3b81612d28565b8114612d4657600080fd5b50565b600081359050612d5881612d32565b92915050565b600060208284031215612d7457612d73612bcb565b5b6000612d8284828501612d49565b91505092915050565b612d9481612d28565b82525050565b6000602082019050612daf6000830184612d8b565b92915050565b6000819050919050565b612dc881612db5565b82525050565b6000602082019050612de36000830184612dbf565b92915050565b612df281612cab565b8114612dfd57600080fd5b50565b600081359050612e0f81612de9565b92915050565b60008060408385031215612e2c57612e2b612bcb565b5b6000612e3a85828601612d49565b9250506020612e4b85828601612e00565b9150509250929050565b612e5e81612db5565b8114612e6957600080fd5b50565b600081359050612e7b81612e55565b92915050565b600060208284031215612e9757612e96612bcb565b5b6000612ea584828501612e6c565b91505092915050565b600060208284031215612ec457612ec3612bcb565b5b6000612ed284828501612e00565b91505092915050565b6000612ee682612c8b565b9050919050565b612ef681612edb565b82525050565b6000602082019050612f116000830184612eed565b92915050565b600080600080600060a08688031215612f3357612f32612bcb565b5b6000612f4188828901612e6c565b9550506020612f5288828901612e6c565b9450506040612f6388828901612e6c565b9350506060612f7488828901612e6c565b9250506080612f8588828901612e6c565b9150509295509295909350565b60008060408385031215612fa957612fa8612bcb565b5b6000612fb785828601612d49565b9250506020612fc885828601612e6c565b9150509250929050565b612fdb81612cab565b82525050565b6000602082019050612ff66000830184612fd2565b92915050565b61300581612edb565b811461301057600080fd5b50565b60008135905061302281612ffc565b92915050565b60006020828403121561303e5761303d612bcb565b5b600061304c84828501613013565b91505092915050565b6000819050919050565b600061307a61307561307084612c8b565b613055565b612c8b565b9050919050565b600061308c8261305f565b9050919050565b600061309e82613081565b9050919050565b6130ae81613093565b82525050565b60006020820190506130c960008301846130a5565b92915050565b600082825260208201905092915050565b7f6d75737420686176652061646d696e20726f6c6520746f207061757365000000600082015250565b6000613116601d836130cf565b9150613121826130e0565b602082019050919050565b6000602082019050818103600083015261314581613109565b9050919050565b600061315782613081565b9050919050565b6131678161314c565b82525050565b6000604082019050613182600083018561315e565b61318f6020830184612dbf565b9392505050565b61319f81612c55565b81146131aa57600080fd5b50565b6000815190506131bc81613196565b92915050565b6000602082840312156131d8576131d7612bcb565b5b60006131e6848285016131ad565b91505092915050565b6000815190506131fe81612e55565b92915050565b60006020828403121561321a57613219612bcb565b5b6000613228848285016131ef565b91505092915050565b7f6d75737420686176652070617573657220726f6c6520746f20756e7061757365600082015250565b60006132676020836130cf565b915061327282613231565b602082019050919050565b600060208201905081810360008301526132968161325a565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b60006132d3601f836130cf565b91506132de8261329d565b602082019050919050565b60006020820190508181036000830152613302816132c6565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b600061333f6010836130cf565b915061334a82613309565b602082019050919050565b6000602082019050818103600083015261336e81613332565b9050919050565b7f50726573616c652073686f756c64206e6f742062652061637469766500000000600082015250565b60006133ab601c836130cf565b91506133b682613375565b602082019050919050565b600060208201905081810360008301526133da8161339e565b9050919050565b7f726566756e642069732063757272656e746c7920616374697665000000000000600082015250565b6000613417601a836130cf565b9150613422826133e1565b602082019050919050565b600060208201905081810360008301526134468161340a565b9050919050565b7f796f75206469646e742070757263686173656420616e7920746f6b656e730000600082015250565b6000613483601e836130cf565b915061348e8261344d565b602082019050919050565b600060208201905081810360008301526134b281613476565b9050919050565b60006040820190506134ce6000830185612fd2565b6134db6020830184612dbf565b9392505050565b7f6e6f20726566756e6420617661696c61626c6500000000000000000000000000600082015250565b60006135186013836130cf565b9150613523826134e2565b602082019050919050565b600060208201905081810360008301526135478161350b565b9050919050565b7f796f752068617665206e6f20424e4220746f20636c61696d0000000000000000600082015250565b60006135846018836130cf565b915061358f8261354e565b602082019050919050565b600060208201905081810360008301526135b381613577565b9050919050565b7f636f6e74726163742068617665206e6f20424e4220746f20636c61696d000000600082015250565b60006135f0601d836130cf565b91506135fb826135ba565b602082019050919050565b6000602082019050818103600083015261361f816135e3565b9050919050565b7f6475726174696f6e2073686f756c64206265203e203000000000000000000000600082015250565b600061365c6016836130cf565b915061366782613626565b602082019050919050565b6000602082019050818103600083015261368b8161364f565b9050919050565b7f536f6674636170206d757374206265206c6f776572207468616e20313030302060008201527f424e420000000000000000000000000000000000000000000000000000000000602082015250565b60006136ee6023836130cf565b91506136f982613692565b604082019050919050565b6000602082019050818103600083015261371d816136e1565b9050919050565b7f6d696e5075726368617365206d757374206265206c6f776572207468616e203160008201527f20424e4200000000000000000000000000000000000000000000000000000000602082015250565b60006137806024836130cf565b915061378b82613724565b604082019050919050565b600060208201905081810360008301526137af81613773565b9050919050565b7f617661696c61626c65546f6b656e73206d757374206265203e20300000000000600082015250565b60006137ec601b836130cf565b91506137f7826137b6565b602082019050919050565b6000602082019050818103600083015261381b816137df565b9050919050565b7f6d696e50757263686173652073686f756c64203e203000000000000000000000600082015250565b60006138586016836130cf565b915061386382613822565b602082019050919050565b600060208201905081810360008301526138878161384b565b9050919050565b7f6d75737420686176652070617573657220726f6c6520746f2070617573650000600082015250565b60006138c4601e836130cf565b91506138cf8261388e565b602082019050919050565b600060208201905081810360008301526138f3816138b7565b9050919050565b7f5072652d73616c65206973206f76657200000000000000000000000000000000600082015250565b60006139306010836130cf565b915061393b826138fa565b602082019050919050565b6000602082019050818103600083015261395f81613923565b9050919050565b7f776569416d6f756e742069732030000000000000000000000000000000000000600082015250565b600061399c600e836130cf565b91506139a782613966565b602082019050919050565b600060208201905081810360008301526139cb8161398f565b9050919050565b7f6861766520746f2073656e64206174206c656173743a20302e3120424e42202f60008201527f20323030204f494c000000000000000000000000000000000000000000000000602082015250565b6000613a2e6028836130cf565b9150613a39826139d2565b604082019050919050565b60006020820190508181036000830152613a5d81613a21565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613a9e82612db5565b9150613aa983612db5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613ade57613add613a64565b5b828201905092915050565b7f63616e6e6f7420627579206d6f7265207468616e3a203120424e42202f20323060008201527f3030204f494c0000000000000000000000000000000000000000000000000000602082015250565b6000613b456026836130cf565b9150613b5082613ae9565b604082019050919050565b60006020820190508181036000830152613b7481613b38565b9050919050565b7f4861726420436170207265616368656400000000000000000000000000000000600082015250565b6000613bb16010836130cf565b9150613bbc82613b7b565b602082019050919050565b60006020820190508181036000830152613be081613ba4565b9050919050565b7f62656e65666963696172792069732074686520636f6e7472616374206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c436023836130cf565b9150613c4e82613be7565b604082019050919050565b60006020820190508181036000830152613c7281613c36565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613cb382612db5565b9150613cbe83612db5565b925082613cce57613ccd613c79565b5b828204905092915050565b6000613ce482612db5565b9150613cef83612db5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d2857613d27613a64565b5b828202905092915050565b6000613d3e82612db5565b9150613d4983612db5565b925082821015613d5c57613d5b613a64565b5b828203905092915050565b6000606082019050613d7c6000830186612fd2565b613d896020830185612dbf565b613d966040830184612dbf565b949350505050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000613dfa602f836130cf565b9150613e0582613d9e565b604082019050919050565b60006020820190508181036000830152613e2981613ded565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000613e666014836130cf565b9150613e7182613e30565b602082019050919050565b60006020820190508181036000830152613e9581613e59565b9050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000613edd601783613e9c565b9150613ee882613ea7565b601782019050919050565b600081519050919050565b60005b83811015613f1c578082015181840152602081019050613f01565b83811115613f2b576000848401525b50505050565b6000613f3c82613ef3565b613f468185613e9c565b9350613f56818560208601613efe565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b6000613f98601183613e9c565b9150613fa382613f62565b601182019050919050565b6000613fb982613ed0565b9150613fc58285613f31565b9150613fd082613f8b565b9150613fdc8284613f31565b91508190509392505050565b6000601f19601f8301169050919050565b600061400482613ef3565b61400e81856130cf565b935061401e818560208601613efe565b61402781613fe8565b840191505092915050565b6000602082019050818103600083015261404c8184613ff9565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006140ec82612db5565b91506000821415614100576140ff613a64565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b60006141416020836130cf565b915061414c8261410b565b602082019050919050565b6000602082019050818103600083015261417081614134565b905091905056fea26469706673582212207f33916895bf0c7d7d022429eb8010f9338d09987c00fe22a5902c2e61fd660564736f6c634300080900330000000000000000000000000000000000000000000000000001c6bf526340000000000000000000000000003a9d18235d54e1a032852fb7882f05613510bc220000000000000000000000003782069af44c828c8754dff0cbb0998d6e223923

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

0000000000000000000000000000000000000000000000000001c6bf526340000000000000000000000000003a9d18235d54e1a032852fb7882f05613510bc220000000000000000000000003782069af44c828c8754dff0cbb0998d6e223923

-----Decoded View---------------
Arg [0] : _rate (uint256): 500000000000000
Arg [1] : _wallet (address): 0x3a9d18235d54e1a032852fb7882f05613510bc22
Arg [2] : _token (address): 0x3782069af44c828c8754dff0cbb0998d6e223923

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000001c6bf52634000
Arg [1] : 0000000000000000000000003a9d18235d54e1a032852fb7882f05613510bc22
Arg [2] : 0000000000000000000000003782069af44c828c8754dff0cbb0998d6e223923


Deployed ByteCode Sourcemap

13850:6993:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12531:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16317:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18479:581;;;;;;;;;;;;;:::i;:::-;;10768:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14349:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13048:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14194:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16835:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13461:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17470:151;;;;;;;;;;;;;:::i;:::-;;14318:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14381:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19639:551;;;;;;;;;;;;;:::i;:::-;;13963:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14118:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20202:638;;;;;;;;;;;;;:::i;:::-;;8760:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17633:834;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16618:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17317:145;;;;;;;;;;;;;:::i;:::-;;12753;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14289:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10116:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14227:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9745:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14162:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13999:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12906:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19072:555;;;:::i;:::-;;16418:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13252:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16195:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16518:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14437:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14043:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16727:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17055:250;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16933:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14260:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13937:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12531:214;12616:4;12655:42;12640:57;;;:11;:57;;;;:97;;;;12701:36;12725:11;12701:23;:36::i;:::-;12640:97;12633:104;;12531:214;;;:::o;16317:89::-;15051:39;9790:4;15059:18;;15079:10;15051:7;:39::i;:::-;15043:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;16390:8:::1;16382:5;;:16;;;;;;;;;;;;;;;;;;16317:89:::0;:::o;18479:581::-;15051:39;9790:4;15059:18;;15079:10;15051:7;:39::i;:::-;15043:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;18548:7:::1;;18535:9;;:20;18532:521;;18572:6;;;;;;;;;;;:15;;:38;18588:21;18572:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;18686:1;18661:22;;:26;18658:174;;;18708:5;;;;;;;;;;;:14;;;18723:6;;;;;;;;;;;18731:22;;18708:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18658:174;18532:521;;;18885:1;18872:10;:14;;;;18915:4;18901:11;;:18;;;;;;;;;;;;;;;;;;18934:5;;;;;;;;;;;:14;;;18949:6;;;;;;;;;;;18957:5;;;;;;;;;;;:15;;;18981:4;18957:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18934:54;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18532:521;18479:581::o:0;10768:123::-;10834:7;10861:6;:12;10868:4;10861:12;;;;;;;;;;;:22;;;10854:29;;10768:123;;;:::o;14349:19::-;;;;:::o;13048:196::-;13164:30;13180:4;13186:7;13164:15;:30::i;:::-;13205:31;13228:7;13205:12;:18;13218:4;13205:18;;;;;;;;;;;:22;;:31;;;;:::i;:::-;;13048:196;;:::o;14194:26::-;;;;:::o;16835:86::-;15051:39;9790:4;15059:18;;15079:10;15051:7;:39::i;:::-;15043:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;16906:7:::1;16899:4;:14;;;;16835:86:::0;:::o;13461:205::-;13580:33;13599:4;13605:7;13580:18;:33::i;:::-;13624:34;13650:7;13624:12;:18;13637:4;13624:18;;;;;;;;;;;:25;;:34;;;;:::i;:::-;;13461:205;;:::o;17470:151::-;17523:32;14081:24;17544:10;17523:7;:32::i;:::-;17515:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;17603:10;:8;:10::i;:::-;17470:151::o;14318:24::-;;;;:::o;14381:49::-;;;;;;;;;;;;;;;;;:::o;19639:551::-;8011:1;8159:7;;:19;;8151:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;8011:1;8227:7;:18;;;;8899:8:::1;:6;:8::i;:::-;8898:9;8890:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19730:15:::2;19717:10;;:28;19709:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;19812:5;19797:20;;:11;;;;;;;;;;;:20;;;19789:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;19869:14;19886:10;:22;19897:10;19886:22;;;;;;;;;;;;;;;;19869:39;;19946:1;19937:6;:10;19929:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;20031:1;20003:13;:25;20017:10;20003:25;;;;;;;;;;;;;;;:29;;;;20068:1;20043:10;:22;20054:10;20043:22;;;;;;;;;;;;;;;:26;;;;20090:5;;;;;;;;;;;:14;;;20105:10;20117:6;20090:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20150:32;20163:10;20175:6;20150:32;;;;;;;:::i;:::-;;;;;;;;19698:492;7967:1:::0;8270:7;:22;;;;19639:551::o;13963:29::-;;;;;;;;;;;;;:::o;14118:37::-;;;;:::o;20202:638::-;8011:1;8159:7;;:19;;8151:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;8011:1;8227:7;:18;;;;8899:8:::1;:6;:8::i;:::-;8898:9;8890:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;20290:15:::2;20277:10;;:28;20269:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;20372:4;20357:19;;:11;;;;;;;;;;;:19;;;20349:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;20421:14;20438:13;:25;20452:10;20438:25;;;;;;;;;;;;;;;;20421:42;;20501:1;20492:6;:10;20484:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;20575:6;20550:21;:31;;20542:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;20658:1;20630:13;:25;20644:10;20630:25;;;;;;;;;;;;;;;:29;;;;20695:1;20670:10;:22;20681:10;20670:22;;;;;;;;;;;;;;;:26;;;;20714:25;20750:10;20714:47;;20766:9;:18;;:26;20785:6;20766:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;20806;20813:10;20825:6;20806:26;;;;;;;:::i;:::-;;;;;;;;20258:582;;7967:1:::0;8270:7;:22;;;;20202:638::o;8760:86::-;8807:4;8831:7;;;;;;;;;;;8824:14;;8760:86;:::o;17633:834::-;15051:39;9790:4;15059:18;;15079:10;15051:7;:39::i;:::-;15043:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;17803:5:::1;;;;;;;;;;;:15;;;17827:4;17803:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17778:22;:55;;;;17873:15;17862:8;:26;17854:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;17945:8;17934;:19;17926:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18027:12;18012;:27;18004:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;18124:1;18099:22;;:26;18091:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18192:1;18177:12;:16;18169:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;18255:5;18241:11;;:19;;;;;;;;;;;;;;;;;;18283:1;18271:9;:13;;;;18318:8;18305:10;:21;;;;18352:12;18338:11;:26;;;;18389:12;18375:11;:26;;;;18422:8;18412:7;:18;;;;18451:8;18441:7;:18;;;;17633:834:::0;;;;;:::o;16618:96::-;15051:39;9790:4;15059:18;;15079:10;15051:7;:39::i;:::-;15043:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;16701:5:::1;16687:11;:19;;;;16618:96:::0;:::o;17317:145::-;17368:32;14081:24;17389:10;17368:7;:32::i;:::-;17360:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;17446:8;:6;:8::i;:::-;17317:145::o;12753:::-;12835:7;12862:28;12884:5;12862:12;:18;12875:4;12862:18;;;;;;;;;;;:21;;:28;;;;:::i;:::-;12855:35;;12753:145;;;;:::o;14289:22::-;;;;:::o;10116:139::-;10194:4;10218:6;:12;10225:4;10218:12;;;;;;;;;;;:20;;:29;10239:7;10218:29;;;;;;;;;;;;;;;;;;;;;;;;;10211:36;;10116:139;;;;:::o;14227:26::-;;;;:::o;9745:49::-;9790:4;9745:49;;;:::o;14162:25::-;;;;:::o;13999:31::-;;;;;;;;;;;;;:::o;12906:134::-;12978:7;13005:27;:12;:18;13018:4;13005:18;;;;;;;;;;;:25;:27::i;:::-;12998:34;;12906:134;;;:::o;19072:555::-;8011:1;8159:7;;:19;;8151:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;8011:1;8227:7;:18;;;;8899:8:::1;:6;:8::i;:::-;8898:9;8890:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15194:17:::2;15214:9;15194:29;;15234:19;15256:10;15234:32;;15305:1;15291:10;;:15;:47;;;;15328:10;;15310:15;:28;15291:47;:78;;;;15368:1;15342:22;;:27;15291:78;15287:157;;;15393:39;;;;;;;;;;:::i;:::-;;;;;;;;15287:157;15481:1;15468:9;:14;15464:91;;;15506:37;;;;;;;;;;:::i;:::-;;;;;;;;15464:91;15591:11;;15579:9;:23;15575:126;;;15626:63;;;;;;;;;;:::i;:::-;;;;;;;;15575:126;15768:11;;15755:9;15726:13;:26;15740:11;15726:26;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;15725:54;15721:155;;;15803:61;;;;;;;;;;:::i;:::-;;;;;;;;15721:155;15926:7;;15913:9;15901;;:21;;;;:::i;:::-;15900:33;15896:112;;;15957:39;;;;;;;;;;:::i;:::-;;;;;;;;15896:112;16055:4;16032:28;;:11;:28;;;16028:126;;;16084:58;;;;;;;;;;:::i;:::-;;;;;;;;16028:126;19164:17:::3;19184:9;19164:29;;19204:19;19226:10;19204:32;;19247:14;19281:6;19275:4;;19265:9;:14;;;;:::i;:::-;19264:23;;;;:::i;:::-;19247:40;;19330:9;19320;;:19;;;;:::i;:::-;19308:9;:31;;;;19398:6;19375:22;;:29;;;;:::i;:::-;19350:22;:54;;;;19471:9;19444:13;:26;19458:11;19444:26;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;19415:13;:26;19429:11;19415:26;;;;;;;;;;;;;;;:65;;;;19541:6;19517:10;:23;19528:11;19517:23;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;19491:10;:23;19502:11;19491:23;;;;;;;;;;;;;;;:56;;;;19573:46;19589:10;19601:9;19612:6;19573:46;;;;;;;;:::i;:::-;;;;;;;;19153:474;;;15183:1000:::2;;7967:1:::0;8270:7;:22;;;;19072:555::o;16418:88::-;15051:39;9790:4;15059:18;;15079:10;15051:7;:39::i;:::-;15043:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;16493:5:::1;16483:7;:15;;;;16418:88:::0;:::o;13252:201::-;13369:31;13386:4;13392:7;13369:16;:31::i;:::-;13411:34;13437:7;13411:12;:18;13424:4;13411:18;;;;;;;;;;;:25;;:34;;;;:::i;:::-;;13252:201;;:::o;16195:110::-;15051:39;9790:4;15059:18;;15079:10;15051:7;:39::i;:::-;15043:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;16288:9:::1;16279:6;;:18;;;;;;;;;;;;;;;;;;16195:110:::0;:::o;16518:88::-;15051:39;9790:4;15059:18;;15079:10;15051:7;:39::i;:::-;15043:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;16593:5:::1;16583:7;:15;;;;16518:88:::0;:::o;14437:46::-;;;;;;;;;;;;;;;;;:::o;14043:62::-;14081:24;14043:62;:::o;16727:96::-;15051:39;9790:4;15059:18;;15079:10;15051:7;:39::i;:::-;15043:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;16810:5:::1;16796:11;:19;;;;16727:96:::0;:::o;17055:250::-;15051:39;9790:4;15059:18;;15079:10;15051:7;:39::i;:::-;15043:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;17140:1:::1;17130:6;:11;17127:171;;;17183:5;;;;;;;;;;;:15;;;17207:4;17183:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17158:22;:55;;;;17127:171;;;17280:6;17255:22;:31;;;;17127:171;17055:250:::0;:::o;16933:110::-;15051:39;9790:4;15059:18;;15079:10;15051:7;:39::i;:::-;15043:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;17022:13:::1;17009:10;:26;;;;16933:110:::0;:::o;14260:22::-;;;;:::o;13937:19::-;;;;;;;;;;;;;:::o;11437:112::-;11516:25;11527:4;11533:7;11516:10;:25::i;:::-;11437:112;;:::o;4042:152::-;4112:4;4136:50;4141:3;:10;;4177:5;4161:23;;4153:32;;4136:4;:50::i;:::-;4129:57;;4042:152;;;;:::o;9904:204::-;9989:4;10028:32;10013:47;;;:11;:47;;;;:87;;;;10064:36;10088:11;10064:23;:36::i;:::-;10013:87;10006:94;;9904:204;;;:::o;10899:147::-;10982:18;10995:4;10982:12;:18::i;:::-;9846:30;9857:4;9863:12;:10;:12::i;:::-;9846:10;:30::i;:::-;11013:25:::1;11024:4;11030:7;11013:10;:25::i;:::-;10899:147:::0;;;:::o;11211:218::-;11318:12;:10;:12::i;:::-;11307:23;;:7;:23;;;11299:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;11395:26;11407:4;11413:7;11395:11;:26::i;:::-;11211:218;;:::o;4202:158::-;4275:4;4299:53;4307:3;:10;;4343:5;4327:23;;4319:32;;4299:7;:53::i;:::-;4292:60;;4202:158;;;;:::o;9184:120::-;8997:8;:6;:8::i;:::-;8989:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;9253:5:::1;9243:7;;:15;;;;;;;;;;;;;;;;;;9274:22;9283:12;:10;:12::i;:::-;9274:22;;;;;;:::i;:::-;;;;;;;;9184:120::o:0;9058:118::-;8899:8;:6;:8::i;:::-;8898:9;8890:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;9128:4:::1;9118:7:::0;::::1;:14;;;;;;;;;;;;;;;;;;9148:20;9155:12;:10;:12::i;:::-;9148:20;;;;;;:::i;:::-;;;;;;;;9058:118::o:0;4668:158::-;4742:7;4793:22;4797:3;:10;;4809:5;4793:3;:22::i;:::-;4785:31;;4762:56;;4668:158;;;;:::o;4543:117::-;4606:7;4633:19;4641:3;:10;;4633:7;:19::i;:::-;4626:26;;4543:117;;;:::o;11054:149::-;11138:18;11151:4;11138:12;:18::i;:::-;9846:30;9857:4;9863:12;:10;:12::i;:::-;9846:10;:30::i;:::-;11169:26:::1;11181:4;11187:7;11169:11;:26::i;:::-;11054:149:::0;;;:::o;11816:238::-;11900:22;11908:4;11914:7;11900;:22::i;:::-;11895:152;;11971:4;11939:6;:12;11946:4;11939:12;;;;;;;;;;;:20;;:29;11960:7;11939:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;12022:12;:10;:12::i;:::-;11995:40;;12013:7;11995:40;;12007:4;11995:40;;;;;;;;;;11895:152;11816:238;;:::o;1631:291::-;1694:4;1716:21;1726:3;1731:5;1716:9;:21::i;:::-;1711:204;;1754:3;:11;;1771:5;1754:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1814:3;:11;;:18;;;;1792:3;:12;;:19;1805:5;1792:19;;;;;;;;;;;:40;;;;1854:4;1847:11;;;;1711:204;1898:5;1891:12;;1631:291;;;;;:::o;9354:157::-;9439:4;9478:25;9463:40;;;:11;:40;;;;9456:47;;9354:157;;;:::o;8340:98::-;8393:7;8420:10;8413:17;;8340:98;:::o;10263:497::-;10344:22;10352:4;10358:7;10344;:22::i;:::-;10339:414;;10532:41;10560:7;10532:41;;10570:2;10532:19;:41::i;:::-;10646:38;10674:4;10666:13;;10681:2;10646:19;:38::i;:::-;10437:270;;;;;;;;;:::i;:::-;;;;;;;;;;;;;10383:358;;;;;;;;;;;:::i;:::-;;;;;;;;10339:414;10263:497;;:::o;12062:239::-;12146:22;12154:4;12160:7;12146;:22::i;:::-;12142:152;;;12217:5;12185:6;:12;12192:4;12185:12;;;;;;;;;;;:20;;:29;12206:7;12185:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;12269:12;:10;:12::i;:::-;12242:40;;12260:7;12242:40;;12254:4;12242:40;;;;;;;;;;12142:152;12062:239;;:::o;1930:675::-;1996:4;2013:18;2034:3;:12;;:19;2047:5;2034:19;;;;;;;;;;;;2013:40;;2084:1;2070:10;:15;2066:532;;2102:21;2139:1;2126:10;:14;;;;:::i;:::-;2102:38;;2155:17;2196:1;2175:3;:11;;:18;;;;:22;;;;:::i;:::-;2155:42;;2231:13;2218:9;:26;2214:223;;2265:17;2285:3;:11;;2297:9;2285:22;;;;;;;;:::i;:::-;;;;;;;;;;2265:42;;2357:9;2328:3;:11;;2340:13;2328:26;;;;;;;;:::i;:::-;;;;;;;;;:38;;;;2411:10;2385:3;:12;;:23;2398:9;2385:23;;;;;;;;;;;:36;;;;2246:191;2214:223;2453:3;:11;;:17;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2494:3;:12;;:19;2507:5;2494:19;;;;;;;;;;;2487:26;;;2537:4;2530:11;;;;;;;2066:532;2581:5;2574:12;;;1930:675;;;;;:::o;2867:120::-;2934:7;2961:3;:11;;2973:5;2961:18;;;;;;;;:::i;:::-;;;;;;;;;;2954:25;;2867:120;;;;:::o;2750:109::-;2806:7;2833:3;:11;;:18;;;;2826:25;;2750:109;;;:::o;2613:129::-;2686:4;2733:1;2710:3;:12;;:19;2723:5;2710:19;;;;;;;;;;;;:24;;2703:31;;2613:129;;;;:::o;1042:451::-;1117:13;1143:19;1188:1;1179:6;1175:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1165:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1143:47;;1201:15;:6;1208:1;1201:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1227;:6;1234:1;1227:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1258:9;1283:1;1274:6;1270:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1258:26;;1253:135;1290:1;1286;:5;1253:135;;;1325:12;1346:3;1338:5;:11;1325:25;;;;;;;:::i;:::-;;;;;1313:6;1320:1;1313:9;;;;;;;;:::i;:::-;;;;;:37;;;;;;;;;;;1375:1;1365:11;;;;;1293:3;;;;:::i;:::-;;;1253:135;;;;1415:1;1406:5;:10;1398:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;1478:6;1464:21;;;1042:451;;;;:::o;88:117:1:-;197:1;194;187:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:126::-;1555:7;1595:42;1588:5;1584:54;1573:65;;1518:126;;;:::o;1650:96::-;1687:7;1716:24;1734:5;1716:24;:::i;:::-;1705:35;;1650:96;;;:::o;1752:110::-;1803:7;1832:24;1850:5;1832:24;:::i;:::-;1821:35;;1752:110;;;:::o;1868:150::-;1955:38;1987:5;1955:38;:::i;:::-;1948:5;1945:49;1935:77;;2008:1;2005;1998:12;1935:77;1868:150;:::o;2024:167::-;2084:5;2122:6;2109:20;2100:29;;2138:47;2179:5;2138:47;:::i;:::-;2024:167;;;;:::o;2197:357::-;2270:6;2319:2;2307:9;2298:7;2294:23;2290:32;2287:119;;;2325:79;;:::i;:::-;2287:119;2445:1;2470:67;2529:7;2520:6;2509:9;2505:22;2470:67;:::i;:::-;2460:77;;2416:131;2197:357;;;;:::o;2560:77::-;2597:7;2626:5;2615:16;;2560:77;;;:::o;2643:122::-;2716:24;2734:5;2716:24;:::i;:::-;2709:5;2706:35;2696:63;;2755:1;2752;2745:12;2696:63;2643:122;:::o;2771:139::-;2817:5;2855:6;2842:20;2833:29;;2871:33;2898:5;2871:33;:::i;:::-;2771:139;;;;:::o;2916:329::-;2975:6;3024:2;3012:9;3003:7;2999:23;2995:32;2992:119;;;3030:79;;:::i;:::-;2992:119;3150:1;3175:53;3220:7;3211:6;3200:9;3196:22;3175:53;:::i;:::-;3165:63;;3121:117;2916:329;;;;:::o;3251:118::-;3338:24;3356:5;3338:24;:::i;:::-;3333:3;3326:37;3251:118;;:::o;3375:222::-;3468:4;3506:2;3495:9;3491:18;3483:26;;3519:71;3587:1;3576:9;3572:17;3563:6;3519:71;:::i;:::-;3375:222;;;;:::o;3603:77::-;3640:7;3669:5;3658:16;;3603:77;;;:::o;3686:118::-;3773:24;3791:5;3773:24;:::i;:::-;3768:3;3761:37;3686:118;;:::o;3810:222::-;3903:4;3941:2;3930:9;3926:18;3918:26;;3954:71;4022:1;4011:9;4007:17;3998:6;3954:71;:::i;:::-;3810:222;;;;:::o;4038:122::-;4111:24;4129:5;4111:24;:::i;:::-;4104:5;4101:35;4091:63;;4150:1;4147;4140:12;4091:63;4038:122;:::o;4166:139::-;4212:5;4250:6;4237:20;4228:29;;4266:33;4293:5;4266:33;:::i;:::-;4166:139;;;;:::o;4311:474::-;4379:6;4387;4436:2;4424:9;4415:7;4411:23;4407:32;4404:119;;;4442:79;;:::i;:::-;4404:119;4562:1;4587:53;4632:7;4623:6;4612:9;4608:22;4587:53;:::i;:::-;4577:63;;4533:117;4689:2;4715:53;4760:7;4751:6;4740:9;4736:22;4715:53;:::i;:::-;4705:63;;4660:118;4311:474;;;;;:::o;4791:122::-;4864:24;4882:5;4864:24;:::i;:::-;4857:5;4854:35;4844:63;;4903:1;4900;4893:12;4844:63;4791:122;:::o;4919:139::-;4965:5;5003:6;4990:20;4981:29;;5019:33;5046:5;5019:33;:::i;:::-;4919:139;;;;:::o;5064:329::-;5123:6;5172:2;5160:9;5151:7;5147:23;5143:32;5140:119;;;5178:79;;:::i;:::-;5140:119;5298:1;5323:53;5368:7;5359:6;5348:9;5344:22;5323:53;:::i;:::-;5313:63;;5269:117;5064:329;;;;:::o;5399:::-;5458:6;5507:2;5495:9;5486:7;5482:23;5478:32;5475:119;;;5513:79;;:::i;:::-;5475:119;5633:1;5658:53;5703:7;5694:6;5683:9;5679:22;5658:53;:::i;:::-;5648:63;;5604:117;5399:329;;;;:::o;5734:104::-;5779:7;5808:24;5826:5;5808:24;:::i;:::-;5797:35;;5734:104;;;:::o;5844:142::-;5947:32;5973:5;5947:32;:::i;:::-;5942:3;5935:45;5844:142;;:::o;5992:254::-;6101:4;6139:2;6128:9;6124:18;6116:26;;6152:87;6236:1;6225:9;6221:17;6212:6;6152:87;:::i;:::-;5992:254;;;;:::o;6252:911::-;6347:6;6355;6363;6371;6379;6428:3;6416:9;6407:7;6403:23;6399:33;6396:120;;;6435:79;;:::i;:::-;6396:120;6555:1;6580:53;6625:7;6616:6;6605:9;6601:22;6580:53;:::i;:::-;6570:63;;6526:117;6682:2;6708:53;6753:7;6744:6;6733:9;6729:22;6708:53;:::i;:::-;6698:63;;6653:118;6810:2;6836:53;6881:7;6872:6;6861:9;6857:22;6836:53;:::i;:::-;6826:63;;6781:118;6938:2;6964:53;7009:7;7000:6;6989:9;6985:22;6964:53;:::i;:::-;6954:63;;6909:118;7066:3;7093:53;7138:7;7129:6;7118:9;7114:22;7093:53;:::i;:::-;7083:63;;7037:119;6252:911;;;;;;;;:::o;7169:474::-;7237:6;7245;7294:2;7282:9;7273:7;7269:23;7265:32;7262:119;;;7300:79;;:::i;:::-;7262:119;7420:1;7445:53;7490:7;7481:6;7470:9;7466:22;7445:53;:::i;:::-;7435:63;;7391:117;7547:2;7573:53;7618:7;7609:6;7598:9;7594:22;7573:53;:::i;:::-;7563:63;;7518:118;7169:474;;;;;:::o;7649:118::-;7736:24;7754:5;7736:24;:::i;:::-;7731:3;7724:37;7649:118;;:::o;7773:222::-;7866:4;7904:2;7893:9;7889:18;7881:26;;7917:71;7985:1;7974:9;7970:17;7961:6;7917:71;:::i;:::-;7773:222;;;;:::o;8001:138::-;8082:32;8108:5;8082:32;:::i;:::-;8075:5;8072:43;8062:71;;8129:1;8126;8119:12;8062:71;8001:138;:::o;8145:155::-;8199:5;8237:6;8224:20;8215:29;;8253:41;8288:5;8253:41;:::i;:::-;8145:155;;;;:::o;8306:345::-;8373:6;8422:2;8410:9;8401:7;8397:23;8393:32;8390:119;;;8428:79;;:::i;:::-;8390:119;8548:1;8573:61;8626:7;8617:6;8606:9;8602:22;8573:61;:::i;:::-;8563:71;;8519:125;8306:345;;;;:::o;8657:60::-;8685:3;8706:5;8699:12;;8657:60;;;:::o;8723:142::-;8773:9;8806:53;8824:34;8833:24;8851:5;8833:24;:::i;:::-;8824:34;:::i;:::-;8806:53;:::i;:::-;8793:66;;8723:142;;;:::o;8871:126::-;8921:9;8954:37;8985:5;8954:37;:::i;:::-;8941:50;;8871:126;;;:::o;9003:140::-;9067:9;9100:37;9131:5;9100:37;:::i;:::-;9087:50;;9003:140;;;:::o;9149:159::-;9250:51;9295:5;9250:51;:::i;:::-;9245:3;9238:64;9149:159;;:::o;9314:250::-;9421:4;9459:2;9448:9;9444:18;9436:26;;9472:85;9554:1;9543:9;9539:17;9530:6;9472:85;:::i;:::-;9314:250;;;;:::o;9570:169::-;9654:11;9688:6;9683:3;9676:19;9728:4;9723:3;9719:14;9704:29;;9570:169;;;;:::o;9745:179::-;9885:31;9881:1;9873:6;9869:14;9862:55;9745:179;:::o;9930:366::-;10072:3;10093:67;10157:2;10152:3;10093:67;:::i;:::-;10086:74;;10169:93;10258:3;10169:93;:::i;:::-;10287:2;10282:3;10278:12;10271:19;;9930:366;;;:::o;10302:419::-;10468:4;10506:2;10495:9;10491:18;10483:26;;10555:9;10549:4;10545:20;10541:1;10530:9;10526:17;10519:47;10583:131;10709:4;10583:131;:::i;:::-;10575:139;;10302:419;;;:::o;10727:134::-;10785:9;10818:37;10849:5;10818:37;:::i;:::-;10805:50;;10727:134;;;:::o;10867:147::-;10962:45;11001:5;10962:45;:::i;:::-;10957:3;10950:58;10867:147;;:::o;11020:348::-;11149:4;11187:2;11176:9;11172:18;11164:26;;11200:79;11276:1;11265:9;11261:17;11252:6;11200:79;:::i;:::-;11289:72;11357:2;11346:9;11342:18;11333:6;11289:72;:::i;:::-;11020:348;;;;;:::o;11374:116::-;11444:21;11459:5;11444:21;:::i;:::-;11437:5;11434:32;11424:60;;11480:1;11477;11470:12;11424:60;11374:116;:::o;11496:137::-;11550:5;11581:6;11575:13;11566:22;;11597:30;11621:5;11597:30;:::i;:::-;11496:137;;;;:::o;11639:345::-;11706:6;11755:2;11743:9;11734:7;11730:23;11726:32;11723:119;;;11761:79;;:::i;:::-;11723:119;11881:1;11906:61;11959:7;11950:6;11939:9;11935:22;11906:61;:::i;:::-;11896:71;;11852:125;11639:345;;;;:::o;11990:143::-;12047:5;12078:6;12072:13;12063:22;;12094:33;12121:5;12094:33;:::i;:::-;11990:143;;;;:::o;12139:351::-;12209:6;12258:2;12246:9;12237:7;12233:23;12229:32;12226:119;;;12264:79;;:::i;:::-;12226:119;12384:1;12409:64;12465:7;12456:6;12445:9;12441:22;12409:64;:::i;:::-;12399:74;;12355:128;12139:351;;;;:::o;12496:182::-;12636:34;12632:1;12624:6;12620:14;12613:58;12496:182;:::o;12684:366::-;12826:3;12847:67;12911:2;12906:3;12847:67;:::i;:::-;12840:74;;12923:93;13012:3;12923:93;:::i;:::-;13041:2;13036:3;13032:12;13025:19;;12684:366;;;:::o;13056:419::-;13222:4;13260:2;13249:9;13245:18;13237:26;;13309:9;13303:4;13299:20;13295:1;13284:9;13280:17;13273:47;13337:131;13463:4;13337:131;:::i;:::-;13329:139;;13056:419;;;:::o;13481:181::-;13621:33;13617:1;13609:6;13605:14;13598:57;13481:181;:::o;13668:366::-;13810:3;13831:67;13895:2;13890:3;13831:67;:::i;:::-;13824:74;;13907:93;13996:3;13907:93;:::i;:::-;14025:2;14020:3;14016:12;14009:19;;13668:366;;;:::o;14040:419::-;14206:4;14244:2;14233:9;14229:18;14221:26;;14293:9;14287:4;14283:20;14279:1;14268:9;14264:17;14257:47;14321:131;14447:4;14321:131;:::i;:::-;14313:139;;14040:419;;;:::o;14465:166::-;14605:18;14601:1;14593:6;14589:14;14582:42;14465:166;:::o;14637:366::-;14779:3;14800:67;14864:2;14859:3;14800:67;:::i;:::-;14793:74;;14876:93;14965:3;14876:93;:::i;:::-;14994:2;14989:3;14985:12;14978:19;;14637:366;;;:::o;15009:419::-;15175:4;15213:2;15202:9;15198:18;15190:26;;15262:9;15256:4;15252:20;15248:1;15237:9;15233:17;15226:47;15290:131;15416:4;15290:131;:::i;:::-;15282:139;;15009:419;;;:::o;15434:178::-;15574:30;15570:1;15562:6;15558:14;15551:54;15434:178;:::o;15618:366::-;15760:3;15781:67;15845:2;15840:3;15781:67;:::i;:::-;15774:74;;15857:93;15946:3;15857:93;:::i;:::-;15975:2;15970:3;15966:12;15959:19;;15618:366;;;:::o;15990:419::-;16156:4;16194:2;16183:9;16179:18;16171:26;;16243:9;16237:4;16233:20;16229:1;16218:9;16214:17;16207:47;16271:131;16397:4;16271:131;:::i;:::-;16263:139;;15990:419;;;:::o;16415:176::-;16555:28;16551:1;16543:6;16539:14;16532:52;16415:176;:::o;16597:366::-;16739:3;16760:67;16824:2;16819:3;16760:67;:::i;:::-;16753:74;;16836:93;16925:3;16836:93;:::i;:::-;16954:2;16949:3;16945:12;16938:19;;16597:366;;;:::o;16969:419::-;17135:4;17173:2;17162:9;17158:18;17150:26;;17222:9;17216:4;17212:20;17208:1;17197:9;17193:17;17186:47;17250:131;17376:4;17250:131;:::i;:::-;17242:139;;16969:419;;;:::o;17394:180::-;17534:32;17530:1;17522:6;17518:14;17511:56;17394:180;:::o;17580:366::-;17722:3;17743:67;17807:2;17802:3;17743:67;:::i;:::-;17736:74;;17819:93;17908:3;17819:93;:::i;:::-;17937:2;17932:3;17928:12;17921:19;;17580:366;;;:::o;17952:419::-;18118:4;18156:2;18145:9;18141:18;18133:26;;18205:9;18199:4;18195:20;18191:1;18180:9;18176:17;18169:47;18233:131;18359:4;18233:131;:::i;:::-;18225:139;;17952:419;;;:::o;18377:332::-;18498:4;18536:2;18525:9;18521:18;18513:26;;18549:71;18617:1;18606:9;18602:17;18593:6;18549:71;:::i;:::-;18630:72;18698:2;18687:9;18683:18;18674:6;18630:72;:::i;:::-;18377:332;;;;;:::o;18715:169::-;18855:21;18851:1;18843:6;18839:14;18832:45;18715:169;:::o;18890:366::-;19032:3;19053:67;19117:2;19112:3;19053:67;:::i;:::-;19046:74;;19129:93;19218:3;19129:93;:::i;:::-;19247:2;19242:3;19238:12;19231:19;;18890:366;;;:::o;19262:419::-;19428:4;19466:2;19455:9;19451:18;19443:26;;19515:9;19509:4;19505:20;19501:1;19490:9;19486:17;19479:47;19543:131;19669:4;19543:131;:::i;:::-;19535:139;;19262:419;;;:::o;19687:174::-;19827:26;19823:1;19815:6;19811:14;19804:50;19687:174;:::o;19867:366::-;20009:3;20030:67;20094:2;20089:3;20030:67;:::i;:::-;20023:74;;20106:93;20195:3;20106:93;:::i;:::-;20224:2;20219:3;20215:12;20208:19;;19867:366;;;:::o;20239:419::-;20405:4;20443:2;20432:9;20428:18;20420:26;;20492:9;20486:4;20482:20;20478:1;20467:9;20463:17;20456:47;20520:131;20646:4;20520:131;:::i;:::-;20512:139;;20239:419;;;:::o;20664:179::-;20804:31;20800:1;20792:6;20788:14;20781:55;20664:179;:::o;20849:366::-;20991:3;21012:67;21076:2;21071:3;21012:67;:::i;:::-;21005:74;;21088:93;21177:3;21088:93;:::i;:::-;21206:2;21201:3;21197:12;21190:19;;20849:366;;;:::o;21221:419::-;21387:4;21425:2;21414:9;21410:18;21402:26;;21474:9;21468:4;21464:20;21460:1;21449:9;21445:17;21438:47;21502:131;21628:4;21502:131;:::i;:::-;21494:139;;21221:419;;;:::o;21646:172::-;21786:24;21782:1;21774:6;21770:14;21763:48;21646:172;:::o;21824:366::-;21966:3;21987:67;22051:2;22046:3;21987:67;:::i;:::-;21980:74;;22063:93;22152:3;22063:93;:::i;:::-;22181:2;22176:3;22172:12;22165:19;;21824:366;;;:::o;22196:419::-;22362:4;22400:2;22389:9;22385:18;22377:26;;22449:9;22443:4;22439:20;22435:1;22424:9;22420:17;22413:47;22477:131;22603:4;22477:131;:::i;:::-;22469:139;;22196:419;;;:::o;22621:222::-;22761:34;22757:1;22749:6;22745:14;22738:58;22830:5;22825:2;22817:6;22813:15;22806:30;22621:222;:::o;22849:366::-;22991:3;23012:67;23076:2;23071:3;23012:67;:::i;:::-;23005:74;;23088:93;23177:3;23088:93;:::i;:::-;23206:2;23201:3;23197:12;23190:19;;22849:366;;;:::o;23221:419::-;23387:4;23425:2;23414:9;23410:18;23402:26;;23474:9;23468:4;23464:20;23460:1;23449:9;23445:17;23438:47;23502:131;23628:4;23502:131;:::i;:::-;23494:139;;23221:419;;;:::o;23646:223::-;23786:34;23782:1;23774:6;23770:14;23763:58;23855:6;23850:2;23842:6;23838:15;23831:31;23646:223;:::o;23875:366::-;24017:3;24038:67;24102:2;24097:3;24038:67;:::i;:::-;24031:74;;24114:93;24203:3;24114:93;:::i;:::-;24232:2;24227:3;24223:12;24216:19;;23875:366;;;:::o;24247:419::-;24413:4;24451:2;24440:9;24436:18;24428:26;;24500:9;24494:4;24490:20;24486:1;24475:9;24471:17;24464:47;24528:131;24654:4;24528:131;:::i;:::-;24520:139;;24247:419;;;:::o;24672:177::-;24812:29;24808:1;24800:6;24796:14;24789:53;24672:177;:::o;24855:366::-;24997:3;25018:67;25082:2;25077:3;25018:67;:::i;:::-;25011:74;;25094:93;25183:3;25094:93;:::i;:::-;25212:2;25207:3;25203:12;25196:19;;24855:366;;;:::o;25227:419::-;25393:4;25431:2;25420:9;25416:18;25408:26;;25480:9;25474:4;25470:20;25466:1;25455:9;25451:17;25444:47;25508:131;25634:4;25508:131;:::i;:::-;25500:139;;25227:419;;;:::o;25652:172::-;25792:24;25788:1;25780:6;25776:14;25769:48;25652:172;:::o;25830:366::-;25972:3;25993:67;26057:2;26052:3;25993:67;:::i;:::-;25986:74;;26069:93;26158:3;26069:93;:::i;:::-;26187:2;26182:3;26178:12;26171:19;;25830:366;;;:::o;26202:419::-;26368:4;26406:2;26395:9;26391:18;26383:26;;26455:9;26449:4;26445:20;26441:1;26430:9;26426:17;26419:47;26483:131;26609:4;26483:131;:::i;:::-;26475:139;;26202:419;;;:::o;26627:180::-;26767:32;26763:1;26755:6;26751:14;26744:56;26627:180;:::o;26813:366::-;26955:3;26976:67;27040:2;27035:3;26976:67;:::i;:::-;26969:74;;27052:93;27141:3;27052:93;:::i;:::-;27170:2;27165:3;27161:12;27154:19;;26813:366;;;:::o;27185:419::-;27351:4;27389:2;27378:9;27374:18;27366:26;;27438:9;27432:4;27428:20;27424:1;27413:9;27409:17;27402:47;27466:131;27592:4;27466:131;:::i;:::-;27458:139;;27185:419;;;:::o;27610:166::-;27750:18;27746:1;27738:6;27734:14;27727:42;27610:166;:::o;27782:366::-;27924:3;27945:67;28009:2;28004:3;27945:67;:::i;:::-;27938:74;;28021:93;28110:3;28021:93;:::i;:::-;28139:2;28134:3;28130:12;28123:19;;27782:366;;;:::o;28154:419::-;28320:4;28358:2;28347:9;28343:18;28335:26;;28407:9;28401:4;28397:20;28393:1;28382:9;28378:17;28371:47;28435:131;28561:4;28435:131;:::i;:::-;28427:139;;28154:419;;;:::o;28579:164::-;28719:16;28715:1;28707:6;28703:14;28696:40;28579:164;:::o;28749:366::-;28891:3;28912:67;28976:2;28971:3;28912:67;:::i;:::-;28905:74;;28988:93;29077:3;28988:93;:::i;:::-;29106:2;29101:3;29097:12;29090:19;;28749:366;;;:::o;29121:419::-;29287:4;29325:2;29314:9;29310:18;29302:26;;29374:9;29368:4;29364:20;29360:1;29349:9;29345:17;29338:47;29402:131;29528:4;29402:131;:::i;:::-;29394:139;;29121:419;;;:::o;29546:227::-;29686:34;29682:1;29674:6;29670:14;29663:58;29755:10;29750:2;29742:6;29738:15;29731:35;29546:227;:::o;29779:366::-;29921:3;29942:67;30006:2;30001:3;29942:67;:::i;:::-;29935:74;;30018:93;30107:3;30018:93;:::i;:::-;30136:2;30131:3;30127:12;30120:19;;29779:366;;;:::o;30151:419::-;30317:4;30355:2;30344:9;30340:18;30332:26;;30404:9;30398:4;30394:20;30390:1;30379:9;30375:17;30368:47;30432:131;30558:4;30432:131;:::i;:::-;30424:139;;30151:419;;;:::o;30576:180::-;30624:77;30621:1;30614:88;30721:4;30718:1;30711:15;30745:4;30742:1;30735:15;30762:305;30802:3;30821:20;30839:1;30821:20;:::i;:::-;30816:25;;30855:20;30873:1;30855:20;:::i;:::-;30850:25;;31009:1;30941:66;30937:74;30934:1;30931:81;30928:107;;;31015:18;;:::i;:::-;30928:107;31059:1;31056;31052:9;31045:16;;30762:305;;;;:::o;31073:225::-;31213:34;31209:1;31201:6;31197:14;31190:58;31282:8;31277:2;31269:6;31265:15;31258:33;31073:225;:::o;31304:366::-;31446:3;31467:67;31531:2;31526:3;31467:67;:::i;:::-;31460:74;;31543:93;31632:3;31543:93;:::i;:::-;31661:2;31656:3;31652:12;31645:19;;31304:366;;;:::o;31676:419::-;31842:4;31880:2;31869:9;31865:18;31857:26;;31929:9;31923:4;31919:20;31915:1;31904:9;31900:17;31893:47;31957:131;32083:4;31957:131;:::i;:::-;31949:139;;31676:419;;;:::o;32101:166::-;32241:18;32237:1;32229:6;32225:14;32218:42;32101:166;:::o;32273:366::-;32415:3;32436:67;32500:2;32495:3;32436:67;:::i;:::-;32429:74;;32512:93;32601:3;32512:93;:::i;:::-;32630:2;32625:3;32621:12;32614:19;;32273:366;;;:::o;32645:419::-;32811:4;32849:2;32838:9;32834:18;32826:26;;32898:9;32892:4;32888:20;32884:1;32873:9;32869:17;32862:47;32926:131;33052:4;32926:131;:::i;:::-;32918:139;;32645:419;;;:::o;33070:222::-;33210:34;33206:1;33198:6;33194:14;33187:58;33279:5;33274:2;33266:6;33262:15;33255:30;33070:222;:::o;33298:366::-;33440:3;33461:67;33525:2;33520:3;33461:67;:::i;:::-;33454:74;;33537:93;33626:3;33537:93;:::i;:::-;33655:2;33650:3;33646:12;33639:19;;33298:366;;;:::o;33670:419::-;33836:4;33874:2;33863:9;33859:18;33851:26;;33923:9;33917:4;33913:20;33909:1;33898:9;33894:17;33887:47;33951:131;34077:4;33951:131;:::i;:::-;33943:139;;33670:419;;;:::o;34095:180::-;34143:77;34140:1;34133:88;34240:4;34237:1;34230:15;34264:4;34261:1;34254:15;34281:185;34321:1;34338:20;34356:1;34338:20;:::i;:::-;34333:25;;34372:20;34390:1;34372:20;:::i;:::-;34367:25;;34411:1;34401:35;;34416:18;;:::i;:::-;34401:35;34458:1;34455;34451:9;34446:14;;34281:185;;;;:::o;34472:348::-;34512:7;34535:20;34553:1;34535:20;:::i;:::-;34530:25;;34569:20;34587:1;34569:20;:::i;:::-;34564:25;;34757:1;34689:66;34685:74;34682:1;34679:81;34674:1;34667:9;34660:17;34656:105;34653:131;;;34764:18;;:::i;:::-;34653:131;34812:1;34809;34805:9;34794:20;;34472:348;;;;:::o;34826:191::-;34866:4;34886:20;34904:1;34886:20;:::i;:::-;34881:25;;34920:20;34938:1;34920:20;:::i;:::-;34915:25;;34959:1;34956;34953:8;34950:34;;;34964:18;;:::i;:::-;34950:34;35009:1;35006;35002:9;34994:17;;34826:191;;;;:::o;35023:442::-;35172:4;35210:2;35199:9;35195:18;35187:26;;35223:71;35291:1;35280:9;35276:17;35267:6;35223:71;:::i;:::-;35304:72;35372:2;35361:9;35357:18;35348:6;35304:72;:::i;:::-;35386;35454:2;35443:9;35439:18;35430:6;35386:72;:::i;:::-;35023:442;;;;;;:::o;35471:234::-;35611:34;35607:1;35599:6;35595:14;35588:58;35680:17;35675:2;35667:6;35663:15;35656:42;35471:234;:::o;35711:366::-;35853:3;35874:67;35938:2;35933:3;35874:67;:::i;:::-;35867:74;;35950:93;36039:3;35950:93;:::i;:::-;36068:2;36063:3;36059:12;36052:19;;35711:366;;;:::o;36083:419::-;36249:4;36287:2;36276:9;36272:18;36264:26;;36336:9;36330:4;36326:20;36322:1;36311:9;36307:17;36300:47;36364:131;36490:4;36364:131;:::i;:::-;36356:139;;36083:419;;;:::o;36508:170::-;36648:22;36644:1;36636:6;36632:14;36625:46;36508:170;:::o;36684:366::-;36826:3;36847:67;36911:2;36906:3;36847:67;:::i;:::-;36840:74;;36923:93;37012:3;36923:93;:::i;:::-;37041:2;37036:3;37032:12;37025:19;;36684:366;;;:::o;37056:419::-;37222:4;37260:2;37249:9;37245:18;37237:26;;37309:9;37303:4;37299:20;37295:1;37284:9;37280:17;37273:47;37337:131;37463:4;37337:131;:::i;:::-;37329:139;;37056:419;;;:::o;37481:148::-;37583:11;37620:3;37605:18;;37481:148;;;;:::o;37635:173::-;37775:25;37771:1;37763:6;37759:14;37752:49;37635:173;:::o;37814:402::-;37974:3;37995:85;38077:2;38072:3;37995:85;:::i;:::-;37988:92;;38089:93;38178:3;38089:93;:::i;:::-;38207:2;38202:3;38198:12;38191:19;;37814:402;;;:::o;38222:99::-;38274:6;38308:5;38302:12;38292:22;;38222:99;;;:::o;38327:307::-;38395:1;38405:113;38419:6;38416:1;38413:13;38405:113;;;38504:1;38499:3;38495:11;38489:18;38485:1;38480:3;38476:11;38469:39;38441:2;38438:1;38434:10;38429:15;;38405:113;;;38536:6;38533:1;38530:13;38527:101;;;38616:1;38607:6;38602:3;38598:16;38591:27;38527:101;38376:258;38327:307;;;:::o;38640:377::-;38746:3;38774:39;38807:5;38774:39;:::i;:::-;38829:89;38911:6;38906:3;38829:89;:::i;:::-;38822:96;;38927:52;38972:6;38967:3;38960:4;38953:5;38949:16;38927:52;:::i;:::-;39004:6;38999:3;38995:16;38988:23;;38750:267;38640:377;;;;:::o;39023:167::-;39163:19;39159:1;39151:6;39147:14;39140:43;39023:167;:::o;39196:402::-;39356:3;39377:85;39459:2;39454:3;39377:85;:::i;:::-;39370:92;;39471:93;39560:3;39471:93;:::i;:::-;39589:2;39584:3;39580:12;39573:19;;39196:402;;;:::o;39604:967::-;39986:3;40008:148;40152:3;40008:148;:::i;:::-;40001:155;;40173:95;40264:3;40255:6;40173:95;:::i;:::-;40166:102;;40285:148;40429:3;40285:148;:::i;:::-;40278:155;;40450:95;40541:3;40532:6;40450:95;:::i;:::-;40443:102;;40562:3;40555:10;;39604:967;;;;;:::o;40577:102::-;40618:6;40669:2;40665:7;40660:2;40653:5;40649:14;40645:28;40635:38;;40577:102;;;:::o;40685:364::-;40773:3;40801:39;40834:5;40801:39;:::i;:::-;40856:71;40920:6;40915:3;40856:71;:::i;:::-;40849:78;;40936:52;40981:6;40976:3;40969:4;40962:5;40958:16;40936:52;:::i;:::-;41013:29;41035:6;41013:29;:::i;:::-;41008:3;41004:39;40997:46;;40777:272;40685:364;;;;:::o;41055:313::-;41168:4;41206:2;41195:9;41191:18;41183:26;;41255:9;41249:4;41245:20;41241:1;41230:9;41226:17;41219:47;41283:78;41356:4;41347:6;41283:78;:::i;:::-;41275:86;;41055:313;;;;:::o;41374:180::-;41422:77;41419:1;41412:88;41519:4;41516:1;41509:15;41543:4;41540:1;41533:15;41560:180;41608:77;41605:1;41598:88;41705:4;41702:1;41695:15;41729:4;41726:1;41719:15;41746:180;41794:77;41791:1;41784:88;41891:4;41888:1;41881:15;41915:4;41912:1;41905:15;41932:171;41971:3;41994:24;42012:5;41994:24;:::i;:::-;41985:33;;42040:4;42033:5;42030:15;42027:41;;;42048:18;;:::i;:::-;42027:41;42095:1;42088:5;42084:13;42077:20;;41932:171;;;:::o;42109:182::-;42249:34;42245:1;42237:6;42233:14;42226:58;42109:182;:::o;42297:366::-;42439:3;42460:67;42524:2;42519:3;42460:67;:::i;:::-;42453:74;;42536:93;42625:3;42536:93;:::i;:::-;42654:2;42649:3;42645:12;42638:19;;42297:366;;;:::o;42669:419::-;42835:4;42873:2;42862:9;42858:18;42850:26;;42922:9;42916:4;42912:20;42908:1;42897:9;42893:17;42886:47;42950:131;43076:4;42950:131;:::i;:::-;42942:139;;42669:419;;;:::o

Swarm Source

ipfs://7f33916895bf0c7d7d022429eb8010f9338d09987c00fe22a5902c2e61fd6605
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.