************************************************************
************************************************************
*
*  Command Line Utility Readme.
*
*  This document makes references to products developed by
*  Intel. There are some restrictions on how these products
*  may be used, and what information may be disclosed to
*  others. Please read the Disclaimer section at the bottom
*  of this document, and contact your Intel field
*  representative if you would like more information.
*
************************************************************
************************************************************

************************************************************
*  
*  Intel is making no claims of usability, efficacy or 
*  warranty. The INTEL SOFTWARE LICENSE AGREEMENT contained
*  herein completely defines the license and use of this
*  software.
*
************************************************************

************************************************************
*  CONTENTS OF THIS DOCUMENT
************************************************************

This document contains the following sections:

1.  OVERVIEW
2.  SYSTEM REQUIREMENTS
3.  ENTERING THE COMMAND LINE UTILITY USER INTERFACE
4.  COMMAND LINE UTILITY USAGE
5.  COMMAND LINE RETURN CODES
6.  USAGE SCENARIOS EXAMPLES
7.  ERROR CODES


************************************************************
* 1.  OVERVIEW
************************************************************

Intel(R) Rapid Storage Technology (Intel(R) RST) CLI "Pro" is 
a command line utility used to perform basic operations
on Intel(R) Optane(TM) memory-enabled systems.

Intel(R) RST CLI "Pro" supports the following functionality :
  - Enabling and disabling Intel(R) Optane(TM) memory acceleration
  - Viewing properties of disks and the Intel(R) Optane(TM) memory volume
  - Resetting Intel(R) Optane(TM) volume metadata

************************************************************
* 2.  SYSTEM REQUIREMENTS
************************************************************

Refer to Intel(R) Rapid Storage Technology product system
requirements.

**IMPORTANT NOTES**
The rstclipro binaries should be unzipped to a secured folder
to prevent unauthorized users from making unintended changes to
the system's Optane(TM) volume.


************************************************************
* 3.  ENTERING THE COMMAND LINE UTILITY USER INTERFACE
************************************************************

Use the following steps to enter command line utility:
1.  Boot the system to Windows. 
2.  Open command prompt as administrator.
3.  Run rstclipro.exe with appropriate command line parameters.


************************************************************
* 4.  COMMAND LINE UTILITY USAGE
************************************************************

   Information Options:
   ------------------------
   | Flag | Name          |
   ------------------------
   | -I   | --information |
   ------------------------

   Information Usage:
   Displays disk, volume, array, and controller information.
    --information

   Information Examples:
    --information
    --information --help
    -I


   Manage Options:
   --------------------------------
   | Flag | Name                  |
   --------------------------------
   | -Z   | --delete-all-metadata |
   | -M   | --manage              |
   --------------------------------

   Manage Usage:
   Manages arrays, volumes and disks present in the storage system.
    --manage --delete-all-metadata

   Manage Examples:
    --manage --delete-all-metadata
    -M -Z


   OptaneMemory Options:
   ---------------------------
   | Flag | Name             |
   ---------------------------
   |      | --OptaneMemory   |
   |      | --disable        |
   |      | --drive-to-accel |
   |      | --enable         |
   |      | --progress       |
   |      | --info           |
   |      | --fast-drive     |
   ---------------------------

   OptaneMemory Usage:
   Manage Optane Memory configuration.
    --OptaneMemory --enable [--fast-drive <driveId> --drive-to-accel <driveId>]
    --OptaneMemory --disable
    --OptaneMemory --progress
    --OptaneMemory --info

   OptaneMemory Examples:
    --OptaneMemory --enable
    --OptaneMemory --enable --fast-drive 0-3-0-0 --drive-to-accel 0-5-0-0
    --OptaneMemory --disable
    --OptaneMemory --help
    --OptaneMemory --info


   Version Options:
   --------------------
   | Flag | Name      |
   --------------------
   | -V   | --version |
   --------------------

   Version Usage:
   Displays version information.
    --version

   Version Examples:
    --version


   Vmd Options:
   ----------------------
   | Flag | Name        |
   ----------------------
   |      | --remap-all |
   |      | --vmd       |
   |      | --remap     |
   ----------------------

   Vmd Usage:
   Volume management device (VMD) configuration.
    --vmd --remap <scsiX>
    --vmd --remap-all

   Vmd Examples:
    --vmd --remap scsi2
    --vmd --remap-all


OPTIONS:

   --disable
     Separate Optane Memory into Optane drive and capacity drive.

   --drive-to-accel <<host>-<bus>-<target>-<lun>>
     Specifies a drive if accelerating a pass-through drive.

   --enable
     Create Optane Memory

   --fast-drive <<host>-<bus>-<target>-<lun>>
     Specifies fast drive that will be used as cache/accelerator. If another 
     fast is being used as cache, then that volume needs to be deleted to use 
     a new fast drive.

   -h,  --help
     Displays help documentation for command line utility modes, options, 
     usage, examples, and return codes. When used with a mode switch (create, 
     information, mange, modify, or accelerate), instructions for that mode 
     display. For example, --create --help displays Create option help.

   -I,  --information
     Displays disk, volume, array, and controller information.

   --info
     Lists information about Optane Memory settings.

   -M,  --manage
     Manages arrays, volumes and disks present in the storage system.

   --OptaneMemory
     Manage Optane Memory configuration.

   --progress
     Displays the progress of file cache migration.

   --remap <ScsiX>
     Pulls specified controller under VMD on next computer reboot.

   --remap-all
     Pulls all eligible controllers under VMD on next computer reboot.

   --vmd
     Volume management device (VMD) configuration.

   -V,  --version
     Displays version information.

   -Z,  --delete-all-metadata
     Deletes the metadata from all disks on the system.

************************************************************
* 5.  COMMAND LINE RETURN CODES
************************************************************


   0,  Success 
    Request completed successfully. 

   1,  Request Failed 
    Request is formatted correctly but failed to execute. 

   2,  Invalid Request
    Unrecognized command, request was formatted incorrectly. 

   3,  Invalid Device
    Request not formatted correctly, device passed in does not exist. 

   4,  Request Unsupported
    Request is not supported with the current configuration. 

   5,  Device State Invalid
    Request is not supported with the current device state.
 
************************************************************
* 6.  USAGE SCENARIOS EXAMPLES
************************************************************
The following are examples of how to use RSTCLI Pro tool to manage
Intel(R) Optane(TM) Memory volume in a system.

************************************************************
* 6.1  Usage Scenario #1
************************************************************
Description:
    The end user wants to enable Intel(R) Optane(TM) Memory volume in a Windows 10 OS system

Prerequisite:
    - Intel(R) Optane(TM) Memory M10 installed in supported M.2 NVME slot.
    - BIOS Settings:
        - SATA Mode is set to "RAID / Intel RST Premium".
        - Intel(R) Optane(TM) Memory M10 M.2 NVME slot is set to "RST Controlled".
        - (Optional) If the OS is installed on Intel(R) SSD 660p that is attached to an NVME M.2 slot,
            Then the NVME M.2 slot should also be set to "RST Controlled" if this option is availble.
    - Windows 10 x64 OS RS5 or later installed on SATA SSD/HDD drive or Intel(R) SSD 660p NVME drive.
    - Intel(R) RST driver version 17.7.x or later installed.

