'a'
mh-two-thousand-and-two
2024-04-12 44d2c92345cd156a59fc327b3060292a282d2893
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
var isStr = require('./isStr');
var strToBytes = require('./strToBytes');
var TABLE = [];
for (var n = 0; n < 256; n++) {
    var c = n;
    for (var k = 0; k < 8; k++) {
        if (c & 1) {
            c = 0xedb88320 ^ (c >>> 1);
        } else {
            c = c >>> 1;
        }
    }
    TABLE[n] = c >>> 0;
}
if (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE);
exports = function(input, previous) {
    return exports.signed(input, previous) >>> 0;
};
exports.signed = function(input, previous) {
    if (isStr(input)) input = strToBytes(input);
    var crc = previous === 0 ? 0 : ~~previous ^ -1;
    for (var i = 0, len = input.length; i < len; i++) {
        var byte = input[i];
        crc = TABLE[(crc ^ byte) & 0xff] ^ (crc >>> 8);
    }
    return crc ^ -1;
};
 
module.exports = exports;