Fixed error messages
authorlhauch <lhauch@7335b38e-4728-0410-8992-fb3ffe349368>
Fri, 18 Jan 2008 20:44:25 +0000 (20:44 +0000)
committerlhauch <lhauch@7335b38e-4728-0410-8992-fb3ffe349368>
Fri, 18 Jan 2008 20:44:25 +0000 (20:44 +0000)
git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@959 7335b38e-4728-0410-8992-fb3ffe349368

Source/C/EfiRom/EfiRom.c

index 6e0a161..8fd1567 100644 (file)
@@ -68,7 +68,7 @@ Returns:
   //\r
   OutFileList = (FILE_LIST *) malloc (sizeof (FILE_LIST));\r
   if (OutFileList == NULL) {\r
-    Error(stdout, 0, 4001, "Resource", "memory cannot be allocated ");\r
+    Error (stdout, 0, 4001, "Resource", "memory cannot be allocated!");\r
     return STATUS_ERROR;\r
   }  \r
   memset ((char *) OutFileList, 0, sizeof (FILE_LIST));\r
@@ -134,7 +134,7 @@ Returns:
   for (FList = mOptions.FileList; FList != NULL; FList = FList->Next) {\r
     if (stricmp (mOptions.OutFileName, FList->FileName) == 0) {\r
       Status = STATUS_ERROR;\r
-      Error(NULL, 0, 1002, "Input and output file names must be different - %s = %s", FList->FileName, mOptions.OutFileName);\r
+      Error (NULL, 0, 1002, "Input and output file names must be different - %s = %s.", FList->FileName, mOptions.OutFileName);\r
       goto BailOut;\r
     }\r
   }\r
@@ -142,7 +142,7 @@ Returns:
   // Now open our output file\r
   //\r
   if ((FptrOut = fopen (mOptions.OutFileName, "wb")) == NULL) {\r
-    Error(stdout, 0, 0001, "Error opening file", mOptions.OutFileName);\r
+    Error (stdout, 0, 0001, "Error opening file", mOptions.OutFileName);\r
     goto BailOut;\r
   }\r
   //\r
@@ -164,7 +164,7 @@ Returns:
 \r
       Status = ProcessBinFile (FptrOut, FList, &Size);\r
     } else {\r
-      Error(stdout, 0, 2000, "Invalid parameter", "File not specified as EFI or binary: %s", FList->FileName);\r
+      Error (stdout, 0, 2000, "Invalid parameter", "File type not specified, it must be either an EFI or binary file: %s.", FList->FileName);\r
       Status = STATUS_ERROR;\r
     }\r
 \r
@@ -182,7 +182,7 @@ Returns:
   // Check total size\r
   //\r
   if (TotalSize > MAX_OPTION_ROM_SIZE) {\r
-    Error(NULL, 0, 2000, "Option ROM image size exceeds limit 0x%X bytes", MAX_OPTION_ROM_SIZE);\r
+    Error (NULL, 0, 2000, "Option ROM image size exceeds limit of 0x%X bytes.", MAX_OPTION_ROM_SIZE);\r
     Status = STATUS_ERROR;\r
   }\r
 \r
@@ -271,13 +271,13 @@ Returns:
   fseek (InFptr, 0, SEEK_SET);\r
   Buffer = (INT8 *) malloc (FileSize);\r
   if (Buffer == NULL) {\r
-    Error (NULL, 0, 4003, "Resource", "Out of memory resources.", NULL);\r
+    Error (NULL, 0, 4003, "Resource", "memory cannot be allocated!", NULL);\r
     Status = STATUS_ERROR;\r
     goto BailOut;\r
   }\r
 \r
   if (fread (Buffer, FileSize, 1, InFptr) != 1) {\r
-    Error(NULL, 0, 2000, "Invalid", "Failed to read all bytes from input file");\r
+    Error (NULL, 0, 2000, "Invalid", "Failed to read all bytes from input file.");\r
     Status = STATUS_ERROR;\r
     goto BailOut;\r
   }\r