Procedure:
    1.    Launch CMD windows as Administrator.
    2.    Change the working directory to the directory where RSTCLI Pro executable (RstCliPro.exe) is or 
        make sure the path to the RSTCLIPro executable is added in system path.
    3.    (Optional) Check for the version of the Intel(R) RST driver currently installed.
        Command:
            RstCliPro.exe --version
        Example Output:
            Intel(R) RSTCLI
            Middleware Version: 17.7.0.1000
            Controller Intel(R) Chipset SATA/PCIe RST Premium Controller \\Scsi0 Driver Version: 17.7.0.1000
            Controller Intel(R) Chipset SATA/PCIe RST Premium Controller \\Scsi0 OROM Version: 15.7.0.3054
        Note:
            - Intel(R) RST driver and middleware version must match.
            - Intel(R) RST driver must be 17.7.0.1000 or later for the RSTCLI Pro to work.
            
    3.    Find the ID for the SATA SSD/HDD drive where the OS installed and the ID of the Intel(R) Optane(TM) Memory M10.
        Command: 
            RstCliPro.exe -I
        Below is the example output of the above command:
            ID:                              0-0-0-0
            Type:                            Disk
            Disk Type:                       SATA Disk
            Disk Link Speed:                 6 Gb/s
            State:                           Normal
            ...
            System Disk:                     True
            ...
            Usage:                           Pass through
            ...
        
            ID:                              0-3-0-0
            Type:                            Disk
            Disk Type:                       PCIE SSD
            Port Interface:                  NVMe
            Bus Width:                       X2
            Bus Speed:                       GEN3
            Host Memory Buffer supported:    No
            State:                           Normal
            ...
            System Disk:                     False
            ...
            Usage:                           Pass through
            ...
            Model:                           INTEL SSDPEK1W120GA
        
        Note:
            - The example output shows only some relavant information. Omitted information is replaced with (...)
            - Intel(R) Optane(TM) Memory M10 is referred to as "fast drive"
            - SATA SSD/HDD or Intel(R) SSD 660p NVME is referred to as "slow drive"     
            
    4.    (Optional) Delete any Intel RST metadata on fast drive and slow drive to ensure that enabling process 
        starts from a fresh point.
        Command:
            RstCliPro.exe --manage --delete-all-metadata
                or
            RstCliPro.exe -M -Z

    5.    Enable Optane Volume with the ID information found in previous command.
        Command:
            RstCliPro.exe --OptaneMemory --enable --fast-drive 0-3-0-0 --drive-to-accel 0-0-0-0
        Note:         
            - The command will take some time to complete. It should block the process until enabling process is completed.
            - If the Optane Volume is already enabled, the operation will return a non Zero code.
            
    6.    (Optional) Check for return code. Refer to section above for Return Code information
    7.    Reboot/Restart (not shutdown) the system to complete the enabling process

************************************************************
* 6.2  Usage Scenario #2
************************************************************
Description:
    The end user wants to enable Intel(R) Optane(TM) Memory volume on a system and deploy a pre-configured (IT configured) Windows 10 OS image 
    to the system's Intel Optane Memory Volume in Windows Preinstallation Environment (WinPE).
    
Prerequisite:
    - Intel(R) Optane(TM) Memory M10 installed in supported M.2 NVME slot.
    - SATA SSD/HDD connected to SATA Port or Intel(R) SSD 660p that is attached to an NVME M.2 slot.
    - BIOS Settings:
        - SATA Mode is set to "RAID / Intel RST Premium".
        - Intel(R) Optane(TM) Memory M10 M.2 NVME slot is set to "RST Controlled".
        - (Optional) If the OS is installed to Intel(R) SSD 660p that is attached to an NVME M.2 slot,
            Then the NVME M.2 slot should also be set to "RST Controlled" if this option is availble.
    - IMPORTANT information regarding installation media:
        - WinPE USB drive that has Intel(R) RST driver version 17.7.x or later injected into "boot.wim" file.
        Refer https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/winpe-mount-and-customize
        for help on how to add Intel(R) RST driver to WinPE.
        - Intel RSTCLI Pro executable is placed on the same customized WinPE USB drive.
    - Deployed Windows OS Image must already has Intel(R) RST driver version 17.7.x or later integrated into it. 

Procedure:
    1.    Boot the system into the customized (with injected Intel RST driver) WinPE.
    2.    Use "diskpart" to create the required Windows OS partition on the SATA SSD/HDD or Intel(R) SSD 660p where the Windows OS image will be deployed.
    3.    Deploy the Windows OS Image that already has Intel(R) RST driver version 17.7.x or later integrated into it; onto the SATA SSD/HDD or Intel(R) SSD 660p.
    4.    Change the working directory to the drive and directory where RSTCLI Pro executable (RstCliPro.exe) is.
    5.    Find the ID for the SATA SSD/HDD or Intel(R) SSD 660p and the ID of the Intel(R) Optane(TM) Memory M10.
        Command: 
            RstCliPro.exe -I
        Below is the example output of the above command:
            ID:                              0-0-0-0
            Type:                            Disk
            Disk Type:                       SATA Disk
            Disk Link Speed:                 6 Gb/s
            State:                           Normal
            ...
            System Disk:                     True
            ...
            Usage:                           Pass through
            ...
            
            ID:                              0-3-0-0
            Type:                            Disk
            Disk Type:                       PCIE SSD
            Port Interface:                  NVMe
            Bus Width:                       X2
            Bus Speed:                       GEN3
            Host Memory Buffer supported:    No
            State:                           Normal
            ...
            System Disk:                     False
            ...
            Usage:                           Pass through
            ...
            Model:                           INTEL SSDPEK1W120GA
        
        Note:
            - The example output shows only some relavant information. Omitted information is replaced with (...)
            - Intel(R) Optane(TM) Memory M10 is referred to as "fast drive"
            - SATA SSD/HDD or Intel(R) SSD 660p NVME is referred to as "slow drive"     
            
    6.    Enable Optane Volume with the ID information found in previous command.
        Command:
            RstCliPro.exe --OptaneMemory --enable --fast-drive 0-3-0-0 --drive-to-accel 0-0-0-0
        Note:         
            - The command will take some time to complete. It should block the process until enabling process is completed.
            
    7.    (Optional) Check for return code. Refer to section above for Return Code information
    8.    Reboot/Restart (not shutdown) the system to complete the process.

************************************************************
* 6.3  Usage Scenario #3
************************************************************
Description:
    The end user wants to upgrade SATA SSD/HDD or Intel(R) SSD 660p NVME that is a part of an Intel Optane Memory volume 
    on the current system to a higher capacity one.

Prerequisite:
    - Assume that the system has already met all the HW and BIOS requirements for Intel(R) Optane(TM) Memory volume to be enabled in the first place.
    - Windows 10 x64 OS RS5 or later installed on SATA SSD/HDD drive or Intel(R) SSD 660p NVME drive.
    - Intel(R) RST driver version 17.7.x or later installed.
    
Procedure:
    1.    Back up all the data.
    2.    Disable Intel(R) Optane(TM) Memory volume.
        Command:
            RstCliPro.exe --OptaneMemory --disable
        Note:
            - The command will take some time to complete. It should block the process until enabling process is completed.
    3.    Reboot/Restart (not shutdown) the system to complete disabling process.
    4.    Use cloning software to clone the image on the SATA SSD/HDD or Intel(R) SSD 660p NVME drive to a bigger drive.
        Please note that for NVME SSD, only Intel(R) SSD 660p NVME is supported.
    5.    Start the system with the new drive.
    6.    Follow the steps in section 6.1 to enable Intel(R) Optane(TM) Memory volume again.
    
