171e7ee59SPeter Avalos 271e7ee59SPeter Avalos /*-------------------------------------------------------------*/ 371e7ee59SPeter Avalos /*--- Table for doing CRCs ---*/ 471e7ee59SPeter Avalos /*--- crctable.c ---*/ 571e7ee59SPeter Avalos /*-------------------------------------------------------------*/ 671e7ee59SPeter Avalos 771e7ee59SPeter Avalos /* ------------------------------------------------------------------ 871e7ee59SPeter Avalos This file is part of bzip2/libbzip2, a program and library for 971e7ee59SPeter Avalos lossless, block-sorting data compression. 1071e7ee59SPeter Avalos 11*86954436SDaniel Fojt bzip2/libbzip2 version 1.0.8 of 13 July 2019 12*86954436SDaniel Fojt Copyright (C) 1996-2019 Julian Seward <jseward@acm.org> 1371e7ee59SPeter Avalos 1471e7ee59SPeter Avalos Please read the WARNING, DISCLAIMER and PATENTS sections in the 1571e7ee59SPeter Avalos README file. 1671e7ee59SPeter Avalos 1771e7ee59SPeter Avalos This program is released under the terms of the license contained 1871e7ee59SPeter Avalos in the file LICENSE. 1971e7ee59SPeter Avalos ------------------------------------------------------------------ */ 2071e7ee59SPeter Avalos 2171e7ee59SPeter Avalos 2271e7ee59SPeter Avalos #include "bzlib_private.h" 2371e7ee59SPeter Avalos 2471e7ee59SPeter Avalos /*-- 2571e7ee59SPeter Avalos I think this is an implementation of the AUTODIN-II, 2671e7ee59SPeter Avalos Ethernet & FDDI 32-bit CRC standard. Vaguely derived 2771e7ee59SPeter Avalos from code by Rob Warnock, in Section 51 of the 2871e7ee59SPeter Avalos comp.compression FAQ. 2971e7ee59SPeter Avalos --*/ 3071e7ee59SPeter Avalos 3171e7ee59SPeter Avalos UInt32 BZ2_crc32Table[256] = { 3271e7ee59SPeter Avalos 3371e7ee59SPeter Avalos /*-- Ugly, innit? --*/ 3471e7ee59SPeter Avalos 3571e7ee59SPeter Avalos 0x00000000L, 0x04c11db7L, 0x09823b6eL, 0x0d4326d9L, 3671e7ee59SPeter Avalos 0x130476dcL, 0x17c56b6bL, 0x1a864db2L, 0x1e475005L, 3771e7ee59SPeter Avalos 0x2608edb8L, 0x22c9f00fL, 0x2f8ad6d6L, 0x2b4bcb61L, 3871e7ee59SPeter Avalos 0x350c9b64L, 0x31cd86d3L, 0x3c8ea00aL, 0x384fbdbdL, 3971e7ee59SPeter Avalos 0x4c11db70L, 0x48d0c6c7L, 0x4593e01eL, 0x4152fda9L, 4071e7ee59SPeter Avalos 0x5f15adacL, 0x5bd4b01bL, 0x569796c2L, 0x52568b75L, 4171e7ee59SPeter Avalos 0x6a1936c8L, 0x6ed82b7fL, 0x639b0da6L, 0x675a1011L, 4271e7ee59SPeter Avalos 0x791d4014L, 0x7ddc5da3L, 0x709f7b7aL, 0x745e66cdL, 4371e7ee59SPeter Avalos 0x9823b6e0L, 0x9ce2ab57L, 0x91a18d8eL, 0x95609039L, 4471e7ee59SPeter Avalos 0x8b27c03cL, 0x8fe6dd8bL, 0x82a5fb52L, 0x8664e6e5L, 4571e7ee59SPeter Avalos 0xbe2b5b58L, 0xbaea46efL, 0xb7a96036L, 0xb3687d81L, 4671e7ee59SPeter Avalos 0xad2f2d84L, 0xa9ee3033L, 0xa4ad16eaL, 0xa06c0b5dL, 4771e7ee59SPeter Avalos 0xd4326d90L, 0xd0f37027L, 0xddb056feL, 0xd9714b49L, 4871e7ee59SPeter Avalos 0xc7361b4cL, 0xc3f706fbL, 0xceb42022L, 0xca753d95L, 4971e7ee59SPeter Avalos 0xf23a8028L, 0xf6fb9d9fL, 0xfbb8bb46L, 0xff79a6f1L, 5071e7ee59SPeter Avalos 0xe13ef6f4L, 0xe5ffeb43L, 0xe8bccd9aL, 0xec7dd02dL, 5171e7ee59SPeter Avalos 0x34867077L, 0x30476dc0L, 0x3d044b19L, 0x39c556aeL, 5271e7ee59SPeter Avalos 0x278206abL, 0x23431b1cL, 0x2e003dc5L, 0x2ac12072L, 5371e7ee59SPeter Avalos 0x128e9dcfL, 0x164f8078L, 0x1b0ca6a1L, 0x1fcdbb16L, 5471e7ee59SPeter Avalos 0x018aeb13L, 0x054bf6a4L, 0x0808d07dL, 0x0cc9cdcaL, 5571e7ee59SPeter Avalos 0x7897ab07L, 0x7c56b6b0L, 0x71159069L, 0x75d48ddeL, 5671e7ee59SPeter Avalos 0x6b93dddbL, 0x6f52c06cL, 0x6211e6b5L, 0x66d0fb02L, 5771e7ee59SPeter Avalos 0x5e9f46bfL, 0x5a5e5b08L, 0x571d7dd1L, 0x53dc6066L, 5871e7ee59SPeter Avalos 0x4d9b3063L, 0x495a2dd4L, 0x44190b0dL, 0x40d816baL, 5971e7ee59SPeter Avalos 0xaca5c697L, 0xa864db20L, 0xa527fdf9L, 0xa1e6e04eL, 6071e7ee59SPeter Avalos 0xbfa1b04bL, 0xbb60adfcL, 0xb6238b25L, 0xb2e29692L, 6171e7ee59SPeter Avalos 0x8aad2b2fL, 0x8e6c3698L, 0x832f1041L, 0x87ee0df6L, 6271e7ee59SPeter Avalos 0x99a95df3L, 0x9d684044L, 0x902b669dL, 0x94ea7b2aL, 6371e7ee59SPeter Avalos 0xe0b41de7L, 0xe4750050L, 0xe9362689L, 0xedf73b3eL, 6471e7ee59SPeter Avalos 0xf3b06b3bL, 0xf771768cL, 0xfa325055L, 0xfef34de2L, 6571e7ee59SPeter Avalos 0xc6bcf05fL, 0xc27dede8L, 0xcf3ecb31L, 0xcbffd686L, 6671e7ee59SPeter Avalos 0xd5b88683L, 0xd1799b34L, 0xdc3abdedL, 0xd8fba05aL, 6771e7ee59SPeter Avalos 0x690ce0eeL, 0x6dcdfd59L, 0x608edb80L, 0x644fc637L, 6871e7ee59SPeter Avalos 0x7a089632L, 0x7ec98b85L, 0x738aad5cL, 0x774bb0ebL, 6971e7ee59SPeter Avalos 0x4f040d56L, 0x4bc510e1L, 0x46863638L, 0x42472b8fL, 7071e7ee59SPeter Avalos 0x5c007b8aL, 0x58c1663dL, 0x558240e4L, 0x51435d53L, 7171e7ee59SPeter Avalos 0x251d3b9eL, 0x21dc2629L, 0x2c9f00f0L, 0x285e1d47L, 7271e7ee59SPeter Avalos 0x36194d42L, 0x32d850f5L, 0x3f9b762cL, 0x3b5a6b9bL, 7371e7ee59SPeter Avalos 0x0315d626L, 0x07d4cb91L, 0x0a97ed48L, 0x0e56f0ffL, 7471e7ee59SPeter Avalos 0x1011a0faL, 0x14d0bd4dL, 0x19939b94L, 0x1d528623L, 7571e7ee59SPeter Avalos 0xf12f560eL, 0xf5ee4bb9L, 0xf8ad6d60L, 0xfc6c70d7L, 7671e7ee59SPeter Avalos 0xe22b20d2L, 0xe6ea3d65L, 0xeba91bbcL, 0xef68060bL, 7771e7ee59SPeter Avalos 0xd727bbb6L, 0xd3e6a601L, 0xdea580d8L, 0xda649d6fL, 7871e7ee59SPeter Avalos 0xc423cd6aL, 0xc0e2d0ddL, 0xcda1f604L, 0xc960ebb3L, 7971e7ee59SPeter Avalos 0xbd3e8d7eL, 0xb9ff90c9L, 0xb4bcb610L, 0xb07daba7L, 8071e7ee59SPeter Avalos 0xae3afba2L, 0xaafbe615L, 0xa7b8c0ccL, 0xa379dd7bL, 8171e7ee59SPeter Avalos 0x9b3660c6L, 0x9ff77d71L, 0x92b45ba8L, 0x9675461fL, 8271e7ee59SPeter Avalos 0x8832161aL, 0x8cf30badL, 0x81b02d74L, 0x857130c3L, 8371e7ee59SPeter Avalos 0x5d8a9099L, 0x594b8d2eL, 0x5408abf7L, 0x50c9b640L, 8471e7ee59SPeter Avalos 0x4e8ee645L, 0x4a4ffbf2L, 0x470cdd2bL, 0x43cdc09cL, 8571e7ee59SPeter Avalos 0x7b827d21L, 0x7f436096L, 0x7200464fL, 0x76c15bf8L, 8671e7ee59SPeter Avalos 0x68860bfdL, 0x6c47164aL, 0x61043093L, 0x65c52d24L, 8771e7ee59SPeter Avalos 0x119b4be9L, 0x155a565eL, 0x18197087L, 0x1cd86d30L, 8871e7ee59SPeter Avalos 0x029f3d35L, 0x065e2082L, 0x0b1d065bL, 0x0fdc1becL, 8971e7ee59SPeter Avalos 0x3793a651L, 0x3352bbe6L, 0x3e119d3fL, 0x3ad08088L, 9071e7ee59SPeter Avalos 0x2497d08dL, 0x2056cd3aL, 0x2d15ebe3L, 0x29d4f654L, 9171e7ee59SPeter Avalos 0xc5a92679L, 0xc1683bceL, 0xcc2b1d17L, 0xc8ea00a0L, 9271e7ee59SPeter Avalos 0xd6ad50a5L, 0xd26c4d12L, 0xdf2f6bcbL, 0xdbee767cL, 9371e7ee59SPeter Avalos 0xe3a1cbc1L, 0xe760d676L, 0xea23f0afL, 0xeee2ed18L, 9471e7ee59SPeter Avalos 0xf0a5bd1dL, 0xf464a0aaL, 0xf9278673L, 0xfde69bc4L, 9571e7ee59SPeter Avalos 0x89b8fd09L, 0x8d79e0beL, 0x803ac667L, 0x84fbdbd0L, 9671e7ee59SPeter Avalos 0x9abc8bd5L, 0x9e7d9662L, 0x933eb0bbL, 0x97ffad0cL, 9771e7ee59SPeter Avalos 0xafb010b1L, 0xab710d06L, 0xa6322bdfL, 0xa2f33668L, 9871e7ee59SPeter Avalos 0xbcb4666dL, 0xb8757bdaL, 0xb5365d03L, 0xb1f740b4L 9971e7ee59SPeter Avalos }; 10071e7ee59SPeter Avalos 10171e7ee59SPeter Avalos 10271e7ee59SPeter Avalos /*-------------------------------------------------------------*/ 10371e7ee59SPeter Avalos /*--- end crctable.c ---*/ 10471e7ee59SPeter Avalos /*-------------------------------------------------------------*/ 105