poi-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ye...@apache.org
Subject svn commit: r1049202 - in /poi/trunk/src: documentation/content/xdocs/status.xml java/org/apache/poi/hssf/record/NameRecord.java java/org/apache/poi/hssf/record/cont/ContinuableRecordOutput.java testcases/org/apache/poi/hssf/record/TestNameRecord.java
Date Tue, 14 Dec 2010 18:18:00 GMT
Author: yegor
Date: Tue Dec 14 18:17:59 2010
New Revision: 1049202

URL: http://svn.apache.org/viewvc?rev=1049202&view=rev
Log:
Support for continued NameRecords, see bugzilla 50244

Modified:
    poi/trunk/src/documentation/content/xdocs/status.xml
    poi/trunk/src/java/org/apache/poi/hssf/record/NameRecord.java
    poi/trunk/src/java/org/apache/poi/hssf/record/cont/ContinuableRecordOutput.java
    poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNameRecord.java

Modified: poi/trunk/src/documentation/content/xdocs/status.xml
URL: http://svn.apache.org/viewvc/poi/trunk/src/documentation/content/xdocs/status.xml?rev=1049202&r1=1049201&r2=1049202&view=diff
==============================================================================
--- poi/trunk/src/documentation/content/xdocs/status.xml (original)
+++ poi/trunk/src/documentation/content/xdocs/status.xml Tue Dec 14 18:17:59 2010
@@ -34,6 +34,7 @@
 
     <changes>
         <release version="3.8-beta1" date="2010-??-??">
+           <action dev="poi-developers" type="add">50244 - Support for continued NameRecords</action>
            <action dev="POI-DEVELOPERS" type="fix">50416 - Correct shifting of the
first or last row in a sheet by multiple rows</action>
            <action dev="POI-DEVELOPERS" type="fix">50440 - Support evaluating formulas
with newlines in them, which XSSF may have (but HSSF may not)</action>
            <action dev="POI-DEVELOPERS" type="add">Added inline string support to XSSF
EventModel</action>

Modified: poi/trunk/src/java/org/apache/poi/hssf/record/NameRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/NameRecord.java?rev=1049202&r1=1049201&r2=1049202&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/NameRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/NameRecord.java Tue Dec 14 18:17:59 2010
@@ -17,14 +17,13 @@
 
 package org.apache.poi.hssf.record;
 
+import org.apache.poi.hssf.record.cont.ContinuableRecord;
+import org.apache.poi.hssf.record.cont.ContinuableRecordOutput;
 import org.apache.poi.ss.formula.ptg.Area3DPtg;
 import org.apache.poi.ss.formula.ptg.Ptg;
 import org.apache.poi.ss.formula.ptg.Ref3DPtg;
 import org.apache.poi.ss.formula.Formula;
-import org.apache.poi.util.HexDump;
-import org.apache.poi.util.LittleEndianInput;
-import org.apache.poi.util.LittleEndianOutput;
-import org.apache.poi.util.StringUtil;
+import org.apache.poi.util.*;
 
 /**
  * Title:        DEFINEDNAME Record (0x0018) <p/>
@@ -35,7 +34,7 @@ import org.apache.poi.util.StringUtil;
  * @author Glen Stampoultzis (glens at apache.org)
  * @author Petr Udalau - added method setFunction(boolean)
  */