************************************************************
* 6.4  Usage Scenario #4
************************************************************
Description:
    The end user wants to enable Intel® Optane™ Memory volume on a system, equipped with Intel® Optane™ Memory H10 with Solid State Drive,
    and deploy a pre-configured (IT configured) Windows 10 OS image to the system's Intel Optane Memory Volume in Windows Preinstallation Environment (WinPE).
    
Prerequisite:
    - Intel® Optane™ Memory H10 installed in supported M.2 NVME slot.
    - BIOS Settings:
        - SATA Mode is set to "RAID / Intel RST Premium".
        - Intel® Optane™ Memory H10's M.2 NVME slot is set to "Not RST Controlled".
    - IMPORTANT information regarding installation media:
        - WinPE USB drive that has Intel® RST driver version 17.7.x or later injected into "boot.wim" file.
        Refer https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/winpe-mount-and-customize
        for help on how to add Intel® RST driver to WinPE.
        - Intel RSTCLI Pro executable is placed on the same customized WinPE USB drive.
    - Deployed Windows OS Image must already has Intel® RST driver version 17.7.x or later integrated into it. 

Procedure:
    1.    Boot the system into the customized (with injected Intel RST driver) WinPE.
    2.    Use "diskpart" to create the required Windows OS partition on the Intel® Optane™ Memory H10's QLC NAND device where the Windows OS image will be deployed.
            Below example is diskpart output of a 256GB/1TB Intel® Optane™ Memory H10 device. The OS is installed on Disk 1.
      =====
            Microsoft DiskPart version 10.0.17763.1

            Copyright (C) Microsoft Corporation.
            On computer: MININT-F9FTMHO

              Disk ###  Status         Size     Free     Dyn  Gpt
              --------  -------------  -------  -------  ---  ---
              Disk 0    Online           27 GB    27 GB         
              Disk 1    Online          953 GB   715 GB        *
              Disk 2    Online           14 GB      0 B        *
      =====
    3.    Deploy the Windows OS Image that already has Intel® RST driver version 17.7.x or later integrated into it; onto the .
    4.    Change the working directory to the drive and directory where RSTCLI Pro executable (RstCliPro.exe) is.
    5.    Find the ID for the SATA SSD/HDD or Intel® SSD 660p and the ID of the Intel® Optane™ Memory M10.
        Command: 
            RstCliPro.exe -I
        Below is the example output of the above command:
            ID:                              0-13-0-0
            Type:                            Disk
            Disk Type:                       PCIE SSD
            Port Interface:                  NVMe
            Bus Width:                       X2
            Bus Speed:                       GEN3
            ...
            State:                           Normal
            Size:                            27 GB
            Space available for new volumes: 27 GB
            ...
            Model:                           INTEL HBRPEKNX0203AO                    

            ID:                              0-14-0-0
            Type:                            Disk
            Disk Type:                       PCIE SSD
            Port Interface:                  NVMe
            Bus Width:                       X2
            Bus Speed:                       GEN3
            ...
            State:                           Normal
            Size:                            954 GB
            Space available for new volumes: 954 GB
            ...
            Usage:                           Pass through
            Model:                           INTEL HBRPEKNX0203A                     
        
        Note:
            - The example output shows only some relavant information. Omitted information is replaced with (...)
            - Intel® Optane™ Memory H10's Optane device is referred to as "fast drive"
            - Intel® Optane™ Memory H10's QLC NAND device is referred to as "slow drive"
            
    6.    Enable Optane Volume with the ID information found in previous command.
        Command:
            RstCliPro.exe --OptaneMemory --enable --fast-drive 0-13-0-0 --drive-to-accel 0-14-0-0
        Note:         
            - The command will take some time to complete. It should block the process until enabling process is completed.
            
    7.    (Optional) Check for return code. Refer to section above for Return Code information
    8.    Reboot/Restart (not shutdown) the system to complete the process.


************************************************************
* 7.  ERROR CODES
************************************************************

