```\nNFTTypes nftType;\n// CryptoPunks NFTs\nif (collateral_ == 0xb47e3cd837dDF8e4c57F05d70Ab865de6e193BBB ) {\n nftType = NFTTypes.CRYPTOPUNKS;\n}\n// CryptoKitties and CryptoFighters NFTs\nelse if (collateral_ == 0x06012c8cf97BEaD5deAe237070F9587f8E7A266d || collateral_ ==  0x87d598064c736dd0C712D329aFCFAA0Ccc1921A1) {\n nftType = NFTTypes.CRYPTOKITTIES;\n}\n// All other NFTs that support the EIP721 standard\nelse {\n // Here 0x80ac58cd is the ERC721 interface Id\n // Neither a standard NFT nor a non-standard supported NFT(punk, kitty or fighter)\n try IERC165(collateral_).supportsInterface(0x80ac58cd) returns (bool supportsERC721Interface) {\n  if (!supportsERC721Interface) revert NFTNotSupported();\n } catch {\n  revert NFTNotSupported();\n }\n\n nftType = NFTTypes.STANDARD_ERC721;\n}\n```\n