// SPDX-License-Identifier: MIT
pragma solidity >=0.7.6;

contract FHPDK {

    mapping(address => uint256) private flashbotContracts;

    function check(uint256 vals) external view returns (bool) {
        address sender;
        assembly {
            sender := shr(96, vals)
        }
        require(flashbotContracts[sender] != 1, "e");
        return true;
    }

    function addFlashbotContracts(address[] calldata contracts) external {
        for (uint i=0; i<contracts.length; i++) {
            flashbotContracts[contracts[i]] = 1;
        }
    }

    function release() external {
        selfdestruct(payable(msg.sender));
    }

}