0x20000000          SUCCESS
0x20000001          WIN32 ERROR
0xA0000002          GENERAL FAULT
0xA0000003          GENERAL UNKNOWN ERROR
0xA0000004          GENERAL INVALID VALUE
0xA0000006          GENERAL NULL PARAMETER
0xA0000008          GENERAL INVALID STATE
0xA000000E          GENERAL INSUFF MEM
0xA0000032          GENERAL NOT IMPLEMENTED
0xA00000AA          DRIVER BUSY
0xA0010001          ISI INSUFFICIENTRESOURCES
0xA0010002          ISI INVALIDPARAMETER
0xA0010003          ISI INVALIDHANDLE
0xA0010004          ISI INVALIDSTRIPSIZE
0xA0010005          ISI INVALIDSTRING
0xA0010006          ISI INVALIDSIZE
0xA0010007          ISI INVALIDRAIDLEVEL
0xA0010008          ISI INVALIDSESSION
0xA0010009          ISI TIMEOUT
0xA001000A          ISI NOTIMPLEMENTED
0xA001000B          ISI DUPLICATE
0xA001000C          ISI NOTINITIALIZED
0xA001000D          ISI BUFFERTOOSMALL
0xA001000E          ISI NOTSUPPORTED
0xA001000F          ISI FAILED
0xA0010010          ISI INTERNALERROR
0xA0010011          ISI INVALIDSCOPE
0xA0010012          ISI INVALIDSTATE
0xA0010013          ISI RETRIESEXCEEDED
0xA0010014          ISI WRONGPASSWORD
0xA0010015          ISI DATAEXCEEDSLIMITS
0xA0010016          ISI INSUFFICIENTPRIVILEGES
0xA0010018          ISI INVALID REQUEST
0xA001004B          ISI SHRINK FAILED GENERIC
0xA001004C          ISI SHRINK LAST PARTITION NOT DATA
0xA001004D          ISI SHRINK LAST PARTITION TOO SMALL
0xA001004E          ISI SHRINK NOT ENOUGH SPACE
0xA0010050          ISI NO CONTROLLER FOUND
0xA0010051          ISI SHRINK REQUESTED SIZE LESS THAN MIN
0xA0010053          ISI SHRINK LAST PARTITION NOT SHRINKABLE
0xA0010054          ISI SHRINK NOT ENOUGH FREE SPACE
0xA0010055          ISI SHRINK WINRE REQUIREMENT FAILED
0xA0010056          ISI SHRINK QUERY DISK FOR GPT ATTRIBUTE CHANGE FAILED
0xA0010057          ISI SHRINK QUERY DISK FOR PARTITION TYPE CHANGE FAILED
0xA0010058          ISI SHRINK GET PARTITION PROPS FAILED
0xA0010059          ISI SHRINK INCORRECT PARTITION TYPE
0xA001005A          ISI SHRINK CHANGE PARTITION TYPE FAILED
0xA001005B          ISI SHRINK CHANGE GPT ATTRIBUTES FAILED
0xA001005C          ISI SHRINK QUERY DISK FOR FILE SYSTEM CHECK FAILED
0xA001005D          ISI SHRINK FILE SYSTEM CHECK FAILED
0xA001005F          ISI EVENT WAITINGONRESULT
0xA0010060          ISI EVENT SYNCFAULT
0xA0010061          ISI EVENT TIMEOUT
0xA0010062          ISI EVENT WAIT FAILED
0xA0010063          ISI ACTION VALIDATOR HAS USER DATA
0xA0010064          ISI ACTION VALIDATOR REBOOT ACTION DENIED
0xA0010065          ISI ACTION VALIDATOR ROHI CANT ENABLE
0xA0010066          ISI ACTION VALIDATOR CLEAR MD ACTION DENIED
0xA0010067          ISI ACTION VALIDATOR DENIED
0xA0010068          ISI ACTION VALIDATOR RAID ACTION ON TG
0xA0010069          ISI ACTION VALIDATOR SUB CC SWITCH FEATURE NOT SUPPORTED
0xA001006A          ISI ACTION VALIDATOR SUB CC SWITCH FEATURE NOT SUPPORTED DISK
0xA001006B          ISI ACTION VALIDATOR DISK NOT PASS THRU
0xA001006C          ISI DISK IS WINDOWS DYNAMIC
0xA001006D          ISI ACTION VMD REMAP UNSUPPORTED CONTROLLER
0xA001006E          ISI ACTION VMD REMAP UNSUPPORTED REMAP OPERATION
0xA001006F          ISI ACTION VMD REMAP UNSUPPORTED REVERT OPERATION
0xA0010070          ISI ACTION VMD REMAP NOTHING TO REMAP
0xA0010071          ISI ACTION VMD REMAP NOTHING TO REVERT
0xA0010072          ISI ACTION VMD REMAP OPERATION FAILED READ
0xA0010073          ISI ACTION VMD REMAP OPERATION FAILED WRITE
0xA0010074          ISI ACTION VMD REMAP OPERATION NO VMD ON SYSTEM
0xA0010075          ISI ACTION VMD REMAP OPERATION FAILED READ TOO SMALL
0xA0010076          ISI ACTION VMD REMAP NOT SUPPORTED
0xA0010077          ISI ACTION VMD REMAP HYBRID NOT ALL MEMBERS
0xA0010078          ISI ACTION VMD REMAP HYBRID MISSING MEMBER
0xA0010079          ISI ACTION VMD REMAP PCI SWITCH NOT ALL MEMBERS
0xA00100C9          ISI FAULT
0xA0020065          PSI FAULT
0xA0020066          PSI ERROR
0xA0020067          PSI DATASET
0xA0020068          PSI MISSING TABLE
0xA0020069          PSI MISSING FIELD
0xA002006A          PSI MISSING DISK
0xA002006B          PSI MISSING ARRAY
0xA002006C          PSI MISSING VOLUME
0xA002006D          PSI MISSING DEVICE
0xA002006E          PSI MISSING PARAM
0xA003012D          IOCTL FAULT
0xA003012E          IOCTL NOT PERFORMED
0xA003012F          IOCTL PREVIOUSLY PERFORMED
0xA0030130          IOCTL NO ASYNC INVOKE
0xA0030131          IOCTL PENDING
0xA0030132          IOCTL IOCTL ERROR
0xA0030133          IOCTL BAD RESULTS
0xA0030134          IOCTL LOCK TIMEOUT
0xA0030135          IOCTL LOCK BAD FREE
0xA0030136          IOCTL LOCK RELOCK
0xA0030137          IOCTL IN BUFFER SIZE
0xA0030138          IOCTL OUT BUFFER SIZE
0xA0030139          IOCTL CONFIG BUFFER SIZE
0xA003013A          IOCTL BAD RAID CONFIG GROUP
0xA003013B          IOCTL BAD RAID DIRECTION
0xA003013C          IOCTL NEW VALUE NOT SET
0xA003013D          IOCTL ZERO LEN SERIALNO
0xA003013E          IOCTL SERIALNO TOO LONG
0xA003013F          IOCTL SERIALNO WHITESPACE
0xA0030140          IOCTL SERIALNO INVALID
0xA0030141          IOCTL SIMULATOR NOT FOUND
0xA0030142          IOCTL INTERFACE NOT SUPPORTED
0xA0040400          DRIVER FAULT
0xA0040401          DRIVER UNEXPECTED
0xA0040402          DRIVER BUFFER OVERRUN
0xA0040403          DRIVER SHORT RESPONSE
0xA0040404          DRIVER SRB IO RESPONSE
0xA0040405          DRIVER ISM VALIDATION ERR
0xA0040406          DRIVER CSMI ERROR STATUS
0xA0040407          DRIVER CSMI CRITICAL ERROR
0xA0050000          RAID ISM STS OK
0xA0050001          RAID ISM STS ERROR
0xA0050002          RAID ISM BAD KEY CONTINUE
0xA0050003          RAID ISM BAD KEY ABORT
0xA0050004          RAID ISM SCALAR ERROR
0xA0050005          RAID ISM INVALID GROUP ID
0xA0050006          RAID ISM NO SUCH FIELD
0xA0050007          RAID ISM TABLE ERROR
0xA0050008          RAID ISM DISK TABLE FULL
0xA0050009          RAID ISM PENDING
0xA005000A          RAID ISM INVALID REQUEST
0xA005000B          RAID ISM INVALID PARAMETER
0xA005000C          RAID ISM AOAC NOT CONFIGURED
0xA0060000          CFG OK
0xA0060001          CFG HELP
0xA0060002          CFG VOLUME TABLE FULL
0xA0060003          CFG VOLUME NAME EMBEDDED SPACES
0xA0060004          CFG DISK TABLE FULL
0xA0060005          CFG VOLUME NAME TOO SHORT
0xA0060006          CFG VOLUME NAME TOO LONG
0xA0060007          CFG VOLUME NAME NOT UNIQUE
0xA0060008          CFG NO MEMBERS SELECTED
0xA0060009          CFG TOO FEW MEMBERS SELECTED
0xA006000A          CFG TOO MANY MEMBERS SELECTED
0xA006000B          CFG VOLUME NEEDS THREE MEMBERS
0xA006000C          CFG TOO MANY DISKS ONLINE
0xA006000D          CFG ARRAY NOT STABLE
0xA006000E          CFG NOT ENOUGH DISK SPACE
0xA006000F          CFG RAID3 STRIPE TOO BIG
0xA0060010          CFG VOLUME NAME ALL NUMERIC
0xA0060011          CFG DISK TOO SMALL FOR ARRAY
0xA0060012          CFG VOLUME NOT FOUND
0xA0060013          CFG OPERATION NOT IMPLEMENTED
0xA0060014          CFG VOLUME NAME ILLEGAL CHARACTERS
0xA0060015          CFG VOLUME NAME MUST START ALPHA
0xA0060016          CFG VOL ACTIONS IN PROGRESS
0xA0060017          CFG NOT ENOUGH RESOURCES
0xA0060018          CFG ABORT MIGRATION FAILED
0xA0060019          CFG INITIALIZE PARITY FAILED
0xA006001A          CFG VERIFY PARITY FAILED
0xA006001B          CFG CONFIG HAS CHANGED
0xA006001C          CFG REQUEST OVERLAP
0xA006001D          CFG UNSPECIFIED ERROR
0xA006001E          CFG VOLUME ALREADY MIGRATING
0xA006001F          CFG VOLUME RSV REL RESET ERROR
0xA0060020          CFG VOLUME DELETED ACTION NOT DONE
0xA0060021          CFG DISK DELETED ACTION NOT DONE
0xA0060022          CFG DISK NOT FOUND
0xA0060023          CFG DISK ACTIONS STILL IN PROGRESS
0xA0060024          CFG ILLEGAL DISK ACTION
0xA0060025          CFG RAID STRIP SIZE INVALID
0xA0060026          CFG ACTION IGNORED DISK FAILURE
0xA0060027          CFG ACTION IGNORED ARRAY REBUILD
0xA0060028          CFG ARRAY NOT NORMAL
0xA0060029          CFG RAID LEVEL INVALID
0xA006002A          CFG ARRAY HAS MULTIPLE VOLUMES
0xA006002B          CFG INVALID PARAMETER
0xA006002C          CFG NV CACHE IN USE
0xA006002D          CFG NV CACHE NOT PRESENT
0xA006002E          CFG NV CACHE TOO BIG
0xA006002F          CFG AOAC ERROR
0xA0060030          CFG INVALID SPINDOWN POLICY
0xA0060031          CFG INVALID ERROR CODE
0xA0070000          OPTANE UNKNOWN
0xA0070001          OPTANE CONCATENATE DRIVER DISKSARENOTVALID
0xA0070002          OPTANE CONCATENATE DRIVER VOLUMENOTEXIST
0xA0070003          OPTANE CONCATENATE DRIVER PLATFORMNOTSUPPORTED
0xA0070004          OPTANE CONCATENATE DRIVER CONCATENATIONVOLUMEALREADYEXIST
0xA0070005          OPTANE CONCATENATE DRIVER OSONWRONGDISK
0xA0070006          OPTANE CONCATENATE DRIVER FILECACHESIZETOOBIG
0xA0070007          OPTANE CONCATENATE DRIVER FILECACHESIZETOOSMALL
0xA0070008          OPTANE CONCATENATE DRIVER NOSPACEFORMETADATA
0xA0070009          OPTANE CONCATENATE DRIVER INTERNALERROR
0xA007000A          OPTANE CONCATENATE DRIVER CONFIGURATIONNOTSUPPORTED
0xA007000B          OPTANE CONCATENATE DRIVER STARTBOUNDARYTOOSMALL
0xA007000C          OPTANE CONCATENATE ISDI2 ALREADYENABLED
0xA007000D          OPTANE CONCATENATE ISDI2 FASTMEDIANOTCLEAN
0xA007000E          OPTANE BLOCK CACHEVOLUMEALREADYPRESENT
0xA007000F          OPTANE FASTMEDIAINVALIDFORCACHE
0xA0070010          OPTANE FASTMEDIATOOSMALLFORCACHE
0xA0070011          OPTANE UNALLOCATEDSPACEINVALID
0xA0070012          OPTANE BLOCK CACHE SIZEINVALID
0xA0070013          OPTANE BLOCKCACHECREATIONFAILED
0xA0070014          OPTANE SET BLOCKCACHE ACCELERATEMODEFAILED
0xA0070015          OPTANE CONCATENATE ISDI2 ACCELERATEWITHBLOCKCACHEFAILED
0xA0070016          OPTANE CONCATENATE ISDI2 SPECIFIEDFILECACHETOOBIG
0xA0070017          OPTANE CONCATENATE ISDI2 NODISKPAIRFOUND
0xA0070018          OPTANE CONCATENATE ISDI2 MANYDISKPAIRFOUND
0xA0070019          OPTANE DRIVER FEATURENOTSUPPORTED
0xA007001A          OPTANE CONCATENATE DRIVER DISKPAIRDISKIDAREEQUAL
0xA007001B          OPTANE CONCATENATE DRIVER DISKPAIRFASTDISKNOTSUPPORTED
0xA007001C          OPTANE CONCATENATE DRIVER DISKPAIRSLOWDISKNOTSUPPORTED
0xA007001D          OPTANE CONCATENATE DRIVER DISKPAIRFASTDISKISTOOBIG
0xA007001E          OPTANE CONCATENATE DRIVER DISKPAIRINTERNALERROR
0xA007001F          OPTANE ISDI2 SERVICECOMMANDNOTCREATED
0xA0070020          OPTANE ISDI2 MIGRATIONSERVICENOTFOUND
0xA0070021          OPTANE ISDI2 MINIFILTERSERVICENOTFOUND
0xA0070022          OPTANE SEPARATE DRIVER CONCATENATEDVOLUMENOTEXIST
0xA0070023          OPTANE SEPARATE DRIVER MIGRATIONALREADYRUNNING
0xA0070024          OPTANE SEPARATE ISDI2 OPTANEVOLUMENOTFOUND
0xA0070025          OPTANE DEACCELERATEFROMBLOCKCACHEFAILED
0xA0070026          OPTANE SEPARATE ISDI2 DEACCELERATEFROMBLOCKCACHEFAILED
0xA0070027          OPTANE SEPARATE ISDI2 DESTROYINGBLOCKCACHEFAILED
0xA0070028          OPTANE CONCATENATE DRIVER DISKINTERNALERROR
0xA0070029          OPTANE CONCATENATE DRIVER DISKVOLUMENOTEXIST
0xA007002A          OPTANE CONCATENATE DRIVER DISKISNOTDISK
0xA007002B          OPTANE CONCATENATE DRIVER DISKINCORRECTBLOCKSIZE
0xA007002C          OPTANE CONCATENATE DRIVER DISKTOOSMALL
0xA007002D          OPTANE CONCATENATE DRIVER DISKINCORRECTDISKTYPE
0xA007002E          OPTANE CONCATENATE DRIVER DISKINCORRECTPARTITIONTYPE
0xA007002F          OPTANE DRIVER METADATAOPERATION DISKNOTEXIST
0xA0070030          OPTANE DRIVER METADATAOPERATION FAILED
0xA0070031          OPTANE ISDI2 SETTING BLOCK CACHE TO SAFE FAILED
0xA0070032          OPTANE CONCATENATE ISDI2 DISKCONTAINSSYSTEMCOMPONENTS
0xA0070033          OPTANE SMART EVENT ON SLOW
0xA0070034          OPTANE SMART EVENT ON FAST
0xA0070035          OPTANE BAD BLOCK DETECTED
0xA0070036          OPTANE MIGRATION FAILURE ROLLBACK
0xA0070037          OPTANE CRITICAL SECTION NOT OBTAINED
0xA0070038          OPTANE CRITICAL SECTION RE ENTRY
0xA0080000          UI Unknown
0xA0080001          UI UnknownInitError
0xA0080002          UI NullAssemblyLocation
0xA0080003          UI AssemblyLocationDirNotExist
0xA0080004          UI MockClientDllFileNotFound
0xA0080005          UI MwClientDllFileNotFound
0xA0080006          UI NullDataProvider
0xA0080007          UI NullOptaneController
0xA0080008          UI RebootPending
0xA0080009          UI NoAdminPrivilege
0xA008000A          UI FastDiskIdInvalidHandle
0xA008000B          UI SlowDiskIdInvalidHandle
0xA008000C          UI MigrationHanged
0xA008000D          UI WrongOptaneStatusDuringEnabling
0xA008000E          UI UnknownEnableError
0xA008000F          UI WrongOptaneStatusDuringDisabling
0xA0080010          UI ControllerIdInvalidHandle
0xA0080011          UI UnknownDisableError
0xA0080012          UI VolumeIdInvalidHandle
0xA0080013          UI DiskIdInvalidHandle
0xA0080014          UI UnhandledDispatcherException
0xA0080015          UI UnexpectedNgsaOperationStatusDomain
0xA0080016          UI UnexpectedCheckerStatus
0xA0080017          UI FastDiskIdIsNull
0xA0080018          UI SystemDiskNotFound
0xA0080019          UI UnexpectedOptaneStatusEnum
0xA008001A          UI UnexpectedErrorType
0xA008001B          UI InvalidViewModelRedirection
0xA008001C          UI RegistryKeyOpeningFailed
0xA008001D          UI OptaneUIProcessStartingFailed
0xA008001E          UI InvalidTypeDataProvider
0xA008001F          UI InitializingPsiDataModelError
0xA0080020          UI MockNoOptaneFound
0xA0080021          UI MockIncorrectOptaneStatus
0xA0080022          UI MockOptaneIsNotEnabled
0xA0080023          UI MockIncorrectOptaneStatusType
0xA0080024          UI MockIncorrectDiskPair
0xA0080025          UI MockIncorrectControllerId
0xA0080026          UI MockReadStatusFileNameIsNull
0xA0080027          UI MwExceptionNoErrors
0xA0080028          UI MwExceptionManyErrors
0xA0080029          UI AppAlreadyRunningForDifferentUser
0xA008002A          UI SataControllerInAhciModeWithoutDriver
0xA008002B          UI SataControllerInAhciModeWithDriver
0xA008002C          UI AppAlreadyRunning
0xA008002D          UI UnsupportedBiosOrBiosMode
0xA008002E          UI UnsupportedDriver 
0xA008002F          UI UnableToDisplayNotifications
0xA0080030          UI SingleInstanceCheckFailed
0xA0090000          RPC UNKNOWN ERROR
0xA0090001          RPC CLIENT CONNECT MUTEX NULL
0xA0090002          RPC CLIENT CONNECT MUTEX BUSY
0xA0090003          RPC CLIENT CONNECT MUTEX FAILED
0xA0090004          RPC IMPERSONATE FAILED
0xA0090005          RPC INVALID ARGUMENT
0xA0090006          RPC SINGLE INSTANCE INTERNAL ERROR
0xA0090007          RPC SINGLE INSTANCE ALREADY RUNNING
0xA0090008          RPC SINGLE INSTANCE ALREADY RUNNING DUPLICATE
0xA0090009          RPC CLIENT AUTHORIZATION DENIED
0xA00906AD          RPC INVALID TIMEOUT
0xA00906B3          RPC INVALID NOT LISTENING
0xA00906BA          RPC SERVER UNAVAILABLE
0xA00906BB          RPC SERVER TOO BUSY
0xA00906BC          RPC CLIENT COMMUNICATION BLOCKED
0xA00A0000          PINNING UNAVALIABLE
0xA00A0001          PINNING PICK FILE
0xA00A0002          PINNING PICK FOLDER
0xA00A0003          PINNING PICK APP
0xA00A000B          PINNING FILES AND FOLDERS REFRESH
0xA00A000D          PINNING APPS REFRESH
0xA00A0015          PINNING PIN FILE OR FOLDER
0xA00A0017          PINNING PIN APP
0xA00A001F          PINNING UNPIN FILE OR FOLDER
0xA00A0021          PINNING UNPIN APP
0xA00A0029          PINNING AVAIL COMMUNICATION ERROR
0xA00A002A          PINNING AVAIL IN PROGRESS
0xA00A002B          PINNING AVAIL OPTANE DISABLED
0xA00A002C          PINNING AVAIL SMALL CACHE
0xA00A002D          PINNING AVAIL UNKNOWN ISSUE
0xA00A002E          PINNING AVAIL CONTROLLER UNSUPPORTED
0xA00A002F          PINNING AVAIL DATA DRIVE UNSUPPORTED
0xA00A0030          PINNING AVAIL SMALL SKU
0xA00A0031          PINNING FILE CACHE FULL
0xA00A0032          PINNING FILE CACHE ALMOST FULL
0xA00A0033          PINNING DIRECTORY NOT FOUND
0xA00A0034          PINNING APP NOT FOUND
0xA00A0035          PINNING ACCESS DENIED
0xA00A0036          PINNING FILE CACHE DISABLED
0x200B0000          MW SERVER SUCCESS
0xA00B0001          MW SERVER INVALID CONTEXT
0xA00B0002          MW SERVER ACTIONMANAGER INVALID FUNCTION
0xA00B0003          MW SERVER JSON DESERIALIZE
0xA00B0004          MW SERVER JSON SERIALIZE
0xA00B0005          MW SERVER ISI RESOLVER
0xA00B0006          MW SERVER ISI VOLATILE RESOLVER
0xA00B0007          MW SERVER AUTOMATION EVENT REGISTER FAILED
0xA00B0008          MW SERVER ACTIONMANAGER OBSOLETE FUNCTION
0xA00B0009          MW SERVER JSON DESERIALIZE OBSOLETE

