Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFontRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFontRecord.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFontRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFontRecord.java Fri Dec 27 23:00:13 2019 @@ -18,31 +18,35 @@ package org.apache.poi.hssf.record; -import junit.framework.AssertionFailedError; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertTrue; import org.apache.poi.util.HexRead; +import org.junit.Test; /** * Tests the serialization and deserialization of the {@link FontRecord} * class works correctly. Test data taken directly from a real Excel file. */ -public final class TestFontRecord extends TestCase { +public final class TestFontRecord { private static final int SID = 0x31; private static final byte[] data = { - 0xC8-256, 00, // font height = xc8 - 00, 00, // attrs = 0 + 0xC8-256, 0, // font height = xc8 + 0, 0, // attrs = 0 0xFF-256, 0x7F, // colour palette = x7fff 0x90-256, 0x01, // bold weight = x190 - 00, 00, // supersubscript - 00, 00, // underline, family - 00, 00, // charset, padding - 05, 00, // name length, unicode flag + 0, 0, // supersubscript + 0, 0, // underline, family + 0, 0, // charset, padding + 5, 0, // name length, unicode flag 0x41, 0x72, 0x69, 0x61, 0x6C, // Arial, as unicode }; + @Test public void testLoad() { FontRecord record = new FontRecord(TestcaseRecordInputStream.create(0x31, data)); @@ -63,6 +67,7 @@ public final class TestFontRecord extend assertEquals(21 + 4, record.getRecordSize()); } + @Test public void testStore() { // .fontheight = c8 // .attributes = 0 @@ -94,6 +99,7 @@ public final class TestFontRecord extend TestcaseRecordInputStream.confirmRecordEncoding(0x31, data, recordBytes); } + @Test public void testCloneOnto() { FontRecord base = new FontRecord(TestcaseRecordInputStream.create(0x31, data)); @@ -106,6 +112,7 @@ public final class TestFontRecord extend assertEquals("At offset " + i, data[i], recordBytes[i+4]); } + @Test public void testSameProperties() { FontRecord f1 = new FontRecord(TestcaseRecordInputStream.create(0x31, data)); FontRecord f2 = new FontRecord(TestcaseRecordInputStream.create(0x31, data)); @@ -128,6 +135,7 @@ public final class TestFontRecord extend * length is zero. The OOO documentation seems to agree with this and POI had no test data * samples to say otherwise. */ + @Test public void testEmptyName_bug47250() { byte[] emptyNameData = HexRead.readFromString( "C8 00 00 00 FF 7F 90 01 00 00 00 00 00 00 " @@ -137,9 +145,7 @@ public final class TestFontRecord extend RecordInputStream in = TestcaseRecordInputStream.create(SID, emptyNameData); FontRecord fr = new FontRecord(in); - if (in.available() == 1) { - throw new AssertionFailedError("Identified bug 47250"); - } + assertNotEquals(1, in.available()); assertEquals(0, in.available()); assertEquals(0, fr.getFontName().length());
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFormulaRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFormulaRecord.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFormulaRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFormulaRecord.java Fri Dec 27 23:00:13 2019 @@ -17,6 +17,10 @@ package org.apache.poi.hssf.record; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + import org.apache.poi.ss.formula.ptg.AttrPtg; import org.apache.poi.ss.formula.ptg.FuncVarPtg; import org.apache.poi.ss.formula.ptg.IntPtg; @@ -24,17 +28,14 @@ import org.apache.poi.ss.formula.ptg.Ptg import org.apache.poi.ss.formula.ptg.RefPtg; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.FormulaError; - -import junit.framework.AssertionFailedError; -import junit.framework.TestCase; +import org.junit.Test; /** * Tests for {@link FormulaRecord} - * - * @author Andrew C. Oliver */ -public final class TestFormulaRecord extends TestCase { +public final class TestFormulaRecord { + @Test public void testCreateFormulaRecord () { FormulaRecord record = new FormulaRecord(); record.setColumn((short)0); @@ -50,6 +51,7 @@ public final class TestFormulaRecord ext * Make sure a NAN value is preserved * This formula record is a representation of =1/0 at row 0, column 0 */ + @Test public void testCheckNanPreserve() { byte[] formulaByte = { 0, 0, 0, 0, @@ -95,8 +97,8 @@ public final class TestFormulaRecord ext /** * Tests to see if the shared formula cells properly reserialize the expPtg - * */ + @Test public void testExpFormula() { byte[] formulaByte = new byte[27]; @@ -114,6 +116,7 @@ public final class TestFormulaRecord ext assertEquals("Offset 22", 1, output[26]); } + @Test public void testWithConcat() { // =CHOOSE(2,A2,A3,A4) byte[] data = { @@ -150,7 +153,8 @@ public final class TestFormulaRecord ext FuncVarPtg choose = (FuncVarPtg)ptgs[8]; assertEquals("CHOOSE", choose.getName()); } - + + @Test public void testReserialize() { FormulaRecord formulaRecord = new FormulaRecord(); formulaRecord.setRow(1); @@ -168,15 +172,16 @@ public final class TestFormulaRecord ext RefPtg rp = (RefPtg) ptgs[0]; assertEquals("B$5", rp.toFormulaString()); } - + /** * Bug noticed while fixing 46479. Operands of conditional operator ( ? : ) were swapped * inside {@link FormulaRecord} */ + @Test public void testCachedValue_bug46479() { FormulaRecord fr0 = new FormulaRecord(); FormulaRecord fr1 = new FormulaRecord(); - // test some other cached value types + // test some other cached value types fr0.setValue(3.5); assertEquals(3.5, fr0.getValue(), 0.0); fr0.setCachedResultErrorCode(FormulaError.REF.getCode()); @@ -184,9 +189,7 @@ public final class TestFormulaRecord ext fr0.setCachedResultBoolean(false); fr1.setCachedResultBoolean(true); - if (fr0.getCachedBooleanValue() && !fr1.getCachedBooleanValue()) { - throw new AssertionFailedError("Identified bug 46479c"); - } + assertFalse("Identified bug 46479c", fr0.getCachedBooleanValue() && !fr1.getCachedBooleanValue()); assertFalse(fr0.getCachedBooleanValue()); assertTrue(fr1.getCachedBooleanValue()); } Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFtCblsSubRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFtCblsSubRecord.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFtCblsSubRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFtCblsSubRecord.java Fri Dec 27 23:00:13 2019 @@ -19,29 +19,29 @@ package org.apache.poi.hssf.record; import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; -import junit.framework.TestCase; +import org.junit.Test; /** * Tests the serialization and deserialization of the FtCblsSubRecord * class works correctly. - * - * @author Yegor Kozlov */ -public final class TestFtCblsSubRecord extends TestCase { +public final class TestFtCblsSubRecord { private final byte[] data = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x01, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00 }; + @Test public void testRead() { - FtCblsSubRecord record = new FtCblsSubRecord(TestcaseRecordInputStream.create(FtCblsSubRecord.sid, data), data.length); assertEquals(FtCblsSubRecord.sid, record.getSid()); assertEquals(data.length, record.getDataSize()); } + @Test public void testWrite() { FtCblsSubRecord record = new FtCblsSubRecord(); assertEquals(FtCblsSubRecord.sid, record.getSid()); @@ -49,11 +49,10 @@ public final class TestFtCblsSubRecord e byte [] ser = record.serialize(); assertEquals(ser.length - 4, data.length); - } - public void testClone() - { + @Test + public void testClone() { FtCblsSubRecord record = new FtCblsSubRecord(); byte[] src = record.serialize(); Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestInterfaceEndRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestInterfaceEndRecord.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestInterfaceEndRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestInterfaceEndRecord.java Fri Dec 27 23:00:13 2019 @@ -18,21 +18,23 @@ package org.apache.poi.hssf.record; -import junit.framework.TestCase; -import org.apache.poi.util.HexRead; -import org.apache.poi.util.HexDump; -import java.util.List; +import static org.junit.Assert.assertEquals; + import java.io.ByteArrayInputStream; +import java.util.List; + +import org.apache.poi.util.HexDump; +import org.apache.poi.util.HexRead; +import org.junit.Test; /** * Tests the serialization and deserialization of the EndSubRecord * class works correctly. Test data taken directly from a real * Excel file. - * - * @author Yegor Kozlov */ -public final class TestInterfaceEndRecord extends TestCase { +public final class TestInterfaceEndRecord { + @Test public void testCreate() { InterfaceEndRecord record = InterfaceEndRecord.instance; assertEquals(0, record.getDataSize()); @@ -43,6 +45,7 @@ public final class TestInterfaceEndRecor * Although it violates the spec, Excel silently converts this * data to an {@link InterfaceHdrRecord}. */ + @Test public void testUnexpectedBytes_bug47251(){ String hex = "" + "09 08 10 00 00 06 05 00 EC 15 CD 07 C1 C0 00 00 06 03 00 00 " + //BOF Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestLabelRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestLabelRecord.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestLabelRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestLabelRecord.java Fri Dec 27 23:00:13 2019 @@ -17,25 +17,21 @@ package org.apache.poi.hssf.record; +import java.io.IOException; + import org.apache.poi.hssf.HSSFTestDataSamples; import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.junit.Test; -import junit.framework.AssertionFailedError; -import junit.framework.TestCase; /** * Tests for <tt>LabelRecord</tt> - * - * @author Josh Micich */ -public final class TestLabelRecord extends TestCase { +public final class TestLabelRecord { - public void testEmptyString() { - HSSFWorkbook wb; - try { - wb = HSSFTestDataSamples.openSampleWorkbook("ex42570-20305.xls"); - } catch (NullPointerException e) { - throw new AssertionFailedError("Identified bug 42570"); + @Test + public void testEmptyString() throws IOException { + try (HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("ex42570-20305.xls")) { + HSSFTestDataSamples.writeOutAndReadBack(wb); } - HSSFTestDataSamples.writeOutAndReadBack(wb); } } Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestLbsDataSubRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestLbsDataSubRecord.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestLbsDataSubRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestLbsDataSubRecord.java Fri Dec 27 23:00:13 2019 @@ -19,30 +19,31 @@ package org.apache.poi.hssf.record; import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; -import junit.framework.TestCase; - import org.apache.poi.ss.formula.ptg.AreaPtg; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.util.HexRead; import org.apache.poi.util.LittleEndianInputStream; import org.apache.poi.util.LittleEndianOutputStream; +import org.junit.Test; /** * Tests the serialization and deserialization of the LbsDataSubRecord class works correctly. - * - * @author Yegor Kozlov */ -public final class TestLbsDataSubRecord extends TestCase { +public final class TestLbsDataSubRecord { /** * test read-write round trip * test data was taken from 47701.xls */ + @Test public void test_47701(){ byte[] data = HexRead.readFromString( "15, 00, 12, 00, 12, 00, 02, 00, 11, 20, " + @@ -76,6 +77,7 @@ public final class TestLbsDataSubRecord /** * test data was taken from the file attached to Bugzilla 45778 */ + @Test public void test_45778(){ byte[] data = HexRead.readFromString( "15, 00, 12, 00, 14, 00, 01, 00, 01, 00, " + @@ -115,6 +117,7 @@ public final class TestLbsDataSubRecord * Test data produced by OpenOffice 3.1 by opening and saving 47701.xls * There are 5 padding bytes that are removed by POI */ + @Test public void test_remove_padding(){ byte[] data = HexRead.readFromString( "5D, 00, 4C, 00, " + @@ -148,6 +151,7 @@ public final class TestLbsDataSubRecord assertArrayEquals(ser, ser2); } + @Test public void test_LbsDropData() throws IOException{ byte[] data = HexRead.readFromString( //LbsDropData Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestMergeCellsRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestMergeCellsRecord.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestMergeCellsRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestMergeCellsRecord.java Fri Dec 27 23:00:13 2019 @@ -17,27 +17,27 @@ package org.apache.poi.hssf.record; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotSame; + import java.util.ArrayList; import java.util.List; -import junit.framework.AssertionFailedError; -import junit.framework.TestCase; import org.apache.poi.hssf.model.RecordStream; import org.apache.poi.hssf.record.aggregates.MergedCellsTable; -import org.apache.poi.hssf.record.aggregates.RecordAggregate.RecordVisitor; import org.apache.poi.ss.util.CellRangeAddress; +import org.junit.Test; /** * Make sure the merge cells record behaves - * @author Danny Mui (dmui at apache dot org) - * */ -public final class TestMergeCellsRecord extends TestCase { +public final class TestMergeCellsRecord { /** * Make sure when a clone is called, we actually clone it. */ + @Test public void testCloneReferences() { CellRangeAddress[] cras = { new CellRangeAddress(0, 1, 0, 2), }; MergeCellsRecord merge = new MergeCellsRecord(cras, 0, cras.length); @@ -56,12 +56,7 @@ public final class TestMergeCellsRecord assertNotSame(merge.getAreaAt(0), clone.getAreaAt(0)); } - private static final RecordVisitor dummyRecordVisitor = new RecordVisitor() { - @Override - public void visitRecord(Record r) { - // do nothing - } - }; + @Test public void testMCTable_bug46009() { MergedCellsTable mct = new MergedCellsTable(); List<Record> recList = new ArrayList<>(); @@ -71,10 +66,6 @@ public final class TestMergeCellsRecord recList.add(new MergeCellsRecord(cras, 0, 1)); RecordStream rs = new RecordStream(recList, 0); mct.read(rs); - try { - mct.visitContainedRecords(dummyRecordVisitor); - } catch (ArrayStoreException e) { - throw new AssertionFailedError("Identified bug 46009"); - } + mct.visitContainedRecords(r -> {}); } } Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNameCommentRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNameCommentRecord.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNameCommentRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNameCommentRecord.java Fri Dec 27 23:00:13 2019 @@ -17,16 +17,16 @@ package org.apache.poi.hssf.record; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; import org.apache.poi.util.HexRead; +import org.junit.Test; /** * Tests the NameCommentRecord serializes/deserializes correctly - * - * @author Andrew Shirley (aks at corefiling.co.uk) */ -public final class TestNameCommentRecord extends TestCase { +public final class TestNameCommentRecord { + @Test public void testReserialize() { final byte[] data = HexRead .readFromString("" 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=1872041&r1=1872040&r2=1872041&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 Fri Dec 27 23:00:13 2019 @@ -17,29 +17,34 @@ package org.apache.poi.hssf.record; -import java.io.IOException; +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; -import junit.framework.TestCase; +import java.io.IOException; import org.apache.poi.hssf.usermodel.HSSFName; import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.poifs.storage.RawDataUtil; import org.apache.poi.ss.formula.ptg.Area3DPtg; import org.apache.poi.ss.formula.ptg.ArrayPtg; import org.apache.poi.ss.formula.ptg.NamePtg; import org.apache.poi.ss.formula.ptg.Ptg; import org.apache.poi.ss.formula.ptg.Ref3DPtg; import org.apache.poi.util.HexRead; +import org.junit.Test; /** * Tests the NameRecord serializes/deserializes correctly - * - * @author Danny Mui (dmui at apache dot org) */ -public final class TestNameRecord extends TestCase { +public final class TestNameRecord { /** * Makes sure that additional name information is parsed properly such as menu/description */ + @Test public void testFillExtras() { byte[] examples = HexRead.readFromString("" @@ -54,6 +59,7 @@ public final class TestNameRecord extend assertTrue(description.endsWith("Macro recorded 27-Sep-93 by ALLWOR")); } + @Test public void testReserialize() { byte[] data = HexRead .readFromString("" @@ -65,20 +71,20 @@ public final class TestNameRecord extend TestcaseRecordInputStream.confirmRecordEncoding(NameRecord.sid, data, data2); } + @Test public void testFormulaRelAbs_bug46174() throws IOException { // perhaps this testcase belongs on TestHSSFName - HSSFWorkbook wb = new HSSFWorkbook(); - HSSFName name = wb.createName(); - wb.createSheet("Sheet1"); - name.setNameName("test"); - name.setRefersToFormula("Sheet1!$B$3"); - if ("Sheet1!B3".equals(name.getRefersToFormula())) { - fail("Identified bug 46174"); + try (HSSFWorkbook wb = new HSSFWorkbook()) { + HSSFName name = wb.createName(); + wb.createSheet("Sheet1"); + name.setNameName("test"); + name.setRefersToFormula("Sheet1!$B$3"); + assertNotEquals("Sheet1!B3", name.getRefersToFormula()); + assertEquals("Sheet1!$B$3", name.getRefersToFormula()); } - assertEquals("Sheet1!$B$3", name.getRefersToFormula()); - wb.close(); } + @Test public void testFormulaGeneral() throws IOException { // perhaps this testcase belongs on TestHSSFName HSSFWorkbook wb = new HSSFWorkbook(); @@ -89,590 +95,27 @@ public final class TestNameRecord extend assertEquals("Sheet1!A1+Sheet1!A2", name.getRefersToFormula()); name.setRefersToFormula("5*6"); assertEquals("5*6", name.getRefersToFormula()); - + wb.close(); } /** * 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 "; + @Test + public void test50244() throws IOException { + byte[] data1 = RawDataUtil.decompress( + "H4sIAAAAAAAAAI3Zu2qWQRAA0I8EQcHGzkrwBcLO7B0sBR9AwdYIKdKFoPhovp7xLyQWyX+m2OWw7TIX5u3x/t1xHG9ePhyXxyl+" + + "fbz+cf3p/ufd3c3nm/vbm6tvx++L18fXy4fr4tVxxNWXLFelhCENlRCIZuiERAzDJFTEMmxCM/RiCMJApKESJqIZOmEhhmESNmIZ" + + "tiCKIYohCIlIQyVURDN0QkMMwyR0xDJswjDMYoizGH9Lzib8+6NnEIREpKESKqIZOqEhhmESOmIZNmEUQje0bViEipiGQUhENzRC" + + "IKohCQURZ3FKT0kYiDAUQjc87iCfwyJUxDQMQiK6oRECUQ1JKIgwFEHZhrUNizAR0zAIA9ENjdAR1ZCEhghDIVRDbsMiBGIaBqEg" + + "uqEZpmEZNiEMWQxBqIg0VEJDNEMndMQwTMJALMMmTMMqhiBsRBqqIAqiGTohEMMwCYlYhk2ohlYMQeiINFTCQDRDP4vT/FMNzdAJ" + + "gRiGSUjEMmxCNbRiCEJHpKEahqEbGqEhqiEJFRGGQkhDbMMiFMQ0jLM4padlmIZB6IhuaIT2Pz4c3188+VoNSaiIMBRCGh7PGc9h" + + "EQpiGoagbEQ3NMJCVEMSJiIMhTAMjxdcz2ERGmIaBqEiuqERElENSQhEGMrT+APX2vm3iyMAAA==" + ); + + assertArrayEquals(data1, data1); - byte[] data1 = HexRead.readFromString(record_0x0018 + record_0x03C); RecordInputStream in1 = TestcaseRecordInputStream.create(data1); NameRecord nr1 = new NameRecord(in1); assert_bug50244(nr1); @@ -697,13 +140,14 @@ public final class TestNameRecord extend assertEquals("1.T20.010", vals[vals.length - 1][0]); } + @Test public void testBug57923() { NameRecord record = new NameRecord(); assertEquals(0, record.getExternSheetNumber()); - + record.setNameDefinition(Ptg.EMPTY_PTG_ARRAY); assertEquals(0, record.getExternSheetNumber()); - + record.setNameDefinition(new Ptg[] {new NamePtg(1)}); assertEquals(0, record.getExternSheetNumber()); @@ -713,5 +157,5 @@ public final class TestNameRecord extend record.setNameDefinition(new Ptg[] {new Ref3DPtg("A1", 1)}); assertEquals(1, record.getExternSheetNumber()); } - + } Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNoteRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNoteRecord.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNoteRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNoteRecord.java Fri Dec 27 23:00:13 2019 @@ -18,19 +18,20 @@ package org.apache.poi.hssf.record; import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertTrue; -import junit.framework.AssertionFailedError; -import junit.framework.TestCase; import org.apache.poi.util.HexRead; +import org.junit.Test; /** * Tests the serialization and deserialization of the NoteRecord * class works correctly. Test data taken directly from a real * Excel file. - * - * @author Yegor Kozlov */ -public final class TestNoteRecord extends TestCase { +public final class TestNoteRecord { private final byte[] testData = HexRead.readFromString( "06 00 01 00 02 00 02 04 " + "1A 00 00 " + @@ -38,6 +39,7 @@ public final class TestNoteRecord extend "00" // padding byte ); + @Test public void testRead() { NoteRecord record = new NoteRecord(TestcaseRecordInputStream.create(NoteRecord.sid, testData)); @@ -50,6 +52,7 @@ public final class TestNoteRecord extend assertEquals("Apache Software Foundation", record.getAuthor()); } + @Test public void testWrite() { NoteRecord record = new NoteRecord(); assertEquals(NoteRecord.sid, record.getSid()); @@ -64,6 +67,7 @@ public final class TestNoteRecord extend TestcaseRecordInputStream.confirmRecordEncoding(NoteRecord.sid, testData, ser); } + @Test public void testClone() { NoteRecord record = new NoteRecord(); @@ -86,6 +90,7 @@ public final class TestNoteRecord extend assertArrayEquals(src, cln); } + @Test public void testUnicodeAuthor() { // This sample data was created by setting the 'user name' field in the 'Personalize' // section of Excel's options to \u30A2\u30D1\u30C3\u30C1\u65CF, and then @@ -97,9 +102,7 @@ public final class TestNoteRecord extend ); RecordInputStream in = TestcaseRecordInputStream.create(NoteRecord.sid, data); NoteRecord nr = new NoteRecord(in); - if ("\u00A2\u0030\u00D1\u0030\u00C3".equals(nr.getAuthor())) { - throw new AssertionFailedError("Identified bug in reading note with unicode author"); - } + assertNotEquals("Identified bug in reading note with unicode author","\u00A2\u0030\u00D1\u0030\u00C3", nr.getAuthor()); assertEquals("\u30A2\u30D1\u30C3\u30C1\u65CF", nr.getAuthor()); assertTrue(nr.authorIsMultibyte()); Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNoteStructureSubRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNoteStructureSubRecord.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNoteStructureSubRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNoteStructureSubRecord.java Fri Dec 27 23:00:13 2019 @@ -19,31 +19,31 @@ package org.apache.poi.hssf.record; import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; -import junit.framework.TestCase; +import org.junit.Test; /** * Tests the serialization and deserialization of the NoteRecord * class works correctly. Test data taken directly from a real * Excel file. - * - * @author Yegor Kozlov */ -public final class TestNoteStructureSubRecord extends TestCase { +public final class TestNoteStructureSubRecord { private final byte[] data = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, (byte)0x80, 0x00, 0x00, 0x00, 0x00, 0x00, (byte)0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, (byte)0x81, 0x01, (byte)0xCC, (byte)0xEC }; + @Test public void testRead() { - NoteStructureSubRecord record = new NoteStructureSubRecord(TestcaseRecordInputStream.create(NoteStructureSubRecord.sid, data), data.length); assertEquals(NoteStructureSubRecord.sid, record.getSid()); assertEquals(data.length, record.getDataSize()); } + @Test public void testWrite() { NoteStructureSubRecord record = new NoteStructureSubRecord(); assertEquals(NoteStructureSubRecord.sid, record.getSid()); @@ -51,11 +51,10 @@ public final class TestNoteStructureSubR byte [] ser = record.serialize(); assertEquals(ser.length - 4, data.length); - } - public void testClone() - { + @Test + public void testClone() { NoteStructureSubRecord record = new NoteStructureSubRecord(); byte[] src = record.serialize(); Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestPLVRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestPLVRecord.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestPLVRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestPLVRecord.java Fri Dec 27 23:00:13 2019 @@ -17,43 +17,39 @@ package org.apache.poi.hssf.record; -import junit.framework.AssertionFailedError; -import junit.framework.TestCase; +import java.io.InputStream; + import org.apache.poi.hssf.HSSFTestDataSamples; import org.apache.poi.hssf.usermodel.DVConstraint; import org.apache.poi.hssf.usermodel.HSSFDataValidation; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.DataValidationConstraint; import org.apache.poi.ss.util.CellRangeAddressList; - -import java.io.InputStream; +import org.junit.Test; /** * Verify that presence of PLV record doesn't break data * validation, bug #53972: * https://issues.apache.org/bugzilla/show_bug.cgi?id=53972 - * - * @author Andrew Novikov */ -public final class TestPLVRecord extends TestCase { +public final class TestPLVRecord { private final static String DV_DEFINITION = "$A$1:$A$5"; private final static String XLS_FILENAME = "53972.xls"; private final static String SHEET_NAME = "S2"; + @Test public void testPLVRecord() throws Exception { - InputStream is = HSSFTestDataSamples.openSampleFileStream(XLS_FILENAME); - HSSFWorkbook workbook = new HSSFWorkbook(is); + try (InputStream is = HSSFTestDataSamples.openSampleFileStream(XLS_FILENAME); + HSSFWorkbook workbook = new HSSFWorkbook(is)) { - CellRangeAddressList cellRange = new CellRangeAddressList(0, 0, 1, 1); - DataValidationConstraint constraint = DVConstraint.createFormulaListConstraint(DV_DEFINITION); - HSSFDataValidation dataValidation = new HSSFDataValidation(cellRange, constraint); + CellRangeAddressList cellRange = new CellRangeAddressList(0, 0, 1, 1); + DataValidationConstraint constraint = DVConstraint.createFormulaListConstraint(DV_DEFINITION); + HSSFDataValidation dataValidation = new HSSFDataValidation(cellRange, constraint); - // This used to throw an error before - try { + // This used to throw an IllegalStateException before + // Identified bug 53972, PLV record breaks addDataValidation() workbook.getSheet(SHEET_NAME).addValidationData(dataValidation); - } catch (IllegalStateException ex) { - throw new AssertionFailedError("Identified bug 53972, PLV record breaks addDataValidation()"); } } } Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestPaneRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestPaneRecord.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestPaneRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestPaneRecord.java Fri Dec 27 23:00:13 2019 @@ -18,16 +18,17 @@ package org.apache.poi.hssf.record; -import junit.framework.TestCase; +import static org.apache.poi.hssf.record.TestcaseRecordInputStream.confirmRecordEncoding; +import static org.junit.Assert.assertEquals; + +import org.junit.Test; /** * Tests the serialization and deserialization of the PaneRecord * class works correctly. Test data taken directly from a real * Excel file. - * - * @author Glen Stampoultzis (glens at apache.org) */ -public final class TestPaneRecord extends TestCase { +public final class TestPaneRecord { byte[] data = new byte[] { (byte)0x01, (byte)0x00, (byte)0x02, (byte)0x00, @@ -36,6 +37,7 @@ public final class TestPaneRecord extend (byte)0x02, (byte)0x00, }; + @Test public void testLoad() { PaneRecord record = new PaneRecord(TestcaseRecordInputStream.create(0x41, data)); @@ -48,8 +50,8 @@ public final class TestPaneRecord extend assertEquals( 14, record.getRecordSize() ); } - public void testStore() - { + @Test + public void testStore() { PaneRecord record = new PaneRecord(); record.setX( (short) 1); @@ -59,8 +61,6 @@ public final class TestPaneRecord extend record.setActivePane( PaneRecord.ACTIVE_PANE_LOWER_LEFT); byte [] recordBytes = record.serialize(); - assertEquals(recordBytes.length - 4, data.length); - for (int i = 0; i < data.length; i++) - assertEquals("At offset " + i, data[i], recordBytes[i+4]); + confirmRecordEncoding(PaneRecord.sid, data, recordBytes); } } Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestRecalcIdRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestRecalcIdRecord.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestRecalcIdRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestRecalcIdRecord.java Fri Dec 27 23:00:13 2019 @@ -18,17 +18,12 @@ package org.apache.poi.hssf.record; import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; import org.apache.poi.util.HexRead; -import org.apache.poi.util.RecordFormatException; +import org.junit.Test; -import junit.framework.AssertionFailedError; -import junit.framework.TestCase; -/** - * - * @author Josh Micich - */ -public final class TestRecalcIdRecord extends TestCase { +public final class TestRecalcIdRecord { private static RecalcIdRecord create(byte[] data) { RecordInputStream in = TestcaseRecordInputStream.create(RecalcIdRecord.sid, data); @@ -36,8 +31,10 @@ public final class TestRecalcIdRecord ex assertEquals(0, in.remaining()); return result; } + + @Test public void testBasicDeserializeReserialize() { - + byte[] data = HexRead.readFromString( "C1 01" + // rt "00 00" + // reserved @@ -47,8 +44,9 @@ public final class TestRecalcIdRecord ex TestcaseRecordInputStream.confirmRecordEncoding(RecalcIdRecord.sid, data, r.serialize()); } + @Test public void testBadFirstField_bug48096() { - /** + /* * Data taken from the sample file referenced in Bugzilla 48096, file offset 0x0D45. * The apparent problem is that the first data short field has been written with the * wrong <i>endianness</n>. Excel seems to ignore whatever value is present in this @@ -58,15 +56,10 @@ public final class TestRecalcIdRecord ex byte[] goodData = HexRead.readFromString("C1 01 08 00 C1 01 00 00 00 01 69 61"); RecordInputStream in = TestcaseRecordInputStream.create(badData); - RecalcIdRecord r; - try { - r = new RecalcIdRecord(in); - } catch (RecordFormatException e) { - if (e.getMessage().equals("expected 449 but got 49409")) { - throw new AssertionFailedError("Identified bug 48096"); - } - throw e; - } + + // bug 48096 - expected 449 but got 49409 + RecalcIdRecord r = new RecalcIdRecord(in); + assertEquals(0, in.remaining()); assertArrayEquals(r.serialize(), goodData); } Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestRecordInputStream.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestRecordInputStream.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestRecordInputStream.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestRecordInputStream.java Fri Dec 27 23:00:13 2019 @@ -17,17 +17,15 @@ package org.apache.poi.hssf.record; -import org.apache.poi.util.HexRead; +import static org.junit.Assert.assertEquals; -import junit.framework.AssertionFailedError; -import junit.framework.TestCase; +import org.apache.poi.util.HexRead; +import org.junit.Test; /** * Tests for {@link RecordInputStream} - * - * @author Josh Micich */ -public final class TestRecordInputStream extends TestCase { +public final class TestRecordInputStream { /** * Data inspired by attachment 22626 of bug 45866<br> @@ -51,6 +49,9 @@ public final class TestRecordInputStream + "01" // this bit uncompressed + "1A 59 00 8A 9E 8A " // 3 uncompressed unicode chars ; + + + @Test public void testChangeOfCompressionFlag_bug25866() { byte[] changingFlagSimpleData = HexRead.readFromString("" + "AA AA " // fake SID @@ -58,19 +59,13 @@ public final class TestRecordInputStream + HED_DUMP1 ); RecordInputStream in = TestcaseRecordInputStream.create(changingFlagSimpleData); - String actual; - try { - actual = in.readUnicodeLEString(18); - } catch (IllegalArgumentException e) { - if ("compressByte in continue records must be 1 while reading unicode LE string".equals(e.getMessage())) { - throw new AssertionFailedError("Identified bug 45866"); - } - - throw e; - } + + // bug 45866 - compressByte in continue records must be 1 while reading unicode LE string + String actual = in.readUnicodeLEString(18); assertEquals("\u591A\u8A00\u8A9E - Multilingual", actual); } + @Test public void testChangeFromUnCompressedToCompressed() { byte[] changingFlagSimpleData = HexRead.readFromString("" + "AA AA " // fake SID @@ -81,7 +76,8 @@ public final class TestRecordInputStream String actual = in.readCompressedUnicode(18); assertEquals("Multilingual - \u591A\u8A00\u8A9E", actual); } - + + @Test public void testReadString() { byte[] changingFlagFullData = HexRead.readFromString("" + "AA AA " // fake SID @@ -95,6 +91,8 @@ public final class TestRecordInputStream assertEquals("Multilingual - \u591A\u8A00\u8A9E", actual); } + @SuppressWarnings("ThrowableNotThrown") + @Test public void testLeftoverDataException() { // just ensure that the exception is created correctly, even with unknown sids new RecordInputStream.LeftoverDataException(1, 200); Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSCLRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSCLRecord.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSCLRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSCLRecord.java Fri Dec 27 23:00:13 2019 @@ -18,21 +18,22 @@ package org.apache.poi.hssf.record; -import junit.framework.TestCase; +import static org.apache.poi.hssf.record.TestcaseRecordInputStream.confirmRecordEncoding; +import static org.junit.Assert.assertEquals; + +import org.junit.Test; /** * Tests the serialization and deserialization of the SCLRecord * class works correctly. Test data taken directly from a real * Excel file. - * - - * @author Andrew C. Oliver (acoliver at apache.org) */ -public final class TestSCLRecord extends TestCase { +public final class TestSCLRecord { byte[] data = new byte[] { (byte)0x3,(byte)0x0,(byte)0x4,(byte)0x0 }; + @Test public void testLoad() { SCLRecord record = new SCLRecord(TestcaseRecordInputStream.create(0xa0, data)); assertEquals( 3, record.getNumerator()); @@ -41,16 +42,13 @@ public final class TestSCLRecord extends assertEquals( 8, record.getRecordSize() ); } - public void testStore() - { + @Test + public void testStore() { SCLRecord record = new SCLRecord(); record.setNumerator( (short)3 ); record.setDenominator( (short)4 ); - byte [] recordBytes = record.serialize(); - assertEquals(recordBytes.length - 4, data.length); - for (int i = 0; i < data.length; i++) - assertEquals("At offset " + i, data[i], recordBytes[i+4]); + confirmRecordEncoding(SCLRecord.sid, data, recordBytes); } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org For additional commands, e-mail: commits-h...@poi.apache.org