-public final class NameRecord extends StandardRecord {
+public final class NameRecord extends ContinuableRecord {
     public final static short sid = 0x0018;
 	/**Included for completeness sake, not implemented */
 	public final static byte  BUILTIN_CONSOLIDATE_AREA      = 1;
@@ -342,8 +341,12 @@ public final class NameRecord extends St
 		return field_17_status_bar_text;
 	}
 
-
-	public void serialize(LittleEndianOutput out) {
+    /**
+     * NameRecord can span into
+     *
+     * @param out a data output stream
+     */
+	public void serialize(ContinuableRecordOutput out) {
 
 		int field_7_length_custom_menu = field_14_custom_menu_text.length();
 		int field_8_length_description_text = field_15_description_text.length();
@@ -430,7 +433,13 @@ public final class NameRecord extends St
 	 * @param ris the RecordInputstream to read the record from
 	 */
 	public NameRecord(RecordInputStream ris) {
-		LittleEndianInput in = ris;
+        // YK: Formula data can span into continue records, for example,
+        // when containing a large array of strings. See Bugzilla 50244
+
+        // read all remaining bytes and wrap into a LittleEndianInput
+        byte[] remainder = ris.readAllContinuedRemainder();
+        LittleEndianInput in = new LittleEndianByteArrayInputStream(remainder);
+
 		field_1_option_flag                 = in.readShort();
 		field_2_keyboard_shortcut           = in.readByte();
 		int field_3_length_name_text        = in.readUByte();

Modified: poi/trunk/src/java/org/apache/poi/hssf/record/cont/ContinuableRecordOutput.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/cont/ContinuableRecordOutput.java?rev=1049202&r1=1049201&r2=1049202&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/cont/ContinuableRecordOutput.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/cont/ContinuableRecordOutput.java Tue Dec
14 18:17:59 2010
@@ -204,10 +204,22 @@ public final class ContinuableRecordOutp
 		writeContinueIfRequired(b.length);
 		_ulrOutput.write(b);
 	}
+
 	public void write(byte[] b, int offset, int len) {
-		writeContinueIfRequired(len);
-		_ulrOutput.write(b, offset, len);
+
+        int i=0;
+        while(true) {
+            int nWritableChars = Math.min(len - i, _ulrOutput.getAvailableSpace() / 1);
+            for ( ; nWritableChars > 0; nWritableChars--) {
+                _ulrOutput.writeByte(b[offset + i++]);
+            }
+            if (i >= len) {
+                break;
+            }
+            writeContinue();
+        }
 	}
+
 	public void writeByte(int v) {
 		writeContinueIfRequired(1);
 		_ulrOutput.writeByte(v);

Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNameRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNameRecord.java?rev=1049202&r1=1049201&r2=1049202&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNameRecord.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNameRecord.java Tue Dec 14 18:17:59
2010
@@ -19,6 +19,9 @@ package org.apache.poi.hssf.record;
 
 import org.apache.poi.hssf.usermodel.HSSFName;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.formula.ptg.ArrayPtg;
+import org.apache.poi.ss.formula.ptg.Ptg;
+import org.apache.poi.util.HexDump;
 import org.apache.poi.util.HexRead;
 
 import junit.framework.AssertionFailedError;
@@ -81,4 +84,610 @@ public final class TestNameRecord extend
 		name.setRefersToFormula("5*6");
 		assertEquals("5*6", name.getRefersToFormula());
 	}
+
+    /**
+     *  A NameRecord followed by a ContinueRecord. See Bugzilla 50244
+     */
+    public void test50244(){
+        String record_0x0018 =
+                "                                          18 00 " +
+                "21 1E 00 00 00 11 08 00 00 00 03 00 00 00 00 00 " +
+                "00 77 44 61 74 61 47 72 75 70 70 65 53 65 72 69 " +
+                "65 2E 60 00 B7 02 0C 00 57 03 00 B7 02 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 30 31 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 30 31 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 30 31 02 09 00 00 31 2E 54 32 30 2E 30 30 " +
+                "32 02 09 00 00 31 2E 54 32 30 2E 30 30 32 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 30 32 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 30 33 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 30 33 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "30 33 02 09 00 00 31 2E 54 32 30 2E 30 31 33 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 31 33 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 31 33 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 31 34 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 31 34 02 09 00 00 31 2E 54 32 30 2E 30 31 34 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 31 35 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 31 35 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 31 35 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 32 35 02 09 00 00 31 2E 54 32 30 2E 30 32 " +
+                "35 02 09 00 00 31 2E 54 32 30 2E 30 32 35 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 32 36 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 32 36 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 32 36 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "32 37 02 09 00 00 31 2E 54 32 30 2E 30 32 37 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 32 37 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 33 37 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 33 37 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 33 37 02 09 00 00 31 2E 54 32 30 2E 30 33 38 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 33 38 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 33 38 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 33 39 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 33 39 02 09 00 00 31 2E 54 32 30 2E 30 33 " +
+                "39 02 09 00 00 31 2E 54 32 30 2E 30 34 39 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 34 39 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 34 39 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 35 30 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "35 30 02 09 00 00 31 2E 54 32 30 2E 30 35 30 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 35 31 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 35 31 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 35 31 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 36 31 02 09 00 00 31 2E 54 32 30 2E 30 36 31 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 36 31 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 36 32 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 36 32 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 36 32 02 09 00 00 31 2E 54 32 30 2E 30 36 " +
+                "33 02 09 00 00 31 2E 54 32 30 2E 30 36 33 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 36 33 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 37 33 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 37 33 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "37 33 02 09 00 00 31 2E 54 32 30 2E 30 37 34 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 37 34 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 37 34 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 37 35 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 37 35 02 09 00 00 31 2E 54 32 30 2E 30 37 35 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 38 35 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 38 35 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 38 35 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 38 36 02 09 00 00 31 2E 54 32 30 2E 30 38 " +
+                "36 02 09 00 00 31 2E 54 32 30 2E 30 38 36 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 38 37 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 38 37 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 38 37 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "39 37 02 09 00 00 31 2E 54 32 30 2E 30 39 37 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 39 37 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 39 38 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 39 38 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 39 38 02 09 00 00 31 2E 54 32 30 2E 30 39 39 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 39 39 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 39 39 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 30 39 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 30 39 02 09 00 00 31 2E 54 32 30 2E 31 30 " +
+                "39 02 09 00 00 31 2E 54 32 30 2E 31 31 30 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 31 30 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 31 30 02 09 00 00 31 2E 54 32 " +
+                "30 2E 31 31 31 02 09 00 00 31 2E 54 32 30 2E 31 " +
+                "31 31 02 09 00 00 31 2E 54 32 30 2E 31 31 31 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 32 31 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 32 31 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 32 31 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 32 32 02 09 00 00 31 2E 54 32 30 2E 31 32 32 " +
+                "02 09 00 00 31 2E 54 32 30 2E 31 32 32 02 09 00 " +
+                "00 31 2E 54 32 30 2E 31 32 33 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 32 33 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 32 33 02 09 00 00 31 2E 54 32 30 2E 31 33 " +
+                "33 02 09 00 00 31 2E 54 32 30 2E 31 33 33 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 33 33 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 33 34 02 09 00 00 31 2E 54 32 " +
+                "30 2E 31 33 34 02 09 00 00 31 2E 54 32 30 2E 31 " +
+                "33 34 02 09 00 00 31 2E 54 32 30 2E 31 33 35 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 33 35 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 33 35 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 34 35 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 34 35 02 09 00 00 31 2E 54 32 30 2E 31 34 35 " +
+                "02 09 00 00 31 2E 54 32 30 2E 31 34 36 02 09 00 " +
+                "00 31 2E 54 32 30 2E 31 34 36 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 34 36 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 34 37 02 09 00 00 31 2E 54 32 30 2E 31 34 " +
+                "37 02 09 00 00 31 2E 54 32 30 2E 31 34 37 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 35 37 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 35 37 02 09 00 00 31 2E 54 32 " +
+                "30 2E 31 35 37 02 09 00 00 31 2E 54 32 30 2E 31 " +
+                "35 38 02 09 00 00 31 2E 54 32 30 2E 31 35 38 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 35 38 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 35 39 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 35 39 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 35 39 02 09 00 00 31 2E 54 32 30 2E 31 36 39 " +
+                "02 09 00 00 31 2E 54 32 30 2E 31 36 39 02 09 00 " +
+                "00 31 2E 54 32 30 2E 31 36 39 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 37 30 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 37 30 02 09 00 00 31 2E 54 32 30 2E 31 37 " +
+                "30 02 09 00 00 31 2E 54 32 30 2E 31 37 31 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 37 31 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 37 31 02 09 00 00 31 2E 54 36 " +
+                "30 2E 30 30 39 02 09 00 00 31 2E 54 36 30 2E 30 " +
+                "30 39 02 09 00 00 31 2E 54 36 30 2E 30 30 39 02 " +
+                "09 00 00 31 2E 54 36 30 2E 30 31 30 02 09 00 00 " +
+                "31 2E 54 36 30 2E 30 31 30 02 09 00 00 31 2E 54 " +
+                "36 30 2E 30 31 30 02 09 00 00 31 2E 54 36 30 2E " +
+                "30 31 31 02 09 00 00 31 2E 54 36 30 2E 30 31 31 " +
+                "02 09 00 00 31 2E 54 36 30 2E 30 31 31 02 09 00 " +
+                "00 31 2E 54 36 30 2E 30 32 31 02 09 00 00 31 2E " +
+                "54 36 30 2E 30 32 31 02 09 00 00 31 2E 54 36 30 " +
+                "2E 30 32 31 02 09 00 00 31 2E 54 36 30 2E 30 32 " +
+                "32 02 09 00 00 31 2E 54 36 30 2E 30 32 32 02 09 " +
+                "00 00 31 2E 54 36 30 2E 30 32 32 02 09 00 00 31 " +
+                "2E 54 36 30 2E 30 32 33 02 09 00 00 31 2E 54 36 " +
+                "30 2E 30 32 33 02 09 00 00 31 2E 54 36 30 2E 30 " +
+                "32 33 02 09 00 00 31 2E 54 36 30 2E 30 33 33 02 " +
+                "09 00 00 31 2E 54 36 30 2E 30 33 33 02 09 00 00 " +
+                "31 2E 54 36 30 2E 30 33 33 02 09 00 00 31 2E 54 " +
+                "36 30 2E 30 33 34 02 09 00 00 31 2E 54 36 30 2E " +
+                "30 33 34 02 09 00 00 31 2E 54 36 30 2E 30 33 34 " +
+                "02 09 00 00 31 2E 54 36 30 2E 30 33 35 02 09 00 " +
+                "00 31 2E 54 36 30 2E 30 33 35 02 09 00 00 31 2E " +
+                "54 36 30 2E 30 33 35 02 09 00 00 31 2E 54 36 30 " +
+                "2E 30 34 35 02 09 00 00 31 2E 54 36 30 2E 30 34 " +
+                "35 02 09 00 00 31 2E 54 36 30 2E 30 34 35 02 09 " +
+                "00 00 31 2E 54 36 30 2E 30 34 36 02 09 00 00 31 " +
+                "2E 54 36 30 2E 30 34 36 02 09 00 00 31 2E 54 36 " +
+                "30 2E 30 34 36 02 09 00 00 31 2E 54 36 30 2E 30 " +
+                "34 37 02 09 00 00 31 2E 54 36 30 2E 30 34 37 02 " +
+                "09 00 00 31 2E 54 36 30 2E 30 34 37 02 09 00 00 " +
+                "31 2E 54 36 30 2E 30 35 37 02 09 00 00 31 2E 54 " +
+                "36 30 2E 30 35 37 02 09 00 00 31 2E 54 36 30 2E " +
+                "30 35 37 02 09 00 00 31 2E 54 36 30 2E 30 35 38 " +
+                "02 09 00 00 31 2E 54 36 30 2E 30 35 38 02 09 00 " +
+                "00 31 2E 54 36 30 2E 30 35 38 02 09 00 00 31 2E " +
+                "54 36 30 2E 30 35 39 02 09 00 00 31 2E 54 36 30 " +
+                "2E 30 35 39 02 09 00 00 31 2E 54 36 30 2E 30 35 " +
+                "39 02 09 00 00 31 2E 54 36 30 2E 30 36 30 02 09 " +
+                "00 00 31 2E 54 36 30 2E 30 36 30 02 09 00 00 31 " +
+                "2E 54 36 30 2E 30 36 30 02 09 00 00 31 2E 54 36 " +
+                "30 2E 30 35 30 02 09 00 00 31 2E 54 36 30 2E 30 " +
+                "35 30 02 09 00 00 31 2E 54 36 30 2E 30 35 30 02 " +
+                "09 00 00 31 2E 54 36 30 2E 30 34 39 02 09 00 00 " +
+                "31 2E 54 36 30 2E 30 34 39 02 09 00 00 31 2E 54 " +
+                "36 30 2E 30 34 39 02 09 00 00 31 2E 54 36 30 2E " +
+                "30 34 38 02 09 00 00 31 2E 54 36 30 2E 30 34 38 " +
+                "02 09 00 00 31 2E 54 36 30 2E 30 34 38 02 09 00 " +
+                "00 31 2E 54 36 30 2E 30 33 38 02 09 00 00 31 2E " +
+                "54 36 30 2E 30 33 38 02 09 00 00 31 2E 54 36 30 " +
+                "2E 30 33 38 02 09 00 00 31 2E 54 36 30 2E 30 33 " +
+                "37 02 09 00 00 31 2E 54 36 30 2E 30 33 37 02 09 " +
+                "00 00 31 2E 54 36 30 2E 30 33 37 02 09 00 00 31 " +
+                "2E 54 36 30 2E 30 33 36 02 09 00 00 31 2E 54 36 " +
+                "30 2E 30 33 36 02 09 00 00 31 2E 54 36 30 2E 30 " +
+                "33 36 02 09 00 00 31 2E 54 36 30 2E 30 32 36 02 " +
+                "09 00 00 31 2E 54 36 30 2E 30 32 36 02 09 00 00 " +
+                "31 2E 54 36 30 2E 30 32 36 02 09 00 00 31 2E 54 " +
+                "36 30 2E 30 32 35 02 09 00 00 31 2E 54 36 30 2E " +
+                "30 32 35 02 09 00 00 31 2E 54 36 30 2E 30 32 35 " +
+                "02 09 00 00 31 2E 54 36 30 2E 30 32 34 02 09 00 " +
+                "00 31 2E 54 36 30 2E 30 32 34 02 09 00 00 31 2E " +
+                "54 36 30 2E 30 32 34 02 09 00 00 31 2E 54 36 30 " +
+                "2E 30 31 34 02 09 00 00 31 2E 54 36 30 2E 30 31 " +
+                "34 02 09 00 00 31 2E 54 36 30 2E 30 31 34 02 09 " +
+                "00 00 31 2E 54 36 30 2E 30 31 33 02 09 00 00 31 " +
+                "2E 54 36 30 2E 30 31 33 02 09 00 00 31 2E 54 36 " +
+                "30 2E 30 31 33 02 09 00 00 31 2E 54 36 30 2E 30 " +
+                "31 32 02 09 00 00 31 2E 54 36 30 2E 30 31 32 02 " +
+                "09 00 00 31 2E 54 36 30 2E 30 31 32 02 09 00 00 " +
+                "31 2E 54 36 30 2E 30 30 32 02 09 00 00 31 2E 54 " +
+                "36 30 2E 30 30 32 02 09 00 00 31 2E 54 36 30 2E " +
+                "30 30 32 02 09 00 00 31 2E 54 36 30 2E 30 30 31 " +
+                "02 09 00 00 31 2E 54 36 30 2E 30 30 31 02 09 00 " +
+                "00 31 2E 54 36 30 2E 30 30 31 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 37 32 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 37 32 02 09 00 00 31 2E 54 32 30 2E 31 37 " +
+                "32 02 09 00 00 31 2E 54 32 30 2E 31 36 32 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 36 32 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 36 32 02 09 00 00 31 2E 54 32 " +
+                "30 2E 31 36 31 02 09 00 00 31 2E 54 32 30 2E 31 " +
+                "36 31 02 09 00 00 31 2E 54 32 30 2E 31 36 31 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 36 30 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 36 30 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 36 30 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 35 30 02 09 00 00 31 2E 54 32 30 2E 31 35 30 " +
+                "02 09 00 00 31 2E 54 32 30 2E 31 35 30 02 09 00 " +
+                "00 31 2E 54 32 30 2E 31 34 39 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 34 39 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 34 39 02 09 00 00 31 2E 54 32 30 2E 31 34 " +
+                "38 02 09 00 00 31 2E 54 32 30 2E 31 34 38 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 34 38 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 33 38 02 09 00 00 31 2E 54 32 " +
+                "30 2E 31 33 38 02 09 00 00 31 2E 54 32 30 2E 31 " +
+                "33 38 02 09 00 00 31 2E 54 32 30 2E 31 33 37 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 33 37 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 33 37 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 33 36 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 33 36 02 09 00 00 31 2E 54 32 30 2E 31 33 36 " +
+                "02 09 00 00 31 2E 54 32 30 2E 31 32 36 02 09 00 " +
+                "00 31 2E 54 32 30 2E 31 32 36 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 32 36 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 32 35 02 09 00 00 31 2E 54 32 30 2E 31 32 " +
+                "35 02 09 00 00 31 2E 54 32 30 2E 31 32 35 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 32 34 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 32 34 02 09 00 00 31 2E 54 32 " +
+                "30 2E 31 32 34 02 09 00 00 31 2E 54 32 30 2E 31 " +
+                "31 34 02 09 00 00 31 2E 54 32 30 2E 31 31 34 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 31 34 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 31 33 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 31 33 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 31 33 02 09 00 00 31 2E 54 32 30 2E 31 31 32 " +
+                "02 09 00 00 31 2E 54 32 30 2E 31 31 32 02 09 00 " +
+                "00 31 2E 54 32 30 2E 31 31 32 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 30 32 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 30 32 02 09 00 00 31 2E 54 32 30 2E 31 30 " +
+                "32 02 09 00 00 31 2E 54 32 30 2E 31 30 31 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 30 31 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 30 31 02 09 00 00 31 2E 54 32 " +
+                "30 2E 31 30 30 02 09 00 00 31 2E 54 32 30 2E 31 " +
+                "30 30 02 09 00 00 31 2E 54 32 30 2E 31 30 30 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 39 30 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 39 30 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 39 30 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 38 39 02 09 00 00 31 2E 54 32 30 2E 30 38 39 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 38 39 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 38 38 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 38 38 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 38 38 02 09 00 00 31 2E 54 32 30 2E 30 37 " +
+                "38 02 09 00 00 31 2E 54 32 30 2E 30 37 38 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 37 38 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 37 37 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 37 37 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "37 37 02 09 00 00 31 2E 54 32 30 2E 30 37 36 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 37 36 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 37 36 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 36 36 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 36 36 02 09 00 00 31 2E 54 32 30 2E 30 36 36 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 36 35 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 36 35 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 36 35 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 36 34 02 09 00 00 31 2E 54 32 30 2E 30 36 " +
+                "34 02 09 00 00 31 2E 54 32 30 2E 30 36 34 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 35 34 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 35 34 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 35 34 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "35 33 02 09 00 00 31 2E 54 32 30 2E 30 35 33 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 35 33 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 35 32 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 35 32 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 35 32 02 09 00 00 31 2E 54 32 30 2E 30 34 32 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 34 32 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 34 32 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 34 31 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 34 31 02 09 00 00 31 2E 54 32 30 2E 30 34 " +
+                "31 02 09 00 00 31 2E 54 32 30 2E 30 34 30 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 34 30 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 34 30 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 33 30 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "33 30 02 09 00 00 31 2E 54 32 30 2E 30 33 30 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 32 39 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 32 39 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 32 39 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 32 38 02 09 00 00 31 2E 54 32 30 2E 30 32 38 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 32 38 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 31 38 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 31 38 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 31 38 02 09 00 00 31 2E 54 32 30 2E 30 31 " +
+                "37 02 09 00 00 31 2E 54 32 30 2E 30 31 37 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 31 37 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 31 36 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 31 36 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "31 36 02 09 00 00 31 2E 54 32 30 2E 30 30 36 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 30 36 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 30 36 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 30 35 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 30 35 02 09 00 00 31 2E 54 32 30 2E 30 30 35 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 30 34 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 30 34 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 30 34 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 30 37 02 09 00 00 31 2E 54 32 30 2E 30 30 " +
+                "37 02 09 00 00 31 2E 54 32 30 2E 30 30 37 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 30 38 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 30 38 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 30 38 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "30 39 02 09 00 00 31 2E 54 32 30 2E 30 30 39 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 30 39 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 31 39 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 31 39 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 31 39 02 09 00 00 31 2E 54 32 30 2E 30 32 30 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 32 30 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 32 30 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 32 31 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 32 31 02 09 00 00 31 2E 54 32 30 2E 30 32 " +
+                "31 02 09 00 00 31 2E 54 32 30 2E 30 33 31 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 33 31 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 33 31 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 33 32 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "33 32 02 09 00 00 31 2E 54 32 30 2E 30 33 32 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 33 33 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 33 33 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 33 33 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 34 33 02 09 00 00 31 2E 54 32 30 2E 30 34 33 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 34 33 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 34 34 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 34 34 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 34 34 02 09 00 00 31 2E 54 32 30 2E 30 34 " +
+                "35 02 09 00 00 31 2E 54 32 30 2E 30 34 35 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 34 35 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 35 35 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 35 35 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "35 35 02 09 00 00 31 2E 54 32 30 2E 30 35 36 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 35 36 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 35 36 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 35 37 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 35 37 02 09 00 00 31 2E 54 32 30 2E 30 35 37 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 36 37 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 36 37 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 36 37 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 36 38 02 09 00 00 31 2E 54 32 30 2E 30 36 " +
+                "38 02 09 00 00 31 2E 54 32 30 2E 30 36 38 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 36 39 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 36 39 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 36 39 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "37 39 02 09 00 00 31 2E 54 32 30 2E 30 37 39 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 37 39 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 38 30 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 38 30 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 38 30 02 09 00 00 31 2E 54 32 30 2E 30 38 31 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 38 31 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 38 31 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 39 31 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 39 31 02 09 00 00 31 2E 54 32 30 2E 30 39 " +
+                "31 02 09 00 00 31 2E 54 32 30 2E 30 39 32 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 39 32 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 39 32 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 39 33 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "39 33 02 09 00 00 31 2E 54 32 30 2E 30 39 33 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 30 33 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 30 33 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 30 33 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 30 34 02 09 00 00 31 2E 54 32 30 2E 31 30 34 " +
+                "02 09 00 00 31 2E 54 32 30 2E 31 30 34 02 09 00 " +
+                "00 31 2E 54 32 30 2E 31 30 35 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 30 35 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 30 35 02 09 00 00 31 2E 54 32 30 2E 31 31 " +
+                "35 02 09 00 00 31 2E 54 32 30 2E 31 31 35 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 31 35 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 31 36 02 09 00 00 31 2E 54 32 " +
+                "30 2E 31 31 36 02 09 00 00 31 2E 54 32 30 2E 31 " +
+                "31 36 02 09 00 00 31 2E 54 32 30 2E 31 31 37 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 31 37 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 31 37 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 32 37 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 32 37 02 09 00 00 31 2E 54 32 30 2E 31 32 37 " +
+                "02 09 00 00 31 2E 54 32 30 2E 31 32 38 02 09 00 " +
+                "00 31 2E 54 32 30 2E 31 32 38 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 32 38 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 32 39 02 09 00 00 31 2E 54 32 30 2E 31 32 " +
+                "39 02 09 00 00 31 2E 54 32 30 2E 31 32 39 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 33 39 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 33 39 02 09 00 00 31 2E 54 32 " +
+                "30 2E 31 33 39 02 09 00 00 31 2E 54 32 30 2E 31 " +
+                "34 30 02 09 00 00 31 2E 54 32 30 2E 31 34 30 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 34 30 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 34 31 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 34 31 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 34 31 02 09 00 00 31 2E 54 32 30 2E 31 35 31 " +
+                "02 09 00 00 31 2E 54 32 30 2E 31 35 31 02 09 00 " +
+                "00 31 2E 54 32 30 2E 31 35 31 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 35 32 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 35 32 02 09 00 00 31 2E 54 32 30 2E 31 35 " +
+                "32 02 09 00 00 31 2E 54 32 30 2E 31 35 33 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 35 33 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 35 33 02 09 00 00 31 2E 54 32 " +
+                "30 2E 31 36 33 02 09 00 00 31 2E 54 32 30 2E 31 " +
+                "36 33 02 09 00 00 31 2E 54 32 30 2E 31 36 33 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 36 34 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 36 34 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 36 34 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 36 35 02 09 00 00 31 2E 54 32 30 2E 31 36 35 " +
+                "02 09 00 00 31 2E 54 32 30 2E 31 36 35 02 09 00 " +
+                "00 31 2E 54 36 30 2E 30 30 33 02 09 00 00 31 2E " +
+                "54 36 30 2E 30 30 33 02 09 00 00 31 2E 54 36 30 " +
+                "2E 30 30 33 02 09 00 00 31 2E 54 36 30 2E 30 30 " +
+                "34 02 09 00 00 31 2E 54 36 30 2E 30 30 34 02 09 " +
+                "00 00 31 2E 54 36 30 2E 30 30 34 02 09 00 00 31 " +
+                "2E 54 36 30 2E 30 30 35 02 09 00 00 31 2E 54 36 " +
+                "30 2E 30 30 35 02 09 00 00 31 2E 54 36 30 2E 30 " +
+                "30 35 02 09 00 00 31 2E 54 36 30 2E 30 31 35 02 " +
+                "09 00 00 31 2E 54 36 30 2E 30 31 35 02 09 00 00 " +
+                "31 2E 54 36 30 2E 30 31 35 02 09 00 00 31 2E 54 " +
+                "36 30 2E 30 31 36 02 09 00 00 31 2E 54 36 30 2E " +
+                "30 31 36 02 09 00 00 31 2E 54 36 30 2E 30 31 36 " +
+                "02 09 00 00 31 2E 54 36 30 2E 30 31 37 02 09 00 " +
+                "00 31 2E 54 36 30 2E 30 31 37 02 09 00 00 31 2E " +
+                "54 36 30 2E 30 31 37 02 09 00 00 31 2E 54 36 30 " +
+                "2E 30 32 37 02 09 00 00 31 2E 54 36 30 2E 30 32 " +
+                "37 02 09 00 00 31 2E 54 36 30 2E 30 32 37 02 09 " +
+                "00 00 31 2E 54 36 30 2E 30 32 38 02 09 00 00 31 " +
+                "2E 54 36 30 2E 30 32 38 02 09 00 00 31 2E 54 36 " +
+                "30 2E 30 32 38 02 09 00 00 31 2E 54 36 30 2E 30 " +
+                "32 39 02 09 00 00 31 2E 54 36 30 2E 30 32 39 02 " +
+                "09 00 00 31 2E 54 36 30 2E 30 32 39 02 09 00 00 " +
+                "31 2E 54 36 30 2E 30 33 39 02 09 00 00 31 2E 54 " +
+                "36 30 2E 30 33 39 02 09 00 00 31 2E 54 36 30 2E " +
+                "30 33 39 02 09 00 00 31 2E 54 36 30 2E 30 34 30 " +
+                "02 09 00 00 31 2E 54 36 30 2E 30 34 30 02 09 00 " +
+                "00 31 2E 54 36 30 2E 30 34 30 02 09 00 00 31 2E " +
+                "54 36 30 2E 30 34 31 02 09 00 00 31 2E 54 36 30 " +
+                "2E 30 34 31 02 09 00 00 31 2E 54 36 30 2E 30 34 " +
+                "31 02 09 00 00 31 2E 54 36 30 2E 30 35 31 02 09 " +
+                "00 00 31 2E 54 36 30 2E 30 35 31 02 09 00 00 31 " +
+                "2E 54 36 30 2E 30 35 31 02 09 00 00 31 2E 54 36 " +
+                "30 2E 30 35 32 02 09 00 00 31 2E 54 36 30 2E 30 " +
+                "35 32 02 09 00 00 31 2E 54 36 30 2E 30 35 32 02 " +
+                "09 00 00 31 2E 54 36 30 2E 30 35 33 02 09 00 00 " +
+                "31 2E 54 36 30 2E 30 35 33 02 09 00 00 31 2E 54 " +
+                "36 30 2E 30 35 33 02 09 00 00 31 2E 54 36 30 2E " +
+                "30 35 36 02 09 00 00 31 2E 54 36 30 2E 30 35 36 " +
+                "02 09 00 00 31 2E 54 36 30 2E 30 35 36 02 09 00 " +
+                "00 31 2E 54 36 30 2E 30 35 35 02 09 00 00 31 2E " +
+                "54 36 30 2E 30 35 35 02 09 00 00 31 2E 54 36 30 " +
+                "2E 30 35 35 02 09 00 00 31 2E 54 36 30 2E 30 35 " +
+                "34 02 09 00 00 31 2E 54 36 30 2E 30 35 34 02 09 " +
+                "00 00 31 2E 54 36 30 2E 30 35 34 02 09 00 00 31 " +
+                "2E 54 36 30 2E 30 34 34 02 09 00 00 31 2E 54 36 " +
+                "30 2E 30 34 34 02 09 00 00 31 2E 54 36 30 2E 30 " +
+                "34 34 02 09 00 00 31 2E 54 36 30 2E 30 34 33 02 " +
+                "09 00 00 31 2E 54 36 30 2E 30 34 33 02 09 00 00 " +
+                "31 2E 54 36 30 2E 30 34 33 02 09 00 00 31 2E 54 " +
+                "36 30 2E 30 34 32 02 09 00 00 31 2E 54 36 30 2E " +
+                "30 34 32 02 09 00 00 31 2E 54 36 30 2E 30 34 32 " +
+                "02 09 00 00 31 2E 54 36 30 2E 30 33 32 02 09 00 " +
+                "00 31 2E 54 36 30 2E 30 33 32 02 09 00 00 31 2E " +
+                "54 36 30 2E 30 33 32 02 09 00 00 31 2E 54 36 30 " +
+                "2E 30 33 31 02 09 00 00 31 2E 54 36 30 2E 30 33 " +
+                "31 02 09 00 00 31 2E 54 36 30 2E 30 33 31 02 09 " +
+                "00 00 31 2E 54 36 30 2E 30 33 30 02 09 00 00 31 " +
+                "2E 54 36 30 2E 30 33 30 02 09 00 00 31 2E 54 36 " +
+                "30 2E 30 33 30 02 09 00 00 31 2E 54 36 30 2E 30 " +
+                "32 30 02 09 00 00 31 2E 54 36 30 2E 30 32 30 02 " +
+                "09 00 00 31 2E 54 36 30 2E 30 32 30 02 09 00 00 " +
+                "31 2E 54 36 30 2E 30 31 39 02 09 00 00 31 2E 54 " +
+                "36 30 2E 30 31 39 02 09 00 00 31 2E 54 36 30 2E " +
+                "30 31 39 02 09 00 00 31 2E 54 36 30 2E 30 31 38 " +
+                "02 09 00 00 31 2E 54 36 30 2E 30 31 38 02 09 00 " +
+                "00 31 2E 54 36 30 2E 30 31 38 02 09 00 00 31 2E " +
+                "54 36 30 2E 30 30 38 02 09 00 00 31 2E 54 36 30 " +
+                "2E 30 30 38 02 09 00 00 31 2E 54 36 30 2E 30 30 " +
+                "38 02 09 00 00 31 2E 54 36 30 2E 30 30 37 02 09 " +
+                "00 00 31 2E 54 36 30 2E 30 30 37 02 09 00 00 31 " +
+                "2E 54 36 30 2E 30 30 37 02 09 00 00 31 2E 54 36 " +
+                "30 2E 30 30 36 02 09 00 00 31 2E 54 36 30 2E 30 " +
+                "30 36 02 09 00 00 31 2E 54 36 30 2E 30 30 36 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 36 38 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 36 38 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 36 38 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 36 37 02 09 00 00 31 2E 54 32 30 2E 31 36 37 " +
+                "02 09 00 00 31 2E 54 32 30 2E 31 36 37 02 09 00 " +
+                "00 31 2E 54 32 30 2E 31 36 36 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 36 36 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 36 36 02 09 00 00 31 2E 54 32 30 2E 31 35 " +
+                "36 02 09 00 00 31 2E 54 32 30 2E 31 35 36 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 35 36 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 35 35 02 09 00 00 31 2E 54 32 " +
+                "30 2E 31 35 35 02 09 00 00 31 2E 54 32 30 2E 31 " +
+                "35 35 02 09 00 00 31 2E 54 32 30 2E 31 35 34 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 35 34 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 35 34 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 34 34 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 34 34                                       ";
+
+        String record_0x03C =
+                "         3C 00 62 05 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 34 34 02 09 00 00 31 2E 54 32 30 2E 31 34 " +
+                "33 02 09 00 00 31 2E 54 32 30 2E 31 34 33 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 34 33 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 34 32 02 09 00 00 31 2E 54 32 " +
+                "30 2E 31 34 32 02 09 00 00 31 2E 54 32 30 2E 31 " +
+                "34 32 02 09 00 00 31 2E 54 32 30 2E 31 33 32 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 33 32 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 33 32 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 33 31 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 33 31 02 09 00 00 31 2E 54 32 30 2E 31 33 31 " +
+                "02 09 00 00 31 2E 54 32 30 2E 31 33 30 02 09 00 " +
+                "00 31 2E 54 32 30 2E 31 33 30 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 33 30 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 32 30 02 09 00 00 31 2E 54 32 30 2E 31 32 " +
+                "30 02 09 00 00 31 2E 54 32 30 2E 31 32 30 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 31 39 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 31 39 02 09 00 00 31 2E 54 32 " +
+                "30 2E 31 31 39 02 09 00 00 31 2E 54 32 30 2E 31 " +
+                "31 38 02 09 00 00 31 2E 54 32 30 2E 31 31 38 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 31 38 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 30 38 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 30 38 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 30 38 02 09 00 00 31 2E 54 32 30 2E 31 30 37 " +
+                "02 09 00 00 31 2E 54 32 30 2E 31 30 37 02 09 00 " +
+                "00 31 2E 54 32 30 2E 31 30 37 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 30 36 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 30 36 02 09 00 00 31 2E 54 32 30 2E 31 30 " +
+                "36 02 09 00 00 31 2E 54 32 30 2E 30 39 36 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 39 36 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 39 36 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 39 35 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "39 35 02 09 00 00 31 2E 54 32 30 2E 30 39 35 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 39 34 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 39 34 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 39 34 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 38 34 02 09 00 00 31 2E 54 32 30 2E 30 38 34 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 38 34 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 38 33 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 38 33 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 38 33 02 09 00 00 31 2E 54 32 30 2E 30 38 " +
+                "32 02 09 00 00 31 2E 54 32 30 2E 30 38 32 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 38 32 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 37 32 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 37 32 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "37 32 02 09 00 00 31 2E 54 32 30 2E 30 37 31 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 37 31 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 37 31 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 37 30 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 37 30 02 09 00 00 31 2E 54 32 30 2E 30 37 30 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 36 30 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 36 30 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 36 30 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 35 39 02 09 00 00 31 2E 54 32 30 2E 30 35 " +
+                "39 02 09 00 00 31 2E 54 32 30 2E 30 35 39 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 35 38 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 35 38 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 35 38 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "34 38 02 09 00 00 31 2E 54 32 30 2E 30 34 38 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 34 38 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 34 37 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 34 37 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 34 37 02 09 00 00 31 2E 54 32 30 2E 30 34 36 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 34 36 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 34 36 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 33 36 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 33 36 02 09 00 00 31 2E 54 32 30 2E 30 33 " +
+                "36 02 09 00 00 31 2E 54 32 30 2E 30 33 35 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 33 35 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 33 35 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 33 34 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "33 34 02 09 00 00 31 2E 54 32 30 2E 30 33 34 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 32 34 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 32 34 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 32 34 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 32 33 02 09 00 00 31 2E 54 32 30 2E 30 32 33 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 32 33 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 32 32 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 32 32 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 32 32 02 09 00 00 31 2E 54 32 30 2E 30 31 " +
+                "32 02 09 00 00 31 2E 54 32 30 2E 30 31 32 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 31 32 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 31 31 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 31 31 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "31 31 02 09 00 00 31 2E 54 32 30 2E 30 31 30 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 31 30 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 31 30                     ";
+
+        byte[] data1 = HexRead.readFromString(record_0x0018 + record_0x03C);
+        RecordInputStream in1 = TestcaseRecordInputStream.create(data1);
+        NameRecord nr1 = new NameRecord(in1);
+        System.out.println(nr1);
+        assert_bug50244(nr1);
+
+
+        byte[] data2 = nr1.serialize();
+
+        assertEquals(data1.length, data2.length);
+        RecordInputStream in2 = TestcaseRecordInputStream.create(data2);
+        NameRecord nr2 = new NameRecord(in2);
+        assert_bug50244(nr2);
+    }
+
+    private void assert_bug50244(NameRecord nr){
+        assertEquals("wDataGruppeSerie.", nr.getNameText());
+        Ptg[] ptg = nr.getNameDefinition();
+        assertEquals(1, ptg.length);
+        ArrayPtg arr = (ArrayPtg)ptg[0];
+        assertEquals(696, arr.getRowCount());
+        assertEquals(1, arr.getColumnCount());
+        Object[][] vals = arr.getTokenArrayValues();
+        assertEquals("1.T20.001", vals[0][0]);
+        assertEquals("1.T20.010", vals[vals.length - 1][0]);
+    }
 }



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


Mime
View raw message