Question: In a Java Card SIM Application, what happens when the `fciLength` parameter in the `status(byte[] fci, short fciOffset, short fciLength)` method is less than the length of the FCI structure?
Option 1: The entire FCI structure is copied into the array `fci`, potentially causing an `ArrayIndexOutOfBoundsException`.
Option 2: The first part of the FCI structure is copied into the array `fci`, and the length of the FCI written is returned.
Option 3: An instance of `SIMViewException` with a reason code of `MEMORY_PROBLEM` is thrown due to insufficient space.
Option 4: The method call is ignored, and no exception or data is returned.
Explanation: If `fciLength` is less than the FCI structure's length, the method copies the first part of the FCI into the array `fci` and returns the written FCI length, ensuring partial data transfer while preventing buffer overflow issues.