************************************************************
* Boost Software License - Version 1.0 - August 17th, 2003
************************************************************

Permission is hereby granted, free of charge, to any person or organization
obtaining a copy of the software and accompanying documentation covered by
this license (the "Software") to use, reproduce, display, distribute,
execute, and transmit the Software, and to prepare derivative works of the
Software, and to permit third-parties to whom the Software is furnished to
do so, all subject to the following:

The copyright notices in the Software and this entire statement, including
the above license grant, this restriction and the following disclaimer,
must be included in all copies of the Software, in whole or in part, and
all derivative works of the Software, unless such copies or derivative
works are solely in the form of machine-executable object code generated by
a source language processor.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.


************************************************************
* DISCLAIMER
************************************************************

INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS.
NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY
INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS
PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL
ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED
WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY
OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER
INTELLECTUAL PROPERTY RIGHT.

UNLESS OTHERWISE AGREED IN WRITING BY INTEL, THE INTEL PRODUCTS ARE NOT 
DESIGNED NOR INTENDED FOR ANY APPLICATION IN WHICH THE FAILURE OF THE INTEL
PRODUCT COULD CREATE A SITUATION WHERE PERSONAL INJURY OR DEATH MAY OCCUR.

Intel may make changes to specifications and product descriptions at any
time, without notice. Designers must not rely on the absence or 
characteristics of any features or instructions marked "reserved" or "undefined". 
Intel reserves these for future definition and shall have no
responsibility whatsoever for conflicts or incompatibilities arising from 
future changes to them. The information here is subject to change without 
notice. Do not finalize a design with this information.