@@ -291,7 +291,7 @@ Returns:
   }\r
 \r
   if (TotalSize > MAX_OPTION_ROM_SIZE) {\r
-    Error(NULL, 0, 3001, "Option ROM image %s size exceeds limit 0x%X bytes", InFile->FileName, MAX_OPTION_ROM_SIZE);\r
+    Error (NULL, 0, 3001, "Option ROM image %s size exceeds limit of 0x%X bytes.", InFile->FileName, MAX_OPTION_ROM_SIZE);\r
     Status = STATUS_ERROR;\r
     goto BailOut;\r
   }\r
@@ -305,7 +305,7 @@ Returns:
   //\r
   RomHdr = (PCI_EXPANSION_ROM_HEADER *) Buffer;\r
   if (RomHdr->Signature != PCI_EXPANSION_ROM_HEADER_SIGNATURE) {\r
-    Error(NULL, 0, 2000, "Invalid parameter", "ROM image file has invalid ROM signature");\r
+    Error (NULL, 0, 2000, "Invalid parameter", "ROM image file has an invalid ROM signature.");\r
     Status = STATUS_ERROR;\r
     goto BailOut;\r
   }\r
@@ -314,7 +314,7 @@ Returns:
   // Then check it for valid signature.\r
   //\r
   if ((RomHdr->PcirOffset > FileSize) || (RomHdr->PcirOffset == 0)) {\r
-    Error(NULL, 0, 2000, "Invalid parameter", "Invalid PCI data structure offset");\r
+    Error (NULL, 0, 2000, "Invalid parameter", "Invalid PCI data structure offset.");\r
     Status = STATUS_ERROR;\r
     goto BailOut;\r
   }\r
