aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYegor Kozlov <yegor@apache.org>2011-03-11 09:33:22 +0000
committerYegor Kozlov <yegor@apache.org>2011-03-11 09:33:22 +0000
commitdd87e86c4424896d8c05e4ae36ca522e838bf847 (patch)
treefc19b5f1891e8260ed89d4f9f92476b55c6c2675
parent5b8ee9b86561b01f8a636f4b02c433cd3cfc68be (diff)
downloadpoi-dd87e86c4424896d8c05e4ae36ca522e838bf847.tar.gz
poi-dd87e86c4424896d8c05e4ae36ca522e838bf847.zip
fixed RecordFormatException when reading unicode strings with photenic data, see Bugzilla 50779
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1080496 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--src/documentation/content/xdocs/status.xml1
-rw-r--r--src/java/org/apache/poi/hssf/record/common/UnicodeString.java3
-rw-r--r--src/java/org/apache/poi/hssf/record/cont/ContinuableRecordInput.java118
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestSSTRecord.java1141
-rw-r--r--src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java9
-rw-r--r--test-data/spreadsheet/50779_1.xlsbin0 -> 23552 bytes
-rw-r--r--test-data/spreadsheet/50779_2.xlsbin0 -> 23552 bytes
7 files changed, 1271 insertions, 1 deletions
diff --git a/src/documentation/content/xdocs/status.xml b/src/documentation/content/xdocs/status.xml
index 8ef8414dbb..435cf86955 100644
--- a/src/documentation/content/xdocs/status.xml
+++ b/src/documentation/content/xdocs/status.xml
@@ -34,6 +34,7 @@
<changes>
<release version="3.8-beta2" date="2011-??-??">
+ <action dev="poi-developers" type="fix">50779 - fixed RecordFormatException when reading unicode strings with photenic data</action>
<action dev="poi-developers" type="fix">50718 - More helpful error message when you try to create a CellReference with #REF!</action>
<action dev="poi-developers" type="fix">50784 - XSSFColors return by XSSFFont now have theme information applied to them</action>
<action dev="poi-developers" type="fix">50846 - Improve how XSSFColor inherits from Themes</action>
diff --git a/src/java/org/apache/poi/hssf/record/common/UnicodeString.java b/src/java/org/apache/poi/hssf/record/common/UnicodeString.java
index 3d0813c87b..cd8147a62d 100644
--- a/src/java/org/apache/poi/hssf/record/common/UnicodeString.java
+++ b/src/java/org/apache/poi/hssf/record/common/UnicodeString.java
@@ -22,6 +22,7 @@ import java.util.Collections;
import java.util.Iterator;
import java.util.List;
+import org.apache.poi.hssf.record.cont.ContinuableRecordInput;
import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.record.cont.ContinuableRecordOutput;
import org.apache.poi.util.BitField;
@@ -435,7 +436,7 @@ public class UnicodeString implements Comparable<UnicodeString> { // TODO - make
}
if (isExtendedText() && (extensionLength > 0)) {
- field_5_ext_rst = new ExtRst(in, extensionLength);
+ field_5_ext_rst = new ExtRst(new ContinuableRecordInput(in), extensionLength);
if(field_5_ext_rst.getDataSize()+4 != extensionLength) {
System.err.println("ExtRst was supposed to be " + extensionLength + " bytes long, but seems to actually be " + (field_5_ext_rst.getDataSize()+4));
}
diff --git a/src/java/org/apache/poi/hssf/record/cont/ContinuableRecordInput.java b/src/java/org/apache/poi/hssf/record/cont/ContinuableRecordInput.java
new file mode 100644
index 0000000000..9925ad3eb0
--- /dev/null
+++ b/src/java/org/apache/poi/hssf/record/cont/ContinuableRecordInput.java
@@ -0,0 +1,118 @@
+/*
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.hssf.record.cont;
+
+import org.apache.poi.hssf.record.RecordInputStream;
+import org.apache.poi.hssf.record.ContinueRecord;
+import org.apache.poi.util.LittleEndianInput;
+
+/**
+ * A decorated {@link RecordInputStream} that can read primitive data types
+ * (short, int, long, etc.) spanned across a {@link ContinueRecord } boundary.
+ *
+ * <p>
+ * Most records construct themselves from {@link RecordInputStream}.
+ * This class assumes that a {@link ContinueRecord} record break always occurs at the type boundary,
+ * however, it is not always so.
+ * </p>
+ * Two attachments to <a href="https://issues.apache.org/bugzilla/show_bug.cgi?id=50779">Bugzilla 50779</a>
+ * demonstrate that a CONTINUE break can appear right in between two bytes of a unicode character
+ * or between two bytes of a <code>short</code>. The problematic portion of the data is
+ * in a Asian Phonetic Settings Block (ExtRst) of a UnicodeString.
+ * <p>
+ * {@link RecordInputStream} greedily requests the bytes to be read and stumbles on such files with a
+ * "Not enough data (1) to read requested (2) bytes" exception. The <code>ContinuableRecordInput</code>
+ * class circumvents this "type boundary" rule and reads data byte-by-byte rolling over CONTINUE if necessary.
+ * </p>
+ *
+ * <p>
+ * YK: For now (March 2011) this class is only used to read
+ * @link org.apache.poi.hssf.record.common.UnicodeString.ExtRst} blocks of a UnicodeString.
+ *
+ * </p>
+ *
+ * @author Yegor Kozlov
+ */
+public class ContinuableRecordInput implements LittleEndianInput {
+ private final RecordInputStream _in;
+
+ public ContinuableRecordInput(RecordInputStream in){
+ _in = in;
+ }
+ public int available(){
+ return _in.available();
+ }
+
+ public byte readByte(){
+ return _in.readByte();
+ }
+
+ public int readUByte(){
+ return _in.readUByte();
+ }
+
+ public short readShort(){
+ return _in.readShort();
+ }
+
+ public int readUShort(){
+ int ch1 = readUByte();
+ int ch2 = readUByte();
+ return (ch2 << 8) + (ch1 << 0);
+ }
+
+ public int readInt(){
+ int ch1 = _in.readUByte();
+ int ch2 = _in.readUByte();
+ int ch3 = _in.readUByte();
+ int ch4 = _in.readUByte();
+ return (ch4 << 24) + (ch3 << 16) + (ch2 << 8) + (ch1 << 0);
+ }
+
+ public long readLong(){
+ int b0 = _in.readUByte();
+ int b1 = _in.readUByte();
+ int b2 = _in.readUByte();
+ int b3 = _in.readUByte();
+ int b4 = _in.readUByte();
+ int b5 = _in.readUByte();
+ int b6 = _in.readUByte();
+ int b7 = _in.readUByte();
+ return (((long)b7 << 56) +
+ ((long)b6 << 48) +
+ ((long)b5 << 40) +
+ ((long)b4 << 32) +
+ ((long)b3 << 24) +
+ (b2 << 16) +
+ (b1 << 8) +
+ (b0 << 0));
+ }
+
+ public double readDouble(){
+ return _in.readDouble();
+ }
+ public void readFully(byte[] buf){
+ _in.readFully(buf);
+ }
+ public void readFully(byte[] buf, int off, int len){
+ _in.readFully(buf, off, len);
+ }
+
+}
diff --git a/src/testcases/org/apache/poi/hssf/record/TestSSTRecord.java b/src/testcases/org/apache/poi/hssf/record/TestSSTRecord.java
index 65d56cf318..c7d911b807 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestSSTRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestSSTRecord.java
@@ -355,4 +355,1145 @@ public final class TestSSTRecord extends TestCase {
HSSFTestDataSamples.writeOutAndReadBack(wb);
}
+
+ /**
+ * 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 ";
+
+
+ /**
+ * 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 ";
+
+
+ /**
+ * deep comparison of two SST records
+ */
+ public static void assertEquals(SSTRecord expected, SSTRecord actual){
+ 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);
+
+ assertTrue("String at idx=" + k, us1.equals(us2));
+ }
+ }
+
+
+ public void test50779_1(){
+ byte[] bytes = HexRead.readFromString(data_50779_1);
+
+ RecordInputStream in = TestcaseRecordInputStream.create(bytes);
+ assertEquals(SSTRecord.sid, in.getSid());
+ SSTRecord src = new SSTRecord(in);
+ assertEquals(81, src.getNumStrings());
+
+ byte[] serialized = src.serialize();
+
+ in = TestcaseRecordInputStream.create(serialized);
+ assertEquals(SSTRecord.sid, in.getSid());
+ SSTRecord dst = new SSTRecord(in);
+ assertEquals(81, dst.getNumStrings());
+
+ assertEquals(src, dst);
+ }
+
+ public void test50779_2() {
+ byte[] bytes = HexRead.readFromString(data_50779_2);
+
+ RecordInputStream in = TestcaseRecordInputStream.create(bytes);
+ assertEquals(SSTRecord.sid, in.getSid());
+ SSTRecord src = new SSTRecord(in);
+ assertEquals(81, src.getNumStrings());
+
+ byte[] serialized = src.serialize();
+
+ in = TestcaseRecordInputStream.create(serialized);
+ assertEquals(SSTRecord.sid, in.getSid());
+ SSTRecord dst = new SSTRecord(in);
+ assertEquals(81, dst.getNumStrings());
+
+ assertEquals(src, dst);
+ }
+
}
diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java b/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
index 2725528e86..08566a2e9b 100644
--- a/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
+++ b/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
@@ -2019,4 +2019,13 @@ if(1==2) {
// TODO Identify what excel doesn't like, and check for that
}
+
+ public void test50779() throws Exception {
+ HSSFWorkbook wb1 = openSample("50779_1.xls");
+ writeOutAndReadBack(wb1);
+
+ HSSFWorkbook wb2 = openSample("50779_2.xls");
+ writeOutAndReadBack(wb2);
+ }
+
}
diff --git a/test-data/spreadsheet/50779_1.xls b/test-data/spreadsheet/50779_1.xls
new file mode 100644
index 0000000000..17d32ece8f
--- /dev/null
+++ b/test-data/spreadsheet/50779_1.xls
Binary files differ
diff --git a/test-data/spreadsheet/50779_2.xls b/test-data/spreadsheet/50779_2.xls
new file mode 100644
index 0000000000..ee29d0bc55
--- /dev/null
+++ b/test-data/spreadsheet/50779_2.xls
Binary files differ