diff --git a/attn/ti_handler.cpp b/attn/ti_handler.cpp
index 3c93c3a..692cdad 100644
--- a/attn/ti_handler.cpp
+++ b/attn/ti_handler.cpp
@@ -175,8 +175,8 @@
             std::map<std::string, std::string> tiAdditionalData;
 
             // make note of recoverable errors present
-            tiAdditionalData["recoverables"] = recoverableErrors() ? "true"
-                                                                   : "false";
+            tiAdditionalData["recoverables"] =
+                recoverableErrors() ? "true" : "false";
 
             parseHbTiInfo(tiAdditionalData, i_tiDataArea);
 
@@ -259,8 +259,8 @@
         return;
     }
 
-    i_map["0x00 TI Area Valid"] = std::format("{:02x}",
-                                              i_tiDataArea->tiAreaValid);
+    i_map["0x00 TI Area Valid"] =
+        std::format("{:02x}", i_tiDataArea->tiAreaValid);
     i_map["0x01 Command"] = std::format("{:02x}", i_tiDataArea->command);
     i_map["0x02 Num. Data Bytes"] =
         std::format("{:04x}", be16toh(i_tiDataArea->numDataBytes));
@@ -269,12 +269,12 @@
         std::format("{:04x}", be16toh(i_tiDataArea->hardwareDumpType));
     i_map["0x08 SRC Format"] = std::format("{:02x}", i_tiDataArea->srcFormat);
     i_map["0x09 SRC Flags"] = std::format("{:02x}", i_tiDataArea->srcFlags);
-    i_map["0x0a Num. ASCII Words"] = std::format("{:02x}",
-                                                 i_tiDataArea->numAsciiWords);
-    i_map["0x0b Num. Hex Words"] = std::format("{:02x}",
-                                               i_tiDataArea->numHexWords);
-    i_map["0x0e Length of SRC"] = std::format("{:04x}",
-                                              be16toh(i_tiDataArea->lenSrc));
+    i_map["0x0a Num. ASCII Words"] =
+        std::format("{:02x}", i_tiDataArea->numAsciiWords);
+    i_map["0x0b Num. Hex Words"] =
+        std::format("{:02x}", i_tiDataArea->numHexWords);
+    i_map["0x0e Length of SRC"] =
+        std::format("{:04x}", be16toh(i_tiDataArea->lenSrc));
     i_map["0x10 SRC Word 12"] =
         std::format("{:08x}", be32toh(i_tiDataArea->srcWord12HbWord0));
     i_map["0x14 SRC Word 13"] =
@@ -291,29 +291,29 @@
         std::format("{:08x}", be32toh(i_tiDataArea->srcWord18HbWord7));
     i_map["0x2c SRC Word 19"] =
         std::format("{:08x}", be32toh(i_tiDataArea->srcWord19HbWord8));
-    i_map["0x30 ASCII Data"] = std::format("{:08x}",
-                                           be32toh(i_tiDataArea->asciiData0));
-    i_map["0x34 ASCII Data"] = std::format("{:08x}",
-                                           be32toh(i_tiDataArea->asciiData1));
-    i_map["0x38 ASCII Data"] = std::format("{:08x}",
-                                           be32toh(i_tiDataArea->asciiData2));
-    i_map["0x3c ASCII Data"] = std::format("{:08x}",
-                                           be32toh(i_tiDataArea->asciiData3));
-    i_map["0x40 ASCII Data"] = std::format("{:08x}",
-                                           be32toh(i_tiDataArea->asciiData4));
-    i_map["0x44 ASCII Data"] = std::format("{:08x}",
-                                           be32toh(i_tiDataArea->asciiData5));
-    i_map["0x48 ASCII Data"] = std::format("{:08x}",
-                                           be32toh(i_tiDataArea->asciiData6));
-    i_map["0x4c ASCII Data"] = std::format("{:08x}",
-                                           be32toh(i_tiDataArea->asciiData7));
+    i_map["0x30 ASCII Data"] =
+        std::format("{:08x}", be32toh(i_tiDataArea->asciiData0));
+    i_map["0x34 ASCII Data"] =
+        std::format("{:08x}", be32toh(i_tiDataArea->asciiData1));
+    i_map["0x38 ASCII Data"] =
+        std::format("{:08x}", be32toh(i_tiDataArea->asciiData2));
+    i_map["0x3c ASCII Data"] =
+        std::format("{:08x}", be32toh(i_tiDataArea->asciiData3));
+    i_map["0x40 ASCII Data"] =
+        std::format("{:08x}", be32toh(i_tiDataArea->asciiData4));
+    i_map["0x44 ASCII Data"] =
+        std::format("{:08x}", be32toh(i_tiDataArea->asciiData5));
+    i_map["0x48 ASCII Data"] =
+        std::format("{:08x}", be32toh(i_tiDataArea->asciiData6));
+    i_map["0x4c ASCII Data"] =
+        std::format("{:08x}", be32toh(i_tiDataArea->asciiData7));
     i_map["0x50 Location"] = std::format("{:02x}", i_tiDataArea->location);
-    i_map["0x51 Code Sections"] = std::format("{:02x}",
-                                              i_tiDataArea->codeSection);
-    i_map["0x52 Additional Size"] = std::format("{:02x}",
-                                                i_tiDataArea->additionalSize);
-    i_map["0x53 Additional Data"] = std::format("{:02x}",
-                                                i_tiDataArea->andData);
+    i_map["0x51 Code Sections"] =
+        std::format("{:02x}", i_tiDataArea->codeSection);
+    i_map["0x52 Additional Size"] =
+        std::format("{:02x}", i_tiDataArea->additionalSize);
+    i_map["0x53 Additional Data"] =
+        std::format("{:02x}", i_tiDataArea->andData);
 }
 
 /** @brief Parse the TI info data area into map as hostboot data */
@@ -325,11 +325,11 @@
         return;
     }
 
-    i_map["0x00 TI Area Valid"] = std::format("{:02x}",
-                                              i_tiDataArea->tiAreaValid);
+    i_map["0x00 TI Area Valid"] =
+        std::format("{:02x}", i_tiDataArea->tiAreaValid);
     i_map["0x04 Reserved"] = std::format("{:02x}", i_tiDataArea->reserved1);
-    i_map["0x05 HB_Term. Type"] = std::format("{:02x}",
-                                              i_tiDataArea->hbTerminateType);
+    i_map["0x05 HB_Term. Type"] =
+        std::format("{:02x}", i_tiDataArea->hbTerminateType);
     i_map["0x0c HB Flags"] = std::format("{:02x}", i_tiDataArea->hbFlags);
     i_map["0x0d Source"] = std::format("{:02x}", i_tiDataArea->source);
     i_map["0x10 HB Word 0"] =
@@ -348,10 +348,10 @@
         std::format("{:08x}", be32toh(i_tiDataArea->srcWord18HbWord7));
     i_map["0x2c HB Word 8"] =
         std::format("{:08x}", be32toh(i_tiDataArea->srcWord19HbWord8));
-    i_map["0x30 error_data"] = std::format("{:08x}",
-                                           be32toh(i_tiDataArea->asciiData0));
-    i_map["0x34 EID"] = std::format("{:08x}",
-                                    be32toh(i_tiDataArea->asciiData1));
+    i_map["0x30 error_data"] =
+        std::format("{:08x}", be32toh(i_tiDataArea->asciiData0));
+    i_map["0x34 EID"] =
+        std::format("{:08x}", be32toh(i_tiDataArea->asciiData1));
 }
 
 } // namespace attn