@@ -325,7 +325,7 @@ Returns:
   if (mOptions.Pci23 == 1) {\r
   PciDs23 = (PCI_DATA_STRUCTURE *) (Buffer + RomHdr->PcirOffset);\r
   if (PciDs23->Signature != PCI_DATA_STRUCTURE_SIGNATURE) {\r
-    Error(NULL, 0, 2000, "Invalid parameter", "PCI data structure has invalid signature");\r
+    Error (NULL, 0, 2000, "Invalid parameter", "PCI data structure has an invalid signature.");\r
     Status = STATUS_ERROR;\r
     goto BailOut;\r
   }\r
@@ -335,7 +335,7 @@ Returns:
     //\r
     PciDs30 = (PCI_3_0_DATA_STRUCTURE *)(Buffer + RomHdr->PcirOffset);\r
   if (PciDs30->Signature != PCI_DATA_STRUCTURE_SIGNATURE) {\r
-    Error(NULL, 0, 2000, "Invalid parameter", "PCI data structure has invalid signature");\r
+    Error (NULL, 0, 2000, "Invalid parameter", "PCI data structure has an invalid signature.");\r
     Status = STATUS_ERROR;\r
     goto BailOut;\r
   }    \r
@@ -374,7 +374,7 @@ Returns:
   // Now copy the input file contents out to the output file\r
   //\r
   if (fwrite (Buffer, FileSize, 1, OutFptr) != 1) {\r
-    Error(NULL, 0, 0005, "Failed to write all file bytes to output file");\r
+    Error (NULL, 0, 0005, "Failed to write all file bytes to output file.");\r
     Status = STATUS_ERROR;\r
     goto BailOut;\r
   }\r
@@ -400,7 +400,7 @@ BailOut:
   // Print the file name if errors occurred\r
   //\r
   if (Status != STATUS_SUCCESS) {\r
-    Error(NULL, 0, 0003, "Error parsing file: %s", InFile->FileName);\r
+    Error (NULL, 0, 0003, "Error parsing file: %s", InFile->FileName);\r
   }\r
 \r
   return Status;\r
@@ -455,7 +455,7 @@ Returns:
   // Try to open the input file\r
   //\r
   if ((InFptr = fopen (InFile->FileName, "rb")) == NULL) {\r
-    Error(NULL, 0, 0001, "Error opening file: %s", InFile->FileName);\r
+    Error (NULL, 0, 0001, "Error opening file: %s", InFile->FileName);\r
     return STATUS_ERROR;\r
   }\r
   //\r
@@ -497,14 +497,14 @@ Returns:
   //\r
   Buffer = (INT8 *) malloc (FileSize);\r
   if (Buffer == NULL) {\r
-    Error (NULL, 0, 4001, "Resouce", "memory cannot be allocated");\r
+    Error (NULL, 0, 4001, "Resource", "memory cannot be allocated!");\r
     Status = STATUS_ERROR;\r
     goto BailOut;\r
   }\r
 \r
   fseek (InFptr, 0, SEEK_SET);\r
   if (fread (Buffer, FileSize, 1, InFptr) != 1) {\r
-    Error(NULL, 0, 0004, "Error reading file", InFptr);\r
+    Error (NULL, 0, 0004, "Error reading file", InFptr);\r
     Status = STATUS_ERROR;\r
     goto BailOut;\r
   }\r
@@ -519,7 +519,7 @@ Returns:
     //\r
     CompressedBuffer = (INT8 *) malloc (FileSize);\r
     if (CompressedBuffer == NULL) {\r
-      Error (NULL, 0, 4001, "Resouce", "memory cannot be allocated");\r
+      Error (NULL, 0, 4001, "Resource", "memory cannot be allocated!");\r
       Status = STATUS_ERROR;\r
       goto BailOut;\r
     }\r
@@ -527,7 +527,7 @@ Returns:
     CompressedFileSize  = FileSize;\r
     Status              = EfiCompress (Buffer, FileSize, CompressedBuffer, &CompressedFileSize);\r
     if (Status != STATUS_SUCCESS) {\r
-      Error(NULL, 0, 0007, "Error compressing file");\r
+      Error (NULL, 0, 0007, "Error compressing file!");\r
       goto BailOut;\r
     }\r
     //\r
@@ -555,7 +555,7 @@ Returns:
   // Check size\r
   //\r
   if (TotalSize > MAX_OPTION_ROM_SIZE) {\r
-    Error(NULL, 0, 2000, "Option ROM image %s size exceeds limit 0x%X bytes", InFile->FileName, MAX_OPTION_ROM_SIZE);  \r
+    Error (NULL, 0, 2000, "Option ROM image %s size exceeds limit of 0x%X bytes.", InFile->FileName, MAX_OPTION_ROM_SIZE);     \r
     Status = STATUS_ERROR;\r
     goto BailOut;\r
   }\r
@@ -646,7 +646,7 @@ Returns:
   // Write the ROM header to the output file\r
   //\r
   if (fwrite (&RomHdr, sizeof (RomHdr), 1, OutFptr) != 1) {\r
-    Error(NULL, 0, 0002, "Failed to write ROM header to output file");\r
+    Error (NULL, 0, 0002, "Failed to write ROM header to output file!");\r
     Status = STATUS_ERROR;\r
     goto BailOut;\r
   }\r
@@ -656,7 +656,7 @@ Returns:
   //\r
   while (HeaderPadBytes > 0) {\r
     if (putc (0, OutFptr) == EOF) {\r
-      Error(NULL, 0, 0002, "Failed to write ROM header pad bytes to output file");\r
+      Error (NULL, 0, 0002, "Failed to write ROM header pad bytes to output file!");\r
       Status = STATUS_ERROR;\r
       goto BailOut;\r
     }\r
@@ -668,13 +668,13 @@ Returns:
   //\r
   if (mOptions.Pci23 == 1) {\r
   if (fwrite (&PciDs23, sizeof (PciDs23), 1, OutFptr) != 1) {\r
-    Error(NULL, 0, 0002, "Failed to write PCI ROM header to output file");\r
+    Error (NULL, 0, 0002, "Failed to write PCI ROM header to output file!");\r
     Status = STATUS_ERROR;\r
     goto BailOut;\r
   } \r
   } else {\r
   if (fwrite (&PciDs30, sizeof (PciDs30), 1, OutFptr) != 1) {\r
-    Error(NULL, 0, 0002, "Failed to write PCI ROM header to output file");\r
+    Error (NULL, 0, 0002, "Failed to write PCI ROM header to output file!");\r
     Status = STATUS_ERROR;\r
     goto BailOut;\r
   } \r
@@ -688,7 +688,7 @@ Returns:
   // Now dump the input file's contents to the output file\r
   //\r
   if (fwrite (Buffer, FileSize, 1, OutFptr) != 1) {\r
-    Error(NULL, 0, 0002, "Failed to write all file bytes to output file");\r
+    Error (NULL, 0, 0002, "Failed to write all file bytes to output file!");\r
     Status = STATUS_ERROR;\r
     goto BailOut;\r
   }\r
@@ -699,7 +699,7 @@ Returns:
   //\r
   while (TotalSize > 0) {\r
     if (putc (~0, OutFptr) == EOF) {\r
-      Error(NULL, 0, 2000, "Failed to write trailing pad bytes output file");\r
+      Error (NULL, 0, 2000, "Failed to write trailing pad bytes output file!");\r
       Status = STATUS_ERROR;\r
       goto BailOut;\r
     }\r
@@ -726,7 +726,7 @@ BailOut:
   // Print the file name if errors occurred\r
   //\r
   if (Status != STATUS_SUCCESS) {\r
-    Error(NULL, 0 , 0003, "Error parsing file: %s", InFile->FileName);\r
+    Error (NULL, 0, 0003, "Error parsing file: %s", InFile->FileName);\r
   }\r
 \r
   return Status;\r
@@ -773,14 +773,14 @@ Returns:
   // Read the DOS header\r
   //\r
   if (fread (&DosHeader, sizeof (DosHeader), 1, Fptr) != 1) {\r
-    Error(NULL, 0, 0004, "Failed to read the DOS stub from the input file");\r
+    Error (NULL, 0, 0004, "Failed to read the DOS stub from the input file!");\r
     return STATUS_ERROR;\r
   }\r
   //\r
   // Check the magic number (0x5A4D)\r
   //\r
   if (DosHeader.e_magic != EFI_IMAGE_DOS_SIGNATURE) {\r
-    Error(NULL, 0, 2000, "Invalid parameter", "Input file does not appear to be a PE32 image (magic number)");\r
+    Error (NULL, 0, 2000, "Invalid parameter", "Input file does not appear to be a PE32 image (magic number)!");\r
     return STATUS_ERROR;\r
   }\r
   //\r
@@ -788,21 +788,21 @@ Returns:
   //\r
   fseek (Fptr, (long) DosHeader.e_lfanew, SEEK_SET);\r
   if (fread (&PESig, sizeof (PESig), 1, Fptr) != 1) {\r
-    Error(NULL, 0, 0004, "Failed to read PE signature bytes from input file");\r
+    Error (NULL, 0, 0004, "Failed to read PE signature bytes from input file!");\r
     return STATUS_ERROR;\r
   }\r
   //\r
   // Check the PE signature in the header "PE\0\0"\r
   //\r
   if (PESig != EFI_IMAGE_NT_SIGNATURE) {\r
-    Error(NULL, 0, 2000, "Invalid parameter", "Input file does not appear to be a PE32 image (signature)");\r
+    Error (NULL, 0, 2000, "Invalid parameter", "Input file does not appear to be a PE32 image (signature)!");\r
     return STATUS_ERROR;\r
   }\r
   //\r
   // Read the file header and stuff their MachineType\r
   //\r
   if (fread (&FileHdr, sizeof (FileHdr), 1, Fptr) != 1) {\r
-    Error(NULL, 0, 0004, "Failed to read PE file header from input file");\r
+    Error (NULL, 0, 0004, "Failed to read PE file header from input file!");\r
     return STATUS_ERROR;\r
   }\r
 \r
@@ -812,7 +812,7 @@ Returns:
   // Read the optional header so we can get the subsystem\r
   //\r
   if (fread (&OptionalHdr, sizeof (OptionalHdr), 1, Fptr) != 1) {\r
-    Error(NULL, 0, 0004, "Failed to read COFF optional header from input file");\r
+    Error (NULL, 0, 0004, "Failed to read COFF optional header from input file!");\r
     return STATUS_ERROR;\r
   }\r
 \r
@@ -922,7 +922,7 @@ Returns:
           Options->VendId       = (UINT16) strtol (Argv[1], NULL, 16);\r
           Options->VendIdValid  = 1;\r
         } else {\r
-               Error (NULL, 0, 2000, "Invalid parameter", "Missing Vendor ID with %s", Argv[0]);\r
+               Error (NULL, 0, 2000, "Invalid parameter", "Missing Vendor ID with %s!", Argv[0]);\r
           Usage ();\r
           return STATUS_ERROR;\r
         }\r
@@ -939,7 +939,7 @@ Returns:
           Options->DevId      = (UINT16) strtol (Argv[1], NULL, 16);\r
           Options->DevIdValid = 1;\r
         } else {\r
-          Error (NULL, 0, 2000, "Invalid parameter", "Missing Device ID with %s", Argv[0]);\r
+          Error (NULL, 0, 2000, "Invalid parameter", "Missing Device ID with %s!", Argv[0]);\r
           Usage ();\r
           return STATUS_ERROR;\r
         }\r
@@ -954,7 +954,7 @@ Returns:
         if (Argc > 1) {\r
           strcpy (Options->OutFileName, Argv[1]);\r
         } else {\r
-          Error (NULL, 0, 2000, "Invalid parameter", "Missing output file name with %s", Argv[0]);\r
+          Error (NULL, 0, 2000, "Invalid parameter", "Missing output file name with %s!", Argv[0]);\r
           Usage ();\r
           return STATUS_ERROR;\r
         }\r
@@ -994,7 +994,7 @@ Returns:
         Argv++;\r
         Status = AsciiStringToUint64(Argv[0], FALSE, &DebugLevel);\r
         if (DebugLevel > 9 || DebugLevel < 0) {\r
-          Error(NULL, 0, 2000, "Invalid parameter", "Unrecognized parameter %s\n", Argv[0]);\r
+          Error (NULL, 0, 2000, "Invalid parameter", "Unrecognized parameter %s\n", Argv[0]);\r
           return 1;\r
         }\r
         if (DebugLevel>=5 && DebugLevel<=9) {\r
@@ -1029,11 +1029,11 @@ Returns:
           //\r
           ClassCode = (UINT32) strtol (Argv[1], NULL, 16);\r
           if (ClassCode & 0xFF000000) {\r
-            Error (NULL, 0, 2000, "Invalid parameter", "Class code %s out of range", Argv[1]);\r
+            Error (NULL, 0, 2000, "Invalid parameter", "Class code %s out of range!", Argv[1]);\r
             return STATUS_ERROR;\r
           }\r
         } else {\r
-               Error (NULL, 0, 2000, "Invalid parameter", "Missing class code value with %s", Argv[0]);\r
+               Error (NULL, 0, 2000, "Invalid parameter", "Missing class code value with %s!", Argv[0]);\r
           Usage ();\r
           return STATUS_ERROR;\r
         }\r
@@ -1054,11 +1054,11 @@ Returns:
           //\r
           CodeRevision = (UINT32) strtol (Argv[1], NULL, 16);\r
           if (CodeRevision & 0xFFFF0000) {\r
-            Error (NULL, 0, 2000, "Invalid parameter", "Code revision %s out of range", Argv[1]);\r
+            Error (NULL, 0, 2000, "Invalid parameter", "Code revision %s out of range!", Argv[1]);\r
             return STATUS_ERROR;\r
           }\r
         } else {\r
-               Error (NULL, 0, 2000, "Invalid parameter", "Missing code revision value with %s", Argv[0]);\r
+               Error (NULL, 0, 2000, "Invalid parameter", "Missing code revision value with %s!", Argv[0]);\r
           Usage ();\r
           return STATUS_ERROR;\r
         }\r
@@ -1081,7 +1081,7 @@ Returns:
       // -e or -b already.\r
       //\r
       if ((FileFlags & (FILE_FLAG_BINARY | FILE_FLAG_EFI)) == 0) {\r
-        Error (NULL, 0, 2000, "Invalid parameter", "Missing -e or -b with input file %s", Argv[0]);\r
+        Error (NULL, 0, 2000, "Invalid parameter", "Missing -e or -b with input file %s!", Argv[0]);\r
         return STATUS_ERROR;\r
       }\r
       //\r
@@ -1089,7 +1089,7 @@ Returns:
       //\r
       FileList = (FILE_LIST *) malloc (sizeof (FILE_LIST));\r
       if (FileList == NULL) {\r
-        Error (NULL, 0, 4001, "Resource", "memory cannot be allcoated");\r
+        Error (NULL, 0, 4001, "Resource", "memory cannot be allocated!");\r
         return STATUS_ERROR;\r
       }\r
 \r
@@ -1119,7 +1119,7 @@ Returns:
   // Must have specified some files\r
   //\r
   if (Options->FileList == NULL) {\r
-    Error (NULL, 0, 2000, "Invalid parameter", "Missing input file name");\r
+    Error (NULL, 0, 2000, "Invalid parameter", "Missing input file name!");\r
     Usage ();\r
     return STATUS_ERROR;\r
   }  \r
@@ -1135,13 +1135,13 @@ Returns:
   //\r
 /*  \r
   if (!Options->VendIdValid) {\r
-    Error(NULL, 0, 2000, "Missing Vendor ID in command line");\r
+    Error (NULL, 0, 2000, "Missing Vendor ID in command line");\r
     Usage ();\r
     return STATUS_ERROR;\r
   }\r
 \r
   if (!Options->DevIdValid) {\r
-    Error(NULL, 0, 2000, "Missing Device ID in command line");\r
+    Error (NULL, 0, 2000, "Missing Device ID in command line");\r
     Usage ();\r
     return STATUS_ERROR;\r
   }\r
@@ -1294,7 +1294,7 @@ Returns:
     //\r
     if (fread (&PciRomHdr, sizeof (PciRomHdr), 1, InFptr) != 1) {\r
       if (ImageStart == 0) {\r
-      Error (NULL, 0, 3001, "Not supported", "Failed to read PCI ROM header from file");\r
+      Error (NULL, 0, 3001, "Not supported", "Failed to read PCI ROM header from file!");\r
       goto BailOut;\r
       }\r
       else\r
@@ -1312,7 +1312,7 @@ Returns:
     // Find PCI data structure\r
     //\r
     if (fseek (InFptr, ImageStart + PciRomHdr.PcirOffset, SEEK_SET)) {\r
-      Error (NULL, 0, 3001, "Not supported", "Failed to seek to PCI data structure");\r
+      Error (NULL, 0, 3001, "Not supported", "Failed to seek to PCI data structure!");\r
       goto BailOut;\r
     }\r
     //\r
@@ -1320,12 +1320,12 @@ Returns:
     //\r
     if (mOptions.Pci23 == 1) {\r
     if (fread (&PciDs23, sizeof (PciDs23), 1, InFptr) != 1) {\r
-      Error (NULL, 0, 3001, "Not supported", "Failed to read PCI data structure from file %s", InFile->FileName);\r
+      Error (NULL, 0, 3001, "Not supported", "Failed to read PCI data structure from file %s!", InFile->FileName);\r
       goto BailOut;\r
     }\r
     } else {\r
     if (fread (&PciDs30, sizeof (PciDs30), 1, InFptr) != 1) {\r
-      Error (NULL, 0, 3001, "Not supported", "Failed to read PCI data structure from file %s", InFile->FileName);\r
+      Error (NULL, 0, 3001, "Not supported", "Failed to read PCI data structure from file %s!", InFile->FileName);\r
       goto BailOut;\r
     }\r
     }\r
@@ -1404,12 +1404,12 @@ Returns:
       //\r
       fprintf (stdout, "  EFI ROM header contents\n");\r
       if (fseek (InFptr, ImageStart, SEEK_SET)) {\r
-        Error(NULL, 0, 5001, "Failed to re-seek to ROM header structure");\r
+        Error (NULL, 0, 5001, "Failed to re-seek to ROM header structure!");\r
         goto BailOut;\r
       }\r
 \r
       if (fread (&EfiRomHdr, sizeof (EfiRomHdr), 1, InFptr) != 1) {\r
-        Error(NULL, 0, 5001, "Failed to read EFI PCI ROM header from file");\r
+        Error (NULL, 0, 5001, "Failed to read EFI PCI ROM header from file!");\r
         goto BailOut;\r
       }\r
       //\r
@@ -1468,12 +1468,12 @@ Returns:
     //\r
     if (mOptions.Pci23 == 1) {\r
     if (fseek (InFptr, ImageStart + (PciDs23.ImageLength * 512), SEEK_SET)) {\r
-      Error (NULL, 0, 3001, "Not supported", "Failed to seek to next image");\r
+      Error (NULL, 0, 3001, "Not supported", "Failed to seek to next image!");\r
       goto BailOut;\r
     }    \r
     } else {\r
     if (fseek (InFptr, ImageStart + (PciDs30.ImageLength * 512), SEEK_SET)) {\r
-      Error (NULL, 0, 3001, "Not supported", "Failed to seek to next image");\r
+      Error (NULL, 0, 3001, "Not supported", "Failed to seek to next image!");\r
       goto BailOut;\r
     }\r
     }\r