var di = function() {
function t() {}
return t.update = function(e, i, n) {
void 0 === i && (i = 0),
void 0 === n && (n = 0);
var o = 0
, s = 0;
0 == n && (n = e.length),
e.position = i;
for (var r = i; n > r; ++r)
s = 255 & t.CRCBitReflect(e.readByte(), 8) ^ o >> 8 & 16777215,
s &= 255,
o = t.CRCTable[s] ^ o << 8 & 4294967040;
return 65535 & (0 ^ t.CRCBitReflect(o, 16))
}
,
t.makeCRCTable = function() {
for (var e = 0, i = new Array(256), n = 0; 256 > n; ++n) {
e = n << 8 & 4294967040;
for (var o = 0; 8 > o; ++o)
e = 32768 & e ? e << 1 & 4294967294 ^ t.POLYNOMIAL : e << 1 & 4294967294;
i[n] = e
}
return i
}
,
t.CRCBitReflect = function(e, i) {
var n = 0
, o = 0;
i--;
for (var s = 0; i >= s; ++s)
o = i - s,
1 & e && (n |= 1 << o & t.DropBits[o]),
e = e >> 1 & 2147483647;
return n
}
,
t.POLYNOMIAL = 4129,
t.CRCTable = t.makeCRCTable(),
t.DropBits = [4294967295, 4294967294, 4294967292, 4294967288, 4294967280, 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528],
t
}();