You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kafka.apache.org by jk...@apache.org on 2014/01/28 20:16:29 UTC

[3/7] KAFKA-1227 New producer!

http://git-wip-us.apache.org/repos/asf/kafka/blob/269d16d3/clients/src/main/java/kafka/common/utils/Crc32.java
----------------------------------------------------------------------
diff --git a/clients/src/main/java/kafka/common/utils/Crc32.java b/clients/src/main/java/kafka/common/utils/Crc32.java
new file mode 100644
index 0000000..d929c8d
--- /dev/null
+++ b/clients/src/main/java/kafka/common/utils/Crc32.java
@@ -0,0 +1,2169 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE
+ * file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package kafka.common.utils;
+
+import java.util.zip.Checksum;
+
+/**
+ * This class was taken from Hadoop org.apache.hadoop.util.PureJavaCrc32
+ * 
+ * A pure-java implementation of the CRC32 checksum that uses the same polynomial as the built-in native CRC32.
+ * 
+ * This is to avoid the JNI overhead for certain uses of Checksumming where many small pieces of data are checksummed in
+ * succession.
+ * 
+ * The current version is ~10x to 1.8x as fast as Sun's native java.util.zip.CRC32 in Java 1.6
+ * 
+ * @see java.util.zip.CRC32
+ */
+public class Crc32 implements Checksum {
+
+    /** the current CRC value, bit-flipped */
+    private int crc;
+
+    /** Create a new PureJavaCrc32 object. */
+    public Crc32() {
+        reset();
+    }
+
+    @Override
+    public long getValue() {
+        return (~crc) & 0xffffffffL;
+    }
+
+    @Override
+    public void reset() {
+        crc = 0xffffffff;
+    }
+
+    @Override
+    public void update(byte[] b, int off, int len) {
+        int localCrc = crc;
+
+        while (len > 7) {
+            final int c0 = (b[off + 0] ^ localCrc) & 0xff;
+            final int c1 = (b[off + 1] ^ (localCrc >>>= 8)) & 0xff;
+            final int c2 = (b[off + 2] ^ (localCrc >>>= 8)) & 0xff;
+            final int c3 = (b[off + 3] ^ (localCrc >>>= 8)) & 0xff;
+            localCrc = (T[T8_7_start + c0] ^ T[T8_6_start + c1]) ^ (T[T8_5_start + c2] ^ T[T8_4_start + c3]);
+
+            final int c4 = b[off + 4] & 0xff;
+            final int c5 = b[off + 5] & 0xff;
+            final int c6 = b[off + 6] & 0xff;
+            final int c7 = b[off + 7] & 0xff;
+
+            localCrc ^= (T[T8_3_start + c4] ^ T[T8_2_start + c5]) ^ (T[T8_1_start + c6] ^ T[T8_0_start + c7]);
+
+            off += 8;
+            len -= 8;
+        }
+
+        /* loop unroll - duff's device style */
+        switch (len) {
+            case 7:
+                localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
+            case 6:
+                localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
+            case 5:
+                localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
+            case 4:
+                localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
+            case 3:
+                localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
+            case 2:
+                localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
+            case 1:
+                localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
+            default:
+                /* nothing */
+        }
+
+        // Publish crc out to object
+        crc = localCrc;
+    }
+
+    @Override
+    final public void update(int b) {
+        crc = (crc >>> 8) ^ T[T8_0_start + ((crc ^ b) & 0xff)];
+    }
+
+    /*
+     * CRC-32 lookup tables generated by the polynomial 0xEDB88320. See also TestPureJavaCrc32.Table.
+     */
+    private static final int T8_0_start = 0 * 256;
+    private static final int T8_1_start = 1 * 256;
+    private static final int T8_2_start = 2 * 256;
+    private static final int T8_3_start = 3 * 256;
+    private static final int T8_4_start = 4 * 256;
+    private static final int T8_5_start = 5 * 256;
+    private static final int T8_6_start = 6 * 256;
+    private static final int T8_7_start = 7 * 256;
+
+    private static final int[] T = new int[] {
+                                              /* T8_0 */
+                                              0x00000000,
+                                              0x77073096,
+                                              0xEE0E612C,
+                                              0x990951BA,
+                                              0x076DC419,
+                                              0x706AF48F,
+                                              0xE963A535,
+                                              0x9E6495A3,
+                                              0x0EDB8832,
+                                              0x79DCB8A4,
+                                              0xE0D5E91E,
+                                              0x97D2D988,
+                                              0x09B64C2B,
+                                              0x7EB17CBD,
+                                              0xE7B82D07,
+                                              0x90BF1D91,
+                                              0x1DB71064,
+                                              0x6AB020F2,
+                                              0xF3B97148,
+                                              0x84BE41DE,
+                                              0x1ADAD47D,
+                                              0x6DDDE4EB,
+                                              0xF4D4B551,
+                                              0x83D385C7,
+                                              0x136C9856,
+                                              0x646BA8C0,
+                                              0xFD62F97A,
+                                              0x8A65C9EC,
+                                              0x14015C4F,
+                                              0x63066CD9,
+                                              0xFA0F3D63,
+                                              0x8D080DF5,
+                                              0x3B6E20C8,
+                                              0x4C69105E,
+                                              0xD56041E4,
+                                              0xA2677172,
+                                              0x3C03E4D1,
+                                              0x4B04D447,
+                                              0xD20D85FD,
+                                              0xA50AB56B,
+                                              0x35B5A8FA,
+                                              0x42B2986C,
+                                              0xDBBBC9D6,
+                                              0xACBCF940,
+                                              0x32D86CE3,
+                                              0x45DF5C75,
+                                              0xDCD60DCF,
+                                              0xABD13D59,
+                                              0x26D930AC,
+                                              0x51DE003A,
+                                              0xC8D75180,
+                                              0xBFD06116,
+                                              0x21B4F4B5,
+                                              0x56B3C423,
+                                              0xCFBA9599,
+                                              0xB8BDA50F,
+                                              0x2802B89E,
+                                              0x5F058808,
+                                              0xC60CD9B2,
+                                              0xB10BE924,
+                                              0x2F6F7C87,
+                                              0x58684C11,
+                                              0xC1611DAB,
+                                              0xB6662D3D,
+                                              0x76DC4190,
+                                              0x01DB7106,
+                                              0x98D220BC,
+                                              0xEFD5102A,
+                                              0x71B18589,
+                                              0x06B6B51F,
+                                              0x9FBFE4A5,
+                                              0xE8B8D433,
+                                              0x7807C9A2,
+                                              0x0F00F934,
+                                              0x9609A88E,
+                                              0xE10E9818,
+                                              0x7F6A0DBB,
+                                              0x086D3D2D,
+                                              0x91646C97,
+                                              0xE6635C01,
+                                              0x6B6B51F4,
+                                              0x1C6C6162,
+                                              0x856530D8,
+                                              0xF262004E,
+                                              0x6C0695ED,
+                                              0x1B01A57B,
+                                              0x8208F4C1,
+                                              0xF50FC457,
+                                              0x65B0D9C6,
+                                              0x12B7E950,
+                                              0x8BBEB8EA,
+                                              0xFCB9887C,
+                                              0x62DD1DDF,
+                                              0x15DA2D49,
+                                              0x8CD37CF3,
+                                              0xFBD44C65,
+                                              0x4DB26158,
+                                              0x3AB551CE,
+                                              0xA3BC0074,
+                                              0xD4BB30E2,
+                                              0x4ADFA541,
+                                              0x3DD895D7,
+                                              0xA4D1C46D,
+                                              0xD3D6F4FB,
+                                              0x4369E96A,
+                                              0x346ED9FC,
+                                              0xAD678846,
+                                              0xDA60B8D0,
+                                              0x44042D73,
+                                              0x33031DE5,
+                                              0xAA0A4C5F,
+                                              0xDD0D7CC9,
+                                              0x5005713C,
+                                              0x270241AA,
+                                              0xBE0B1010,
+                                              0xC90C2086,
+                                              0x5768B525,
+                                              0x206F85B3,
+                                              0xB966D409,
+                                              0xCE61E49F,
+                                              0x5EDEF90E,
+                                              0x29D9C998,
+                                              0xB0D09822,
+                                              0xC7D7A8B4,
+                                              0x59B33D17,
+                                              0x2EB40D81,
+                                              0xB7BD5C3B,
+                                              0xC0BA6CAD,
+                                              0xEDB88320,
+                                              0x9ABFB3B6,
+                                              0x03B6E20C,
+                                              0x74B1D29A,
+                                              0xEAD54739,
+                                              0x9DD277AF,
+                                              0x04DB2615,
+                                              0x73DC1683,
+                                              0xE3630B12,
+                                              0x94643B84,
+                                              0x0D6D6A3E,
+                                              0x7A6A5AA8,
+                                              0xE40ECF0B,
+                                              0x9309FF9D,
+                                              0x0A00AE27,
+                                              0x7D079EB1,
+                                              0xF00F9344,
+                                              0x8708A3D2,
+                                              0x1E01F268,
+                                              0x6906C2FE,
+                                              0xF762575D,
+                                              0x806567CB,
+                                              0x196C3671,
+                                              0x6E6B06E7,
+                                              0xFED41B76,
+                                              0x89D32BE0,
+                                              0x10DA7A5A,
+                                              0x67DD4ACC,
+                                              0xF9B9DF6F,
+                                              0x8EBEEFF9,
+                                              0x17B7BE43,
+                                              0x60B08ED5,
+                                              0xD6D6A3E8,
+                                              0xA1D1937E,
+                                              0x38D8C2C4,
+                                              0x4FDFF252,
+                                              0xD1BB67F1,
+                                              0xA6BC5767,
+                                              0x3FB506DD,
+                                              0x48B2364B,
+                                              0xD80D2BDA,
+                                              0xAF0A1B4C,
+                                              0x36034AF6,
+                                              0x41047A60,
+                                              0xDF60EFC3,
+                                              0xA867DF55,
+                                              0x316E8EEF,
+                                              0x4669BE79,
+                                              0xCB61B38C,
+                                              0xBC66831A,
+                                              0x256FD2A0,
+                                              0x5268E236,
+                                              0xCC0C7795,
+                                              0xBB0B4703,
+                                              0x220216B9,
+                                              0x5505262F,
+                                              0xC5BA3BBE,
+                                              0xB2BD0B28,
+                                              0x2BB45A92,
+                                              0x5CB36A04,
+                                              0xC2D7FFA7,
+                                              0xB5D0CF31,
+                                              0x2CD99E8B,
+                                              0x5BDEAE1D,
+                                              0x9B64C2B0,
+                                              0xEC63F226,
+                                              0x756AA39C,
+                                              0x026D930A,
+                                              0x9C0906A9,
+                                              0xEB0E363F,
+                                              0x72076785,
+                                              0x05005713,
+                                              0x95BF4A82,
+                                              0xE2B87A14,
+                                              0x7BB12BAE,
+                                              0x0CB61B38,
+                                              0x92D28E9B,
+                                              0xE5D5BE0D,
+                                              0x7CDCEFB7,
+                                              0x0BDBDF21,
+                                              0x86D3D2D4,
+                                              0xF1D4E242,
+                                              0x68DDB3F8,
+                                              0x1FDA836E,
+                                              0x81BE16CD,
+                                              0xF6B9265B,
+                                              0x6FB077E1,
+                                              0x18B74777,
+                                              0x88085AE6,
+                                              0xFF0F6A70,
+                                              0x66063BCA,
+                                              0x11010B5C,
+                                              0x8F659EFF,
+                                              0xF862AE69,
+                                              0x616BFFD3,
+                                              0x166CCF45,
+                                              0xA00AE278,
+                                              0xD70DD2EE,
+                                              0x4E048354,
+                                              0x3903B3C2,
+                                              0xA7672661,
+                                              0xD06016F7,
+                                              0x4969474D,
+                                              0x3E6E77DB,
+                                              0xAED16A4A,
+                                              0xD9D65ADC,
+                                              0x40DF0B66,
+                                              0x37D83BF0,
+                                              0xA9BCAE53,
+                                              0xDEBB9EC5,
+                                              0x47B2CF7F,
+                                              0x30B5FFE9,
+                                              0xBDBDF21C,
+                                              0xCABAC28A,
+                                              0x53B39330,
+                                              0x24B4A3A6,
+                                              0xBAD03605,
+                                              0xCDD70693,
+                                              0x54DE5729,
+                                              0x23D967BF,
+                                              0xB3667A2E,
+                                              0xC4614AB8,
+                                              0x5D681B02,
+                                              0x2A6F2B94,
+                                              0xB40BBE37,
+                                              0xC30C8EA1,
+                                              0x5A05DF1B,
+                                              0x2D02EF8D,
+                                              /* T8_1 */
+                                              0x00000000,
+                                              0x191B3141,
+                                              0x32366282,
+                                              0x2B2D53C3,
+                                              0x646CC504,
+                                              0x7D77F445,
+                                              0x565AA786,
+                                              0x4F4196C7,
+                                              0xC8D98A08,
+                                              0xD1C2BB49,
+                                              0xFAEFE88A,
+                                              0xE3F4D9CB,
+                                              0xACB54F0C,
+                                              0xB5AE7E4D,
+                                              0x9E832D8E,
+                                              0x87981CCF,
+                                              0x4AC21251,
+                                              0x53D92310,
+                                              0x78F470D3,
+                                              0x61EF4192,
+                                              0x2EAED755,
+                                              0x37B5E614,
+                                              0x1C98B5D7,
+                                              0x05838496,
+                                              0x821B9859,
+                                              0x9B00A918,
+                                              0xB02DFADB,
+                                              0xA936CB9A,
+                                              0xE6775D5D,
+                                              0xFF6C6C1C,
+                                              0xD4413FDF,
+                                              0xCD5A0E9E,
+                                              0x958424A2,
+                                              0x8C9F15E3,
+                                              0xA7B24620,
+                                              0xBEA97761,
+                                              0xF1E8E1A6,
+                                              0xE8F3D0E7,
+                                              0xC3DE8324,
+                                              0xDAC5B265,
+                                              0x5D5DAEAA,
+                                              0x44469FEB,
+                                              0x6F6BCC28,
+                                              0x7670FD69,
+                                              0x39316BAE,
+                                              0x202A5AEF,
+                                              0x0B07092C,
+                                              0x121C386D,
+                                              0xDF4636F3,
+                                              0xC65D07B2,
+                                              0xED705471,
+                                              0xF46B6530,
+                                              0xBB2AF3F7,
+                                              0xA231C2B6,
+                                              0x891C9175,
+                                              0x9007A034,
+                                              0x179FBCFB,
+                                              0x0E848DBA,
+                                              0x25A9DE79,
+                                              0x3CB2EF38,
+                                              0x73F379FF,
+                                              0x6AE848BE,
+                                              0x41C51B7D,
+                                              0x58DE2A3C,
+                                              0xF0794F05,
+                                              0xE9627E44,
+                                              0xC24F2D87,
+                                              0xDB541CC6,
+                                              0x94158A01,
+                                              0x8D0EBB40,
+                                              0xA623E883,
+                                              0xBF38D9C2,
+                                              0x38A0C50D,
+                                              0x21BBF44C,
+                                              0x0A96A78F,
+                                              0x138D96CE,
+                                              0x5CCC0009,
+                                              0x45D73148,
+                                              0x6EFA628B,
+                                              0x77E153CA,
+                                              0xBABB5D54,
+                                              0xA3A06C15,
+                                              0x888D3FD6,
+                                              0x91960E97,
+                                              0xDED79850,
+                                              0xC7CCA911,
+                                              0xECE1FAD2,
+                                              0xF5FACB93,
+                                              0x7262D75C,
+                                              0x6B79E61D,
+                                              0x4054B5DE,
+                                              0x594F849F,
+                                              0x160E1258,
+                                              0x0F152319,
+                                              0x243870DA,
+                                              0x3D23419B,
+                                              0x65FD6BA7,
+                                              0x7CE65AE6,
+                                              0x57CB0925,
+                                              0x4ED03864,
+                                              0x0191AEA3,
+                                              0x188A9FE2,
+                                              0x33A7CC21,
+                                              0x2ABCFD60,
+                                              0xAD24E1AF,
+                                              0xB43FD0EE,
+                                              0x9F12832D,
+                                              0x8609B26C,
+                                              0xC94824AB,
+                                              0xD05315EA,
+                                              0xFB7E4629,
+                                              0xE2657768,
+                                              0x2F3F79F6,
+                                              0x362448B7,
+                                              0x1D091B74,
+                                              0x04122A35,
+                                              0x4B53BCF2,
+                                              0x52488DB3,
+                                              0x7965DE70,
+                                              0x607EEF31,
+                                              0xE7E6F3FE,
+                                              0xFEFDC2BF,
+                                              0xD5D0917C,
+                                              0xCCCBA03D,
+                                              0x838A36FA,
+                                              0x9A9107BB,
+                                              0xB1BC5478,
+                                              0xA8A76539,
+                                              0x3B83984B,
+                                              0x2298A90A,
+                                              0x09B5FAC9,
+                                              0x10AECB88,
+                                              0x5FEF5D4F,
+                                              0x46F46C0E,
+                                              0x6DD93FCD,
+                                              0x74C20E8C,
+                                              0xF35A1243,
+                                              0xEA412302,
+                                              0xC16C70C1,
+                                              0xD8774180,
+                                              0x9736D747,
+                                              0x8E2DE606,
+                                              0xA500B5C5,
+                                              0xBC1B8484,
+                                              0x71418A1A,
+                                              0x685ABB5B,
+                                              0x4377E898,
+                                              0x5A6CD9D9,
+                                              0x152D4F1E,
+                                              0x0C367E5F,
+                                              0x271B2D9C,
+                                              0x3E001CDD,
+                                              0xB9980012,
+                                              0xA0833153,
+                                              0x8BAE6290,
+                                              0x92B553D1,
+                                              0xDDF4C516,
+                                              0xC4EFF457,
+                                              0xEFC2A794,
+                                              0xF6D996D5,
+                                              0xAE07BCE9,
+                                              0xB71C8DA8,
+                                              0x9C31DE6B,
+                                              0x852AEF2A,
+                                              0xCA6B79ED,
+                                              0xD37048AC,
+                                              0xF85D1B6F,
+                                              0xE1462A2E,
+                                              0x66DE36E1,
+                                              0x7FC507A0,
+                                              0x54E85463,
+                                              0x4DF36522,
+                                              0x02B2F3E5,
+                                              0x1BA9C2A4,
+                                              0x30849167,
+                                              0x299FA026,
+                                              0xE4C5AEB8,
+                                              0xFDDE9FF9,
+                                              0xD6F3CC3A,
+                                              0xCFE8FD7B,
+                                              0x80A96BBC,
+                                              0x99B25AFD,
+                                              0xB29F093E,
+                                              0xAB84387F,
+                                              0x2C1C24B0,
+                                              0x350715F1,
+                                              0x1E2A4632,
+                                              0x07317773,
+                                              0x4870E1B4,
+                                              0x516BD0F5,
+                                              0x7A468336,
+                                              0x635DB277,
+                                              0xCBFAD74E,
+                                              0xD2E1E60F,
+                                              0xF9CCB5CC,
+                                              0xE0D7848D,
+                                              0xAF96124A,
+                                              0xB68D230B,
+                                              0x9DA070C8,
+                                              0x84BB4189,
+                                              0x03235D46,
+                                              0x1A386C07,
+                                              0x31153FC4,
+                                              0x280E0E85,
+                                              0x674F9842,
+                                              0x7E54A903,
+                                              0x5579FAC0,
+                                              0x4C62CB81,
+                                              0x8138C51F,
+                                              0x9823F45E,
+                                              0xB30EA79D,
+                                              0xAA1596DC,
+                                              0xE554001B,
+                                              0xFC4F315A,
+                                              0xD7626299,
+                                              0xCE7953D8,
+                                              0x49E14F17,
+                                              0x50FA7E56,
+                                              0x7BD72D95,
+                                              0x62CC1CD4,
+                                              0x2D8D8A13,
+                                              0x3496BB52,
+                                              0x1FBBE891,
+                                              0x06A0D9D0,
+                                              0x5E7EF3EC,
+                                              0x4765C2AD,
+                                              0x6C48916E,
+                                              0x7553A02F,
+                                              0x3A1236E8,
+                                              0x230907A9,
+                                              0x0824546A,
+                                              0x113F652B,
+                                              0x96A779E4,
+                                              0x8FBC48A5,
+                                              0xA4911B66,
+                                              0xBD8A2A27,
+                                              0xF2CBBCE0,
+                                              0xEBD08DA1,
+                                              0xC0FDDE62,
+                                              0xD9E6EF23,
+                                              0x14BCE1BD,
+                                              0x0DA7D0FC,
+                                              0x268A833F,
+                                              0x3F91B27E,
+                                              0x70D024B9,
+                                              0x69CB15F8,
+                                              0x42E6463B,
+                                              0x5BFD777A,
+                                              0xDC656BB5,
+                                              0xC57E5AF4,
+                                              0xEE530937,
+                                              0xF7483876,
+                                              0xB809AEB1,
+                                              0xA1129FF0,
+                                              0x8A3FCC33,
+                                              0x9324FD72,
+                                              /* T8_2 */
+                                              0x00000000,
+                                              0x01C26A37,
+                                              0x0384D46E,
+                                              0x0246BE59,
+                                              0x0709A8DC,
+                                              0x06CBC2EB,
+                                              0x048D7CB2,
+                                              0x054F1685,
+                                              0x0E1351B8,
+                                              0x0FD13B8F,
+                                              0x0D9785D6,
+                                              0x0C55EFE1,
+                                              0x091AF964,
+                                              0x08D89353,
+                                              0x0A9E2D0A,
+                                              0x0B5C473D,
+                                              0x1C26A370,
+                                              0x1DE4C947,
+                                              0x1FA2771E,
+                                              0x1E601D29,
+                                              0x1B2F0BAC,
+                                              0x1AED619B,
+                                              0x18ABDFC2,
+                                              0x1969B5F5,
+                                              0x1235F2C8,
+                                              0x13F798FF,
+                                              0x11B126A6,
+                                              0x10734C91,
+                                              0x153C5A14,
+                                              0x14FE3023,
+                                              0x16B88E7A,
+                                              0x177AE44D,
+                                              0x384D46E0,
+                                              0x398F2CD7,
+                                              0x3BC9928E,
+                                              0x3A0BF8B9,
+                                              0x3F44EE3C,
+                                              0x3E86840B,
+                                              0x3CC03A52,
+                                              0x3D025065,
+                                              0x365E1758,
+                                              0x379C7D6F,
+                                              0x35DAC336,
+                                              0x3418A901,
+                                              0x3157BF84,
+                                              0x3095D5B3,
+                                              0x32D36BEA,
+                                              0x331101DD,
+                                              0x246BE590,
+                                              0x25A98FA7,
+                                              0x27EF31FE,
+                                              0x262D5BC9,
+                                              0x23624D4C,
+                                              0x22A0277B,
+                                              0x20E69922,
+                                              0x2124F315,
+                                              0x2A78B428,
+                                              0x2BBADE1F,
+                                              0x29FC6046,
+                                              0x283E0A71,
+                                              0x2D711CF4,
+                                              0x2CB376C3,
+                                              0x2EF5C89A,
+                                              0x2F37A2AD,
+                                              0x709A8DC0,
+                                              0x7158E7F7,
+                                              0x731E59AE,
+                                              0x72DC3399,
+                                              0x7793251C,
+                                              0x76514F2B,
+                                              0x7417F172,
+                                              0x75D59B45,
+                                              0x7E89DC78,
+                                              0x7F4BB64F,
+                                              0x7D0D0816,
+                                              0x7CCF6221,
+                                              0x798074A4,
+                                              0x78421E93,
+                                              0x7A04A0CA,
+                                              0x7BC6CAFD,
+                                              0x6CBC2EB0,
+                                              0x6D7E4487,
+                                              0x6F38FADE,
+                                              0x6EFA90E9,
+                                              0x6BB5866C,
+                                              0x6A77EC5B,
+                                              0x68315202,
+                                              0x69F33835,
+                                              0x62AF7F08,
+                                              0x636D153F,
+                                              0x612BAB66,
+                                              0x60E9C151,
+                                              0x65A6D7D4,
+                                              0x6464BDE3,
+                                              0x662203BA,
+                                              0x67E0698D,
+                                              0x48D7CB20,
+                                              0x4915A117,
+                                              0x4B531F4E,
+                                              0x4A917579,
+                                              0x4FDE63FC,
+                                              0x4E1C09CB,
+                                              0x4C5AB792,
+                                              0x4D98DDA5,
+                                              0x46C49A98,
+                                              0x4706F0AF,
+                                              0x45404EF6,
+                                              0x448224C1,
+                                              0x41CD3244,
+                                              0x400F5873,
+                                              0x4249E62A,
+                                              0x438B8C1D,
+                                              0x54F16850,
+                                              0x55330267,
+                                              0x5775BC3E,
+                                              0x56B7D609,
+                                              0x53F8C08C,
+                                              0x523AAABB,
+                                              0x507C14E2,
+                                              0x51BE7ED5,
+                                              0x5AE239E8,
+                                              0x5B2053DF,
+                                              0x5966ED86,
+                                              0x58A487B1,
+                                              0x5DEB9134,
+                                              0x5C29FB03,
+                                              0x5E6F455A,
+                                              0x5FAD2F6D,
+                                              0xE1351B80,
+                                              0xE0F771B7,
+                                              0xE2B1CFEE,
+                                              0xE373A5D9,
+                                              0xE63CB35C,
+                                              0xE7FED96B,
+                                              0xE5B86732,
+                                              0xE47A0D05,
+                                              0xEF264A38,
+                                              0xEEE4200F,
+                                              0xECA29E56,
+                                              0xED60F461,
+                                              0xE82FE2E4,
+                                              0xE9ED88D3,
+                                              0xEBAB368A,
+                                              0xEA695CBD,
+                                              0xFD13B8F0,
+                                              0xFCD1D2C7,
+                                              0xFE976C9E,
+                                              0xFF5506A9,
+                                              0xFA1A102C,
+                                              0xFBD87A1B,
+                                              0xF99EC442,
+                                              0xF85CAE75,
+                                              0xF300E948,
+                                              0xF2C2837F,
+                                              0xF0843D26,
+                                              0xF1465711,
+                                              0xF4094194,
+                                              0xF5CB2BA3,
+                                              0xF78D95FA,
+                                              0xF64FFFCD,
+                                              0xD9785D60,
+                                              0xD8BA3757,
+                                              0xDAFC890E,
+                                              0xDB3EE339,
+                                              0xDE71F5BC,
+                                              0xDFB39F8B,
+                                              0xDDF521D2,
+                                              0xDC374BE5,
+                                              0xD76B0CD8,
+                                              0xD6A966EF,
+                                              0xD4EFD8B6,
+                                              0xD52DB281,
+                                              0xD062A404,
+                                              0xD1A0CE33,
+                                              0xD3E6706A,
+                                              0xD2241A5D,
+                                              0xC55EFE10,
+                                              0xC49C9427,
+                                              0xC6DA2A7E,
+                                              0xC7184049,
+                                              0xC25756CC,
+                                              0xC3953CFB,
+                                              0xC1D382A2,
+                                              0xC011E895,
+                                              0xCB4DAFA8,
+                                              0xCA8FC59F,
+                                              0xC8C97BC6,
+                                              0xC90B11F1,
+                                              0xCC440774,
+                                              0xCD866D43,
+                                              0xCFC0D31A,
+                                              0xCE02B92D,
+                                              0x91AF9640,
+                                              0x906DFC77,
+                                              0x922B422E,
+                                              0x93E92819,
+                                              0x96A63E9C,
+                                              0x976454AB,
+                                              0x9522EAF2,
+                                              0x94E080C5,
+                                              0x9FBCC7F8,
+                                              0x9E7EADCF,
+                                              0x9C381396,
+                                              0x9DFA79A1,
+                                              0x98B56F24,
+                                              0x99770513,
+                                              0x9B31BB4A,
+                                              0x9AF3D17D,
+                                              0x8D893530,
+                                              0x8C4B5F07,
+                                              0x8E0DE15E,
+                                              0x8FCF8B69,
+                                              0x8A809DEC,
+                                              0x8B42F7DB,
+                                              0x89044982,
+                                              0x88C623B5,
+                                              0x839A6488,
+                                              0x82580EBF,
+                                              0x801EB0E6,
+                                              0x81DCDAD1,
+                                              0x8493CC54,
+                                              0x8551A663,
+                                              0x8717183A,
+                                              0x86D5720D,
+                                              0xA9E2D0A0,
+                                              0xA820BA97,
+                                              0xAA6604CE,
+                                              0xABA46EF9,
+                                              0xAEEB787C,
+                                              0xAF29124B,
+                                              0xAD6FAC12,
+                                              0xACADC625,
+                                              0xA7F18118,
+                                              0xA633EB2F,
+                                              0xA4755576,
+                                              0xA5B73F41,
+                                              0xA0F829C4,
+                                              0xA13A43F3,
+                                              0xA37CFDAA,
+                                              0xA2BE979D,
+                                              0xB5C473D0,
+                                              0xB40619E7,
+                                              0xB640A7BE,
+                                              0xB782CD89,
+                                              0xB2CDDB0C,
+                                              0xB30FB13B,
+                                              0xB1490F62,
+                                              0xB08B6555,
+                                              0xBBD72268,
+                                              0xBA15485F,
+                                              0xB853F606,
+                                              0xB9919C31,
+                                              0xBCDE8AB4,
+                                              0xBD1CE083,
+                                              0xBF5A5EDA,
+                                              0xBE9834ED,
+                                              /* T8_3 */
+                                              0x00000000,
+                                              0xB8BC6765,
+                                              0xAA09C88B,
+                                              0x12B5AFEE,
+                                              0x8F629757,
+                                              0x37DEF032,
+                                              0x256B5FDC,
+                                              0x9DD738B9,
+                                              0xC5B428EF,
+                                              0x7D084F8A,
+                                              0x6FBDE064,
+                                              0xD7018701,
+                                              0x4AD6BFB8,
+                                              0xF26AD8DD,
+                                              0xE0DF7733,
+                                              0x58631056,
+                                              0x5019579F,
+                                              0xE8A530FA,
+                                              0xFA109F14,
+                                              0x42ACF871,
+                                              0xDF7BC0C8,
+                                              0x67C7A7AD,
+                                              0x75720843,
+                                              0xCDCE6F26,
+                                              0x95AD7F70,
+                                              0x2D111815,
+                                              0x3FA4B7FB,
+                                              0x8718D09E,
+                                              0x1ACFE827,
+                                              0xA2738F42,
+                                              0xB0C620AC,
+                                              0x087A47C9,
+                                              0xA032AF3E,
+                                              0x188EC85B,
+                                              0x0A3B67B5,
+                                              0xB28700D0,
+                                              0x2F503869,
+                                              0x97EC5F0C,
+                                              0x8559F0E2,
+                                              0x3DE59787,
+                                              0x658687D1,
+                                              0xDD3AE0B4,
+                                              0xCF8F4F5A,
+                                              0x7733283F,
+                                              0xEAE41086,
+                                              0x525877E3,
+                                              0x40EDD80D,
+                                              0xF851BF68,
+                                              0xF02BF8A1,
+                                              0x48979FC4,
+                                              0x5A22302A,
+                                              0xE29E574F,
+                                              0x7F496FF6,
+                                              0xC7F50893,
+                                              0xD540A77D,
+                                              0x6DFCC018,
+                                              0x359FD04E,
+                                              0x8D23B72B,
+                                              0x9F9618C5,
+                                              0x272A7FA0,
+                                              0xBAFD4719,
+                                              0x0241207C,
+                                              0x10F48F92,
+                                              0xA848E8F7,
+                                              0x9B14583D,
+                                              0x23A83F58,
+                                              0x311D90B6,
+                                              0x89A1F7D3,
+                                              0x1476CF6A,
+                                              0xACCAA80F,
+                                              0xBE7F07E1,
+                                              0x06C36084,
+                                              0x5EA070D2,
+                                              0xE61C17B7,
+                                              0xF4A9B859,
+                                              0x4C15DF3C,
+                                              0xD1C2E785,
+                                              0x697E80E0,
+                                              0x7BCB2F0E,
+                                              0xC377486B,
+                                              0xCB0D0FA2,
+                                              0x73B168C7,
+                                              0x6104C729,
+                                              0xD9B8A04C,
+                                              0x446F98F5,
+                                              0xFCD3FF90,
+                                              0xEE66507E,
+                                              0x56DA371B,
+                                              0x0EB9274D,
+                                              0xB6054028,
+                                              0xA4B0EFC6,
+                                              0x1C0C88A3,
+                                              0x81DBB01A,
+                                              0x3967D77F,
+                                              0x2BD27891,
+                                              0x936E1FF4,
+                                              0x3B26F703,
+                                              0x839A9066,
+                                              0x912F3F88,
+                                              0x299358ED,
+                                              0xB4446054,
+                                              0x0CF80731,
+                                              0x1E4DA8DF,
+                                              0xA6F1CFBA,
+                                              0xFE92DFEC,
+                                              0x462EB889,
+                                              0x549B1767,
+                                              0xEC277002,
+                                              0x71F048BB,
+                                              0xC94C2FDE,
+                                              0xDBF98030,
+                                              0x6345E755,
+                                              0x6B3FA09C,
+                                              0xD383C7F9,
+                                              0xC1366817,
+                                              0x798A0F72,
+                                              0xE45D37CB,
+                                              0x5CE150AE,
+                                              0x4E54FF40,
+                                              0xF6E89825,
+                                              0xAE8B8873,
+                                              0x1637EF16,
+                                              0x048240F8,
+                                              0xBC3E279D,
+                                              0x21E91F24,
+                                              0x99557841,
+                                              0x8BE0D7AF,
+                                              0x335CB0CA,
+                                              0xED59B63B,
+                                              0x55E5D15E,
+                                              0x47507EB0,
+                                              0xFFEC19D5,
+                                              0x623B216C,
+                                              0xDA874609,
+                                              0xC832E9E7,
+                                              0x708E8E82,
+                                              0x28ED9ED4,
+                                              0x9051F9B1,
+                                              0x82E4565F,
+                                              0x3A58313A,
+                                              0xA78F0983,
+                                              0x1F336EE6,
+                                              0x0D86C108,
+                                              0xB53AA66D,
+                                              0xBD40E1A4,
+                                              0x05FC86C1,
+                                              0x1749292F,
+                                              0xAFF54E4A,
+                                              0x322276F3,
+                                              0x8A9E1196,
+                                              0x982BBE78,
+                                              0x2097D91D,
+                                              0x78F4C94B,
+                                              0xC048AE2E,
+                                              0xD2FD01C0,
+                                              0x6A4166A5,
+                                              0xF7965E1C,
+                                              0x4F2A3979,
+                                              0x5D9F9697,
+                                              0xE523F1F2,
+                                              0x4D6B1905,
+                                              0xF5D77E60,
+                                              0xE762D18E,
+                                              0x5FDEB6EB,
+                                              0xC2098E52,
+                                              0x7AB5E937,
+                                              0x680046D9,
+                                              0xD0BC21BC,
+                                              0x88DF31EA,
+                                              0x3063568F,
+                                              0x22D6F961,
+                                              0x9A6A9E04,
+                                              0x07BDA6BD,
+                                              0xBF01C1D8,
+                                              0xADB46E36,
+                                              0x15080953,
+                                              0x1D724E9A,
+                                              0xA5CE29FF,
+                                              0xB77B8611,
+                                              0x0FC7E174,
+                                              0x9210D9CD,
+                                              0x2AACBEA8,
+                                              0x38191146,
+                                              0x80A57623,
+                                              0xD8C66675,
+                                              0x607A0110,
+                                              0x72CFAEFE,
+                                              0xCA73C99B,
+                                              0x57A4F122,
+                                              0xEF189647,
+                                              0xFDAD39A9,
+                                              0x45115ECC,
+                                              0x764DEE06,
+                                              0xCEF18963,
+                                              0xDC44268D,
+                                              0x64F841E8,
+                                              0xF92F7951,
+                                              0x41931E34,
+                                              0x5326B1DA,
+                                              0xEB9AD6BF,
+                                              0xB3F9C6E9,
+                                              0x0B45A18C,
+                                              0x19F00E62,
+                                              0xA14C6907,
+                                              0x3C9B51BE,
+                                              0x842736DB,
+                                              0x96929935,
+                                              0x2E2EFE50,
+                                              0x2654B999,
+                                              0x9EE8DEFC,
+                                              0x8C5D7112,
+                                              0x34E11677,
+                                              0xA9362ECE,
+                                              0x118A49AB,
+                                              0x033FE645,
+                                              0xBB838120,
+                                              0xE3E09176,
+                                              0x5B5CF613,
+                                              0x49E959FD,
+                                              0xF1553E98,
+                                              0x6C820621,
+                                              0xD43E6144,
+                                              0xC68BCEAA,
+                                              0x7E37A9CF,
+                                              0xD67F4138,
+                                              0x6EC3265D,
+                                              0x7C7689B3,
+                                              0xC4CAEED6,
+                                              0x591DD66F,
+                                              0xE1A1B10A,
+                                              0xF3141EE4,
+                                              0x4BA87981,
+                                              0x13CB69D7,
+                                              0xAB770EB2,
+                                              0xB9C2A15C,
+                                              0x017EC639,
+                                              0x9CA9FE80,
+                                              0x241599E5,
+                                              0x36A0360B,
+                                              0x8E1C516E,
+                                              0x866616A7,
+                                              0x3EDA71C2,
+                                              0x2C6FDE2C,
+                                              0x94D3B949,
+                                              0x090481F0,
+                                              0xB1B8E695,
+                                              0xA30D497B,
+                                              0x1BB12E1E,
+                                              0x43D23E48,
+                                              0xFB6E592D,
+                                              0xE9DBF6C3,
+                                              0x516791A6,
+                                              0xCCB0A91F,
+                                              0x740CCE7A,
+                                              0x66B96194,
+                                              0xDE0506F1,
+                                              /* T8_4 */
+                                              0x00000000,
+                                              0x3D6029B0,
+                                              0x7AC05360,
+                                              0x47A07AD0,
+                                              0xF580A6C0,
+                                              0xC8E08F70,
+                                              0x8F40F5A0,
+                                              0xB220DC10,
+                                              0x30704BC1,
+                                              0x0D106271,
+                                              0x4AB018A1,
+                                              0x77D03111,
+                                              0xC5F0ED01,
+                                              0xF890C4B1,
+                                              0xBF30BE61,
+                                              0x825097D1,
+                                              0x60E09782,
+                                              0x5D80BE32,
+                                              0x1A20C4E2,
+                                              0x2740ED52,
+                                              0x95603142,
+                                              0xA80018F2,
+                                              0xEFA06222,
+                                              0xD2C04B92,
+                                              0x5090DC43,
+                                              0x6DF0F5F3,
+                                              0x2A508F23,
+                                              0x1730A693,
+                                              0xA5107A83,
+                                              0x98705333,
+                                              0xDFD029E3,
+                                              0xE2B00053,
+                                              0xC1C12F04,
+                                              0xFCA106B4,
+                                              0xBB017C64,
+                                              0x866155D4,
+                                              0x344189C4,
+                                              0x0921A074,
+                                              0x4E81DAA4,
+                                              0x73E1F314,
+                                              0xF1B164C5,
+                                              0xCCD14D75,
+                                              0x8B7137A5,
+                                              0xB6111E15,
+                                              0x0431C205,
+                                              0x3951EBB5,
+                                              0x7EF19165,
+                                              0x4391B8D5,
+                                              0xA121B886,
+                                              0x9C419136,
+                                              0xDBE1EBE6,
+                                              0xE681C256,
+                                              0x54A11E46,
+                                              0x69C137F6,
+                                              0x2E614D26,
+                                              0x13016496,
+                                              0x9151F347,
+                                              0xAC31DAF7,
+                                              0xEB91A027,
+                                              0xD6F18997,
+                                              0x64D15587,
+                                              0x59B17C37,
+                                              0x1E1106E7,
+                                              0x23712F57,
+                                              0x58F35849,
+                                              0x659371F9,
+                                              0x22330B29,
+                                              0x1F532299,
+                                              0xAD73FE89,
+                                              0x9013D739,
+                                              0xD7B3ADE9,
+                                              0xEAD38459,
+                                              0x68831388,
+                                              0x55E33A38,
+                                              0x124340E8,
+                                              0x2F236958,
+                                              0x9D03B548,
+                                              0xA0639CF8,
+                                              0xE7C3E628,
+                                              0xDAA3CF98,
+                                              0x3813CFCB,
+                                              0x0573E67B,
+                                              0x42D39CAB,
+                                              0x7FB3B51B,
+                                              0xCD93690B,
+                                              0xF0F340BB,
+                                              0xB7533A6B,
+                                              0x8A3313DB,
+                                              0x0863840A,
+                                              0x3503ADBA,
+                                              0x72A3D76A,
+                                              0x4FC3FEDA,
+                                              0xFDE322CA,
+                                              0xC0830B7A,
+                                              0x872371AA,
+                                              0xBA43581A,
+                                              0x9932774D,
+                                              0xA4525EFD,
+                                              0xE3F2242D,
+                                              0xDE920D9D,
+                                              0x6CB2D18D,
+                                              0x51D2F83D,
+                                              0x167282ED,
+                                              0x2B12AB5D,
+                                              0xA9423C8C,
+                                              0x9422153C,
+                                              0xD3826FEC,
+                                              0xEEE2465C,
+                                              0x5CC29A4C,
+                                              0x61A2B3FC,
+                                              0x2602C92C,
+                                              0x1B62E09C,
+                                              0xF9D2E0CF,
+                                              0xC4B2C97F,
+                                              0x8312B3AF,
+                                              0xBE729A1F,
+                                              0x0C52460F,
+                                              0x31326FBF,
+                                              0x7692156F,
+                                              0x4BF23CDF,
+                                              0xC9A2AB0E,
+                                              0xF4C282BE,
+                                              0xB362F86E,
+                                              0x8E02D1DE,
+                                              0x3C220DCE,
+                                              0x0142247E,
+                                              0x46E25EAE,
+                                              0x7B82771E,
+                                              0xB1E6B092,
+                                              0x8C869922,
+                                              0xCB26E3F2,
+                                              0xF646CA42,
+                                              0x44661652,
+                                              0x79063FE2,
+                                              0x3EA64532,
+                                              0x03C66C82,
+                                              0x8196FB53,
+                                              0xBCF6D2E3,
+                                              0xFB56A833,
+                                              0xC6368183,
+                                              0x74165D93,
+                                              0x49767423,
+                                              0x0ED60EF3,
+                                              0x33B62743,
+                                              0xD1062710,
+                                              0xEC660EA0,
+                                              0xABC67470,
+                                              0x96A65DC0,
+                                              0x248681D0,
+                                              0x19E6A860,
+                                              0x5E46D2B0,
+                                              0x6326FB00,
+                                              0xE1766CD1,
+                                              0xDC164561,
+                                              0x9BB63FB1,
+                                              0xA6D61601,
+                                              0x14F6CA11,
+                                              0x2996E3A1,
+                                              0x6E369971,
+                                              0x5356B0C1,
+                                              0x70279F96,
+                                              0x4D47B626,
+                                              0x0AE7CCF6,
+                                              0x3787E546,
+                                              0x85A73956,
+                                              0xB8C710E6,
+                                              0xFF676A36,
+                                              0xC2074386,
+                                              0x4057D457,
+                                              0x7D37FDE7,
+                                              0x3A978737,
+                                              0x07F7AE87,
+                                              0xB5D77297,
+                                              0x88B75B27,
+                                              0xCF1721F7,
+                                              0xF2770847,
+                                              0x10C70814,
+                                              0x2DA721A4,
+                                              0x6A075B74,
+                                              0x576772C4,
+                                              0xE547AED4,
+                                              0xD8278764,
+                                              0x9F87FDB4,
+                                              0xA2E7D404,
+                                              0x20B743D5,
+                                              0x1DD76A65,
+                                              0x5A7710B5,
+                                              0x67173905,
+                                              0xD537E515,
+                                              0xE857CCA5,
+                                              0xAFF7B675,
+                                              0x92979FC5,
+                                              0xE915E8DB,
+                                              0xD475C16B,
+                                              0x93D5BBBB,
+                                              0xAEB5920B,
+                                              0x1C954E1B,
+                                              0x21F567AB,
+                                              0x66551D7B,
+                                              0x5B3534CB,
+                                              0xD965A31A,
+                                              0xE4058AAA,
+                                              0xA3A5F07A,
+                                              0x9EC5D9CA,
+                                              0x2CE505DA,
+                                              0x11852C6A,
+                                              0x562556BA,
+                                              0x6B457F0A,
+                                              0x89F57F59,
+                                              0xB49556E9,
+                                              0xF3352C39,
+                                              0xCE550589,
+                                              0x7C75D999,
+                                              0x4115F029,
+                                              0x06B58AF9,
+                                              0x3BD5A349,
+                                              0xB9853498,
+                                              0x84E51D28,
+                                              0xC34567F8,
+                                              0xFE254E48,
+                                              0x4C059258,
+                                              0x7165BBE8,
+                                              0x36C5C138,
+                                              0x0BA5E888,
+                                              0x28D4C7DF,
+                                              0x15B4EE6F,
+                                              0x521494BF,
+                                              0x6F74BD0F,
+                                              0xDD54611F,
+                                              0xE03448AF,
+                                              0xA794327F,
+                                              0x9AF41BCF,
+                                              0x18A48C1E,
+                                              0x25C4A5AE,
+                                              0x6264DF7E,
+                                              0x5F04F6CE,
+                                              0xED242ADE,
+                                              0xD044036E,
+                                              0x97E479BE,
+                                              0xAA84500E,
+                                              0x4834505D,
+                                              0x755479ED,
+                                              0x32F4033D,
+                                              0x0F942A8D,
+                                              0xBDB4F69D,
+                                              0x80D4DF2D,
+                                              0xC774A5FD,
+                                              0xFA148C4D,
+                                              0x78441B9C,
+                                              0x4524322C,
+                                              0x028448FC,
+                                              0x3FE4614C,
+                                              0x8DC4BD5C,
+                                              0xB0A494EC,
+                                              0xF704EE3C,
+                                              0xCA64C78C,
+                                              /* T8_5 */
+                                              0x00000000,
+                                              0xCB5CD3A5,
+                                              0x4DC8A10B,
+                                              0x869472AE,
+                                              0x9B914216,
+                                              0x50CD91B3,
+                                              0xD659E31D,
+                                              0x1D0530B8,
+                                              0xEC53826D,
+                                              0x270F51C8,
+                                              0xA19B2366,
+                                              0x6AC7F0C3,
+                                              0x77C2C07B,
+                                              0xBC9E13DE,
+                                              0x3A0A6170,
+                                              0xF156B2D5,
+                                              0x03D6029B,
+                                              0xC88AD13E,
+                                              0x4E1EA390,
+                                              0x85427035,
+                                              0x9847408D,
+                                              0x531B9328,
+                                              0xD58FE186,
+                                              0x1ED33223,
+                                              0xEF8580F6,
+                                              0x24D95353,
+                                              0xA24D21FD,
+                                              0x6911F258,
+                                              0x7414C2E0,
+                                              0xBF481145,
+                                              0x39DC63EB,
+                                              0xF280B04E,
+                                              0x07AC0536,
+                                              0xCCF0D693,
+                                              0x4A64A43D,
+                                              0x81387798,
+                                              0x9C3D4720,
+                                              0x57619485,
+                                              0xD1F5E62B,
+                                              0x1AA9358E,
+                                              0xEBFF875B,
+                                              0x20A354FE,
+                                              0xA6372650,
+                                              0x6D6BF5F5,
+                                              0x706EC54D,
+                                              0xBB3216E8,
+                                              0x3DA66446,
+                                              0xF6FAB7E3,
+                                              0x047A07AD,
+                                              0xCF26D408,
+                                              0x49B2A6A6,
+                                              0x82EE7503,
+                                              0x9FEB45BB,
+                                              0x54B7961E,
+                                              0xD223E4B0,
+                                              0x197F3715,
+                                              0xE82985C0,
+                                              0x23755665,
+                                              0xA5E124CB,
+                                              0x6EBDF76E,
+                                              0x73B8C7D6,
+                                              0xB8E41473,
+                                              0x3E7066DD,
+                                              0xF52CB578,
+                                              0x0F580A6C,
+                                              0xC404D9C9,
+                                              0x4290AB67,
+                                              0x89CC78C2,
+                                              0x94C9487A,
+                                              0x5F959BDF,
+                                              0xD901E971,
+                                              0x125D3AD4,
+                                              0xE30B8801,
+                                              0x28575BA4,
+                                              0xAEC3290A,
+                                              0x659FFAAF,
+                                              0x789ACA17,
+                                              0xB3C619B2,
+                                              0x35526B1C,
+                                              0xFE0EB8B9,
+                                              0x0C8E08F7,
+                                              0xC7D2DB52,
+                                              0x4146A9FC,
+                                              0x8A1A7A59,
+                                              0x971F4AE1,
+                                              0x5C439944,
+                                              0xDAD7EBEA,
+                                              0x118B384F,
+                                              0xE0DD8A9A,
+                                              0x2B81593F,
+                                              0xAD152B91,
+                                              0x6649F834,
+                                              0x7B4CC88C,
+                                              0xB0101B29,
+                                              0x36846987,
+                                              0xFDD8BA22,
+                                              0x08F40F5A,
+                                              0xC3A8DCFF,
+                                              0x453CAE51,
+                                              0x8E607DF4,
+                                              0x93654D4C,
+                                              0x58399EE9,
+                                              0xDEADEC47,
+                                              0x15F13FE2,
+                                              0xE4A78D37,
+                                              0x2FFB5E92,
+                                              0xA96F2C3C,
+                                              0x6233FF99,
+                                              0x7F36CF21,
+                                              0xB46A1C84,
+                                              0x32FE6E2A,
+                                              0xF9A2BD8F,
+                                              0x0B220DC1,
+                                              0xC07EDE64,
+                                              0x46EAACCA,
+                                              0x8DB67F6F,
+                                              0x90B34FD7,
+                                              0x5BEF9C72,
+                                              0xDD7BEEDC,
+                                              0x16273D79,
+                                              0xE7718FAC,
+                                              0x2C2D5C09,
+                                              0xAAB92EA7,
+                                              0x61E5FD02,
+                                              0x7CE0CDBA,
+                                              0xB7BC1E1F,
+                                              0x31286CB1,
+                                              0xFA74BF14,
+                                              0x1EB014D8,
+                                              0xD5ECC77D,
+                                              0x5378B5D3,
+                                              0x98246676,
+                                              0x852156CE,
+                                              0x4E7D856B,
+                                              0xC8E9F7C5,
+                                              0x03B52460,
+                                              0xF2E396B5,
+                                              0x39BF4510,
+                                              0xBF2B37BE,
+                                              0x7477E41B,
+                                              0x6972D4A3,
+                                              0xA22E0706,
+                                              0x24BA75A8,
+                                              0xEFE6A60D,
+                                              0x1D661643,
+                                              0xD63AC5E6,
+                                              0x50AEB748,
+                                              0x9BF264ED,
+                                              0x86F75455,
+                                              0x4DAB87F0,
+ 

<TRUNCATED>