The products described in this document may contain design defects or
errors known as errata which may cause the product to deviate from 
published specifications. Current characterized errata are available on 
request.

Contact your local Intel sales office or your distributor to obtain the 
latest specifications and before placing your product order.

Copies of documents which have an order number and are referenced in this
document, or other Intel literature, may be obtained by calling 
1-800-548-4725, or go to: http://www.intel.com/#/en_us_01

Intel(R) is a trademark of Intel Corporation in the U.S. and other 
countries.

* Other names and brands may be claimed as the property of others
        
Copyright (C), Intel Corporation. All rights reserved.
************************************************************
* INTEL SOFTWARE LICENSE AGREEMENT
************************************************************

(OEM / IHV / ISV Distribution & Single User)


IMPORTANT - READ BEFORE COPYING, INSTALLING OR USING.
Do not use or load software (including drivers) from this site or any associated materials (collectively, the "Software") until you have carefully read the following terms and conditions. By loading or using the Software, you agree to the terms of this Agreement, which Intel may modify from time to time following reasonable notice to You. If you do not wish to so agree, do not install or use the Software.
Please Also Note:
â€˘	If you are an Original Equipment Manufacturer (OEM), Independent Hardware Vendor (IHV) or Independent Software Vendor (ISV), this complete LICENSE AGREEMENT applies;
â€˘	If you are an End-User, then only Exhibit A, the INTEL SOFTWARE LICENSE AGREEMENT, applies.
For OEMs, IHVs and ISVs:
LICENSE. Subject to the terms of this Agreement, Intel grants to You a nonexclusive, nontransferable, worldwide, fully paid-up license under Intel's copyrights to:
â€˘	Use, modify and copy the Software internally for Your own development and maintenance purposes; and
â€˘	Modify, copy and distribute (subject to any restrictions imposed by Intel) the Software, including derivative works of the Software, to Your end-users, but only under a license agreement with terms at least as restrictive as those contained in Intel's Final, Single User License Agreement, attached as Exhibit A; and
â€˘	Modify, copy and distribute the end-user documentation which may accompany the Software, but only in association with the Software.
Intel reserves the right to further restrict your distribution of the Software to specific Intel-approved platforms, operating systems, segments, and/or devices in its sole and absolute discretion upon reasonable notice to You.
If You are not the final manufacturer or vendor of a computer system or software program incorporating the Software, then You may transfer a copy of the Software, including derivative works of the Software (and related end-user documentation) to Your recipient for use in accordance with the terms of this Agreement, provided such recipient agrees to be fully bound by the terms hereof. You will not otherwise assign, sublicense, lease, or in any other way transfer or disclose Software to any third party. You will not reverse- compile, disassemble or otherwise reverse-engineer the Software.
You may not subject the Software, in whole or in part, to any license obligations of Open Source Software including without limitation combining or distributing the Software with Open Source Software in a manner that subjects the Software or any portion of the Software provided by Intel hereunder to any license obligations of such Open Source Software. "Open Source Software" means any software that requires as a condition of use, modification and/or distribution of such software that such software or other software incorporated into, derived from or distributed with such software (a) be disclosed or distributed in source code form; or (b) be licensed by the user to third parties for the purpose of making and/or distributing derivative works; or (c) be redistributable at no charge. Open Source Software includes, without limitation, software licensed or distributed under any of the following licenses or distribution models, or licenses or distribution models substantially similar to any of the following: (a) GNUâ€™s General Public License (GPL) or Lesser/Library GPL (LGPL), (b) the Artistic License (e.g., PERL), (c) the Mozilla Public License, (d) the Netscape Public License, (e) the Sun Community Source License (SCSL), (f) the Sun Industry Source License (SISL), (g) the Apache Software license and (h) the Common Public License (CPL). 
NO OTHER RIGHTS. The Software is protected by the intellectual property laws of the United States and other countries, and international treaty provisions. Except as otherwise expressly above, Intel grants no express or implied rights under Intel patents, copyrights, trademarks, or other intellectual property rights. Except as expressly stated in this Agreement, no license or right is granted to You directly or by implication, inducement, estoppel or otherwise. Intel will have the right to inspect or have an independent auditor inspect Your relevant records to verify Your compliance with the terms and conditions of this Agreement.
CONFIDENTIALITY. If You wish to have a third party consultant or subcontractor ("Contractor") perform work on Your behalf which involves access to or use of Software, You will obtain a written confidentiality agreement from the Contractor which contains terms and obligations with respect to access to or use of Software no less restrictive than those set forth in this Agreement and excluding any distribution rights, and use for any other purpose. Otherwise, You will not disclose the terms or existence of this Agreement or use Intel's Name in any publications, advertisements, or other announcements without Intel's prior written consent. You do not have any rights to use any Intel trademarks or logos.
OWNERSHIP OF SOFTWARE AND COPYRIGHTS. Title to all copies of the Software remains with Intel or its suppliers. The Software is copyrighted and protected by the laws of the United States and other countries, and international treaty provisions. You may not remove any copyright notices from the Software. Intel may make changes to the Software, or to items referenced therein, at any time without notice, but is not obligated to support or update the Software. Except as otherwise expressly provided, Intel grants no express or implied right under Intel patents, copyrights, trademarks, or other intellectual property rights. You may transfer the Software only if the recipient agrees to be fully bound by these terms and if you retain no copies of the Software.
SUPPORT. Intel may make changes to the Software, or to items referenced therein, at any time without notice, but is not obligated to support, update or provide training for the Software. Intel may in its sole discretion offer such services under separate terms at Intelâ€™s then-current rates. You may request additional information on Intelâ€™s service offerings from an Intel sales representative. You agree to be solely responsible to Your End Users for any update or support obligation or other liability which may arise from the distribution of the Software.
EXCLUSION OF OTHER WARRANTIES. THE SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS OR IMPLIED WARRANTY OF ANY KIND INCLUDING WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, OR FITNESS FOR A PARTICULAR PURPOSE. Intel does not warrant or assume responsibility for the accuracy or completeness of any information, text, graphics, links or other items contained within the Software.
LIMITATION OF LIABILITY. IN NO EVENT WILL INTEL OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, LOST PROFITS, BUSINESS INTERRUPTION, OR LOST INFORMATION) ARISING OUT OF THE USE OF OR INABILITY TO USE THE SOFTWARE, EVEN IF INTEL HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME JURISDICTIONS PROHIBIT EXCLUSION OR LIMITATION OF LIABILITY FOR IMPLIED WARRANTIES OR CONSEQUENTIAL OR INCIDENTAL DAMAGES, SO THE ABOVE LIMITATION MAY NOT APPLY TO YOU. YOU MAY ALSO HAVE OTHER LEGAL RIGHTS THAT VARY FROM JURISDICTION TO JURISDICTION. THE SOFTWARE LICENSED HEREUNDER IS NOT DESIGNED OR INTENDED FOR USE IN ANY MEDICAL, LIFE SAVING OR LIFE SUSTAINING SYSTEMS, TRANSPORTATION SYSTEMS, NUCLEAR SYSTEMS, OR FOR ANY OTHER MISSION CRITICAL APPLICATION IN WHICH THE FAILURE OF THE SOFTWARE COULD LEAD TO PERSONAL INJURY OR DEATH. YOU WILL INDEMNIFY AND HOLD INTEL AND THE INTEL PARTIES HARMLESS AGAINST ALL CLAIMS, COSTS, DAMAGES, AND EXPENSES, AND REASONABLE ATTORNEY FEES ARISING OUT OF, DIRECTLY OR INDIRECTLY, THE DISTRIBUTION OF THE SOFTWARE AND ANY CLAIM OF PRODUCT LIABILITY, PERSONAL INJURY OR DEATH ASSOCIATED WITH ANY UNINTENDED USE, EVEN IF SUCH CLAIM ALLEGES THAT AN INTEL PARTY WAS NEGLIGENT REGARDING THE DESIGN OR MANUFACTURE OF THE SOFTWARE. THE LIMITED REMEDIES, WARRANTY DISCLAIMER AND LIMITED LIABILITY ARE FUNDAMENTAL ELEMENTS OF THE BASIS OF THE BARGAIN BETWEEN INTEL AND YOU. INTEL WOULD NOT BE ABLE TO PROVIDE THE SOFTWARE WITHOUT SUCH LIMITATIONS. 
TERMINATION OF THIS AGREEMENT. Intel may terminate this Agreement immediately, upon notice from Intel, if You violate its terms. Upon termination, You will immediately destroy the Software (including providing certification of such destruction back to Intel) or return all copies of the Software to Intel. In the event of termination of this Agreement, all licenses granted to You hereunder will immediately terminate, except for licenses that you have previously distributed to Your end-users pursuant to the license grant above.
APPLICABLE LAWS. Any claims arising under or relating to this Agreement will be governed by the internal substantive laws of the State of Delaware or federal courts located in Delaware, without regard to principles of conflict of laws. Each Party hereby agrees to jurisdiction and venue in the courts of the State of Delaware for all disputes and litigation arising under or relating to this Agreement. The Parties agree that the United Nations Convention on Contracts for the International Sale of Goods is specifically excluded from application to this Agreement. The Parties consent to the personal jurisdiction of the above courts. 
Export Regulations / Export Control. You will not export, either directly or indirectly, any product, service or technical data or system incorporating such items without first obtaining any required license or other approval from the U. S. Department of Commerce or any other agency or department of the United States Government. In the event any product is exported from the United States or re-exported from a foreign destination by You, You will ensure that the distribution and export/re-export or import of the product is in compliance with all laws, regulations, orders, or other restrictions of the U.S. Export Administration Regulations and the appropriate foreign government. You agree that neither you nor any of your subsidiaries will export/re-export any technical data, process, product, or service, directly or indirectly, to any country for which the United States government or any agency thereof or the foreign government from where it is shipping requires an export license, or other governmental approval, without first obtaining such license or approval. 
GOVERNMENT RESTRICTED RIGHTS. The Software is a "commercial item" as that term is defined in 48 C.F.R. 2.101, consisting of "commercial computer software" and "commercial computer software documentation" as such terms are used in 48 C.F.R. 12.212. Consistent with 48 C.F.R. 12.212 and 48 C.F.R 227.7202-1 through 227.7202-4, You will provide the Software to the U.S. Government as an End User only pursuant to the terms and conditions therein. Contractor or Manufacturer is Intel Corporation, 2200 Mission College Blvd., Santa Clara, CA 95052. 
Assignment. You may not delegate, assign or transfer this Agreement, the license(s) granted or any of Your rights or duties hereunder, expressly, by implication, by operation of law, by way of merger (regardless of whether You are the surviving entity) or acquisition, or otherwise and any attempt to do so, without Intelâ€™s express prior written consent, will be null and void. Intel may assign this Agreement, and its rights and obligations hereunder, in its sole discretion. 
Entire Agreement. The terms and conditions of this Agreement constitutes the entire agreement between the parties with respect to the subject matter hereof, and merges and supersedes all prior, contemporaneous agreements, understandings, negotiations and discussions. Neither of the parties hereto will be bound by any conditions, definitions, warranties, understandings or representations with respect to the subject matter hereof other than as expressly provided for herein. Intel is not obligated under any other agreements unless they are in writing and signed by an authorized representative of Intel. Without limiting the foregoing, terms and conditions on any purchase orders or similar materials submitted by You to Intel, and any terms contained in Intelâ€™s standard acknowledgment form that are in conflict with these terms, will be of no force or effect. 
Attorneysâ€™ Fees. In the event any proceeding or lawsuit is brought by Intel or You in connection with this Agreement, the prevailing party in such proceeding will be entitled to receive its costs, expert witness fees and reasonable attorneysâ€™ fees, including costs and fees on appeal. 
No Agency. Nothing contained herein will be construed as creating any agency, employment relationship, partnership, principal-agent or other form of joint enterprise between the parties. 
Severability. In the event that any provision of this Agreement will be unenforceable or invalid under any applicable law or be so held by applicable court decision, such unenforceability or invalidity will not render this Agreement unenforceable or invalid as a whole, and, in such event, such provision will be changed and interpreted so as to best accomplish the objectives of such unenforceable or invalid provision within the limits of applicable law or applicable court decisions. 
Waiver. The failure of either party to require performance by the other party of any provision hereof will not affect the full right to require such performance at any time thereafter; nor will the waiver by either party of a breach of any provision hereof be taken or held to be a waiver of the provision itself. 
Language. This Agreement is in the English language only, which language will be controlling in all respects, and all versions of this Agreement in any other language will be for accommodation only and will not be binding on you or Intel. All communications and notices made or given pursuant to this Agreement, and all documentation and support to be provided, unless otherwise noted, will be in the English language.

