001    /**
002     * Licensed to the Apache Software Foundation (ASF) under one
003     * or more contributor license agreements.  See the NOTICE file
004     * distributed with this work for additional information
005     * regarding copyright ownership.  The ASF licenses this file
006     * to you under the Apache License, Version 2.0 (the
007     * "License"); you may not use this file except in compliance
008     * with the License.  You may obtain a copy of the License at
009     *
010     *     http://www.apache.org/licenses/LICENSE-2.0
011     *
012     * Unless required by applicable law or agreed to in writing, software
013     * distributed under the License is distributed on an "AS IS" BASIS,
014     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015     * See the License for the specific language governing permissions and
016     * limitations under the License.
017     */
018    package org.apache.hadoop.util;
019    
020    import java.util.zip.Checksum;
021    
022    import org.apache.hadoop.classification.InterfaceAudience;
023    import org.apache.hadoop.classification.InterfaceStability;
024    
025    /**
026     * A pure-java implementation of the CRC32 checksum that uses
027     * the same polynomial as the built-in native CRC32.
028     *
029     * This is to avoid the JNI overhead for certain uses of Checksumming
030     * where many small pieces of data are checksummed in succession.
031     *
032     * The current version is ~10x to 1.8x as fast as Sun's native
033     * java.util.zip.CRC32 in Java 1.6
034     *
035     * @see java.util.zip.CRC32
036     */
037    @InterfaceAudience.Public
038    @InterfaceStability.Stable
039    public class PureJavaCrc32 implements Checksum {
040    
041      /** the current CRC value, bit-flipped */
042      private int crc;
043    
044      /** Create a new PureJavaCrc32 object. */
045      public PureJavaCrc32() {
046        reset();
047      }
048    
049      @Override
050      public long getValue() {
051        return (~crc) & 0xffffffffL;
052      }
053    
054      @Override
055      public void reset() {
056        crc = 0xffffffff;
057      }
058    
059      @Override
060      public void update(final byte[] b, final int offset, final int len) {
061        int localCrc = crc;
062    
063        final int remainder = len & 0x7;
064        int i = offset;
065        for(final int end = offset + len - remainder; i < end; i += 8) {
066          final int x = localCrc
067              ^ ((((b[i  ] << 24) >>> 24) + ((b[i+1] << 24) >>> 16))
068               + (((b[i+2] << 24) >>> 8 ) +  (b[i+3] << 24)));
069    
070          localCrc = ((T[((x << 24) >>> 24) + 0x700] ^ T[((x << 16) >>> 24) + 0x600])
071                    ^ (T[((x <<  8) >>> 24) + 0x500] ^ T[ (x        >>> 24) + 0x400]))
072                   ^ ((T[((b[i+4] << 24) >>> 24) + 0x300] ^ T[((b[i+5] << 24) >>> 24) + 0x200])
073                    ^ (T[((b[i+6] << 24) >>> 24) + 0x100] ^ T[((b[i+7] << 24) >>> 24)]));
074        }
075    
076        /* loop unroll - duff's device style */
077        switch(remainder) {
078          case 7: localCrc = (localCrc >>> 8) ^ T[((localCrc ^ b[i++]) << 24) >>> 24];
079          case 6: localCrc = (localCrc >>> 8) ^ T[((localCrc ^ b[i++]) << 24) >>> 24];
080          case 5: localCrc = (localCrc >>> 8) ^ T[((localCrc ^ b[i++]) << 24) >>> 24];
081          case 4: localCrc = (localCrc >>> 8) ^ T[((localCrc ^ b[i++]) << 24) >>> 24];
082          case 3: localCrc = (localCrc >>> 8) ^ T[((localCrc ^ b[i++]) << 24) >>> 24];
083          case 2: localCrc = (localCrc >>> 8) ^ T[((localCrc ^ b[i++]) << 24) >>> 24];
084          case 1: localCrc = (localCrc >>> 8) ^ T[((localCrc ^ b[i++]) << 24) >>> 24];
085          default:
086            /* nothing */
087        }
088        
089        // Publish crc out to object
090        crc = localCrc;
091      }
092    
093      @Override
094      final public void update(int b) {
095        crc = (crc >>> 8) ^ T[(((crc ^ b) << 24) >>> 24)];
096      }
097    
098      /*
099       * CRC-32 lookup tables generated by the polynomial 0xEDB88320.
100       * See also TestPureJavaCrc32.Table.
101       */
102      private static final int[] T = new int[] {
103        /* T8_0 */
104        0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 
105        0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3, 
106        0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 
107        0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, 
108        0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 
109        0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 
110        0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 
111        0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, 
112        0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, 
113        0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, 
114        0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 
115        0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 
116        0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, 
117        0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, 
118        0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 
119        0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 
120        0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 
121        0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433, 
122        0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 
123        0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, 
124        0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 
125        0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 
126        0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, 
127        0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, 
128        0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, 
129        0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 
130        0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 
131        0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, 
132        0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 
133        0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, 
134        0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 
135        0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 
136        0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 
137        0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, 
138        0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, 
139        0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 
140        0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 
141        0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, 
142        0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, 
143        0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, 
144        0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 
145        0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 
146        0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 
147        0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79, 
148        0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 
149        0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 
150        0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 
151        0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, 
152        0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, 
153        0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, 
154        0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 
155        0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 
156        0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, 
157        0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, 
158        0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 
159        0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 
160        0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 
161        0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, 
162        0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 
163        0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, 
164        0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 
165        0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF, 
166        0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, 
167        0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D,
168        /* T8_1 */
169        0x00000000, 0x191B3141, 0x32366282, 0x2B2D53C3, 
170        0x646CC504, 0x7D77F445, 0x565AA786, 0x4F4196C7, 
171        0xC8D98A08, 0xD1C2BB49, 0xFAEFE88A, 0xE3F4D9CB, 
172        0xACB54F0C, 0xB5AE7E4D, 0x9E832D8E, 0x87981CCF, 
173        0x4AC21251, 0x53D92310, 0x78F470D3, 0x61EF4192, 
174        0x2EAED755, 0x37B5E614, 0x1C98B5D7, 0x05838496, 
175        0x821B9859, 0x9B00A918, 0xB02DFADB, 0xA936CB9A, 
176        0xE6775D5D, 0xFF6C6C1C, 0xD4413FDF, 0xCD5A0E9E, 
177        0x958424A2, 0x8C9F15E3, 0xA7B24620, 0xBEA97761, 
178        0xF1E8E1A6, 0xE8F3D0E7, 0xC3DE8324, 0xDAC5B265, 
179        0x5D5DAEAA, 0x44469FEB, 0x6F6BCC28, 0x7670FD69, 
180        0x39316BAE, 0x202A5AEF, 0x0B07092C, 0x121C386D, 
181        0xDF4636F3, 0xC65D07B2, 0xED705471, 0xF46B6530, 
182        0xBB2AF3F7, 0xA231C2B6, 0x891C9175, 0x9007A034, 
183        0x179FBCFB, 0x0E848DBA, 0x25A9DE79, 0x3CB2EF38, 
184        0x73F379FF, 0x6AE848BE, 0x41C51B7D, 0x58DE2A3C, 
185        0xF0794F05, 0xE9627E44, 0xC24F2D87, 0xDB541CC6, 
186        0x94158A01, 0x8D0EBB40, 0xA623E883, 0xBF38D9C2, 
187        0x38A0C50D, 0x21BBF44C, 0x0A96A78F, 0x138D96CE, 
188        0x5CCC0009, 0x45D73148, 0x6EFA628B, 0x77E153CA, 
189        0xBABB5D54, 0xA3A06C15, 0x888D3FD6, 0x91960E97, 
190        0xDED79850, 0xC7CCA911, 0xECE1FAD2, 0xF5FACB93, 
191        0x7262D75C, 0x6B79E61D, 0x4054B5DE, 0x594F849F, 
192        0x160E1258, 0x0F152319, 0x243870DA, 0x3D23419B, 
193        0x65FD6BA7, 0x7CE65AE6, 0x57CB0925, 0x4ED03864, 
194        0x0191AEA3, 0x188A9FE2, 0x33A7CC21, 0x2ABCFD60, 
195        0xAD24E1AF, 0xB43FD0EE, 0x9F12832D, 0x8609B26C, 
196        0xC94824AB, 0xD05315EA, 0xFB7E4629, 0xE2657768, 
197        0x2F3F79F6, 0x362448B7, 0x1D091B74, 0x04122A35, 
198        0x4B53BCF2, 0x52488DB3, 0x7965DE70, 0x607EEF31, 
199        0xE7E6F3FE, 0xFEFDC2BF, 0xD5D0917C, 0xCCCBA03D, 
200        0x838A36FA, 0x9A9107BB, 0xB1BC5478, 0xA8A76539, 
201        0x3B83984B, 0x2298A90A, 0x09B5FAC9, 0x10AECB88, 
202        0x5FEF5D4F, 0x46F46C0E, 0x6DD93FCD, 0x74C20E8C, 
203        0xF35A1243, 0xEA412302, 0xC16C70C1, 0xD8774180, 
204        0x9736D747, 0x8E2DE606, 0xA500B5C5, 0xBC1B8484, 
205        0x71418A1A, 0x685ABB5B, 0x4377E898, 0x5A6CD9D9, 
206        0x152D4F1E, 0x0C367E5F, 0x271B2D9C, 0x3E001CDD, 
207        0xB9980012, 0xA0833153, 0x8BAE6290, 0x92B553D1, 
208        0xDDF4C516, 0xC4EFF457, 0xEFC2A794, 0xF6D996D5, 
209        0xAE07BCE9, 0xB71C8DA8, 0x9C31DE6B, 0x852AEF2A, 
210        0xCA6B79ED, 0xD37048AC, 0xF85D1B6F, 0xE1462A2E, 
211        0x66DE36E1, 0x7FC507A0, 0x54E85463, 0x4DF36522, 
212        0x02B2F3E5, 0x1BA9C2A4, 0x30849167, 0x299FA026, 
213        0xE4C5AEB8, 0xFDDE9FF9, 0xD6F3CC3A, 0xCFE8FD7B, 
214        0x80A96BBC, 0x99B25AFD, 0xB29F093E, 0xAB84387F, 
215        0x2C1C24B0, 0x350715F1, 0x1E2A4632, 0x07317773, 
216        0x4870E1B4, 0x516BD0F5, 0x7A468336, 0x635DB277, 
217        0xCBFAD74E, 0xD2E1E60F, 0xF9CCB5CC, 0xE0D7848D, 
218        0xAF96124A, 0xB68D230B, 0x9DA070C8, 0x84BB4189, 
219        0x03235D46, 0x1A386C07, 0x31153FC4, 0x280E0E85, 
220        0x674F9842, 0x7E54A903, 0x5579FAC0, 0x4C62CB81, 
221        0x8138C51F, 0x9823F45E, 0xB30EA79D, 0xAA1596DC, 
222        0xE554001B, 0xFC4F315A, 0xD7626299, 0xCE7953D8, 
223        0x49E14F17, 0x50FA7E56, 0x7BD72D95, 0x62CC1CD4, 
224        0x2D8D8A13, 0x3496BB52, 0x1FBBE891, 0x06A0D9D0, 
225        0x5E7EF3EC, 0x4765C2AD, 0x6C48916E, 0x7553A02F, 
226        0x3A1236E8, 0x230907A9, 0x0824546A, 0x113F652B, 
227        0x96A779E4, 0x8FBC48A5, 0xA4911B66, 0xBD8A2A27, 
228        0xF2CBBCE0, 0xEBD08DA1, 0xC0FDDE62, 0xD9E6EF23, 
229        0x14BCE1BD, 0x0DA7D0FC, 0x268A833F, 0x3F91B27E, 
230        0x70D024B9, 0x69CB15F8, 0x42E6463B, 0x5BFD777A, 
231        0xDC656BB5, 0xC57E5AF4, 0xEE530937, 0xF7483876, 
232        0xB809AEB1, 0xA1129FF0, 0x8A3FCC33, 0x9324FD72,
233        /* T8_2 */
234        0x00000000, 0x01C26A37, 0x0384D46E, 0x0246BE59, 
235        0x0709A8DC, 0x06CBC2EB, 0x048D7CB2, 0x054F1685, 
236        0x0E1351B8, 0x0FD13B8F, 0x0D9785D6, 0x0C55EFE1, 
237        0x091AF964, 0x08D89353, 0x0A9E2D0A, 0x0B5C473D, 
238        0x1C26A370, 0x1DE4C947, 0x1FA2771E, 0x1E601D29, 
239        0x1B2F0BAC, 0x1AED619B, 0x18ABDFC2, 0x1969B5F5, 
240        0x1235F2C8, 0x13F798FF, 0x11B126A6, 0x10734C91, 
241        0x153C5A14, 0x14FE3023, 0x16B88E7A, 0x177AE44D, 
242        0x384D46E0, 0x398F2CD7, 0x3BC9928E, 0x3A0BF8B9, 
243        0x3F44EE3C, 0x3E86840B, 0x3CC03A52, 0x3D025065, 
244        0x365E1758, 0x379C7D6F, 0x35DAC336, 0x3418A901, 
245        0x3157BF84, 0x3095D5B3, 0x32D36BEA, 0x331101DD, 
246        0x246BE590, 0x25A98FA7, 0x27EF31FE, 0x262D5BC9, 
247        0x23624D4C, 0x22A0277B, 0x20E69922, 0x2124F315, 
248        0x2A78B428, 0x2BBADE1F, 0x29FC6046, 0x283E0A71, 
249        0x2D711CF4, 0x2CB376C3, 0x2EF5C89A, 0x2F37A2AD, 
250        0x709A8DC0, 0x7158E7F7, 0x731E59AE, 0x72DC3399, 
251        0x7793251C, 0x76514F2B, 0x7417F172, 0x75D59B45, 
252        0x7E89DC78, 0x7F4BB64F, 0x7D0D0816, 0x7CCF6221, 
253        0x798074A4, 0x78421E93, 0x7A04A0CA, 0x7BC6CAFD, 
254        0x6CBC2EB0, 0x6D7E4487, 0x6F38FADE, 0x6EFA90E9, 
255        0x6BB5866C, 0x6A77EC5B, 0x68315202, 0x69F33835, 
256        0x62AF7F08, 0x636D153F, 0x612BAB66, 0x60E9C151, 
257        0x65A6D7D4, 0x6464BDE3, 0x662203BA, 0x67E0698D, 
258        0x48D7CB20, 0x4915A117, 0x4B531F4E, 0x4A917579, 
259        0x4FDE63FC, 0x4E1C09CB, 0x4C5AB792, 0x4D98DDA5, 
260        0x46C49A98, 0x4706F0AF, 0x45404EF6, 0x448224C1, 
261        0x41CD3244, 0x400F5873, 0x4249E62A, 0x438B8C1D, 
262        0x54F16850, 0x55330267, 0x5775BC3E, 0x56B7D609, 
263        0x53F8C08C, 0x523AAABB, 0x507C14E2, 0x51BE7ED5, 
264        0x5AE239E8, 0x5B2053DF, 0x5966ED86, 0x58A487B1, 
265        0x5DEB9134, 0x5C29FB03, 0x5E6F455A, 0x5FAD2F6D, 
266        0xE1351B80, 0xE0F771B7, 0xE2B1CFEE, 0xE373A5D9, 
267        0xE63CB35C, 0xE7FED96B, 0xE5B86732, 0xE47A0D05, 
268        0xEF264A38, 0xEEE4200F, 0xECA29E56, 0xED60F461, 
269        0xE82FE2E4, 0xE9ED88D3, 0xEBAB368A, 0xEA695CBD, 
270        0xFD13B8F0, 0xFCD1D2C7, 0xFE976C9E, 0xFF5506A9, 
271        0xFA1A102C, 0xFBD87A1B, 0xF99EC442, 0xF85CAE75, 
272        0xF300E948, 0xF2C2837F, 0xF0843D26, 0xF1465711, 
273        0xF4094194, 0xF5CB2BA3, 0xF78D95FA, 0xF64FFFCD, 
274        0xD9785D60, 0xD8BA3757, 0xDAFC890E, 0xDB3EE339, 
275        0xDE71F5BC, 0xDFB39F8B, 0xDDF521D2, 0xDC374BE5, 
276        0xD76B0CD8, 0xD6A966EF, 0xD4EFD8B6, 0xD52DB281, 
277        0xD062A404, 0xD1A0CE33, 0xD3E6706A, 0xD2241A5D, 
278        0xC55EFE10, 0xC49C9427, 0xC6DA2A7E, 0xC7184049, 
279        0xC25756CC, 0xC3953CFB, 0xC1D382A2, 0xC011E895, 
280        0xCB4DAFA8, 0xCA8FC59F, 0xC8C97BC6, 0xC90B11F1, 
281        0xCC440774, 0xCD866D43, 0xCFC0D31A, 0xCE02B92D, 
282        0x91AF9640, 0x906DFC77, 0x922B422E, 0x93E92819, 
283        0x96A63E9C, 0x976454AB, 0x9522EAF2, 0x94E080C5, 
284        0x9FBCC7F8, 0x9E7EADCF, 0x9C381396, 0x9DFA79A1, 
285        0x98B56F24, 0x99770513, 0x9B31BB4A, 0x9AF3D17D, 
286        0x8D893530, 0x8C4B5F07, 0x8E0DE15E, 0x8FCF8B69, 
287        0x8A809DEC, 0x8B42F7DB, 0x89044982, 0x88C623B5, 
288        0x839A6488, 0x82580EBF, 0x801EB0E6, 0x81DCDAD1, 
289        0x8493CC54, 0x8551A663, 0x8717183A, 0x86D5720D, 
290        0xA9E2D0A0, 0xA820BA97, 0xAA6604CE, 0xABA46EF9, 
291        0xAEEB787C, 0xAF29124B, 0xAD6FAC12, 0xACADC625, 
292        0xA7F18118, 0xA633EB2F, 0xA4755576, 0xA5B73F41, 
293        0xA0F829C4, 0xA13A43F3, 0xA37CFDAA, 0xA2BE979D, 
294        0xB5C473D0, 0xB40619E7, 0xB640A7BE, 0xB782CD89, 
295        0xB2CDDB0C, 0xB30FB13B, 0xB1490F62, 0xB08B6555, 
296        0xBBD72268, 0xBA15485F, 0xB853F606, 0xB9919C31, 
297        0xBCDE8AB4, 0xBD1CE083, 0xBF5A5EDA, 0xBE9834ED,
298        /* T8_3 */
299        0x00000000, 0xB8BC6765, 0xAA09C88B, 0x12B5AFEE, 
300        0x8F629757, 0x37DEF032, 0x256B5FDC, 0x9DD738B9, 
301        0xC5B428EF, 0x7D084F8A, 0x6FBDE064, 0xD7018701, 
302        0x4AD6BFB8, 0xF26AD8DD, 0xE0DF7733, 0x58631056, 
303        0x5019579F, 0xE8A530FA, 0xFA109F14, 0x42ACF871, 
304        0xDF7BC0C8, 0x67C7A7AD, 0x75720843, 0xCDCE6F26, 
305        0x95AD7F70, 0x2D111815, 0x3FA4B7FB, 0x8718D09E, 
306        0x1ACFE827, 0xA2738F42, 0xB0C620AC, 0x087A47C9, 
307        0xA032AF3E, 0x188EC85B, 0x0A3B67B5, 0xB28700D0, 
308        0x2F503869, 0x97EC5F0C, 0x8559F0E2, 0x3DE59787, 
309        0x658687D1, 0xDD3AE0B4, 0xCF8F4F5A, 0x7733283F, 
310        0xEAE41086, 0x525877E3, 0x40EDD80D, 0xF851BF68, 
311        0xF02BF8A1, 0x48979FC4, 0x5A22302A, 0xE29E574F, 
312        0x7F496FF6, 0xC7F50893, 0xD540A77D, 0x6DFCC018, 
313        0x359FD04E, 0x8D23B72B, 0x9F9618C5, 0x272A7FA0, 
314        0xBAFD4719, 0x0241207C, 0x10F48F92, 0xA848E8F7, 
315        0x9B14583D, 0x23A83F58, 0x311D90B6, 0x89A1F7D3, 
316        0x1476CF6A, 0xACCAA80F, 0xBE7F07E1, 0x06C36084, 
317        0x5EA070D2, 0xE61C17B7, 0xF4A9B859, 0x4C15DF3C, 
318        0xD1C2E785, 0x697E80E0, 0x7BCB2F0E, 0xC377486B, 
319        0xCB0D0FA2, 0x73B168C7, 0x6104C729, 0xD9B8A04C, 
320        0x446F98F5, 0xFCD3FF90, 0xEE66507E, 0x56DA371B, 
321        0x0EB9274D, 0xB6054028, 0xA4B0EFC6, 0x1C0C88A3, 
322        0x81DBB01A, 0x3967D77F, 0x2BD27891, 0x936E1FF4, 
323        0x3B26F703, 0x839A9066, 0x912F3F88, 0x299358ED, 
324        0xB4446054, 0x0CF80731, 0x1E4DA8DF, 0xA6F1CFBA, 
325        0xFE92DFEC, 0x462EB889, 0x549B1767, 0xEC277002, 
326        0x71F048BB, 0xC94C2FDE, 0xDBF98030, 0x6345E755, 
327        0x6B3FA09C, 0xD383C7F9, 0xC1366817, 0x798A0F72, 
328        0xE45D37CB, 0x5CE150AE, 0x4E54FF40, 0xF6E89825, 
329        0xAE8B8873, 0x1637EF16, 0x048240F8, 0xBC3E279D, 
330        0x21E91F24, 0x99557841, 0x8BE0D7AF, 0x335CB0CA, 
331        0xED59B63B, 0x55E5D15E, 0x47507EB0, 0xFFEC19D5, 
332        0x623B216C, 0xDA874609, 0xC832E9E7, 0x708E8E82, 
333        0x28ED9ED4, 0x9051F9B1, 0x82E4565F, 0x3A58313A, 
334        0xA78F0983, 0x1F336EE6, 0x0D86C108, 0xB53AA66D, 
335        0xBD40E1A4, 0x05FC86C1, 0x1749292F, 0xAFF54E4A, 
336        0x322276F3, 0x8A9E1196, 0x982BBE78, 0x2097D91D, 
337        0x78F4C94B, 0xC048AE2E, 0xD2FD01C0, 0x6A4166A5, 
338        0xF7965E1C, 0x4F2A3979, 0x5D9F9697, 0xE523F1F2, 
339        0x4D6B1905, 0xF5D77E60, 0xE762D18E, 0x5FDEB6EB, 
340        0xC2098E52, 0x7AB5E937, 0x680046D9, 0xD0BC21BC, 
341        0x88DF31EA, 0x3063568F, 0x22D6F961, 0x9A6A9E04, 
342        0x07BDA6BD, 0xBF01C1D8, 0xADB46E36, 0x15080953, 
343        0x1D724E9A, 0xA5CE29FF, 0xB77B8611, 0x0FC7E174, 
344        0x9210D9CD, 0x2AACBEA8, 0x38191146, 0x80A57623, 
345        0xD8C66675, 0x607A0110, 0x72CFAEFE, 0xCA73C99B, 
346        0x57A4F122, 0xEF189647, 0xFDAD39A9, 0x45115ECC, 
347        0x764DEE06, 0xCEF18963, 0xDC44268D, 0x64F841E8, 
348        0xF92F7951, 0x41931E34, 0x5326B1DA, 0xEB9AD6BF, 
349        0xB3F9C6E9, 0x0B45A18C, 0x19F00E62, 0xA14C6907, 
350        0x3C9B51BE, 0x842736DB, 0x96929935, 0x2E2EFE50, 
351        0x2654B999, 0x9EE8DEFC, 0x8C5D7112, 0x34E11677, 
352        0xA9362ECE, 0x118A49AB, 0x033FE645, 0xBB838120, 
353        0xE3E09176, 0x5B5CF613, 0x49E959FD, 0xF1553E98, 
354        0x6C820621, 0xD43E6144, 0xC68BCEAA, 0x7E37A9CF, 
355        0xD67F4138, 0x6EC3265D, 0x7C7689B3, 0xC4CAEED6, 
356        0x591DD66F, 0xE1A1B10A, 0xF3141EE4, 0x4BA87981, 
357        0x13CB69D7, 0xAB770EB2, 0xB9C2A15C, 0x017EC639, 
358        0x9CA9FE80, 0x241599E5, 0x36A0360B, 0x8E1C516E, 
359        0x866616A7, 0x3EDA71C2, 0x2C6FDE2C, 0x94D3B949, 
360        0x090481F0, 0xB1B8E695, 0xA30D497B, 0x1BB12E1E, 
361        0x43D23E48, 0xFB6E592D, 0xE9DBF6C3, 0x516791A6, 
362        0xCCB0A91F, 0x740CCE7A, 0x66B96194, 0xDE0506F1,
363        /* T8_4 */
364        0x00000000, 0x3D6029B0, 0x7AC05360, 0x47A07AD0, 
365        0xF580A6C0, 0xC8E08F70, 0x8F40F5A0, 0xB220DC10, 
366        0x30704BC1, 0x0D106271, 0x4AB018A1, 0x77D03111, 
367        0xC5F0ED01, 0xF890C4B1, 0xBF30BE61, 0x825097D1, 
368        0x60E09782, 0x5D80BE32, 0x1A20C4E2, 0x2740ED52, 
369        0x95603142, 0xA80018F2, 0xEFA06222, 0xD2C04B92, 
370        0x5090DC43, 0x6DF0F5F3, 0x2A508F23, 0x1730A693, 
371        0xA5107A83, 0x98705333, 0xDFD029E3, 0xE2B00053, 
372        0xC1C12F04, 0xFCA106B4, 0xBB017C64, 0x866155D4, 
373        0x344189C4, 0x0921A074, 0x4E81DAA4, 0x73E1F314, 
374        0xF1B164C5, 0xCCD14D75, 0x8B7137A5, 0xB6111E15, 
375        0x0431C205, 0x3951EBB5, 0x7EF19165, 0x4391B8D5, 
376        0xA121B886, 0x9C419136, 0xDBE1EBE6, 0xE681C256, 
377        0x54A11E46, 0x69C137F6, 0x2E614D26, 0x13016496, 
378        0x9151F347, 0xAC31DAF7, 0xEB91A027, 0xD6F18997, 
379        0x64D15587, 0x59B17C37, 0x1E1106E7, 0x23712F57, 
380        0x58F35849, 0x659371F9, 0x22330B29, 0x1F532299, 
381        0xAD73FE89, 0x9013D739, 0xD7B3ADE9, 0xEAD38459, 
382        0x68831388, 0x55E33A38, 0x124340E8, 0x2F236958, 
383        0x9D03B548, 0xA0639CF8, 0xE7C3E628, 0xDAA3CF98, 
384        0x3813CFCB, 0x0573E67B, 0x42D39CAB, 0x7FB3B51B, 
385        0xCD93690B, 0xF0F340BB, 0xB7533A6B, 0x8A3313DB, 
386        0x0863840A, 0x3503ADBA, 0x72A3D76A, 0x4FC3FEDA, 
387        0xFDE322CA, 0xC0830B7A, 0x872371AA, 0xBA43581A, 
388        0x9932774D, 0xA4525EFD, 0xE3F2242D, 0xDE920D9D, 
389        0x6CB2D18D, 0x51D2F83D, 0x167282ED, 0x2B12AB5D, 
390        0xA9423C8C, 0x9422153C, 0xD3826FEC, 0xEEE2465C, 
391        0x5CC29A4C, 0x61A2B3FC, 0x2602C92C, 0x1B62E09C, 
392        0xF9D2E0CF, 0xC4B2C97F, 0x8312B3AF, 0xBE729A1F, 
393        0x0C52460F, 0x31326FBF, 0x7692156F, 0x4BF23CDF, 
394        0xC9A2AB0E, 0xF4C282BE, 0xB362F86E, 0x8E02D1DE, 
395        0x3C220DCE, 0x0142247E, 0x46E25EAE, 0x7B82771E, 
396        0xB1E6B092, 0x8C869922, 0xCB26E3F2, 0xF646CA42, 
397        0x44661652, 0x79063FE2, 0x3EA64532, 0x03C66C82, 
398        0x8196FB53, 0xBCF6D2E3, 0xFB56A833, 0xC6368183, 
399        0x74165D93, 0x49767423, 0x0ED60EF3, 0x33B62743, 
400        0xD1062710, 0xEC660EA0, 0xABC67470, 0x96A65DC0, 
401        0x248681D0, 0x19E6A860, 0x5E46D2B0, 0x6326FB00, 
402        0xE1766CD1, 0xDC164561, 0x9BB63FB1, 0xA6D61601, 
403        0x14F6CA11, 0x2996E3A1, 0x6E369971, 0x5356B0C1, 
404        0x70279F96, 0x4D47B626, 0x0AE7CCF6, 0x3787E546, 
405        0x85A73956, 0xB8C710E6, 0xFF676A36, 0xC2074386, 
406        0x4057D457, 0x7D37FDE7, 0x3A978737, 0x07F7AE87, 
407        0xB5D77297, 0x88B75B27, 0xCF1721F7, 0xF2770847, 
408        0x10C70814, 0x2DA721A4, 0x6A075B74, 0x576772C4, 
409        0xE547AED4, 0xD8278764, 0x9F87FDB4, 0xA2E7D404, 
410        0x20B743D5, 0x1DD76A65, 0x5A7710B5, 0x67173905, 
411        0xD537E515, 0xE857CCA5, 0xAFF7B675, 0x92979FC5, 
412        0xE915E8DB, 0xD475C16B, 0x93D5BBBB, 0xAEB5920B, 
413        0x1C954E1B, 0x21F567AB, 0x66551D7B, 0x5B3534CB, 
414        0xD965A31A, 0xE4058AAA, 0xA3A5F07A, 0x9EC5D9CA, 
415        0x2CE505DA, 0x11852C6A, 0x562556BA, 0x6B457F0A, 
416        0x89F57F59, 0xB49556E9, 0xF3352C39, 0xCE550589, 
417        0x7C75D999, 0x4115F029, 0x06B58AF9, 0x3BD5A349, 
418        0xB9853498, 0x84E51D28, 0xC34567F8, 0xFE254E48, 
419        0x4C059258, 0x7165BBE8, 0x36C5C138, 0x0BA5E888, 
420        0x28D4C7DF, 0x15B4EE6F, 0x521494BF, 0x6F74BD0F, 
421        0xDD54611F, 0xE03448AF, 0xA794327F, 0x9AF41BCF, 
422        0x18A48C1E, 0x25C4A5AE, 0x6264DF7E, 0x5F04F6CE, 
423        0xED242ADE, 0xD044036E, 0x97E479BE, 0xAA84500E, 
424        0x4834505D, 0x755479ED, 0x32F4033D, 0x0F942A8D, 
425        0xBDB4F69D, 0x80D4DF2D, 0xC774A5FD, 0xFA148C4D, 
426        0x78441B9C, 0x4524322C, 0x028448FC, 0x3FE4614C, 
427        0x8DC4BD5C, 0xB0A494EC, 0xF704EE3C, 0xCA64C78C,
428        /* T8_5 */
429        0x00000000, 0xCB5CD3A5, 0x4DC8A10B, 0x869472AE, 
430        0x9B914216, 0x50CD91B3, 0xD659E31D, 0x1D0530B8, 
431        0xEC53826D, 0x270F51C8, 0xA19B2366, 0x6AC7F0C3, 
432        0x77C2C07B, 0xBC9E13DE, 0x3A0A6170, 0xF156B2D5, 
433        0x03D6029B, 0xC88AD13E, 0x4E1EA390, 0x85427035, 
434        0x9847408D, 0x531B9328, 0xD58FE186, 0x1ED33223, 
435        0xEF8580F6, 0x24D95353, 0xA24D21FD, 0x6911F258, 
436        0x7414C2E0, 0xBF481145, 0x39DC63EB, 0xF280B04E, 
437        0x07AC0536, 0xCCF0D693, 0x4A64A43D, 0x81387798, 
438        0x9C3D4720, 0x57619485, 0xD1F5E62B, 0x1AA9358E, 
439        0xEBFF875B, 0x20A354FE, 0xA6372650, 0x6D6BF5F5, 
440        0x706EC54D, 0xBB3216E8, 0x3DA66446, 0xF6FAB7E3, 
441        0x047A07AD, 0xCF26D408, 0x49B2A6A6, 0x82EE7503, 
442        0x9FEB45BB, 0x54B7961E, 0xD223E4B0, 0x197F3715, 
443        0xE82985C0, 0x23755665, 0xA5E124CB, 0x6EBDF76E, 
444        0x73B8C7D6, 0xB8E41473, 0x3E7066DD, 0xF52CB578, 
445        0x0F580A6C, 0xC404D9C9, 0x4290AB67, 0x89CC78C2, 
446        0x94C9487A, 0x5F959BDF, 0xD901E971, 0x125D3AD4, 
447        0xE30B8801, 0x28575BA4, 0xAEC3290A, 0x659FFAAF, 
448        0x789ACA17, 0xB3C619B2, 0x35526B1C, 0xFE0EB8B9, 
449        0x0C8E08F7, 0xC7D2DB52, 0x4146A9FC, 0x8A1A7A59, 
450        0x971F4AE1, 0x5C439944, 0xDAD7EBEA, 0x118B384F, 
451        0xE0DD8A9A, 0x2B81593F, 0xAD152B91, 0x6649F834, 
452        0x7B4CC88C, 0xB0101B29, 0x36846987, 0xFDD8BA22, 
453        0x08F40F5A, 0xC3A8DCFF, 0x453CAE51, 0x8E607DF4, 
454        0x93654D4C, 0x58399EE9, 0xDEADEC47, 0x15F13FE2, 
455        0xE4A78D37, 0x2FFB5E92, 0xA96F2C3C, 0x6233FF99, 
456        0x7F36CF21, 0xB46A1C84, 0x32FE6E2A, 0xF9A2BD8F, 
457        0x0B220DC1, 0xC07EDE64, 0x46EAACCA, 0x8DB67F6F, 
458        0x90B34FD7, 0x5BEF9C72, 0xDD7BEEDC, 0x16273D79, 
459        0xE7718FAC, 0x2C2D5C09, 0xAAB92EA7, 0x61E5FD02, 
460        0x7CE0CDBA, 0xB7BC1E1F, 0x31286CB1, 0xFA74BF14, 
461        0x1EB014D8, 0xD5ECC77D, 0x5378B5D3, 0x98246676, 
462        0x852156CE, 0x4E7D856B, 0xC8E9F7C5, 0x03B52460, 
463        0xF2E396B5, 0x39BF4510, 0xBF2B37BE, 0x7477E41B, 
464        0x6972D4A3, 0xA22E0706, 0x24BA75A8, 0xEFE6A60D, 
465        0x1D661643, 0xD63AC5E6, 0x50AEB748, 0x9BF264ED, 
466        0x86F75455, 0x4DAB87F0, 0xCB3FF55E, 0x006326FB, 
467        0xF135942E, 0x3A69478B, 0xBCFD3525, 0x77A1E680, 
468        0x6AA4D638, 0xA1F8059D, 0x276C7733, 0xEC30A496, 
469        0x191C11EE, 0xD240C24B, 0x54D4B0E5, 0x9F886340, 
470        0x828D53F8, 0x49D1805D, 0xCF45F2F3, 0x04192156, 
471        0xF54F9383, 0x3E134026, 0xB8873288, 0x73DBE12D, 
472        0x6EDED195, 0xA5820230, 0x2316709E, 0xE84AA33B, 
473        0x1ACA1375, 0xD196C0D0, 0x5702B27E, 0x9C5E61DB, 
474        0x815B5163, 0x4A0782C6, 0xCC93F068, 0x07CF23CD, 
475        0xF6999118, 0x3DC542BD, 0xBB513013, 0x700DE3B6, 
476        0x6D08D30E, 0xA65400AB, 0x20C07205, 0xEB9CA1A0, 
477        0x11E81EB4, 0xDAB4CD11, 0x5C20BFBF, 0x977C6C1A, 
478        0x8A795CA2, 0x41258F07, 0xC7B1FDA9, 0x0CED2E0C, 
479        0xFDBB9CD9, 0x36E74F7C, 0xB0733DD2, 0x7B2FEE77, 
480        0x662ADECF, 0xAD760D6A, 0x2BE27FC4, 0xE0BEAC61, 
481        0x123E1C2F, 0xD962CF8A, 0x5FF6BD24, 0x94AA6E81, 
482        0x89AF5E39, 0x42F38D9C, 0xC467FF32, 0x0F3B2C97, 
483        0xFE6D9E42, 0x35314DE7, 0xB3A53F49, 0x78F9ECEC, 
484        0x65FCDC54, 0xAEA00FF1, 0x28347D5F, 0xE368AEFA, 
485        0x16441B82, 0xDD18C827, 0x5B8CBA89, 0x90D0692C, 
486        0x8DD55994, 0x46898A31, 0xC01DF89F, 0x0B412B3A, 
487        0xFA1799EF, 0x314B4A4A, 0xB7DF38E4, 0x7C83EB41, 
488        0x6186DBF9, 0xAADA085C, 0x2C4E7AF2, 0xE712A957, 
489        0x15921919, 0xDECECABC, 0x585AB812, 0x93066BB7, 
490        0x8E035B0F, 0x455F88AA, 0xC3CBFA04, 0x089729A1, 
491        0xF9C19B74, 0x329D48D1, 0xB4093A7F, 0x7F55E9DA, 
492        0x6250D962, 0xA90C0AC7, 0x2F987869, 0xE4C4ABCC,
493        /* T8_6 */
494        0x00000000, 0xA6770BB4, 0x979F1129, 0x31E81A9D, 
495        0xF44F2413, 0x52382FA7, 0x63D0353A, 0xC5A73E8E, 
496        0x33EF4E67, 0x959845D3, 0xA4705F4E, 0x020754FA, 
497        0xC7A06A74, 0x61D761C0, 0x503F7B5D, 0xF64870E9, 
498        0x67DE9CCE, 0xC1A9977A, 0xF0418DE7, 0x56368653, 
499        0x9391B8DD, 0x35E6B369, 0x040EA9F4, 0xA279A240, 
500        0x5431D2A9, 0xF246D91D, 0xC3AEC380, 0x65D9C834, 
501        0xA07EF6BA, 0x0609FD0E, 0x37E1E793, 0x9196EC27, 
502        0xCFBD399C, 0x69CA3228, 0x582228B5, 0xFE552301, 
503        0x3BF21D8F, 0x9D85163B, 0xAC6D0CA6, 0x0A1A0712, 
504        0xFC5277FB, 0x5A257C4F, 0x6BCD66D2, 0xCDBA6D66, 
505        0x081D53E8, 0xAE6A585C, 0x9F8242C1, 0x39F54975, 
506        0xA863A552, 0x0E14AEE6, 0x3FFCB47B, 0x998BBFCF, 
507        0x5C2C8141, 0xFA5B8AF5, 0xCBB39068, 0x6DC49BDC, 
508        0x9B8CEB35, 0x3DFBE081, 0x0C13FA1C, 0xAA64F1A8, 
509        0x6FC3CF26, 0xC9B4C492, 0xF85CDE0F, 0x5E2BD5BB, 
510        0x440B7579, 0xE27C7ECD, 0xD3946450, 0x75E36FE4, 
511        0xB044516A, 0x16335ADE, 0x27DB4043, 0x81AC4BF7, 
512        0x77E43B1E, 0xD19330AA, 0xE07B2A37, 0x460C2183, 
513        0x83AB1F0D, 0x25DC14B9, 0x14340E24, 0xB2430590, 
514        0x23D5E9B7, 0x85A2E203, 0xB44AF89E, 0x123DF32A, 
515        0xD79ACDA4, 0x71EDC610, 0x4005DC8D, 0xE672D739, 
516        0x103AA7D0, 0xB64DAC64, 0x87A5B6F9, 0x21D2BD4D, 
517        0xE47583C3, 0x42028877, 0x73EA92EA, 0xD59D995E, 
518        0x8BB64CE5, 0x2DC14751, 0x1C295DCC, 0xBA5E5678, 
519        0x7FF968F6, 0xD98E6342, 0xE86679DF, 0x4E11726B, 
520        0xB8590282, 0x1E2E0936, 0x2FC613AB, 0x89B1181F, 
521        0x4C162691, 0xEA612D25, 0xDB8937B8, 0x7DFE3C0C, 
522        0xEC68D02B, 0x4A1FDB9F, 0x7BF7C102, 0xDD80CAB6, 
523        0x1827F438, 0xBE50FF8C, 0x8FB8E511, 0x29CFEEA5, 
524        0xDF879E4C, 0x79F095F8, 0x48188F65, 0xEE6F84D1, 
525        0x2BC8BA5F, 0x8DBFB1EB, 0xBC57AB76, 0x1A20A0C2, 
526        0x8816EAF2, 0x2E61E146, 0x1F89FBDB, 0xB9FEF06F, 
527        0x7C59CEE1, 0xDA2EC555, 0xEBC6DFC8, 0x4DB1D47C, 
528        0xBBF9A495, 0x1D8EAF21, 0x2C66B5BC, 0x8A11BE08, 
529        0x4FB68086, 0xE9C18B32, 0xD82991AF, 0x7E5E9A1B, 
530        0xEFC8763C, 0x49BF7D88, 0x78576715, 0xDE206CA1, 
531        0x1B87522F, 0xBDF0599B, 0x8C184306, 0x2A6F48B2, 
532        0xDC27385B, 0x7A5033EF, 0x4BB82972, 0xEDCF22C6, 
533        0x28681C48, 0x8E1F17FC, 0xBFF70D61, 0x198006D5, 
534        0x47ABD36E, 0xE1DCD8DA, 0xD034C247, 0x7643C9F3, 
535        0xB3E4F77D, 0x1593FCC9, 0x247BE654, 0x820CEDE0, 
536        0x74449D09, 0xD23396BD, 0xE3DB8C20, 0x45AC8794, 
537        0x800BB91A, 0x267CB2AE, 0x1794A833, 0xB1E3A387, 
538        0x20754FA0, 0x86024414, 0xB7EA5E89, 0x119D553D, 
539        0xD43A6BB3, 0x724D6007, 0x43A57A9A, 0xE5D2712E, 
540        0x139A01C7, 0xB5ED0A73, 0x840510EE, 0x22721B5A, 
541        0xE7D525D4, 0x41A22E60, 0x704A34FD, 0xD63D3F49, 
542        0xCC1D9F8B, 0x6A6A943F, 0x5B828EA2, 0xFDF58516, 
543        0x3852BB98, 0x9E25B02C, 0xAFCDAAB1, 0x09BAA105, 
544        0xFFF2D1EC, 0x5985DA58, 0x686DC0C5, 0xCE1ACB71, 
545        0x0BBDF5FF, 0xADCAFE4B, 0x9C22E4D6, 0x3A55EF62, 
546        0xABC30345, 0x0DB408F1, 0x3C5C126C, 0x9A2B19D8, 
547        0x5F8C2756, 0xF9FB2CE2, 0xC813367F, 0x6E643DCB, 
548        0x982C4D22, 0x3E5B4696, 0x0FB35C0B, 0xA9C457BF, 
549        0x6C636931, 0xCA146285, 0xFBFC7818, 0x5D8B73AC, 
550        0x03A0A617, 0xA5D7ADA3, 0x943FB73E, 0x3248BC8A, 
551        0xF7EF8204, 0x519889B0, 0x6070932D, 0xC6079899, 
552        0x304FE870, 0x9638E3C4, 0xA7D0F959, 0x01A7F2ED, 
553        0xC400CC63, 0x6277C7D7, 0x539FDD4A, 0xF5E8D6FE, 
554        0x647E3AD9, 0xC209316D, 0xF3E12BF0, 0x55962044, 
555        0x90311ECA, 0x3646157E, 0x07AE0FE3, 0xA1D90457, 
556        0x579174BE, 0xF1E67F0A, 0xC00E6597, 0x66796E23, 
557        0xA3DE50AD, 0x05A95B19, 0x34414184, 0x92364A30,
558        /* T8_7 */
559        0x00000000, 0xCCAA009E, 0x4225077D, 0x8E8F07E3, 
560        0x844A0EFA, 0x48E00E64, 0xC66F0987, 0x0AC50919, 
561        0xD3E51BB5, 0x1F4F1B2B, 0x91C01CC8, 0x5D6A1C56, 
562        0x57AF154F, 0x9B0515D1, 0x158A1232, 0xD92012AC, 
563        0x7CBB312B, 0xB01131B5, 0x3E9E3656, 0xF23436C8, 
564        0xF8F13FD1, 0x345B3F4F, 0xBAD438AC, 0x767E3832, 
565        0xAF5E2A9E, 0x63F42A00, 0xED7B2DE3, 0x21D12D7D, 
566        0x2B142464, 0xE7BE24FA, 0x69312319, 0xA59B2387, 
567        0xF9766256, 0x35DC62C8, 0xBB53652B, 0x77F965B5, 
568        0x7D3C6CAC, 0xB1966C32, 0x3F196BD1, 0xF3B36B4F, 
569        0x2A9379E3, 0xE639797D, 0x68B67E9E, 0xA41C7E00, 
570        0xAED97719, 0x62737787, 0xECFC7064, 0x205670FA, 
571        0x85CD537D, 0x496753E3, 0xC7E85400, 0x0B42549E, 
572        0x01875D87, 0xCD2D5D19, 0x43A25AFA, 0x8F085A64, 
573        0x562848C8, 0x9A824856, 0x140D4FB5, 0xD8A74F2B, 
574        0xD2624632, 0x1EC846AC, 0x9047414F, 0x5CED41D1, 
575        0x299DC2ED, 0xE537C273, 0x6BB8C590, 0xA712C50E, 
576        0xADD7CC17, 0x617DCC89, 0xEFF2CB6A, 0x2358CBF4, 
577        0xFA78D958, 0x36D2D9C6, 0xB85DDE25, 0x74F7DEBB, 
578        0x7E32D7A2, 0xB298D73C, 0x3C17D0DF, 0xF0BDD041, 
579        0x5526F3C6, 0x998CF358, 0x1703F4BB, 0xDBA9F425, 
580        0xD16CFD3C, 0x1DC6FDA2, 0x9349FA41, 0x5FE3FADF, 
581        0x86C3E873, 0x4A69E8ED, 0xC4E6EF0E, 0x084CEF90, 
582        0x0289E689, 0xCE23E617, 0x40ACE1F4, 0x8C06E16A, 
583        0xD0EBA0BB, 0x1C41A025, 0x92CEA7C6, 0x5E64A758, 
584        0x54A1AE41, 0x980BAEDF, 0x1684A93C, 0xDA2EA9A2, 
585        0x030EBB0E, 0xCFA4BB90, 0x412BBC73, 0x8D81BCED, 
586        0x8744B5F4, 0x4BEEB56A, 0xC561B289, 0x09CBB217, 
587        0xAC509190, 0x60FA910E, 0xEE7596ED, 0x22DF9673, 
588        0x281A9F6A, 0xE4B09FF4, 0x6A3F9817, 0xA6959889, 
589        0x7FB58A25, 0xB31F8ABB, 0x3D908D58, 0xF13A8DC6, 
590        0xFBFF84DF, 0x37558441, 0xB9DA83A2, 0x7570833C, 
591        0x533B85DA, 0x9F918544, 0x111E82A7, 0xDDB48239, 
592        0xD7718B20, 0x1BDB8BBE, 0x95548C5D, 0x59FE8CC3, 
593        0x80DE9E6F, 0x4C749EF1, 0xC2FB9912, 0x0E51998C, 
594        0x04949095, 0xC83E900B, 0x46B197E8, 0x8A1B9776, 
595        0x2F80B4F1, 0xE32AB46F, 0x6DA5B38C, 0xA10FB312, 
596        0xABCABA0B, 0x6760BA95, 0xE9EFBD76, 0x2545BDE8, 
597        0xFC65AF44, 0x30CFAFDA, 0xBE40A839, 0x72EAA8A7, 
598        0x782FA1BE, 0xB485A120, 0x3A0AA6C3, 0xF6A0A65D, 
599        0xAA4DE78C, 0x66E7E712, 0xE868E0F1, 0x24C2E06F, 
600        0x2E07E976, 0xE2ADE9E8, 0x6C22EE0B, 0xA088EE95, 
601        0x79A8FC39, 0xB502FCA7, 0x3B8DFB44, 0xF727FBDA, 
602        0xFDE2F2C3, 0x3148F25D, 0xBFC7F5BE, 0x736DF520, 
603        0xD6F6D6A7, 0x1A5CD639, 0x94D3D1DA, 0x5879D144, 
604        0x52BCD85D, 0x9E16D8C3, 0x1099DF20, 0xDC33DFBE, 
605        0x0513CD12, 0xC9B9CD8C, 0x4736CA6F, 0x8B9CCAF1, 
606        0x8159C3E8, 0x4DF3C376, 0xC37CC495, 0x0FD6C40B, 
607        0x7AA64737, 0xB60C47A9, 0x3883404A, 0xF42940D4, 
608        0xFEEC49CD, 0x32464953, 0xBCC94EB0, 0x70634E2E, 
609        0xA9435C82, 0x65E95C1C, 0xEB665BFF, 0x27CC5B61, 
610        0x2D095278, 0xE1A352E6, 0x6F2C5505, 0xA386559B, 
611        0x061D761C, 0xCAB77682, 0x44387161, 0x889271FF, 
612        0x825778E6, 0x4EFD7878, 0xC0727F9B, 0x0CD87F05, 
613        0xD5F86DA9, 0x19526D37, 0x97DD6AD4, 0x5B776A4A, 
614        0x51B26353, 0x9D1863CD, 0x1397642E, 0xDF3D64B0, 
615        0x83D02561, 0x4F7A25FF, 0xC1F5221C, 0x0D5F2282, 
616        0x079A2B9B, 0xCB302B05, 0x45BF2CE6, 0x89152C78, 
617        0x50353ED4, 0x9C9F3E4A, 0x121039A9, 0xDEBA3937, 
618        0xD47F302E, 0x18D530B0, 0x965A3753, 0x5AF037CD, 
619        0xFF6B144A, 0x33C114D4, 0xBD4E1337, 0x71E413A9, 
620        0x7B211AB0, 0xB78B1A2E, 0x39041DCD, 0xF5AE1D53, 
621        0x2C8E0FFF, 0xE0240F61, 0x6EAB0882, 0xA201081C, 
622        0xA8C40105, 0x646E019B, 0xEAE10678, 0x264B06E6
623      };
624    }