You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ki...@apache.org on 2019/12/27 23:00:20 UTC

svn commit: r1872041 [11/23] - in /poi/trunk/src: excelant/testcases/org/apache/poi/ss/examples/formula/ excelant/testcases/org/apache/poi/ss/excelant/ excelant/testcases/org/apache/poi/ss/excelant/util/ java/org/apache/poi/hssf/record/aggregates/ java...

Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecord.java?rev=1872041&r1=1872040&r2=1872041&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecord.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecord.java Fri Dec 27 23:00:13 2019
@@ -20,7 +20,6 @@ package org.apache.poi.hssf.record;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.io.BufferedReader;
@@ -36,40 +35,33 @@ import org.apache.poi.hssf.HSSFTestDataS
 import org.apache.poi.hssf.record.common.UnicodeString;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.poifs.storage.RawDataUtil;
 import org.apache.poi.util.HexRead;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.LocaleUtil;
 import org.junit.Test;
 
-import junit.framework.AssertionFailedError;
-
-/**
- * @author Marc Johnson (mjohnson at apache dot org)
- * @author Glen Stampoultzis (glens at apache.org)
- */
 public final class TestSSTRecord {
 
     /**
      * decodes hexdump files and concatenates the results
      * @param hexDumpFileNames names of sample files in the hssf test data directory
-     * @throws IOException 
      */
     private static byte[] concatHexDumps(String... hexDumpFileNames) throws IOException {
         int nFiles = hexDumpFileNames.length;
         ByteArrayOutputStream baos = new ByteArrayOutputStream(nFiles * 8228);
-        for (int i = 0; i < nFiles; i++) {
-            String sampleFileName = hexDumpFileNames[i];
-            InputStream is = HSSFTestDataSamples.openSampleFileStream(sampleFileName);
-            BufferedReader br = new BufferedReader(new InputStreamReader(is, LocaleUtil.CHARSET_1252));
-
-            while (true) {
-                String line = br.readLine();
-                if (line == null) {
-                    break;
+        for (String sampleFileName : hexDumpFileNames) {
+            try (InputStream is = HSSFTestDataSamples.openSampleFileStream(sampleFileName)) {
+                BufferedReader br = new BufferedReader(new InputStreamReader(is, LocaleUtil.CHARSET_1252));
+
+                while (true) {
+                    String line = br.readLine();
+                    if (line == null) {
+                        break;
+                    }
+                    baos.write(HexRead.readFromString(line));
                 }
-                baos.write(HexRead.readFromString(line));
             }
-            is.close();
         }
 
         return baos.toByteArray();
@@ -89,7 +81,6 @@ public final class TestSSTRecord {
 
     /**
      * SST is often split over several {@link ContinueRecord}s
-     * @throws IOException 
      */
     @Test
     public void testContinuedRecord() throws IOException {
@@ -120,9 +111,8 @@ public final class TestSSTRecord {
 //        }
 
         SSTRecord rec2 = createSSTFromRawData(ser_output);
-        if (!areSameSSTs(record, rec2)) {
-            throw new AssertionFailedError("large SST re-serialized incorrectly");
-        }
+        assertRecordEquals(record, rec2);
+
 //        if (false) {
 //            // TODO - trivial differences in ContinueRecord break locations
 //            // Sample data should be checked against what most recent Excel version produces.
@@ -131,27 +121,8 @@ public final class TestSSTRecord {
 //        }
     }
 
-    private boolean areSameSSTs(SSTRecord a, SSTRecord b) {
-
-        if (a.getNumStrings() != b.getNumStrings()) {
-            return false;
-        }
-        int nElems = a.getNumUniqueStrings();
-        if (nElems != b.getNumUniqueStrings()) {
-            return false;
-        }
-        for(int i=0; i<nElems; i++) {
-            if (!a.getString(i).equals(b.getString(i))) {
-                return false;
-            }
-        }
-        return true;
-    }
-
     /**
      * Test capability of handling mondo big strings
-     *
-     * @exception IOException
      */
     @Test
     public void testHugeStrings() {
@@ -326,18 +297,13 @@ public final class TestSSTRecord {
         assertEquals( 0, record.getNumUniqueStrings() );
         assertEquals( 0, record.countStrings() );
         byte[] output = record.serialize();
-        byte[] expected =
-                {
-                    (byte) record.getSid(), (byte) ( record.getSid() >> 8 ),
-                    (byte) 8, (byte) 0, (byte) 0, (byte) 0, (byte) 0,
-                    (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0
-                };
+        byte[] expected = {
+            (byte) record.getSid(), (byte) ( record.getSid() >> 8 ),
+            (byte) 8, (byte) 0, (byte) 0, (byte) 0, (byte) 0,
+            (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0
+        };
 
-        assertEquals( expected.length, output.length );
-        for ( int k = 0; k < expected.length; k++ )
-        {
-            assertEquals( String.valueOf( k ), expected[k], output[k] );
-        }
+        assertArrayEquals(expected, output);
     }
 
     /**
@@ -345,1117 +311,28 @@ public final class TestSSTRecord {
      */
     @Test
     public void testReadWriteDuplicatedRichText1() throws Exception {
-        HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("duprich1.xls");
-        HSSFSheet sheet = wb.getSheetAt( 1 );
-        assertEquals( "01/05 (Wed)", sheet.getRow( 0 ).getCell(8 ).getStringCellValue() );
-        assertEquals( "01/05 (Wed)", sheet.getRow( 1 ).getCell(8 ).getStringCellValue() );
-
-        HSSFTestDataSamples.writeOutAndReadBack(wb).close();
-        
-        wb.close();
-
-        // test the second file.
-        wb = HSSFTestDataSamples.openSampleWorkbook("duprich2.xls");
-        sheet = wb.getSheetAt( 0 );
-        int row = 0;
-        assertEquals( "Testing", sheet.getRow( row++ ).getCell(0 ).getStringCellValue() );
-        assertEquals( "rich", sheet.getRow( row++ ).getCell(0 ).getStringCellValue() );
-        assertEquals( "text", sheet.getRow( row++ ).getCell(0 ).getStringCellValue() );
-        assertEquals( "strings", sheet.getRow( row++ ).getCell(0 ).getStringCellValue() );
-        assertEquals( "Testing", sheet.getRow( row++ ).getCell(0 ).getStringCellValue() );
-        assertEquals( "Testing", sheet.getRow( row++ ).getCell(0 ).getStringCellValue() );
-
-        HSSFTestDataSamples.writeOutAndReadBack(wb).close();
-        
-        wb.close();
-    }
-
-    /**
-     * hex dump from UnicodeStringFailCase1.xls atatched to Bugzilla 50779
-     */
-    private static final String data_50779_1 =
-            //Offset=0x00000612(1554) recno=71 sid=0x00FC size=0x2020(8224)
-            "      FC 00 20 20 51 00 00 00 51 00 00 00 32 00" +
-            "05 10 00 00 00 42 30 44 30 46 30 48 30 4A 30 4B" +
-            "30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B" +
-            "30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B" +
-            "30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B" +
-            "30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88" +
-            "30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93" +
-            "30 30 00 30 00 30 00 31 00 01 00 0C 00 05 00 35" +
-            "00 00 00 00 00 00 00 4B 30 32 00 01 42 30 44 30" +
-            "46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30" +
-            "55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30" +
-            "66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30" +
-            "72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30" +
-            "82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30" +
-            "8D 30 8F 30 92 30 93 30 30 00 30 00 30 00 32 00" +
-            "32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D" +
-            "30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D" +
-            "30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C" +
-            "30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E" +
-            "30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89" +
-            "30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30" +
-            "00 30 00 30 00 33 00 32 00 01 42 30 44 30 46 30" +
-            "48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30" +
-            "57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30" +
-            "68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30" +
-            "75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30" +
-            "84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30" +
-            "8F 30 92 30 93 30 30 00 30 00 30 00 34 00 32 00" +
-            "01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F" +
-            "30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F" +
-            "30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D" +
-            "30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F" +
-            "30 80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A" +
-            "30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30" +
-            "00 30 00 35 00 32 00 01 42 30 44 30 46 30 48 30" +
-            "4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30" +
-            "59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30" +
-            "6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30" +
-            "78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30" +
-            "86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30" +
-            "92 30 93 30 30 00 30 00 30 00 36 00 32 00 01 42" +
-            "30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51" +
-            "30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61" +
-            "30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E" +
-            "30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80" +
-            "30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B" +
-            "30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 30" +
-            "00 37 00 32 00 01 42 30 44 30 46 30 48 30 4A 30" +
-            "4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30" +
-            "5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30" +
-            "6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30" +
-            "7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30" +
-            "88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30" +
-            "93 30 30 00 30 00 30 00 38 00 32 00 01 42 30 44" +
-            "30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53" +
-            "30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64" +
-            "30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F" +
-            "30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81" +
-            "30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C" +
-            "30 8D 30 8F 30 92 30 93 30 30 00 30 00 30 00 39" +
-            "00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30" +
-            "4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30" +
-            "5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30" +
-            "6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30" +
-            "7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30" +
-            "89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30" +
-            "30 00 30 00 31 00 30 00 32 00 01 42 30 44 30 46" +
-            "30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55" +
-            "30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66" +
-            "30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72" +
-            "30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82" +
-            "30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D" +
-            "30 8F 30 92 30 93 30 30 00 30 00 31 00 31 00 32" +
-            "00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30" +
-            "4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30" +
-            "5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30" +
-            "6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30" +
-            "7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89 30" +
-            "8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00" +
-            "30 00 31 00 32 00 32 00 01 42 30 44 30 46 30 48" +
-            "30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57" +
-            "30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68" +
-            "30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75" +
-            "30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84" +
-            "30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F" +
-            "30 92 30 93 30 30 00 30 00 31 00 33 00 32 00 01" +
-            "42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30" +
-            "51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30" +
-            "61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30" +
-            "6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30" +
-            "80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30" +
-            "8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00" +
-            "31 00 34 00 32 00 01 42 30 44 30 46 30 48 30 4A" +
-            "30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59" +
-            "30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A" +
-            "30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78" +
-            "30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86" +
-            "30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92" +
-            "30 93 30 30 00 30 00 31 00 35 00 32 00 01 42 30" +
-            "44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30" +
-            "53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30" +
-            "64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30" +
-            "6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30" +
-            "81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30" +
-            "8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 31 00" +
-            "36 00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B" +
-            "30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B" +
-            "30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B" +
-            "30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B" +
-            "30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88" +
-            "30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93" +
-            "30 30 00 30 00 31 00 37 00 32 00 01 42 30 44 30" +
-            "46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30" +
-            "55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30" +
-            "66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30" +
-            "72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30" +
-            "82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30" +
-            "8D 30 8F 30 92 30 93 30 30 00 30 00 31 00 38 00" +
-            "32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D" +
-            "30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D" +
-            "30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C" +
-            "30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E" +
-            "30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89" +
-            "30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30" +
-            "00 30 00 31 00 39 00 32 00 01 42 30 44 30 46 30" +
-            "48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30" +
-            "57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30" +
-            "68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30" +
-            "75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30" +
-            "84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30" +
-            "8F 30 92 30 93 30 30 00 30 00 32 00 30 00 32 00" +
-            "01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F" +
-            "30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F" +
-            "30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D" +
-            "30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F" +
-            "30 80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A" +
-            "30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30" +
-            "00 32 00 31 00 32 00 01 42 30 44 30 46 30 48 30" +
-            "4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30" +
-            "59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30" +
-            "6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30" +
-            "78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30" +
-            "86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30" +
-            "92 30 93 30 30 00 30 00 32 00 32 00 32 00 01 42" +
-            "30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51" +
-            "30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61" +
-            "30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E" +
-            "30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80" +
-            "30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B" +
-            "30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 32" +
-            "00 33 00 32 00 01 42 30 44 30 46 30 48 30 4A 30" +
-            "4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30" +
-            "5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30" +
-            "6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30" +
-            "7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30" +
-            "88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30" +
-            "93 30 30 00 30 00 32 00 34 00 32 00 01 42 30 44" +
-            "30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53" +
-            "30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64" +
-            "30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F" +
-            "30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81" +
-            "30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C" +
-            "30 8D 30 8F 30 92 30 93 30 30 00 30 00 32 00 35" +
-            "00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30" +
-            "4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30" +
-            "5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30" +
-            "6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30" +
-            "7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30" +
-            "89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30" +
-            "30 00 30 00 32 00 36 00 32 00 01 42 30 44 30 46" +
-            "30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55" +
-            "30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66" +
-            "30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72" +
-            "30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82" +
-            "30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D" +
-            "30 8F 30 92 30 93 30 30 00 30 00 32 00 37 00 32" +
-            "00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30" +
-            "4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30" +
-            "5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30" +
-            "6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30" +
-            "7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89 30" +
-            "8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00" +
-            "30 00 32 00 38 00 32 00 01 42 30 44 30 46 30 48" +
-            "30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57" +
-            "30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68" +
-            "30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75" +
-            "30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84" +
-            "30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F" +
-            "30 92 30 93 30 30 00 30 00 32 00 39 00 32 00 01" +
-            "42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30" +
-            "51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30" +
-            "61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30" +
-            "6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30" +
-            "80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30" +
-            "8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00" +
-            "33 00 30 00 32 00 01 42 30 44 30 46 30 48 30 4A" +
-            "30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59" +
-            "30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A" +
-            "30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78" +
-            "30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86" +
-            "30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92" +
-            "30 93 30 30 00 30 00 33 00 31 00 32 00 01 42 30" +
-            "44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30" +
-            "53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30" +
-            "64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30" +
-            "6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30" +
-            "81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30" +
-            "8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 33 00" +
-            "32 00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B" +
-            "30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B" +
-            "30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B" +
-            "30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B" +
-            "30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88" +
-            "30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93" +
-            "30 30 00 30 00 33 00 33 00 32 00 01 42 30 44 30" +
-            "46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30" +
-            "55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30" +
-            "66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30" +
-            "72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30" +
-            "82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30" +
-            "8D 30 8F 30 92 30 93 30 30 00 30 00 33 00 34 00" +
-            "32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D" +
-            "30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D" +
-            "30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C" +
-            "30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E" +
-            "30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89" +
-            "30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30" +
-            "00 30 00 33 00 35 00 32 00 01 42 30 44 30 46 30" +
-            "48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30" +
-            "57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30" +
-            "68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30" +
-            "75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30" +
-            "84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30" +
-            "8F 30 92 30 93 30 30 00 30 00 33 00 36 00 32 00" +
-            "01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F" +
-            "30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F" +
-            "30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D" +
-            "30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F" +
-            "30 80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A" +
-            "30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30" +
-            "00 33 00 37 00 32 00 01 42 30 44 30 46 30 48 30" +
-            "4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30" +
-            "59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30" +
-            "6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30" +
-            "78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30" +
-            "86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30" +
-            "92 30 93 30 30 00 30 00 33 00 38 00 32 00 01 42" +
-            "30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51" +
-            "30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61" +
-            "30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E" +
-            "30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80" +
-            "30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B" +
-            "30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 33" +
-            "00 39 00 32 00 01 42 30 44 30 46 30 48 30 4A 30" +
-            "4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30" +
-            "5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30" +
-            "6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30" +
-            "7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30" +
-            "88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30" +
-            "93 30 30 00 30 00 34 00 30 00 32 00 01 42 30 44" +
-            "30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53" +
-            "30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64" +
-            "30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F" +
-            "30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81" +
-            "30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C" +
-            "30 8D 30 8F 30 92 30 93 30 30 00 30 00 34 00 31" +
-            "00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30" +
-            "4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30" +
-            "5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30" +
-            "6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30" +
-            "7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30" +
-            "89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30" +
-            "30 00 30 00 34 00 32 00 32 00 01 42 30 44 30 46" +
-            "30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55" +
-            "30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66" +
-            "30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72" +
-            "30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82" +
-            "30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D" +
-            "30 8F 30 92 30 93 30 30 00 30 00 34 00 33 00 32" +
-            "00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30" +
-            "4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30" +
-            "5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30" +
-            "6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30" +
-            "7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89 30" +
-            "8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00" +
-            "30 00 34 00 34 00 32 00 01 42 30 44 30 46 30 48" +
-            "30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57" +
-            "30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68" +
-            "30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75" +
-            "30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84" +
-            "30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F" +
-            "30 92 30 93 30 30 00 30 00 34 00 35 00 32 00 01" +
-            "42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30" +
-            "51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30" +
-            "61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30" +
-            "6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30" +
-            "80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30" +
-            "8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00" +
-            "34 00 36 00 32 00 01 42 30 44 30 46 30 48 30 4A" +
-            "30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59" +
-            "30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A" +
-            "30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78" +
-            "30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86" +
-            "30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92" +
-            "30 93 30 30 00 30 00 34 00 37 00 32 00 01 42 30" +
-            "44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30" +
-            "53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30" +
-            "64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30" +
-            "6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30" +
-            "81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30" +
-            "8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 34 00" +
-            "38 00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B" +
-            "30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B" +
-            "30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B" +
-            "30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B" +
-            "30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88" +
-            "30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93" +
-            "30 30 00 30 00 34 00 39 00 32 00 01 42 30 44 30" +
-            "46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30" +
-            "55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30" +
-            "66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30" +
-            "72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30" +
-            "82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30" +
-            "8D 30 8F 30 92 30 93 30 30 00 30 00 35 00 30 00" +
-            "32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D" +
-            "30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D" +
-            "30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C" +
-            "30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E" +
-            "30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89" +
-            "30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30" +
-            "00 30 00 35 00 31 00 32 00 01 42 30 44 30 46 30" +
-            "48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30" +
-            "57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30" +
-            "68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30" +
-            "75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30" +
-            "84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30" +
-            "8F 30 92 30 93 30 30 00 30 00 35 00 32 00 32 00" +
-            "01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F" +
-            "30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F" +
-            "30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D" +
-            "30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F" +
-            "30 80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A" +
-            "30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30" +
-            "00 35 00 33 00 32 00 01 42 30 44 30 46 30 48 30" +
-            "4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30" +
-            "59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30" +
-            "6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30" +
-            "78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30" +
-            "86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30" +
-            "92 30 93 30 30 00 30 00 35 00 34 00 32 00 01 42" +
-            "30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51" +
-            "30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61" +
-            "30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E" +
-            "30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80" +
-            "30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B" +
-            "30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 35" +
-            "00 35 00 32 00 01 42 30 44 30 46 30 48 30 4A 30" +
-            "4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30" +
-            "5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30" +
-            "6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30" +
-            "7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30" +
-            "88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30" +
-            "93 30 30 00 30 00 35 00 36 00 32 00 01 42 30 44" +
-            "30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53" +
-            "30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64" +
-            "30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F" +
-            "30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81" +
-            "30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C" +
-            "30 8D 30 8F 30 92 30 93 30 30 00 30 00 35 00 37" +
-            "00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30" +
-            "4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30" +
-            "5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30" +
-            "6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30" +
-            "7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30" +
-            "89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30" +
-            "30 00 30 00 35 00 38 00 32 00 01 42 30 44 30 46" +
-            "30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55" +
-            "30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66" +
-            "30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72" +
-            "30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82" +
-            "30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D" +
-            "30 8F 30 92 30 93 30 30 00 30 00 35 00 39 00 32" +
-            "00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30" +
-            "4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30" +
-            "5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30" +
-            "6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30" +
-            "7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89 30" +
-            "8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00" +
-            "30 00 36 00 30 00 32 00 01 42 30 44 30 46 30 48" +
-            "30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57" +
-            "30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68" +
-            "30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75" +
-            "30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84" +
-            "30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F" +
-            "30 92 30 93 30 30 00 30 00 36 00 31 00 32 00 01" +
-            "42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30" +
-            "51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30" +
-            "61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30" +
-            "6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30" +
-            "80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30" +
-            "8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00" +
-            "36 00 32 00 32 00 01 42 30 44 30 46 30 48 30 4A" +
-            "30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59" +
-            "30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A" +
-            "30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78" +
-            "30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86" +
-            "30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92" +
-            "30 93 30 30 00 30 00 36 00 33 00 32 00 01 42 30" +
-            "44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30" +
-            "53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30" +
-            "64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30" +
-            "6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30" +
-            "81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30" +
-            "8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 36 00" +
-            "34 00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B" +
-            "30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B" +
-            "30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B" +
-            "30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B" +
-            "30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88" +
-            "30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93" +
-            "30 30 00 30 00 36 00 35 00 32 00 01 42 30 44 30" +
-            "46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30" +
-            "55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30" +
-            "66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30" +
-            "72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30" +
-            "82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30" +
-            "8D 30 8F 30 92 30 93 30 30 00 30 00 36 00 36 00" +
-            "32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D" +
-            "30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D" +
-            "30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C" +
-            "30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E" +
-            "30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89" +
-            "30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30" +
-            "00 30 00 36 00 37 00 32 00 01 42 30 44 30 46 30" +
-            "48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30" +
-            "57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30" +
-            "68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30" +
-            "75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30" +
-            "84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30" +
-            "8F 30 92 30 93 30 30 00 30 00 36 00 38 00 32 00" +
-            "01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F" +
-            "30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F" +
-            "30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D" +
-            "30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F" +
-            "30 80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A" +
-            "30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30" +
-            "00 36 00 39 00 32 00 01 42 30 44 30 46 30 48 30" +
-            "4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30" +
-            "59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30" +
-            "6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30" +
-            "78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30" +
-            "86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30" +
-            "92 30 93 30 30 00 30 00 37 00 30 00 32 00 01 42" +
-            "30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51" +
-            "30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61" +
-            "30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E" +
-            "30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80" +
-            "30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B" +
-            "30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 37" +
-            "00 31 00 32 00 01 42 30 44 30 46 30 48 30 4A 30" +
-            "4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30" +
-            "5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30" +
-            "6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30" +
-            "7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30" +
-            "88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30" +
-            "93 30 30 00 30 00 37 00 32 00 32 00 01 42 30 44" +
-            "30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53" +
-            "30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64" +
-            "30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F" +
-            "30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81" +
-            "30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C" +
-            "30 8D 30 8F 30 92 30 93 30 30 00 30 00 37 00 33" +
-            "00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30" +
-            "4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30" +
-            "5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30" +
-            "6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30" +
-            "7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30" +
-            "89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30" +
-            "30 00 30 00 37 00 34 00 32 00 01 42 30 44 30 46" +
-            "30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55" +
-            "30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66" +
-            "30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72" +
-            "30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82" +
-            "30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D" +
-            "30 8F 30 92 30 93 30 30 00 30 00 37 00 35 00 32" +
-            "00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30" +
-            "4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30" +
-            "5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30" +
-            "6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30" +
-            "7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89 30" +
-            "8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00" +
-            "30 00 37 00 36 00 32 00 01 42 30 44 30 46 30 48" +
-            "30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57" +
-            "30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68" +
-            "30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75" +
-            "30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84" +
-            "30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F" +
-            "30 92 30 93 30 30 00 30 00 37 00 37 00 32 00 01" +
-            "42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30" +
-            "51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30" +
-            "61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30" +
-            "6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30" +
-            "80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30" +
-            "8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00" +
-            "37 00 38 00 1F 00 05 B8 00 00 00 17 53 77 6D 53" +
-            "90 52 97 EE 68 0C 77 A9 5C 4B 62 0C 77 8F 79 F6" +
-            "5C 0C 77 03 68 28 67 0C 77 FC 57 89 73 0C 77 71" +
-            "67 AC 4E FD 90 43 53 49 84 0C 77 5E 79 48 59 DD" +
-            "5D 0C 77 77 95 CE 91 0C 77 01 00 B4 00 05 00 35" +
-            "00 0A 00 37 00 37 00 DB 30 C3 30 AB 30 A4 30 C9" +
-            "30 A6 30 A2 30 AA 30 E2 30 EA 30 B1 30 F3 30 A4" +
-            "30 EF 30 C6 30 B1 30 F3 30 D5 30 AF 30 B7 30 DE" +
-            "30 B1 30 F3 30 C8 30 C1 30 AE 30 B1 30 F3 30 B5" +
-            "30 A4 30 BF 30 DE 30 B1 30 F3 30 C8 30 A6 30 AD" +
-            "30 E7 30 A6 30 C8                              " +
-
-            // Offset=0x00002636(9782) recno=72 sid=0x003C size=0x0151(337)
-            "                  3C 00 51 01 30 C1 30 D0 30 B1" +
-            "30 F3 30 AB 30 CA 30 AC 30 EF 30 B1 30 F3 30 CA" +
-            "30 AC 30 CE 30 B1 30 F3 30 00 00 00 00 03 00 06" +
-            "00 03 00 03 00 0C 00 06 00 03 00 11 00 09 00 03" +
-            "00 17 00 0C 00 03 00 1C 00 0F 00 03 00 22 00 12" +
-            "00 03 00 28 00 15 00 03 00 2C 00 18 00 04 00 32" +
-            "00 1C 00 03 00 32 00 05 10 00 00 00 42 30 44 30" +
-            "46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30" +
-            "55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30" +
-            "66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30" +
-            "72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30" +
-            "82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30" +
-            "8D 30 8F 30 92 30 93 30 30 00 30 00 37 00 39 00" +
-            "01 00 0C 00 05 00 35 00 00 00 00 00 00 00 00 00" +
-            "32 00 05 10 00 00 00 42 30 44 30 46 30 48 30 4A" +
-            "30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59" +
-            "30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A" +
-            "30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78" +
-            "30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86" +
-            "30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92" +
-            "30 93 30 30 00 30 00 38 00 30 00 01 00 0C 00 05" +
-            "00 35 00 00 00 00 00 00 00 4B 30               ";
-
+        try (HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("duprich1.xls")) {
+            HSSFSheet sheet = wb.getSheetAt(1);
+            assertEquals("01/05 (Wed)", sheet.getRow(0).getCell(8).getStringCellValue());
+            assertEquals("01/05 (Wed)", sheet.getRow(1).getCell(8).getStringCellValue());
+
+            HSSFTestDataSamples.writeOutAndReadBack(wb).close();
+        }
+
+            // test the second file.
+        try (HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("duprich2.xls")) {
+            HSSFSheet sheet = wb.getSheetAt(0);
+            int row = 0;
+            assertEquals("Testing", sheet.getRow(row++).getCell(0).getStringCellValue());
+            assertEquals("rich", sheet.getRow(row++).getCell(0).getStringCellValue());
+            assertEquals("text", sheet.getRow(row++).getCell(0).getStringCellValue());
+            assertEquals("strings", sheet.getRow(row++).getCell(0).getStringCellValue());
+            assertEquals("Testing", sheet.getRow(row++).getCell(0).getStringCellValue());
+            assertEquals("Testing", sheet.getRow(row).getCell(0).getStringCellValue());
 
-    /**
-     * hex dump from UnicodeStringFailCase2.xls atatched to Bugzilla 50779
-     */
-    private static final String data_50779_2 =
-            //"Offset=0x00000612(1554) recno=71 sid=0x00FC size=0x2020(8224)\n" +
-            "      FC 00 20 20 51 00 00 00 51 00 00 00 32 00" +
-            "01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F" +
-            "30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F" +
-            "30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D" +
-            "30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F" +
-            "30 80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A" +
-            "30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30" +
-            "00 30 00 31 00 32 00 01 42 30 44 30 46 30 48 30" +
-            "4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30" +
-            "59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30" +
-            "6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30" +
-            "78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30" +
-            "86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30" +
-            "92 30 93 30 30 00 30 00 30 00 32 00 32 00 01 42" +
-            "30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51" +
-            "30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61" +
-            "30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E" +
-            "30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80" +
-            "30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B" +
-            "30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 30" +
-            "00 33 00 32 00 01 42 30 44 30 46 30 48 30 4A 30" +
-            "4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30" +
-            "5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30" +
-            "6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30" +
-            "7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30" +
-            "88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30" +
-            "93 30 30 00 30 00 30 00 34 00 32 00 01 42 30 44" +
-            "30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53" +
-            "30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64" +
-            "30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F" +
-            "30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81" +
-            "30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C" +
-            "30 8D 30 8F 30 92 30 93 30 30 00 30 00 30 00 35" +
-            "00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30" +
-            "4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30" +
-            "5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30" +
-            "6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30" +
-            "7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30" +
-            "89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30" +
-            "30 00 30 00 30 00 36 00 32 00 01 42 30 44 30 46" +
-            "30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55" +
-            "30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66" +
-            "30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72" +
-            "30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82" +
-            "30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D" +
-            "30 8F 30 92 30 93 30 30 00 30 00 30 00 37 00 32" +
-            "00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30" +
-            "4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30" +
-            "5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30" +
-            "6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30" +
-            "7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89 30" +
-            "8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00" +
-            "30 00 30 00 38 00 32 00 01 42 30 44 30 46 30 48" +
-            "30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57" +
-            "30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68" +
-            "30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75" +
-            "30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84" +
-            "30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F" +
-            "30 92 30 93 30 30 00 30 00 30 00 39 00 32 00 01" +
-            "42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30" +
-            "51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30" +
-            "61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30" +
-            "6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30" +
-            "80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30" +
-            "8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00" +
-            "31 00 30 00 32 00 01 42 30 44 30 46 30 48 30 4A" +
-            "30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59" +
-            "30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A" +
-            "30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78" +
-            "30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86" +
-            "30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92" +
-            "30 93 30 30 00 30 00 31 00 31 00 32 00 01 42 30" +
-            "44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30" +
-            "53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30" +
-            "64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30" +
-            "6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30" +
-            "81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30" +
-            "8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 31 00" +
-            "32 00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B" +
-            "30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B" +
-            "30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B" +
-            "30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B" +
-            "30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88" +
-            "30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93" +
-            "30 30 00 30 00 31 00 33 00 32 00 01 42 30 44 30" +
-            "46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30" +
-            "55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30" +
-            "66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30" +
-            "72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30" +
-            "82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30" +
-            "8D 30 8F 30 92 30 93 30 30 00 30 00 31 00 34 00" +
-            "32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D" +
-            "30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D" +
-            "30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C" +
-            "30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E" +
-            "30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89" +
-            "30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30" +
-            "00 30 00 31 00 35 00 32 00 01 42 30 44 30 46 30" +
-            "48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30" +
-            "57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30" +
-            "68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30" +
-            "75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30" +
-            "84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30" +
-            "8F 30 92 30 93 30 30 00 30 00 31 00 36 00 32 00" +
-            "01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F" +
-            "30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F" +
-            "30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D" +
-            "30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F" +
-            "30 80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A" +
-            "30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30" +
-            "00 31 00 37 00 32 00 01 42 30 44 30 46 30 48 30" +
-            "4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30" +
-            "59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30" +
-            "6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30" +
-            "78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30" +
-            "86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30" +
-            "92 30 93 30 30 00 30 00 31 00 38 00 32 00 01 42" +
-            "30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51" +
-            "30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61" +
-            "30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E" +
-            "30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80" +
-            "30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B" +
-            "30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 31" +
-            "00 39 00 32 00 01 42 30 44 30 46 30 48 30 4A 30" +
-            "4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30" +
-            "5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30" +
-            "6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30" +
-            "7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30" +
-            "88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30" +
-            "93 30 30 00 30 00 32 00 30 00 32 00 01 42 30 44" +
-            "30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53" +
-            "30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64" +
-            "30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F" +
-            "30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81" +
-            "30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C" +
-            "30 8D 30 8F 30 92 30 93 30 30 00 30 00 32 00 31" +
-            "00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30" +
-            "4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30" +
-            "5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30" +
-            "6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30" +
-            "7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30" +
-            "89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30" +
-            "30 00 30 00 32 00 32 00 32 00 01 42 30 44 30 46" +
-            "30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55" +
-            "30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66" +
-            "30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72" +
-            "30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82" +
-            "30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D" +
-            "30 8F 30 92 30 93 30 30 00 30 00 32 00 33 00 32" +
-            "00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30" +
-            "4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30" +
-            "5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30" +
-            "6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30" +
-            "7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89 30" +
-            "8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00" +
-            "30 00 32 00 34 00 32 00 01 42 30 44 30 46 30 48" +
-            "30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57" +
-            "30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68" +
-            "30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75" +
-            "30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84" +
-            "30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F" +
-            "30 92 30 93 30 30 00 30 00 32 00 35 00 32 00 01" +
-            "42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30" +
-            "51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30" +
-            "61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30" +
-            "6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30" +
-            "80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30" +
-            "8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00" +
-            "32 00 36 00 32 00 01 42 30 44 30 46 30 48 30 4A" +
-            "30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59" +
-            "30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A" +
-            "30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78" +
-            "30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86" +
-            "30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92" +
-            "30 93 30 30 00 30 00 32 00 37 00 32 00 01 42 30" +
-            "44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30" +
-            "53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30" +
-            "64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30" +
-            "6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30" +
-            "81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30" +
-            "8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 32 00" +
-            "38 00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B" +
-            "30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B" +
-            "30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B" +
-            "30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B" +
-            "30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88" +
-            "30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93" +
-            "30 30 00 30 00 32 00 39 00 32 00 01 42 30 44 30" +
-            "46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30" +
-            "55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30" +
-            "66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30" +
-            "72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30" +
-            "82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30" +
-            "8D 30 8F 30 92 30 93 30 30 00 30 00 33 00 30 00" +
-            "32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D" +
-            "30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D" +
-            "30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C" +
-            "30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E" +
-            "30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89" +
-            "30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30" +
-            "00 30 00 33 00 31 00 32 00 01 42 30 44 30 46 30" +
-            "48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30" +
-            "57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30" +
-            "68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30" +
-            "75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30" +
-            "84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30" +
-            "8F 30 92 30 93 30 30 00 30 00 33 00 32 00 32 00" +
-            "01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F" +
-            "30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F" +
-            "30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D" +
-            "30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F" +
-            "30 80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A" +
-            "30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30" +
-            "00 33 00 33 00 32 00 01 42 30 44 30 46 30 48 30" +
-            "4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30" +
-            "59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30" +
-            "6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30" +
-            "78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30" +
-            "86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30" +
-            "92 30 93 30 30 00 30 00 33 00 34 00 32 00 01 42" +
-            "30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51" +
-            "30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61" +
-            "30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E" +
-            "30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80" +
-            "30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B" +
-            "30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 33" +
-            "00 35 00 32 00 01 42 30 44 30 46 30 48 30 4A 30" +
-            "4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30" +
-            "5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30" +
-            "6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30" +
-            "7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30" +
-            "88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30" +
-            "93 30 30 00 30 00 33 00 36 00 32 00 01 42 30 44" +
-            "30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53" +
-            "30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64" +
-            "30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F" +
-            "30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81" +
-            "30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C" +
-            "30 8D 30 8F 30 92 30 93 30 30 00 30 00 33 00 37" +
-            "00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30" +
-            "4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30" +
-            "5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30" +
-            "6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30" +
-            "7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30" +
-            "89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30" +
-            "30 00 30 00 33 00 38 00 32 00 01 42 30 44 30 46" +
-            "30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55" +
-            "30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66" +
-            "30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72" +
-            "30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82" +
-            "30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D" +
-            "30 8F 30 92 30 93 30 30 00 30 00 33 00 39 00 32" +
-            "00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30" +
-            "4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30" +
-            "5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30" +
-            "6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30" +
-            "7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89 30" +
-            "8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00" +
-            "30 00 34 00 30 00 32 00 01 42 30 44 30 46 30 48" +
-            "30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57" +
-            "30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68" +
-            "30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75" +
-            "30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84" +
-            "30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F" +
-            "30 92 30 93 30 30 00 30 00 34 00 31 00 32 00 01" +
-            "42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30" +
-            "51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30" +
-            "61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30" +
-            "6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30" +
-            "80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30" +
-            "8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00" +
-            "34 00 32 00 32 00 01 42 30 44 30 46 30 48 30 4A" +
-            "30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59" +
-            "30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A" +
-            "30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78" +
-            "30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86" +
-            "30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92" +
-            "30 93 30 30 00 30 00 34 00 33 00 32 00 01 42 30" +
-            "44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30" +
-            "53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30" +
-            "64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30" +
-            "6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30" +
-            "81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30" +
-            "8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 34 00" +
-            "34 00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B" +
-            "30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B" +
-            "30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B" +
-            "30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B" +
-            "30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88" +
-            "30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93" +
-            "30 30 00 30 00 34 00 35 00 32 00 01 42 30 44 30" +
-            "46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30" +
-            "55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30" +
-            "66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30" +
-            "72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30" +
-            "82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30" +
-            "8D 30 8F 30 92 30 93 30 30 00 30 00 34 00 36 00" +
-            "32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D" +
-            "30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D" +
-            "30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C" +
-            "30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E" +
-            "30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89" +
-            "30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30" +
-            "00 30 00 34 00 37 00 32 00 01 42 30 44 30 46 30" +
-            "48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30" +
-            "57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30" +
-            "68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30" +
-            "75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30" +
-            "84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30" +
-            "8F 30 92 30 93 30 30 00 30 00 34 00 38 00 32 00" +
-            "01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F" +
-            "30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F" +
-            "30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D" +
-            "30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F" +
-            "30 80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A" +
-            "30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30" +
-            "00 34 00 39 00 32 00 01 42 30 44 30 46 30 48 30" +
-            "4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30" +
-            "59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30" +
-            "6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30" +
-            "78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30" +
-            "86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30" +
-            "92 30 93 30 30 00 30 00 35 00 30 00 32 00 01 42" +
-            "30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51" +
-            "30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61" +
-            "30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E" +
-            "30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80" +
-            "30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B" +
-            "30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 35" +
-            "00 31 00 32 00 01 42 30 44 30 46 30 48 30 4A 30" +
-            "4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30" +
-            "5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30" +
-            "6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30" +
-            "7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30" +
-            "88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30" +
-            "93 30 30 00 30 00 35 00 32 00 32 00 01 42 30 44" +
-            "30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53" +
-            "30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64" +
-            "30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F" +
-            "30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81" +
-            "30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C" +
-            "30 8D 30 8F 30 92 30 93 30 30 00 30 00 35 00 33" +
-            "00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30" +
-            "4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30" +
-            "5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30" +
-            "6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30" +
-            "7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30" +
-            "89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30" +
-            "30 00 30 00 35 00 34 00 32 00 01 42 30 44 30 46" +
-            "30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55" +
-            "30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66" +
-            "30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72" +
-            "30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82" +
-            "30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D" +
-            "30 8F 30 92 30 93 30 30 00 30 00 35 00 35 00 32" +
-            "00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30" +
-            "4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30" +
-            "5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30" +
-            "6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30" +
-            "7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89 30" +
-            "8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00" +
-            "30 00 35 00 36 00 32 00 01 42 30 44 30 46 30 48" +
-            "30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57" +
-            "30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68" +
-            "30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75" +
-            "30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84" +
-            "30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F" +
-            "30 92 30 93 30 30 00 30 00 35 00 37 00 32 00 01" +
-            "42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30" +
-            "51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30" +
-            "61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30" +
-            "6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30" +
-            "80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30" +
-            "8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00" +
-            "35 00 38 00 32 00 01 42 30 44 30 46 30 48 30 4A" +
-            "30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59" +
-            "30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A" +
-            "30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78" +
-            "30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86" +
-            "30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92" +
-            "30 93 30 30 00 30 00 35 00 39 00 32 00 01 42 30" +
-            "44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30" +
-            "53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30" +
-            "64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30" +
-            "6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30" +
-            "81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30" +
-            "8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 36 00" +
-            "30 00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B" +
-            "30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B" +
-            "30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B" +
-            "30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B" +
-            "30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88" +
-            "30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93" +
-            "30 30 00 30 00 36 00 31 00 32 00 01 42 30 44 30" +
-            "46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30" +
-            "55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30" +
-            "66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30" +
-            "72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30" +
-            "82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30" +
-            "8D 30 8F 30 92 30 93 30 30 00 30 00 36 00 32 00" +
-            "32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D" +
-            "30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D" +
-            "30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C" +
-            "30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E" +
-            "30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89" +
-            "30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30" +
-            "00 30 00 36 00 33 00 32 00 01 42 30 44 30 46 30" +
-            "48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30" +
-            "57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30" +
-            "68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30" +
-            "75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30" +
-            "84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30" +
-            "8F 30 92 30 93 30 30 00 30 00 36 00 34 00 32 00" +
-            "01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F" +
-            "30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F" +
-            "30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D" +
-            "30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F" +
-            "30 80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A" +
-            "30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30" +
-            "00 36 00 35 00 32 00 01 42 30 44 30 46 30 48 30" +
-            "4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30" +
-            "59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30" +
-            "6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30" +
-            "78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30" +
-            "86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30" +
-            "92 30 93 30 30 00 30 00 36 00 36 00 32 00 01 42" +
-            "30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51" +
-            "30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61" +
-            "30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E" +
-            "30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80" +
-            "30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B" +
-            "30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 36" +
-            "00 37 00 32 00 01 42 30 44 30 46 30 48 30 4A 30" +
-            "4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30" +
-            "5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30" +
-            "6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30" +
-            "7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30" +
-            "88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30" +
-            "93 30 30 00 30 00 36 00 38 00 32 00 01 42 30 44" +
-            "30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53" +
-            "30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64" +
-            "30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F" +
-            "30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81" +
-            "30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C" +
-            "30 8D 30 8F 30 92 30 93 30 30 00 30 00 36 00 39" +
-            "00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30" +
-            "4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30" +
-            "5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30" +
-            "6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30" +
-            "7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30" +
-            "89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30" +
-            "30 00 30 00 37 00 30 00 32 00 01 42 30 44 30 46" +
-            "30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55" +
-            "30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66" +
-            "30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72" +
-            "30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82" +
-            "30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D" +
-            "30 8F 30 92 30 93 30 30 00 30 00 37 00 31 00 32" +
-            "00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30" +
-            "4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30" +
-            "5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30" +
-            "6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30" +
-            "7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89 30" +
-            "8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00" +
-            "30 00 37 00 32 00 32 00 01 42 30 44 30 46 30 48" +
-            "30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57" +
-            "30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68" +
-            "30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75" +
-            "30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84" +
-            "30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F" +
-            "30 92 30 93 30 30 00 30 00 37 00 33 00 32 00 01" +
-            "42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30" +
-            "51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30" +
-            "61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30" +
-            "6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30" +
-            "80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30" +
-            "8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00" +
-            "37 00 34 00 32 00 01 42 30 44 30 46 30 48 30 4A" +
-            "30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59" +
-            "30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A" +
-            "30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78" +
-            "30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86" +
-            "30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92" +
-            "30 93 30 30 00 30 00 37 00 35 00 32 00 01 42 30" +
-            "44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30" +
-            "53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30" +
-            "64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30" +
-            "6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30" +
-            "81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30" +
-            "8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 37 00" +
-            "36 00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B" +
-            "30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B" +
-            "30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B" +
-            "30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B" +
-            "30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88" +
-            "30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93" +
-            "30 30 00 30 00 37 00 37 00 32 00 01 42 30 44 30" +
-            "46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30" +
-            "55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30" +
-            "66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30" +
-            "72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30" +
-            "82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30" +
-            "8D 30 8F 30 92 30 93 30 30 00 30 00 37 00 38 00" +
-            "18 00 05 96 00 00 00 17 53 77 6D 53 90 52 97 EE" +
-            "68 0C 77 A9 5C 4B 62 0C 77 8F 79 F6 5C 0C 77 03" +
-            "68 28 67 0C 77 FC 57 89 73 0C 77 71 67 AC 4E FD" +
-            "90 43 53 49 84 0C 77 01 00 92 00 05 00 35 00 08" +
-            "00 2C 00 2C 00 DB 30 C3 30 AB 30 A4 30 C9 30 A6" +
-            "30 A2 30 AA 30 E2 30 EA 30 B1 30 F3 30 A4 30 EF" +
-            "30 C6 30 B1 30 F3 30 D5 30 AF 30 B7 30 DE 30 B1" +
-            "30 F3 30 C8 30 C1 30 AE 30 B1 30 F3 30 B5 30 A4" +
-            "30 BF 30 DE 30 B1 30 F3 30 C8 30 A6 30 AD 30 E7" +
-            "30 A6 30 C8 30 C1 30 D0 30 B1 30 F3 30 00 00 00" +
-            "00 03 00 06 00 03 00 03 00 0C 00 06 00 03 00 11" +
-            "00 09 00 03 00 17                              " +
-
-            //Offset=0x00002636(9782) recno=72 sid=0x003C size=0x010D(269)
-            "                  3C 00 0D 01 00 0C 00 03 00 1C" +
-            "00 0F 00 03 00 22 00 12 00 03 00 28 00 15 00 03" +
-            "00 32 00 05 10 00 00 00 42 30 44 30 46 30 48 30" +
-            "4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30" +
-            "59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30" +
-            "6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30" +
-            "78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30" +
-            "86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30" +
-            "92 30 93 30 30 00 30 00 37 00 39 00 01 00 0C 00" +
-            "05 00 35 00 00 00 00 00 00 00 00 00 32 00 05 10" +
-            "00 00 00 42 30 44 30 46 30 48 30 4A 30 4B 30 4D" +
-            "30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D" +
-            "30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C" +
-            "30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E" +
-            "30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89" +
-            "30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30" +
-            "00 30 00 38 00 30 00 01 00 0C 00 05 00 35 00 00" +
-            "00 00 00 00 00 4B 30                           ";
+            HSSFTestDataSamples.writeOutAndReadBack(wb).close();
+        }
+    }
 
 
     /**
@@ -1465,17 +342,25 @@ public final class TestSSTRecord {
         assertEquals("number of strings", expected.getNumStrings(), actual.getNumStrings());
         assertEquals("number of unique strings", expected.getNumUniqueStrings(), actual.getNumUniqueStrings());
         assertEquals("count of strings", expected.countStrings(), actual.countStrings());
-        for ( int k = 0; k < expected.countStrings(); k++ ) {
-            org.apache.poi.hssf.record.common.UnicodeString us1 = expected.getString(k);
-            org.apache.poi.hssf.record.common.UnicodeString us2 = actual.getString(k);
 
-            assertEquals("String at idx=" + k, us1, us2);
+        Iterator<UnicodeString> iterA = expected.getStrings();
+        Iterator<UnicodeString> iterB = actual.getStrings();
+        while (iterA.hasNext()) {
+            assertEquals(iterA.next(), iterB.next());
         }
     }
-    
+
     @Test
-    public void test50779_1(){
-        byte[] bytes = HexRead.readFromString(data_50779_1);
+    public void test50779_1() throws IOException {
+        byte[] bytes = RawDataUtil.decompress("H4sIAAAAAAAAAL3aO2gVQRQG4HO5XkEZ8AESi4DBKoXFP+8IVioSvahcLxKC" +
+          "iRIRc9FEUZExCL4IYnyQqIi9SEATFUHRTkSQaBFsrEQLG8EiFgGrCM6uIGiff5c5e3ZY9l8W9mt2FqSjoyEixTBSW5kPm7EV29CNHa" +
+          "hjJ3ajgSb2oge92Id+HMAADuEwWjiCoxjCMI7hOE7iNM7gLM7hPC7gIi5hFJdxBWO4imu4jhsYxy3cBqTYtVRESU28/NnqMFJZ/Fgj" +
+          "lBjLiXGcGM+JCZyYyInp4sRsZMTo8sshxGhODEUBzVFAcxTQHAU0RwHNUUBzFNAcBQxHAcNRwHAUMBwFDEcBw1HAcBQwHAUMRwHDUc" +
+          "ByFLAcBSxHActRwHIUsBwFLEcBy1HAchSwHAUcRwHHUcBxFHAcBRxHAcdRwHEUcBwFHEcBx1HAcxTwHAU8RwHPUcBzFPAcBTxHAc9R" +
+          "wHMU8BwFAkeBwFEgcBQIHAUCR4HAUSBwFAgcBQJHgcBRIHIUiBwFIkeByFEgchSIHAUiR4HIUSBmBdZJ7aWItDXTcHNiz925lkoP+u" +
+          "oHVRof+dmnUrXVOajSQs/YKZVODE7v+jWxpbl9VKX9I929n/tVSndmb6pUkWfl//Tl5ZN/whtM4T7eYRL38BBf8R1PMZ9nfuBt2X3E" +
+          "E7zAl7KfwWs8Lrvn+YpXf2cn8Qjfcp3ZJI1KvuZDOT+F95jO9yn6opstu+IvflWW5lEVVR5XybJc2/JZVdplRa7rZXWunbIm1w2yVp" +
+          "bkN9yee9Kyg5gp/HfZAW3FQ1ce/694+A14Ha5/eSEAAA==");
 
         RecordInputStream in = TestcaseRecordInputStream.create(bytes);
         assertEquals(SSTRecord.sid, in.getSid());
@@ -1493,8 +378,15 @@ public final class TestSSTRecord {
     }
 
     @Test
-    public void test50779_2() {
-        byte[] bytes = HexRead.readFromString(data_50779_2);
+    public void test50779_2() throws IOException {
+        byte[] bytes = RawDataUtil.decompress("H4sIAAAAAAAAAL3Uu2sVQRjG4e9wOKKw4gUkKSyCVQqLd2d2ZhOwiiLqQSUe" +
+          "JIgRUcQc1ERUZBXBG0GMFxIiaC8S8I6FWIoIop2NlWBhI1hoIVhFcM6Cgn+Avx3m2+HbXd5hYJ9FGxgYNbPedNYY0SZt1hZtU1vbtV" +
+          "Oj6mi3xrRHe7VP+3VAh3RYXR3RUR3TpKZ0XCd1Wmd0Tud1QRd1SZc1rSu6qhld03Xd0E3Nal63JOuNnIlxTIxnYgomJjAxkYkpmZgh" +
+          "JmaYiMnrPweIQRTIGQVyRoGcUSBnFMgZBXJGgZxRIGcUcIwCjlHAMQo4RgHHKOAYBRyjgGMUcIwCjlHAMwp4RgHPKOAZBTyjgGcU8I" +
+          "wCnlHAMwp4RoGCUaBgFCgYBQpGgYJRoGAUKBgFCkaBglGgYBQIjAKBUSAwCgRGgcAoEBgFAqNAYBQIjAKBUSAyCkRGgcgoEBkFIqNA" +
+          "ZBSIjAKRUSAyCkRGgZJRoGQUKBkFSkaBklGgZBQoGQVKRoEyKdBvrdtm1tepJjtzu+5862bV/fH2wayaPftzPKua3cGJrFocmzmVVS" +
+          "cmHu34Nbexs3U6qxo2b6105kttfRof9VoPdU/vtKC7eqDP+qpn+pE63/WmXn3QU73Qp3r9Vq/0pF49T2+8/Ntd0GN9SbX3/H3dSxuz" +
+          "pi1Js2lZfV9ly1Lt22DLG6nTtLW2ItV1tjrVQVuTqrPWyvTZ/z+7YettoXcIfy4oeijNf6Pb+g0SIvVzNSEAAA==");
 
         RecordInputStream in = TestcaseRecordInputStream.create(bytes);
         assertEquals(SSTRecord.sid, in.getSid());
@@ -1519,6 +411,6 @@ public final class TestSSTRecord {
         SSTRecord src = new SSTRecord(in);
         assertEquals(0, src.getNumStrings());
         assertEquals(0, src.getNumUniqueStrings());
-        
+
     }
 }

Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecordSizeCalculator.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecordSizeCalculator.java?rev=1872041&r1=1872040&r2=1872041&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecordSizeCalculator.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecordSizeCalculator.java Fri Dec 27 23:00:13 2019
@@ -17,18 +17,18 @@
 
 package org.apache.poi.hssf.record;
 
-import junit.framework.TestCase;
+import static org.junit.Assert.assertEquals;
+
 import org.apache.poi.hssf.record.common.UnicodeString;
 import org.apache.poi.hssf.record.cont.ContinuableRecordOutput;
 import org.apache.poi.util.IntMapper;
 import org.apache.poi.util.LittleEndianConsts;
+import org.junit.Test;
 
 /**
  * Tests that records size calculates correctly.
- *
- * @author Glen Stampoultzis (glens at apache.org)
  */
-public final class TestSSTRecordSizeCalculator extends TestCase {
+public final class TestSSTRecordSizeCalculator {
 	private static final String SMALL_STRING = "Small string";
 	private static final int COMPRESSED_PLAIN_STRING_OVERHEAD = 3;
 	private static final int OPTION_FIELD_SIZE = 1;
@@ -53,6 +53,7 @@ public final class TestSSTRecordSizeCalc
 		assertEquals(expectedSize, cro.getTotalSize());
 	}
 
+	@Test
 	public void testBasic() {
 		strings.add(makeUnicodeString(SMALL_STRING));
 		confirmSize(SST_RECORD_OVERHEAD
@@ -60,6 +61,7 @@ public final class TestSSTRecordSizeCalc
 				+ SMALL_STRING.length());
 	}
 
+	@Test
 	public void testBigStringAcrossUnicode() {
 		int bigString = MAX_DATA_SPACE + 100;
 		strings.add(makeUnicodeString(bigString));
@@ -71,6 +73,7 @@ public final class TestSSTRecordSizeCalc
 				+ 100);
 	}
 
+	@Test
 	public void testPerfectFit() {
 		int perfectFit = MAX_DATA_SPACE - COMPRESSED_PLAIN_STRING_OVERHEAD;
 		strings.add(makeUnicodeString(perfectFit));
@@ -79,6 +82,7 @@ public final class TestSSTRecordSizeCalc
 				+ perfectFit);
 	}
 
+	@Test
 	public void testJustOversized() {
 		int tooBig = MAX_DATA_SPACE - COMPRESSED_PLAIN_STRING_OVERHEAD + 1;
 		strings.add(makeUnicodeString(tooBig));
@@ -91,6 +95,7 @@ public final class TestSSTRecordSizeCalc
 
 	}
 
+	@Test
 	public void testSecondStringStartsOnNewContinuation() {
 		int perfectFit = MAX_DATA_SPACE - COMPRESSED_PLAIN_STRING_OVERHEAD;
 		strings.add(makeUnicodeString(perfectFit));
@@ -103,6 +108,7 @@ public final class TestSSTRecordSizeCalc
 				+ SMALL_STRING.length());
 	}
 
+	@Test
 	public void testHeaderCrossesNormalContinuePoint() {
 		int almostPerfectFit = MAX_DATA_SPACE - COMPRESSED_PLAIN_STRING_OVERHEAD - 2;
 		strings.add(makeUnicodeString(almostPerfectFit));
@@ -117,6 +123,7 @@ public final class TestSSTRecordSizeCalc
 				+ oneCharString.length());
 
 	}
+
 	private static UnicodeString makeUnicodeString(int size) {
 		String s = new String(new char[size]);
 		return makeUnicodeString(s);



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org