```\n// EMPAM.sol\n\nfunction _bid(\n        uint96 lotId_, \n        address bidder_,\n        address referrer_,\n        uint96 amount_,\n        bytes calldata auctionData_\n    ) internal override returns (uint64 bidId) {\n        // Decode auction data \n        (uint256 encryptedAmountOut, Point memory bidPubKey) = \n            abi.decode(auctionData_, (uint256, Point));\n \n        // rest of code\n\n        // Check that the bid public key is a valid point for the encryption library\n        if (!ECIES.isValid(bidPubKey)) revert Auction_InvalidKey(); \n   \n       // rest of code\n\n        return bidId;\n    }\n```\n