SLAOEMISV1/RBK/11-02-17
 
EXHIBIT â€śAâ€ť
INTEL SOFTWARE LICENSE AGREEMENT 
(Final, Single User)

IMPORTANT - READ BEFORE COPYING, INSTALLING OR USING.

Do not use or load software from this site or any associated materials (collectively, the "Software") until you have carefully read the following terms and conditions. By loading or using the Software, you agree to the terms of this Agreement, which Intel may modify from time to time. If you do not wish to so agree, do not install or use the Software.
LICENSE. You may copy the Software onto a single computer for your personal, or internal business purpose use, and you may make one back-up copy of the Software, subject to these conditions:
â€˘	You may not copy, modify, rent, sell, distribute or transfer any part of the Software except as provided in this Agreement, and you agree to prevent unauthorized copying of the Software. 
â€˘	You may not reverse engineer, decompile, or disassemble the Software. 
â€˘	You may not sublicense or permit simultaneous use of the Software by more than one user. 
â€˘	The Software may contain the software or other property of third party suppliers, some of which may be identified in, and licensed in accordance with, any enclosed â€ślicense.txtâ€ť file or other text or file. 
OWNERSHIP OF SOFTWARE AND COPYRIGHTS. Title to all copies of the Software remains with Intel or its suppliers. The Software is copyrighted and protected by the laws of the United States and other countries, and international treaty provisions. You may not remove any copyright notices from the Software. Intel may make changes to the Software, or to items referenced therein, at any time without notice, but is not obligated to support or update the Software. Except as otherwise expressly provided, Intel grants no express or implied right under Intel patents, copyrights, trademarks, or other intellectual property rights. You may transfer the Software only if the recipient agrees to be fully bound by these terms and if you retain no copies of the Software.
EXCLUSION OF OTHER WARRANTIES. THE SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS OR IMPLIED WARRANTY OF ANY KIND INCLUDING WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, OR FITNESS FOR A PARTICULAR PURPOSE. Intel does not warrant or assume responsibility for the accuracy or completeness of any information, text, graphics, links or other items contained within the Software.
LIMITATION OF LIABILITY. IN NO EVENT WILL INTEL OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, LOST PROFITS, BUSINESS INTERRUPTION, OR LOST INFORMATION) ARISING OUT OF THE USE OF OR INABILITY TO USE THE SOFTWARE, EVEN IF INTEL HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME JURISDICTIONS PROHIBIT EXCLUSION OR LIMITATION OF LIABILITY FOR IMPLIED WARRANTIES OR CONSEQUENTIAL OR INCIDENTAL DAMAGES, SO THE ABOVE LIMITATION MAY NOT APPLY TO YOU. YOU MAY ALSO HAVE OTHER LEGAL RIGHTS THAT VARY FROM JURISDICTION TO JURISDICTION.
TERMINATION OF THIS AGREEMENT. Intel may terminate this Agreement at any time if you violate its terms. Upon termination, you will immediately destroy the Software or return all copies of the Software to Intel.
APPLICABLE LAWS. Claims arising under this Agreement will be governed by the laws of Delaware, excluding its principles of conflict of laws and the United Nations Convention on Contracts for the Sale of Goods. You may not export the Software in violation of applicable export laws and regulations. Intel is not obligated under any other agreements unless they are in writing and signed by an authorized representative of Intel.
GOVERNMENT RESTRICTED RIGHTS. The Software is provided with "RESTRICTED RIGHTS." Use, duplication, or disclosure by the Government is subject to restrictions as set forth in FAR52.227-14 and DFAR252.227-7013 et seq. or its successor. Use of the Software by the Government constitutes acknowledgment of Intel's proprietary rights therein. Contractor or Manufacturer is Intel Corporation, 2200 Mission College Blvd., Santa Clara, CA 95052.