//
// Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>
// This program and the accompanying materials
// are licensed and made available under the terms and conditions of the BSD License
// which accompanies this distribution.  The full text of the license may be found at
// http://opensource.org/licenses/bsd-license.php
// 
// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
//
//
// Module Name:
//
//   InventoryStrings.uni
// 
// Abstract:
// 
//   String definitions for Inventory file.
// 
// Revision History:
// 
// --*/


/=#

#langdef en-US "English"
#langdef fr-FR "Francais"

#string STR_SOC_STRING                                  #language en-US "VLV SOC"
#string STR_SOC_VALUE                                   #language en-US "N/A"
#string STR_MRC_VERSION_STRING                          #language en-US "MRC Version"
#string STR_MRC_VERSION_VALUE                           #language en-US "N/A"
#string STR_PUNIT_FW_STRING                             #language en-US "PUNIT FW Patch"
#string STR_PUNIT_FW_VALUE                              #language en-US "N/A"
#string STR_ULPMC_FW_STRING                             #language en-US "ULPMC FW"
#string STR_ULPMC_FW_VALUE                              #language en-US "N/A"
#string STR_KSC_FW_STRING                               #language en-US "KSC FW"
#string STR_KSC_FW_VALUE                                #language en-US "N/A"
#string STR_SEC_FW_STRING                               #language en-US "TXE FW"
#string STR_SEC_FW_VALUE                                #language en-US "N/A"
#string STR_GOP_STRING                                  #language en-US "GOP"
#string STR_GOP_VALUE                                   #language en-US "N/A"
#string STR_PMC_FW_STRING                               #language en-US "PMC FW Patch"
#string STR_PMC_FW_VALUE                                #language en-US "N/A"

