Merge tag 'android-13.0.0_r32' into int/13/fp3

Android 13.0.0 release 32

* tag 'android-13.0.0_r32':
  Camera: Mark readoutTimestamp as metadata version 3.8
  Camera: Fix up STREAM_CONFIGURATION_MAP doc
  Add function to get index mask from output channel mask.

Change-Id: I16648a78aff0fb82279157041d4599174a101019
diff --git a/audio/include/system/audio.h b/audio/include/system/audio.h
index 70e4241..f359600 100644
--- a/audio/include/system/audio.h
+++ b/audio/include/system/audio.h
@@ -1724,6 +1724,12 @@
     }
 }
 
+static inline audio_channel_mask_t audio_channel_mask_out_to_in_index_mask(audio_channel_mask_t out)
+{
+    return audio_channel_mask_for_index_assignment_from_count(
+            audio_channel_count_from_out_mask(out));
+}
+
 static inline bool audio_channel_position_mask_is_out_canonical(audio_channel_mask_t channelMask)
 {
     if (audio_channel_mask_get_representation(channelMask)
diff --git a/camera/docs/docs.html b/camera/docs/docs.html
index 343b57b..b7e4204 100644
--- a/camera/docs/docs.html
+++ b/camera/docs/docs.html
@@ -8071,18 +8071,18 @@
 <table>
 <thead>
 <tr>
-<th align="center">State</th>
-<th align="center">Transition Cause</th>
-<th align="center">New State</th>
-<th align="center">Notes</th>
+<th style="text-align: center;">State</th>
+<th style="text-align: center;">Transition Cause</th>
+<th style="text-align: center;">New State</th>
+<th style="text-align: center;">Notes</th>
 </tr>
 </thead>
 <tbody>
 <tr>
-<td align="center">INACTIVE</td>
-<td align="center"></td>
-<td align="center">INACTIVE</td>
-<td align="center">Camera device auto exposure algorithm is disabled</td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;"></td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;">Camera device auto exposure algorithm is disabled</td>
 </tr>
 </tbody>
 </table>
@@ -8090,120 +8090,120 @@
 <table>
 <thead>
 <tr>
-<th align="center">State</th>
-<th align="center">Transition Cause</th>
-<th align="center">New State</th>
-<th align="center">Notes</th>
+<th style="text-align: center;">State</th>
+<th style="text-align: center;">Transition Cause</th>
+<th style="text-align: center;">New State</th>
+<th style="text-align: center;">Notes</th>
 </tr>
 </thead>
 <tbody>
 <tr>
-<td align="center">INACTIVE</td>
-<td align="center">Camera device initiates AE scan</td>
-<td align="center">SEARCHING</td>
-<td align="center">Values changing</td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;">Camera device initiates AE scan</td>
+<td style="text-align: center;">SEARCHING</td>
+<td style="text-align: center;">Values changing</td>
 </tr>
 <tr>
-<td align="center">INACTIVE</td>
-<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
-<td align="center">LOCKED</td>
-<td align="center">Values locked</td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
+<td style="text-align: center;">LOCKED</td>
+<td style="text-align: center;">Values locked</td>
 </tr>
 <tr>
-<td align="center">SEARCHING</td>
-<td align="center">Camera device finishes AE scan</td>
-<td align="center">CONVERGED</td>
-<td align="center">Good values,<wbr/> not changing</td>
+<td style="text-align: center;">SEARCHING</td>
+<td style="text-align: center;">Camera device finishes AE scan</td>
+<td style="text-align: center;">CONVERGED</td>
+<td style="text-align: center;">Good values,<wbr/> not changing</td>
 </tr>
 <tr>
-<td align="center">SEARCHING</td>
-<td align="center">Camera device finishes AE scan</td>
-<td align="center">FLASH_<wbr/>REQUIRED</td>
-<td align="center">Converged but too dark w/<wbr/>o flash</td>
+<td style="text-align: center;">SEARCHING</td>
+<td style="text-align: center;">Camera device finishes AE scan</td>
+<td style="text-align: center;">FLASH_<wbr/>REQUIRED</td>
+<td style="text-align: center;">Converged but too dark w/<wbr/>o flash</td>
 </tr>
 <tr>
-<td align="center">SEARCHING</td>
-<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
-<td align="center">LOCKED</td>
-<td align="center">Values locked</td>
+<td style="text-align: center;">SEARCHING</td>
+<td style="text-align: center;"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
+<td style="text-align: center;">LOCKED</td>
+<td style="text-align: center;">Values locked</td>
 </tr>
 <tr>
-<td align="center">CONVERGED</td>
-<td align="center">Camera device initiates AE scan</td>
-<td align="center">SEARCHING</td>
-<td align="center">Values changing</td>
+<td style="text-align: center;">CONVERGED</td>
+<td style="text-align: center;">Camera device initiates AE scan</td>
+<td style="text-align: center;">SEARCHING</td>
+<td style="text-align: center;">Values changing</td>
 </tr>
 <tr>
-<td align="center">CONVERGED</td>
-<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
-<td align="center">LOCKED</td>
-<td align="center">Values locked</td>
+<td style="text-align: center;">CONVERGED</td>
+<td style="text-align: center;"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
+<td style="text-align: center;">LOCKED</td>
+<td style="text-align: center;">Values locked</td>
 </tr>
 <tr>
-<td align="center">FLASH_<wbr/>REQUIRED</td>
-<td align="center">Camera device initiates AE scan</td>
-<td align="center">SEARCHING</td>
-<td align="center">Values changing</td>
+<td style="text-align: center;">FLASH_<wbr/>REQUIRED</td>
+<td style="text-align: center;">Camera device initiates AE scan</td>
+<td style="text-align: center;">SEARCHING</td>
+<td style="text-align: center;">Values changing</td>
 </tr>
 <tr>
-<td align="center">FLASH_<wbr/>REQUIRED</td>
-<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
-<td align="center">LOCKED</td>
-<td align="center">Values locked</td>
+<td style="text-align: center;">FLASH_<wbr/>REQUIRED</td>
+<td style="text-align: center;"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
+<td style="text-align: center;">LOCKED</td>
+<td style="text-align: center;">Values locked</td>
 </tr>
 <tr>
-<td align="center">LOCKED</td>
-<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
-<td align="center">SEARCHING</td>
-<td align="center">Values not good after unlock</td>
+<td style="text-align: center;">LOCKED</td>
+<td style="text-align: center;"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
+<td style="text-align: center;">SEARCHING</td>
+<td style="text-align: center;">Values not good after unlock</td>
 </tr>
 <tr>
-<td align="center">LOCKED</td>
-<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
-<td align="center">CONVERGED</td>
-<td align="center">Values good after unlock</td>
+<td style="text-align: center;">LOCKED</td>
+<td style="text-align: center;"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
+<td style="text-align: center;">CONVERGED</td>
+<td style="text-align: center;">Values good after unlock</td>
 </tr>
 <tr>
-<td align="center">LOCKED</td>
-<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
-<td align="center">FLASH_<wbr/>REQUIRED</td>
-<td align="center">Exposure good,<wbr/> but too dark</td>
+<td style="text-align: center;">LOCKED</td>
+<td style="text-align: center;"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
+<td style="text-align: center;">FLASH_<wbr/>REQUIRED</td>
+<td style="text-align: center;">Exposure good,<wbr/> but too dark</td>
 </tr>
 <tr>
-<td align="center">PRECAPTURE</td>
-<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
-<td align="center">CONVERGED</td>
-<td align="center">Ready for high-quality capture</td>
+<td style="text-align: center;">PRECAPTURE</td>
+<td style="text-align: center;">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
+<td style="text-align: center;">CONVERGED</td>
+<td style="text-align: center;">Ready for high-quality capture</td>
 </tr>
 <tr>
-<td align="center">PRECAPTURE</td>
-<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
-<td align="center">LOCKED</td>
-<td align="center">Ready for high-quality capture</td>
+<td style="text-align: center;">PRECAPTURE</td>
+<td style="text-align: center;">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
+<td style="text-align: center;">LOCKED</td>
+<td style="text-align: center;">Ready for high-quality capture</td>
 </tr>
 <tr>
-<td align="center">LOCKED</td>
-<td align="center">aeLock is ON and aePrecaptureTrigger is START</td>
-<td align="center">LOCKED</td>
-<td align="center">Precapture trigger is ignored when AE is already locked</td>
+<td style="text-align: center;">LOCKED</td>
+<td style="text-align: center;">aeLock is ON and aePrecaptureTrigger is START</td>
+<td style="text-align: center;">LOCKED</td>
+<td style="text-align: center;">Precapture trigger is ignored when AE is already locked</td>
 </tr>
 <tr>
-<td align="center">LOCKED</td>
-<td align="center">aeLock is ON and aePrecaptureTrigger is CANCEL</td>
-<td align="center">LOCKED</td>
-<td align="center">Precapture trigger is ignored when AE is already locked</td>
+<td style="text-align: center;">LOCKED</td>
+<td style="text-align: center;">aeLock is ON and aePrecaptureTrigger is CANCEL</td>
+<td style="text-align: center;">LOCKED</td>
+<td style="text-align: center;">Precapture trigger is ignored when AE is already locked</td>
 </tr>
 <tr>
-<td align="center">Any state (excluding LOCKED)</td>
-<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START</td>
-<td align="center">PRECAPTURE</td>
-<td align="center">Start AE precapture metering sequence</td>
+<td style="text-align: center;">Any state (excluding LOCKED)</td>
+<td style="text-align: center;"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START</td>
+<td style="text-align: center;">PRECAPTURE</td>
+<td style="text-align: center;">Start AE precapture metering sequence</td>
 </tr>
 <tr>
-<td align="center">Any state (excluding LOCKED)</td>
-<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is CANCEL</td>
-<td align="center">INACTIVE</td>
-<td align="center">Currently active precapture metering sequence is canceled</td>
+<td style="text-align: center;">Any state (excluding LOCKED)</td>
+<td style="text-align: center;"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is CANCEL</td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;">Currently active precapture metering sequence is canceled</td>
 </tr>
 </tbody>
 </table>
@@ -8219,54 +8219,54 @@
 <table>
 <thead>
 <tr>
-<th align="center">State</th>
-<th align="center">Transition Cause</th>
-<th align="center">New State</th>
-<th align="center">Notes</th>
+<th style="text-align: center;">State</th>
+<th style="text-align: center;">Transition Cause</th>
+<th style="text-align: center;">New State</th>
+<th style="text-align: center;">Notes</th>
 </tr>
 </thead>
 <tbody>
 <tr>
-<td align="center">INACTIVE</td>
-<td align="center">Camera device finished AE scan</td>
-<td align="center">CONVERGED</td>
-<td align="center">Values are already good,<wbr/> transient states are skipped by camera device.<wbr/></td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;">Camera device finished AE scan</td>
+<td style="text-align: center;">CONVERGED</td>
+<td style="text-align: center;">Values are already good,<wbr/> transient states are skipped by camera device.<wbr/></td>
 </tr>
 <tr>
-<td align="center">Any state (excluding LOCKED)</td>
-<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START,<wbr/> sequence done</td>
-<td align="center">FLASH_<wbr/>REQUIRED</td>
-<td align="center">Converged but too dark w/<wbr/>o flash after a precapture sequence,<wbr/> transient states are skipped by camera device.<wbr/></td>
+<td style="text-align: center;">Any state (excluding LOCKED)</td>
+<td style="text-align: center;"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START,<wbr/> sequence done</td>
+<td style="text-align: center;">FLASH_<wbr/>REQUIRED</td>
+<td style="text-align: center;">Converged but too dark w/<wbr/>o flash after a precapture sequence,<wbr/> transient states are skipped by camera device.<wbr/></td>
 </tr>
 <tr>
-<td align="center">Any state (excluding LOCKED)</td>
-<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START,<wbr/> sequence done</td>
-<td align="center">CONVERGED</td>
-<td align="center">Converged after a precapture sequence,<wbr/> transient states are skipped by camera device.<wbr/></td>
+<td style="text-align: center;">Any state (excluding LOCKED)</td>
+<td style="text-align: center;"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START,<wbr/> sequence done</td>
+<td style="text-align: center;">CONVERGED</td>
+<td style="text-align: center;">Converged after a precapture sequence,<wbr/> transient states are skipped by camera device.<wbr/></td>
 </tr>
 <tr>
-<td align="center">Any state (excluding LOCKED)</td>
-<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is CANCEL,<wbr/> converged</td>
-<td align="center">FLASH_<wbr/>REQUIRED</td>
-<td align="center">Converged but too dark w/<wbr/>o flash after a precapture sequence is canceled,<wbr/> transient states are skipped by camera device.<wbr/></td>
+<td style="text-align: center;">Any state (excluding LOCKED)</td>
+<td style="text-align: center;"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is CANCEL,<wbr/> converged</td>
+<td style="text-align: center;">FLASH_<wbr/>REQUIRED</td>
+<td style="text-align: center;">Converged but too dark w/<wbr/>o flash after a precapture sequence is canceled,<wbr/> transient states are skipped by camera device.<wbr/></td>
 </tr>
 <tr>
-<td align="center">Any state (excluding LOCKED)</td>
-<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is CANCEL,<wbr/> converged</td>
-<td align="center">CONVERGED</td>
-<td align="center">Converged after a precapture sequences canceled,<wbr/> transient states are skipped by camera device.<wbr/></td>
+<td style="text-align: center;">Any state (excluding LOCKED)</td>
+<td style="text-align: center;"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is CANCEL,<wbr/> converged</td>
+<td style="text-align: center;">CONVERGED</td>
+<td style="text-align: center;">Converged after a precapture sequences canceled,<wbr/> transient states are skipped by camera device.<wbr/></td>
 </tr>
 <tr>
-<td align="center">CONVERGED</td>
-<td align="center">Camera device finished AE scan</td>
-<td align="center">FLASH_<wbr/>REQUIRED</td>
-<td align="center">Converged but too dark w/<wbr/>o flash after a new scan,<wbr/> transient states are skipped by camera device.<wbr/></td>
+<td style="text-align: center;">CONVERGED</td>
+<td style="text-align: center;">Camera device finished AE scan</td>
+<td style="text-align: center;">FLASH_<wbr/>REQUIRED</td>
+<td style="text-align: center;">Converged but too dark w/<wbr/>o flash after a new scan,<wbr/> transient states are skipped by camera device.<wbr/></td>
 </tr>
 <tr>
-<td align="center">FLASH_<wbr/>REQUIRED</td>
-<td align="center">Camera device finished AE scan</td>
-<td align="center">CONVERGED</td>
-<td align="center">Converged after a new scan,<wbr/> transient states are skipped by camera device.<wbr/></td>
+<td style="text-align: center;">FLASH_<wbr/>REQUIRED</td>
+<td style="text-align: center;">Camera device finished AE scan</td>
+<td style="text-align: center;">CONVERGED</td>
+<td style="text-align: center;">Converged after a new scan,<wbr/> transient states are skipped by camera device.<wbr/></td>
 </tr>
 </tbody>
 </table>
@@ -8805,18 +8805,18 @@
 <table>
 <thead>
 <tr>
-<th align="center">State</th>
-<th align="center">Transition Cause</th>
-<th align="center">New State</th>
-<th align="center">Notes</th>
+<th style="text-align: center;">State</th>
+<th style="text-align: center;">Transition Cause</th>
+<th style="text-align: center;">New State</th>
+<th style="text-align: center;">Notes</th>
 </tr>
 </thead>
 <tbody>
 <tr>
-<td align="center">INACTIVE</td>
-<td align="center"></td>
-<td align="center">INACTIVE</td>
-<td align="center">Never changes</td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;"></td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;">Never changes</td>
 </tr>
 </tbody>
 </table>
@@ -8824,66 +8824,66 @@
 <table>
 <thead>
 <tr>
-<th align="center">State</th>
-<th align="center">Transition Cause</th>
-<th align="center">New State</th>
-<th align="center">Notes</th>
+<th style="text-align: center;">State</th>
+<th style="text-align: center;">Transition Cause</th>
+<th style="text-align: center;">New State</th>
+<th style="text-align: center;">Notes</th>
 </tr>
 </thead>
 <tbody>
 <tr>
-<td align="center">INACTIVE</td>
-<td align="center">AF_<wbr/>TRIGGER</td>
-<td align="center">ACTIVE_<wbr/>SCAN</td>
-<td align="center">Start AF sweep,<wbr/> Lens now moving</td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;">AF_<wbr/>TRIGGER</td>
+<td style="text-align: center;">ACTIVE_<wbr/>SCAN</td>
+<td style="text-align: center;">Start AF sweep,<wbr/> Lens now moving</td>
 </tr>
 <tr>
-<td align="center">ACTIVE_<wbr/>SCAN</td>
-<td align="center">AF sweep done</td>
-<td align="center">FOCUSED_<wbr/>LOCKED</td>
-<td align="center">Focused,<wbr/> Lens now locked</td>
+<td style="text-align: center;">ACTIVE_<wbr/>SCAN</td>
+<td style="text-align: center;">AF sweep done</td>
+<td style="text-align: center;">FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">Focused,<wbr/> Lens now locked</td>
 </tr>
 <tr>
-<td align="center">ACTIVE_<wbr/>SCAN</td>
-<td align="center">AF sweep done</td>
-<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
-<td align="center">Not focused,<wbr/> Lens now locked</td>
+<td style="text-align: center;">ACTIVE_<wbr/>SCAN</td>
+<td style="text-align: center;">AF sweep done</td>
+<td style="text-align: center;">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">Not focused,<wbr/> Lens now locked</td>
 </tr>
 <tr>
-<td align="center">ACTIVE_<wbr/>SCAN</td>
-<td align="center">AF_<wbr/>CANCEL</td>
-<td align="center">INACTIVE</td>
-<td align="center">Cancel/<wbr/>reset AF,<wbr/> Lens now locked</td>
+<td style="text-align: center;">ACTIVE_<wbr/>SCAN</td>
+<td style="text-align: center;">AF_<wbr/>CANCEL</td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;">Cancel/<wbr/>reset AF,<wbr/> Lens now locked</td>
 </tr>
 <tr>
-<td align="center">FOCUSED_<wbr/>LOCKED</td>
-<td align="center">AF_<wbr/>CANCEL</td>
-<td align="center">INACTIVE</td>
-<td align="center">Cancel/<wbr/>reset AF</td>
+<td style="text-align: center;">FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">AF_<wbr/>CANCEL</td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;">Cancel/<wbr/>reset AF</td>
 </tr>
 <tr>
-<td align="center">FOCUSED_<wbr/>LOCKED</td>
-<td align="center">AF_<wbr/>TRIGGER</td>
-<td align="center">ACTIVE_<wbr/>SCAN</td>
-<td align="center">Start new sweep,<wbr/> Lens now moving</td>
+<td style="text-align: center;">FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">AF_<wbr/>TRIGGER</td>
+<td style="text-align: center;">ACTIVE_<wbr/>SCAN</td>
+<td style="text-align: center;">Start new sweep,<wbr/> Lens now moving</td>
 </tr>
 <tr>
-<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
-<td align="center">AF_<wbr/>CANCEL</td>
-<td align="center">INACTIVE</td>
-<td align="center">Cancel/<wbr/>reset AF</td>
+<td style="text-align: center;">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">AF_<wbr/>CANCEL</td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;">Cancel/<wbr/>reset AF</td>
 </tr>
 <tr>
-<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
-<td align="center">AF_<wbr/>TRIGGER</td>
-<td align="center">ACTIVE_<wbr/>SCAN</td>
-<td align="center">Start new sweep,<wbr/> Lens now moving</td>
+<td style="text-align: center;">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">AF_<wbr/>TRIGGER</td>
+<td style="text-align: center;">ACTIVE_<wbr/>SCAN</td>
+<td style="text-align: center;">Start new sweep,<wbr/> Lens now moving</td>
 </tr>
 <tr>
-<td align="center">Any state</td>
-<td align="center">Mode change</td>
-<td align="center">INACTIVE</td>
-<td align="center"></td>
+<td style="text-align: center;">Any state</td>
+<td style="text-align: center;">Mode change</td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;"></td>
 </tr>
 </tbody>
 </table>
@@ -8896,36 +8896,36 @@
 <table>
 <thead>
 <tr>
-<th align="center">State</th>
-<th align="center">Transition Cause</th>
-<th align="center">New State</th>
-<th align="center">Notes</th>
+<th style="text-align: center;">State</th>
+<th style="text-align: center;">Transition Cause</th>
+<th style="text-align: center;">New State</th>
+<th style="text-align: center;">Notes</th>
 </tr>
 </thead>
 <tbody>
 <tr>
-<td align="center">INACTIVE</td>
-<td align="center">AF_<wbr/>TRIGGER</td>
-<td align="center">FOCUSED_<wbr/>LOCKED</td>
-<td align="center">Focus is already good or good after a scan,<wbr/> lens is now locked.<wbr/></td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;">AF_<wbr/>TRIGGER</td>
+<td style="text-align: center;">FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">Focus is already good or good after a scan,<wbr/> lens is now locked.<wbr/></td>
 </tr>
 <tr>
-<td align="center">INACTIVE</td>
-<td align="center">AF_<wbr/>TRIGGER</td>
-<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
-<td align="center">Focus failed after a scan,<wbr/> lens is now locked.<wbr/></td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;">AF_<wbr/>TRIGGER</td>
+<td style="text-align: center;">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">Focus failed after a scan,<wbr/> lens is now locked.<wbr/></td>
 </tr>
 <tr>
-<td align="center">FOCUSED_<wbr/>LOCKED</td>
-<td align="center">AF_<wbr/>TRIGGER</td>
-<td align="center">FOCUSED_<wbr/>LOCKED</td>
-<td align="center">Focus is already good or good after a scan,<wbr/> lens is now locked.<wbr/></td>
+<td style="text-align: center;">FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">AF_<wbr/>TRIGGER</td>
+<td style="text-align: center;">FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">Focus is already good or good after a scan,<wbr/> lens is now locked.<wbr/></td>
 </tr>
 <tr>
-<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
-<td align="center">AF_<wbr/>TRIGGER</td>
-<td align="center">FOCUSED_<wbr/>LOCKED</td>
-<td align="center">Focus is good after a scan,<wbr/> lens is not locked.<wbr/></td>
+<td style="text-align: center;">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">AF_<wbr/>TRIGGER</td>
+<td style="text-align: center;">FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">Focus is good after a scan,<wbr/> lens is not locked.<wbr/></td>
 </tr>
 </tbody>
 </table>
@@ -8933,102 +8933,102 @@
 <table>
 <thead>
 <tr>
-<th align="center">State</th>
-<th align="center">Transition Cause</th>
-<th align="center">New State</th>
-<th align="center">Notes</th>
+<th style="text-align: center;">State</th>
+<th style="text-align: center;">Transition Cause</th>
+<th style="text-align: center;">New State</th>
+<th style="text-align: center;">Notes</th>
 </tr>
 </thead>
 <tbody>
 <tr>
-<td align="center">INACTIVE</td>
-<td align="center">Camera device initiates new scan</td>
-<td align="center">PASSIVE_<wbr/>SCAN</td>
-<td align="center">Start AF scan,<wbr/> Lens now moving</td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;">Camera device initiates new scan</td>
+<td style="text-align: center;">PASSIVE_<wbr/>SCAN</td>
+<td style="text-align: center;">Start AF scan,<wbr/> Lens now moving</td>
 </tr>
 <tr>
-<td align="center">INACTIVE</td>
-<td align="center">AF_<wbr/>TRIGGER</td>
-<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
-<td align="center">AF state query,<wbr/> Lens now locked</td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;">AF_<wbr/>TRIGGER</td>
+<td style="text-align: center;">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">AF state query,<wbr/> Lens now locked</td>
 </tr>
 <tr>
-<td align="center">PASSIVE_<wbr/>SCAN</td>
-<td align="center">Camera device completes current scan</td>
-<td align="center">PASSIVE_<wbr/>FOCUSED</td>
-<td align="center">End AF scan,<wbr/> Lens now locked</td>
+<td style="text-align: center;">PASSIVE_<wbr/>SCAN</td>
+<td style="text-align: center;">Camera device completes current scan</td>
+<td style="text-align: center;">PASSIVE_<wbr/>FOCUSED</td>
+<td style="text-align: center;">End AF scan,<wbr/> Lens now locked</td>
 </tr>
 <tr>
-<td align="center">PASSIVE_<wbr/>SCAN</td>
-<td align="center">Camera device fails current scan</td>
-<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
-<td align="center">End AF scan,<wbr/> Lens now locked</td>
+<td style="text-align: center;">PASSIVE_<wbr/>SCAN</td>
+<td style="text-align: center;">Camera device fails current scan</td>
+<td style="text-align: center;">PASSIVE_<wbr/>UNFOCUSED</td>
+<td style="text-align: center;">End AF scan,<wbr/> Lens now locked</td>
 </tr>
 <tr>
-<td align="center">PASSIVE_<wbr/>SCAN</td>
-<td align="center">AF_<wbr/>TRIGGER</td>
-<td align="center">FOCUSED_<wbr/>LOCKED</td>
-<td align="center">Immediate transition,<wbr/> if focus is good.<wbr/> Lens now locked</td>
+<td style="text-align: center;">PASSIVE_<wbr/>SCAN</td>
+<td style="text-align: center;">AF_<wbr/>TRIGGER</td>
+<td style="text-align: center;">FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">Immediate transition,<wbr/> if focus is good.<wbr/> Lens now locked</td>
 </tr>
 <tr>
-<td align="center">PASSIVE_<wbr/>SCAN</td>
-<td align="center">AF_<wbr/>TRIGGER</td>
-<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
-<td align="center">Immediate transition,<wbr/> if focus is bad.<wbr/> Lens now locked</td>
+<td style="text-align: center;">PASSIVE_<wbr/>SCAN</td>
+<td style="text-align: center;">AF_<wbr/>TRIGGER</td>
+<td style="text-align: center;">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">Immediate transition,<wbr/> if focus is bad.<wbr/> Lens now locked</td>
 </tr>
 <tr>
-<td align="center">PASSIVE_<wbr/>SCAN</td>
-<td align="center">AF_<wbr/>CANCEL</td>
-<td align="center">INACTIVE</td>
-<td align="center">Reset lens position,<wbr/> Lens now locked</td>
+<td style="text-align: center;">PASSIVE_<wbr/>SCAN</td>
+<td style="text-align: center;">AF_<wbr/>CANCEL</td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;">Reset lens position,<wbr/> Lens now locked</td>
 </tr>
 <tr>
-<td align="center">PASSIVE_<wbr/>FOCUSED</td>
-<td align="center">Camera device initiates new scan</td>
-<td align="center">PASSIVE_<wbr/>SCAN</td>
-<td align="center">Start AF scan,<wbr/> Lens now moving</td>
+<td style="text-align: center;">PASSIVE_<wbr/>FOCUSED</td>
+<td style="text-align: center;">Camera device initiates new scan</td>
+<td style="text-align: center;">PASSIVE_<wbr/>SCAN</td>
+<td style="text-align: center;">Start AF scan,<wbr/> Lens now moving</td>
 </tr>
 <tr>
-<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
-<td align="center">Camera device initiates new scan</td>
-<td align="center">PASSIVE_<wbr/>SCAN</td>
-<td align="center">Start AF scan,<wbr/> Lens now moving</td>
+<td style="text-align: center;">PASSIVE_<wbr/>UNFOCUSED</td>
+<td style="text-align: center;">Camera device initiates new scan</td>
+<td style="text-align: center;">PASSIVE_<wbr/>SCAN</td>
+<td style="text-align: center;">Start AF scan,<wbr/> Lens now moving</td>
 </tr>
 <tr>
-<td align="center">PASSIVE_<wbr/>FOCUSED</td>
-<td align="center">AF_<wbr/>TRIGGER</td>
-<td align="center">FOCUSED_<wbr/>LOCKED</td>
-<td align="center">Immediate transition,<wbr/> lens now locked</td>
+<td style="text-align: center;">PASSIVE_<wbr/>FOCUSED</td>
+<td style="text-align: center;">AF_<wbr/>TRIGGER</td>
+<td style="text-align: center;">FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">Immediate transition,<wbr/> lens now locked</td>
 </tr>
 <tr>
-<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
-<td align="center">AF_<wbr/>TRIGGER</td>
-<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
-<td align="center">Immediate transition,<wbr/> lens now locked</td>
+<td style="text-align: center;">PASSIVE_<wbr/>UNFOCUSED</td>
+<td style="text-align: center;">AF_<wbr/>TRIGGER</td>
+<td style="text-align: center;">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">Immediate transition,<wbr/> lens now locked</td>
 </tr>
 <tr>
-<td align="center">FOCUSED_<wbr/>LOCKED</td>
-<td align="center">AF_<wbr/>TRIGGER</td>
-<td align="center">FOCUSED_<wbr/>LOCKED</td>
-<td align="center">No effect</td>
+<td style="text-align: center;">FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">AF_<wbr/>TRIGGER</td>
+<td style="text-align: center;">FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">No effect</td>
 </tr>
 <tr>
-<td align="center">FOCUSED_<wbr/>LOCKED</td>
-<td align="center">AF_<wbr/>CANCEL</td>
-<td align="center">INACTIVE</td>
-<td align="center">Restart AF scan</td>
+<td style="text-align: center;">FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">AF_<wbr/>CANCEL</td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;">Restart AF scan</td>
 </tr>
 <tr>
-<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
-<td align="center">AF_<wbr/>TRIGGER</td>
-<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
-<td align="center">No effect</td>
+<td style="text-align: center;">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">AF_<wbr/>TRIGGER</td>
+<td style="text-align: center;">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">No effect</td>
 </tr>
 <tr>
-<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
-<td align="center">AF_<wbr/>CANCEL</td>
-<td align="center">INACTIVE</td>
-<td align="center">Restart AF scan</td>
+<td style="text-align: center;">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">AF_<wbr/>CANCEL</td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;">Restart AF scan</td>
 </tr>
 </tbody>
 </table>
@@ -9036,102 +9036,102 @@
 <table>
 <thead>
 <tr>
-<th align="center">State</th>
-<th align="center">Transition Cause</th>
-<th align="center">New State</th>
-<th align="center">Notes</th>
+<th style="text-align: center;">State</th>
+<th style="text-align: center;">Transition Cause</th>
+<th style="text-align: center;">New State</th>
+<th style="text-align: center;">Notes</th>
 </tr>
 </thead>
 <tbody>
 <tr>
-<td align="center">INACTIVE</td>
-<td align="center">Camera device initiates new scan</td>
-<td align="center">PASSIVE_<wbr/>SCAN</td>
-<td align="center">Start AF scan,<wbr/> Lens now moving</td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;">Camera device initiates new scan</td>
+<td style="text-align: center;">PASSIVE_<wbr/>SCAN</td>
+<td style="text-align: center;">Start AF scan,<wbr/> Lens now moving</td>
 </tr>
 <tr>
-<td align="center">INACTIVE</td>
-<td align="center">AF_<wbr/>TRIGGER</td>
-<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
-<td align="center">AF state query,<wbr/> Lens now locked</td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;">AF_<wbr/>TRIGGER</td>
+<td style="text-align: center;">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">AF state query,<wbr/> Lens now locked</td>
 </tr>
 <tr>
-<td align="center">PASSIVE_<wbr/>SCAN</td>
-<td align="center">Camera device completes current scan</td>
-<td align="center">PASSIVE_<wbr/>FOCUSED</td>
-<td align="center">End AF scan,<wbr/> Lens now locked</td>
+<td style="text-align: center;">PASSIVE_<wbr/>SCAN</td>
+<td style="text-align: center;">Camera device completes current scan</td>
+<td style="text-align: center;">PASSIVE_<wbr/>FOCUSED</td>
+<td style="text-align: center;">End AF scan,<wbr/> Lens now locked</td>
 </tr>
 <tr>
-<td align="center">PASSIVE_<wbr/>SCAN</td>
-<td align="center">Camera device fails current scan</td>
-<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
-<td align="center">End AF scan,<wbr/> Lens now locked</td>
+<td style="text-align: center;">PASSIVE_<wbr/>SCAN</td>
+<td style="text-align: center;">Camera device fails current scan</td>
+<td style="text-align: center;">PASSIVE_<wbr/>UNFOCUSED</td>
+<td style="text-align: center;">End AF scan,<wbr/> Lens now locked</td>
 </tr>
 <tr>
-<td align="center">PASSIVE_<wbr/>SCAN</td>
-<td align="center">AF_<wbr/>TRIGGER</td>
-<td align="center">FOCUSED_<wbr/>LOCKED</td>
-<td align="center">Eventual transition once the focus is good.<wbr/> Lens now locked</td>
+<td style="text-align: center;">PASSIVE_<wbr/>SCAN</td>
+<td style="text-align: center;">AF_<wbr/>TRIGGER</td>
+<td style="text-align: center;">FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">Eventual transition once the focus is good.<wbr/> Lens now locked</td>
 </tr>
 <tr>
-<td align="center">PASSIVE_<wbr/>SCAN</td>
-<td align="center">AF_<wbr/>TRIGGER</td>
-<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
-<td align="center">Eventual transition if cannot find focus.<wbr/> Lens now locked</td>
+<td style="text-align: center;">PASSIVE_<wbr/>SCAN</td>
+<td style="text-align: center;">AF_<wbr/>TRIGGER</td>
+<td style="text-align: center;">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">Eventual transition if cannot find focus.<wbr/> Lens now locked</td>
 </tr>
 <tr>
-<td align="center">PASSIVE_<wbr/>SCAN</td>
-<td align="center">AF_<wbr/>CANCEL</td>
-<td align="center">INACTIVE</td>
-<td align="center">Reset lens position,<wbr/> Lens now locked</td>
+<td style="text-align: center;">PASSIVE_<wbr/>SCAN</td>
+<td style="text-align: center;">AF_<wbr/>CANCEL</td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;">Reset lens position,<wbr/> Lens now locked</td>
 </tr>
 <tr>
-<td align="center">PASSIVE_<wbr/>FOCUSED</td>
-<td align="center">Camera device initiates new scan</td>
-<td align="center">PASSIVE_<wbr/>SCAN</td>
-<td align="center">Start AF scan,<wbr/> Lens now moving</td>
+<td style="text-align: center;">PASSIVE_<wbr/>FOCUSED</td>
+<td style="text-align: center;">Camera device initiates new scan</td>
+<td style="text-align: center;">PASSIVE_<wbr/>SCAN</td>
+<td style="text-align: center;">Start AF scan,<wbr/> Lens now moving</td>
 </tr>
 <tr>
-<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
-<td align="center">Camera device initiates new scan</td>
-<td align="center">PASSIVE_<wbr/>SCAN</td>
-<td align="center">Start AF scan,<wbr/> Lens now moving</td>
+<td style="text-align: center;">PASSIVE_<wbr/>UNFOCUSED</td>
+<td style="text-align: center;">Camera device initiates new scan</td>
+<td style="text-align: center;">PASSIVE_<wbr/>SCAN</td>
+<td style="text-align: center;">Start AF scan,<wbr/> Lens now moving</td>
 </tr>
 <tr>
-<td align="center">PASSIVE_<wbr/>FOCUSED</td>
-<td align="center">AF_<wbr/>TRIGGER</td>
-<td align="center">FOCUSED_<wbr/>LOCKED</td>
-<td align="center">Immediate trans.<wbr/> Lens now locked</td>
+<td style="text-align: center;">PASSIVE_<wbr/>FOCUSED</td>
+<td style="text-align: center;">AF_<wbr/>TRIGGER</td>
+<td style="text-align: center;">FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">Immediate trans.<wbr/> Lens now locked</td>
 </tr>
 <tr>
-<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
-<td align="center">AF_<wbr/>TRIGGER</td>
-<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
-<td align="center">Immediate trans.<wbr/> Lens now locked</td>
+<td style="text-align: center;">PASSIVE_<wbr/>UNFOCUSED</td>
+<td style="text-align: center;">AF_<wbr/>TRIGGER</td>
+<td style="text-align: center;">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">Immediate trans.<wbr/> Lens now locked</td>
 </tr>
 <tr>
-<td align="center">FOCUSED_<wbr/>LOCKED</td>
-<td align="center">AF_<wbr/>TRIGGER</td>
-<td align="center">FOCUSED_<wbr/>LOCKED</td>
-<td align="center">No effect</td>
+<td style="text-align: center;">FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">AF_<wbr/>TRIGGER</td>
+<td style="text-align: center;">FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">No effect</td>
 </tr>
 <tr>
-<td align="center">FOCUSED_<wbr/>LOCKED</td>
-<td align="center">AF_<wbr/>CANCEL</td>
-<td align="center">INACTIVE</td>
-<td align="center">Restart AF scan</td>
+<td style="text-align: center;">FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">AF_<wbr/>CANCEL</td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;">Restart AF scan</td>
 </tr>
 <tr>
-<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
-<td align="center">AF_<wbr/>TRIGGER</td>
-<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
-<td align="center">No effect</td>
+<td style="text-align: center;">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">AF_<wbr/>TRIGGER</td>
+<td style="text-align: center;">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">No effect</td>
 </tr>
 <tr>
-<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
-<td align="center">AF_<wbr/>CANCEL</td>
-<td align="center">INACTIVE</td>
-<td align="center">Restart AF scan</td>
+<td style="text-align: center;">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
+<td style="text-align: center;">AF_<wbr/>CANCEL</td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;">Restart AF scan</td>
 </tr>
 </tbody>
 </table>
@@ -9143,30 +9143,30 @@
 <table>
 <thead>
 <tr>
-<th align="center">State</th>
-<th align="center">Transition Cause</th>
-<th align="center">New State</th>
-<th align="center">Notes</th>
+<th style="text-align: center;">State</th>
+<th style="text-align: center;">Transition Cause</th>
+<th style="text-align: center;">New State</th>
+<th style="text-align: center;">Notes</th>
 </tr>
 </thead>
 <tbody>
 <tr>
-<td align="center">any state</td>
-<td align="center">CAF--&gt;AUTO mode switch</td>
-<td align="center">INACTIVE</td>
-<td align="center">Mode switch without trigger,<wbr/> initial state must be INACTIVE</td>
+<td style="text-align: center;">any state</td>
+<td style="text-align: center;">CAF--&gt;AUTO mode switch</td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;">Mode switch without trigger,<wbr/> initial state must be INACTIVE</td>
 </tr>
 <tr>
-<td align="center">any state</td>
-<td align="center">CAF--&gt;AUTO mode switch with AF_<wbr/>TRIGGER</td>
-<td align="center">trigger-reachable states from INACTIVE</td>
-<td align="center">Mode switch with trigger,<wbr/> INACTIVE is skipped</td>
+<td style="text-align: center;">any state</td>
+<td style="text-align: center;">CAF--&gt;AUTO mode switch with AF_<wbr/>TRIGGER</td>
+<td style="text-align: center;">trigger-reachable states from INACTIVE</td>
+<td style="text-align: center;">Mode switch with trigger,<wbr/> INACTIVE is skipped</td>
 </tr>
 <tr>
-<td align="center">any state</td>
-<td align="center">AUTO--&gt;CAF mode switch</td>
-<td align="center">passively reachable states from INACTIVE</td>
-<td align="center">Mode switch without trigger,<wbr/> passive transient state is skipped</td>
+<td style="text-align: center;">any state</td>
+<td style="text-align: center;">AUTO--&gt;CAF mode switch</td>
+<td style="text-align: center;">passively reachable states from INACTIVE</td>
+<td style="text-align: center;">Mode switch without trigger,<wbr/> passive transient state is skipped</td>
 </tr>
 </tbody>
 </table>
@@ -9844,18 +9844,18 @@
 <table>
 <thead>
 <tr>
-<th align="center">State</th>
-<th align="center">Transition Cause</th>
-<th align="center">New State</th>
-<th align="center">Notes</th>
+<th style="text-align: center;">State</th>
+<th style="text-align: center;">Transition Cause</th>
+<th style="text-align: center;">New State</th>
+<th style="text-align: center;">Notes</th>
 </tr>
 </thead>
 <tbody>
 <tr>
-<td align="center">INACTIVE</td>
-<td align="center"></td>
-<td align="center">INACTIVE</td>
-<td align="center">Camera device auto white balance algorithm is disabled</td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;"></td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;">Camera device auto white balance algorithm is disabled</td>
 </tr>
 </tbody>
 </table>
@@ -9863,54 +9863,54 @@
 <table>
 <thead>
 <tr>
-<th align="center">State</th>
-<th align="center">Transition Cause</th>
-<th align="center">New State</th>
-<th align="center">Notes</th>
+<th style="text-align: center;">State</th>
+<th style="text-align: center;">Transition Cause</th>
+<th style="text-align: center;">New State</th>
+<th style="text-align: center;">Notes</th>
 </tr>
 </thead>
 <tbody>
 <tr>
-<td align="center">INACTIVE</td>
-<td align="center">Camera device initiates AWB scan</td>
-<td align="center">SEARCHING</td>
-<td align="center">Values changing</td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;">Camera device initiates AWB scan</td>
+<td style="text-align: center;">SEARCHING</td>
+<td style="text-align: center;">Values changing</td>
 </tr>
 <tr>
-<td align="center">INACTIVE</td>
-<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
-<td align="center">LOCKED</td>
-<td align="center">Values locked</td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
+<td style="text-align: center;">LOCKED</td>
+<td style="text-align: center;">Values locked</td>
 </tr>
 <tr>
-<td align="center">SEARCHING</td>
-<td align="center">Camera device finishes AWB scan</td>
-<td align="center">CONVERGED</td>
-<td align="center">Good values,<wbr/> not changing</td>
+<td style="text-align: center;">SEARCHING</td>
+<td style="text-align: center;">Camera device finishes AWB scan</td>
+<td style="text-align: center;">CONVERGED</td>
+<td style="text-align: center;">Good values,<wbr/> not changing</td>
 </tr>
 <tr>
-<td align="center">SEARCHING</td>
-<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
-<td align="center">LOCKED</td>
-<td align="center">Values locked</td>
+<td style="text-align: center;">SEARCHING</td>
+<td style="text-align: center;"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
+<td style="text-align: center;">LOCKED</td>
+<td style="text-align: center;">Values locked</td>
 </tr>
 <tr>
-<td align="center">CONVERGED</td>
-<td align="center">Camera device initiates AWB scan</td>
-<td align="center">SEARCHING</td>
-<td align="center">Values changing</td>
+<td style="text-align: center;">CONVERGED</td>
+<td style="text-align: center;">Camera device initiates AWB scan</td>
+<td style="text-align: center;">SEARCHING</td>
+<td style="text-align: center;">Values changing</td>
 </tr>
 <tr>
-<td align="center">CONVERGED</td>
-<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
-<td align="center">LOCKED</td>
-<td align="center">Values locked</td>
+<td style="text-align: center;">CONVERGED</td>
+<td style="text-align: center;"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
+<td style="text-align: center;">LOCKED</td>
+<td style="text-align: center;">Values locked</td>
 </tr>
 <tr>
-<td align="center">LOCKED</td>
-<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
-<td align="center">SEARCHING</td>
-<td align="center">Values not good after unlock</td>
+<td style="text-align: center;">LOCKED</td>
+<td style="text-align: center;"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
+<td style="text-align: center;">SEARCHING</td>
+<td style="text-align: center;">Values not good after unlock</td>
 </tr>
 </tbody>
 </table>
@@ -9923,24 +9923,24 @@
 <table>
 <thead>
 <tr>
-<th align="center">State</th>
-<th align="center">Transition Cause</th>
-<th align="center">New State</th>
-<th align="center">Notes</th>
+<th style="text-align: center;">State</th>
+<th style="text-align: center;">Transition Cause</th>
+<th style="text-align: center;">New State</th>
+<th style="text-align: center;">Notes</th>
 </tr>
 </thead>
 <tbody>
 <tr>
-<td align="center">INACTIVE</td>
-<td align="center">Camera device finished AWB scan</td>
-<td align="center">CONVERGED</td>
-<td align="center">Values are already good,<wbr/> transient states are skipped by camera device.<wbr/></td>
+<td style="text-align: center;">INACTIVE</td>
+<td style="text-align: center;">Camera device finished AWB scan</td>
+<td style="text-align: center;">CONVERGED</td>
+<td style="text-align: center;">Values are already good,<wbr/> transient states are skipped by camera device.<wbr/></td>
 </tr>
 <tr>
-<td align="center">LOCKED</td>
-<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
-<td align="center">CONVERGED</td>
-<td align="center">Values good after unlock,<wbr/> transient states are skipped by camera device.<wbr/></td>
+<td style="text-align: center;">LOCKED</td>
+<td style="text-align: center;"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
+<td style="text-align: center;">CONVERGED</td>
+<td style="text-align: center;">Values good after unlock,<wbr/> transient states are skipped by camera device.<wbr/></td>
 </tr>
 </tbody>
 </table>
@@ -21912,31 +21912,31 @@
 <table>
 <thead>
 <tr>
-<th align="left">Input Format</th>
-<th align="left">Output Format</th>
-<th align="left">Capability</th>
+<th style="text-align: left;">Input Format</th>
+<th style="text-align: left;">Output Format</th>
+<th style="text-align: left;">Capability</th>
 </tr>
 </thead>
 <tbody>
 <tr>
-<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a></td>
-<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
-<td align="left">PRIVATE_<wbr/>REPROCESSING</td>
+<td style="text-align: left;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a></td>
+<td style="text-align: left;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
+<td style="text-align: left;">PRIVATE_<wbr/>REPROCESSING</td>
 </tr>
 <tr>
-<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a></td>
-<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
-<td align="left">PRIVATE_<wbr/>REPROCESSING</td>
+<td style="text-align: left;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a></td>
+<td style="text-align: left;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
+<td style="text-align: left;">PRIVATE_<wbr/>REPROCESSING</td>
 </tr>
 <tr>
-<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
-<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
-<td align="left">YUV_<wbr/>REPROCESSING</td>
+<td style="text-align: left;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
+<td style="text-align: left;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
+<td style="text-align: left;">YUV_<wbr/>REPROCESSING</td>
 </tr>
 <tr>
-<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
-<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
-<td align="left">YUV_<wbr/>REPROCESSING</td>
+<td style="text-align: left;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
+<td style="text-align: left;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
+<td style="text-align: left;">YUV_<wbr/>REPROCESSING</td>
 </tr>
 </tbody>
 </table>
@@ -21953,26 +21953,26 @@
 <table>
 <thead>
 <tr>
-<th align="left">Input Format</th>
-<th align="left">Output Format</th>
-<th align="left">Capability</th>
+<th style="text-align: left;">Input Format</th>
+<th style="text-align: left;">Output Format</th>
+<th style="text-align: left;">Capability</th>
 </tr>
 </thead>
 <tbody>
 <tr>
-<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a></td>
-<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#Y8">ImageFormat#Y8</a></td>
-<td align="left">PRIVATE_<wbr/>REPROCESSING</td>
+<td style="text-align: left;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a></td>
+<td style="text-align: left;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#Y8">ImageFormat#Y8</a></td>
+<td style="text-align: left;">PRIVATE_<wbr/>REPROCESSING</td>
 </tr>
 <tr>
-<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#Y8">ImageFormat#Y8</a></td>
-<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
-<td align="left">YUV_<wbr/>REPROCESSING</td>
+<td style="text-align: left;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#Y8">ImageFormat#Y8</a></td>
+<td style="text-align: left;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
+<td style="text-align: left;">YUV_<wbr/>REPROCESSING</td>
 </tr>
 <tr>
-<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#Y8">ImageFormat#Y8</a></td>
-<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#Y8">ImageFormat#Y8</a></td>
-<td align="left">YUV_<wbr/>REPROCESSING</td>
+<td style="text-align: left;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#Y8">ImageFormat#Y8</a></td>
+<td style="text-align: left;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#Y8">ImageFormat#Y8</a></td>
+<td style="text-align: left;">YUV_<wbr/>REPROCESSING</td>
 </tr>
 </tbody>
 </table>
@@ -22102,60 +22102,60 @@
 <table>
 <thead>
 <tr>
-<th align="center">Format</th>
-<th align="center">Size</th>
-<th align="center">Hardware Level</th>
-<th align="center">Notes</th>
+<th style="text-align: center;">Format</th>
+<th style="text-align: center;">Size</th>
+<th style="text-align: center;">Hardware Level</th>
+<th style="text-align: center;">Notes</th>
 </tr>
 </thead>
 <tbody>
 <tr>
-<td align="center">JPEG</td>
-<td align="center"><a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></td>
-<td align="center">Any</td>
-<td align="center"></td>
+<td style="text-align: center;">JPEG</td>
+<td style="text-align: center;"><a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></td>
+<td style="text-align: center;">Any</td>
+<td style="text-align: center;"></td>
 </tr>
 <tr>
-<td align="center">JPEG</td>
-<td align="center">1920x1080 (1080p)</td>
-<td align="center">Any</td>
-<td align="center">if 1080p &lt;= activeArraySize</td>
+<td style="text-align: center;">JPEG</td>
+<td style="text-align: center;">1920x1080 (1080p)</td>
+<td style="text-align: center;">Any</td>
+<td style="text-align: center;">if 1080p &lt;= activeArraySize</td>
 </tr>
 <tr>
-<td align="center">JPEG</td>
-<td align="center">1280x720 (720)</td>
-<td align="center">Any</td>
-<td align="center">if 720p &lt;= activeArraySize</td>
+<td style="text-align: center;">JPEG</td>
+<td style="text-align: center;">1280x720 (720)</td>
+<td style="text-align: center;">Any</td>
+<td style="text-align: center;">if 720p &lt;= activeArraySize</td>
 </tr>
 <tr>
-<td align="center">JPEG</td>
-<td align="center">640x480 (480p)</td>
-<td align="center">Any</td>
-<td align="center">if 480p &lt;= activeArraySize</td>
+<td style="text-align: center;">JPEG</td>
+<td style="text-align: center;">640x480 (480p)</td>
+<td style="text-align: center;">Any</td>
+<td style="text-align: center;">if 480p &lt;= activeArraySize</td>
 </tr>
 <tr>
-<td align="center">JPEG</td>
-<td align="center">320x240 (240p)</td>
-<td align="center">Any</td>
-<td align="center">if 240p &lt;= activeArraySize</td>
+<td style="text-align: center;">JPEG</td>
+<td style="text-align: center;">320x240 (240p)</td>
+<td style="text-align: center;">Any</td>
+<td style="text-align: center;">if 240p &lt;= activeArraySize</td>
 </tr>
 <tr>
-<td align="center">YUV_<wbr/>420_<wbr/>888</td>
-<td align="center">all output sizes available for JPEG</td>
-<td align="center">FULL</td>
-<td align="center"></td>
+<td style="text-align: center;">YUV_<wbr/>420_<wbr/>888</td>
+<td style="text-align: center;">all output sizes available for JPEG</td>
+<td style="text-align: center;">FULL</td>
+<td style="text-align: center;"></td>
 </tr>
 <tr>
-<td align="center">YUV_<wbr/>420_<wbr/>888</td>
-<td align="center">all output sizes available for JPEG,<wbr/> up to the maximum video size</td>
-<td align="center">LIMITED</td>
-<td align="center"></td>
+<td style="text-align: center;">YUV_<wbr/>420_<wbr/>888</td>
+<td style="text-align: center;">all output sizes available for JPEG,<wbr/> up to the maximum video size</td>
+<td style="text-align: center;">LIMITED</td>
+<td style="text-align: center;"></td>
 </tr>
 <tr>
-<td align="center">IMPLEMENTATION_<wbr/>DEFINED</td>
-<td align="center">same as YUV_<wbr/>420_<wbr/>888</td>
-<td align="center">Any</td>
-<td align="center"></td>
+<td style="text-align: center;">IMPLEMENTATION_<wbr/>DEFINED</td>
+<td style="text-align: center;">same as YUV_<wbr/>420_<wbr/>888</td>
+<td style="text-align: center;">Any</td>
+<td style="text-align: center;"></td>
 </tr>
 </tbody>
 </table>
@@ -22170,66 +22170,66 @@
 <table>
 <thead>
 <tr>
-<th align="center">Format</th>
-<th align="center">Size</th>
-<th align="center">Hardware Level</th>
-<th align="center">Notes</th>
+<th style="text-align: center;">Format</th>
+<th style="text-align: center;">Size</th>
+<th style="text-align: center;">Hardware Level</th>
+<th style="text-align: center;">Notes</th>
 </tr>
 </thead>
 <tbody>
 <tr>
-<td align="center">JPEG</td>
-<td align="center"><a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></td>
-<td align="center">Any</td>
-<td align="center"></td>
+<td style="text-align: center;">JPEG</td>
+<td style="text-align: center;"><a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></td>
+<td style="text-align: center;">Any</td>
+<td style="text-align: center;"></td>
 </tr>
 <tr>
-<td align="center">JPEG</td>
-<td align="center">1920x1080 (1080p)</td>
-<td align="center">Any</td>
-<td align="center">if 1080p &lt;= activeArraySize</td>
+<td style="text-align: center;">JPEG</td>
+<td style="text-align: center;">1920x1080 (1080p)</td>
+<td style="text-align: center;">Any</td>
+<td style="text-align: center;">if 1080p &lt;= activeArraySize</td>
 </tr>
 <tr>
-<td align="center">YUV_<wbr/>420_<wbr/>888</td>
-<td align="center"><a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></td>
-<td align="center">FULL</td>
-<td align="center"></td>
+<td style="text-align: center;">YUV_<wbr/>420_<wbr/>888</td>
+<td style="text-align: center;"><a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></td>
+<td style="text-align: center;">FULL</td>
+<td style="text-align: center;"></td>
 </tr>
 <tr>
-<td align="center">YUV_<wbr/>420_<wbr/>888</td>
-<td align="center">1920x1080 (1080p)</td>
-<td align="center">FULL</td>
-<td align="center">if 1080p &lt;= activeArraySize</td>
+<td style="text-align: center;">YUV_<wbr/>420_<wbr/>888</td>
+<td style="text-align: center;">1920x1080 (1080p)</td>
+<td style="text-align: center;">FULL</td>
+<td style="text-align: center;">if 1080p &lt;= activeArraySize</td>
 </tr>
 <tr>
-<td align="center">YUV_<wbr/>420_<wbr/>888</td>
-<td align="center">1280x720 (720)</td>
-<td align="center">FULL</td>
-<td align="center">if 720p &lt;= activeArraySize</td>
+<td style="text-align: center;">YUV_<wbr/>420_<wbr/>888</td>
+<td style="text-align: center;">1280x720 (720)</td>
+<td style="text-align: center;">FULL</td>
+<td style="text-align: center;">if 720p &lt;= activeArraySize</td>
 </tr>
 <tr>
-<td align="center">YUV_<wbr/>420_<wbr/>888</td>
-<td align="center">640x480 (480p)</td>
-<td align="center">FULL</td>
-<td align="center">if 480p &lt;= activeArraySize</td>
+<td style="text-align: center;">YUV_<wbr/>420_<wbr/>888</td>
+<td style="text-align: center;">640x480 (480p)</td>
+<td style="text-align: center;">FULL</td>
+<td style="text-align: center;">if 480p &lt;= activeArraySize</td>
 </tr>
 <tr>
-<td align="center">YUV_<wbr/>420_<wbr/>888</td>
-<td align="center">320x240 (240p)</td>
-<td align="center">FULL</td>
-<td align="center">if 240p &lt;= activeArraySize</td>
+<td style="text-align: center;">YUV_<wbr/>420_<wbr/>888</td>
+<td style="text-align: center;">320x240 (240p)</td>
+<td style="text-align: center;">FULL</td>
+<td style="text-align: center;">if 240p &lt;= activeArraySize</td>
 </tr>
 <tr>
-<td align="center">YUV_<wbr/>420_<wbr/>888</td>
-<td align="center">all output sizes available for FULL hardware level,<wbr/> up to the maximum video size</td>
-<td align="center">LIMITED</td>
-<td align="center"></td>
+<td style="text-align: center;">YUV_<wbr/>420_<wbr/>888</td>
+<td style="text-align: center;">all output sizes available for FULL hardware level,<wbr/> up to the maximum video size</td>
+<td style="text-align: center;">LIMITED</td>
+<td style="text-align: center;"></td>
 </tr>
 <tr>
-<td align="center">IMPLEMENTATION_<wbr/>DEFINED</td>
-<td align="center">same as YUV_<wbr/>420_<wbr/>888</td>
-<td align="center">Any</td>
-<td align="center"></td>
+<td style="text-align: center;">IMPLEMENTATION_<wbr/>DEFINED</td>
+<td style="text-align: center;">same as YUV_<wbr/>420_<wbr/>888</td>
+<td style="text-align: center;">Any</td>
+<td style="text-align: center;"></td>
 </tr>
 </tbody>
 </table>
@@ -22556,17 +22556,67 @@
 check if it limits the maximum size for image data.<wbr/></p>
 <p>For applications targeting SDK version older than 31,<wbr/> the following table
 describes the minimum required output stream configurations based on the
-hardware level (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a>):
-Format                                             |<wbr/> Size                                         |<wbr/> Hardware Level |<wbr/> Notes
-:-------------------------------------------------:|<wbr/>:--------------------------------------------:|<wbr/>:--------------:|<wbr/>:--------------:
-<a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a>          |<wbr/> <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> (*1)     |<wbr/> Any            |<wbr/>
-<a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a>          |<wbr/> 1920x1080 (1080p)                            |<wbr/> Any            |<wbr/> if 1080p &lt;= activeArraySize
-<a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a>          |<wbr/> 1280x720 (720p)                               |<wbr/> Any            |<wbr/> if 720p &lt;= activeArraySize
-<a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a>          |<wbr/> 640x480 (480p)                               |<wbr/> Any            |<wbr/> if 480p &lt;= activeArraySize
-<a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a>          |<wbr/> 320x240 (240p)                               |<wbr/> Any            |<wbr/> if 240p &lt;= activeArraySize
-<a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a>   |<wbr/> all output sizes available for JPEG          |<wbr/> FULL           |<wbr/>
-<a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a>   |<wbr/> all output sizes available for JPEG,<wbr/> up to the maximum video size |<wbr/> LIMITED        |<wbr/>
-<a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a>       |<wbr/> same as YUV_<wbr/>420_<wbr/>888                          |<wbr/> Any            |<wbr/></p>
+hardware level (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a>):</p>
+<table>
+<thead>
+<tr>
+<th style="text-align: center;">Format</th>
+<th style="text-align: center;">Size</th>
+<th style="text-align: center;">Hardware Level</th>
+<th style="text-align: center;">Notes</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td style="text-align: center;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
+<td style="text-align: center;"><a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> (*1)</td>
+<td style="text-align: center;">Any</td>
+<td style="text-align: center;"></td>
+</tr>
+<tr>
+<td style="text-align: center;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
+<td style="text-align: center;">1920x1080 (1080p)</td>
+<td style="text-align: center;">Any</td>
+<td style="text-align: center;">if 1080p &lt;= activeArraySize</td>
+</tr>
+<tr>
+<td style="text-align: center;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
+<td style="text-align: center;">1280x720 (720p)</td>
+<td style="text-align: center;">Any</td>
+<td style="text-align: center;">if 720p &lt;= activeArraySize</td>
+</tr>
+<tr>
+<td style="text-align: center;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
+<td style="text-align: center;">640x480 (480p)</td>
+<td style="text-align: center;">Any</td>
+<td style="text-align: center;">if 480p &lt;= activeArraySize</td>
+</tr>
+<tr>
+<td style="text-align: center;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
+<td style="text-align: center;">320x240 (240p)</td>
+<td style="text-align: center;">Any</td>
+<td style="text-align: center;">if 240p &lt;= activeArraySize</td>
+</tr>
+<tr>
+<td style="text-align: center;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
+<td style="text-align: center;">all output sizes available for JPEG</td>
+<td style="text-align: center;">FULL</td>
+<td style="text-align: center;"></td>
+</tr>
+<tr>
+<td style="text-align: center;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
+<td style="text-align: center;">all output sizes available for JPEG,<wbr/> up to the maximum video size</td>
+<td style="text-align: center;">LIMITED</td>
+<td style="text-align: center;"></td>
+</tr>
+<tr>
+<td style="text-align: center;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a></td>
+<td style="text-align: center;">same as YUV_<wbr/>420_<wbr/>888</td>
+<td style="text-align: center;">Any</td>
+<td style="text-align: center;"></td>
+</tr>
+</tbody>
+</table>
 <p>For applications targeting SDK version 31 or newer,<wbr/> if the mobile device declares to be
 media performance class 12 or higher by setting
 <a href="https://developer.android.com/reference/android/os/Build.VERSION.html#MEDIA_PERFORMANCE_CLASS">VERSION#MEDIA_<wbr/>PERFORMANCE_<wbr/>CLASS</a> to be 31 or larger,<wbr/>
@@ -22578,66 +22628,66 @@
 <table>
 <thead>
 <tr>
-<th align="center">Format</th>
-<th align="center">Size</th>
-<th align="center">Hardware Level</th>
-<th align="center">Notes</th>
+<th style="text-align: center;">Format</th>
+<th style="text-align: center;">Size</th>
+<th style="text-align: center;">Hardware Level</th>
+<th style="text-align: center;">Notes</th>
 </tr>
 </thead>
 <tbody>
 <tr>
-<td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
-<td align="center"><a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> (*1)</td>
-<td align="center">Any</td>
-<td align="center"></td>
+<td style="text-align: center;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
+<td style="text-align: center;"><a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> (*1)</td>
+<td style="text-align: center;">Any</td>
+<td style="text-align: center;"></td>
 </tr>
 <tr>
-<td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
-<td align="center">1920x1080 (1080p)</td>
-<td align="center">Any</td>
-<td align="center">if 1080p &lt;= activeArraySize</td>
+<td style="text-align: center;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
+<td style="text-align: center;">1920x1080 (1080p)</td>
+<td style="text-align: center;">Any</td>
+<td style="text-align: center;">if 1080p &lt;= activeArraySize</td>
 </tr>
 <tr>
-<td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
-<td align="center"><a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></td>
-<td align="center">FULL</td>
-<td align="center"></td>
+<td style="text-align: center;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
+<td style="text-align: center;"><a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></td>
+<td style="text-align: center;">FULL</td>
+<td style="text-align: center;"></td>
 </tr>
 <tr>
-<td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
-<td align="center">1920x1080 (1080p)</td>
-<td align="center">FULL</td>
-<td align="center">if 1080p &lt;= activeArraySize</td>
+<td style="text-align: center;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
+<td style="text-align: center;">1920x1080 (1080p)</td>
+<td style="text-align: center;">FULL</td>
+<td style="text-align: center;">if 1080p &lt;= activeArraySize</td>
 </tr>
 <tr>
-<td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
-<td align="center">1280x720 (720)</td>
-<td align="center">FULL</td>
-<td align="center">if 720p &lt;= activeArraySize</td>
+<td style="text-align: center;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
+<td style="text-align: center;">1280x720 (720)</td>
+<td style="text-align: center;">FULL</td>
+<td style="text-align: center;">if 720p &lt;= activeArraySize</td>
 </tr>
 <tr>
-<td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
-<td align="center">640x480 (480p)</td>
-<td align="center">FULL</td>
-<td align="center">if 480p &lt;= activeArraySize</td>
+<td style="text-align: center;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
+<td style="text-align: center;">640x480 (480p)</td>
+<td style="text-align: center;">FULL</td>
+<td style="text-align: center;">if 480p &lt;= activeArraySize</td>
 </tr>
 <tr>
-<td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
-<td align="center">320x240 (240p)</td>
-<td align="center">FULL</td>
-<td align="center">if 240p &lt;= activeArraySize</td>
+<td style="text-align: center;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
+<td style="text-align: center;">320x240 (240p)</td>
+<td style="text-align: center;">FULL</td>
+<td style="text-align: center;">if 240p &lt;= activeArraySize</td>
 </tr>
 <tr>
-<td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
-<td align="center">all output sizes available for FULL hardware level,<wbr/> up to the maximum video size</td>
-<td align="center">LIMITED</td>
-<td align="center"></td>
+<td style="text-align: center;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
+<td style="text-align: center;">all output sizes available for FULL hardware level,<wbr/> up to the maximum video size</td>
+<td style="text-align: center;">LIMITED</td>
+<td style="text-align: center;"></td>
 </tr>
 <tr>
-<td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a></td>
-<td align="center">same as YUV_<wbr/>420_<wbr/>888</td>
-<td align="center">Any</td>
-<td align="center"></td>
+<td style="text-align: center;"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a></td>
+<td style="text-align: center;">same as YUV_<wbr/>420_<wbr/>888</td>
+<td style="text-align: center;">Any</td>
+<td style="text-align: center;"></td>
 </tr>
 </tbody>
 </table>
@@ -27944,12 +27994,12 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">NOT_SUPPORTED (v3.2)</span>
+                    <span class="entry_type_enum_name">NOT_SUPPORTED (v3.8)</span>
                     <span class="entry_type_enum_notes"><p>This camera device doesn't support readout timestamp and onReadoutStarted
 callback.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">HARDWARE (v3.2)</span>
+                    <span class="entry_type_enum_name">HARDWARE (v3.8)</span>
                     <span class="entry_type_enum_notes"><p>This camera device supports the onReadoutStarted callback as well as outputting
 readout timestamp for streams with TIMESTAMP_<wbr/>BASE_<wbr/>READOUT_<wbr/>SENSOR timestamp base.<wbr/> The
 readout timestamp is generated by the camera hardware and it has the same accuracy
@@ -27971,7 +28021,7 @@
             </td>
 
             <td class="entry_hal_version">
-              <p>3.<wbr/>2</p>
+              <p>3.<wbr/>8</p>
             </td>
 
             <td class="entry_tags">
diff --git a/camera/docs/metadata_definitions.xml b/camera/docs/metadata_definitions.xml
index 469206e..1ac9d36 100644
--- a/camera/docs/metadata_definitions.xml
+++ b/camera/docs/metadata_definitions.xml
@@ -7682,6 +7682,7 @@
           For applications targeting SDK version older than 31, the following table
           describes the minimum required output stream configurations based on the
           hardware level (android.info.supportedHardwareLevel):
+
           Format                                             | Size                                         | Hardware Level | Notes
           :-------------------------------------------------:|:--------------------------------------------:|:--------------:|:--------------:
           {@link android.graphics.ImageFormat#JPEG}          | android.sensor.info.activeArraySize (*1)     | Any            |
@@ -10580,7 +10581,7 @@
       </dynamic>
       <static>
         <entry name="readoutTimestamp" type="byte" visibility="fwk_java_public"
-          enum="true" hwlevel="legacy">
+          enum="true" hwlevel="legacy" hal_version="3.8">
         <enum>
           <value>NOT_SUPPORTED
             <notes>This camera device doesn't support readout timestamp and onReadoutStarted
diff --git a/camera/docs/metadata_helpers.py b/camera/docs/metadata_helpers.py
index 76f7a61..33515ea 100644
--- a/camera/docs/metadata_helpers.py
+++ b/camera/docs/metadata_helpers.py
@@ -1413,7 +1413,7 @@
   # sort keys)
   api_level_to_keys_ordered = OrderedDict()
   for api_level_ordered in sorted(api_level_to_keys.keys()):
-    api_level_to_keys_ordered[api_level_ordered] = api_level_to_keys[api_level_ordered]
+    api_level_to_keys_ordered[api_level_ordered] = sorted(api_level_to_keys[api_level_ordered])
   return api_level_to_keys_ordered
 
 def remove_synthetic(entries):