@taichunmin/crc
Version:
A cross platform alternative for calculating Cyclic Redundancy Checks (CRC) values.
1 lines • 112 kB
JavaScript
function y0(B){let D=typeof B;return B!=null&&(D==="object"||D==="function")}function C(B,D,A){if(!y0(B)||!Array.isArray(D)||D.length<1)return B;let r=B;for(let t of D.slice(0,-1))y0(r[t])||(r[t]={}),r=r[t];return r[D.at(-1)]=A,B}var F=new Uint8Array(1),x=new Uint16Array(1),E=new Uint32Array(1);var J0=new Uint8Array([0,7,14,9,28,27,18,21,56,63,54,49,36,35,42,45,112,119,126,121,108,107,98,101,72,79,70,65,84,83,90,93,224,231,238,233,252,251,242,245,216,223,214,209,196,195,202,205,144,151,158,153,140,139,130,133,168,175,166,161,180,179,186,189,199,192,201,206,219,220,213,210,255,248,241,246,227,228,237,234,183,176,185,190,171,172,165,162,143,136,129,134,147,148,157,154,39,32,41,46,59,60,53,50,31,24,17,22,3,4,13,10,87,80,89,94,75,76,69,66,111,104,97,102,115,116,125,122,137,142,135,128,149,146,155,156,177,182,191,184,173,170,163,164,249,254,247,240,229,226,235,236,193,198,207,200,221,218,211,212,105,110,103,96,117,114,123,124,81,86,95,88,77,74,67,68,25,30,23,16,5,2,11,12,33,38,47,40,61,58,51,52,78,73,64,71,82,85,92,91,118,113,120,127,106,109,100,99,62,57,48,55,34,37,44,43,6,1,8,15,26,29,20,19,174,169,160,167,178,181,188,187,150,145,152,159,138,141,132,131,222,217,208,215,194,197,204,203,230,225,232,239,250,253,244,243]);function n(B=new Uint8Array,D=0){F[0]=D;for(let A of B)F[0]=J0[F[0]^A];return F[0]}var K0=new Uint8Array([0,47,94,113,188,147,226,205,87,120,9,38,235,196,181,154,174,129,240,223,18,61,76,99,249,214,167,136,69,106,27,52,115,92,45,2,207,224,145,190,36,11,122,85,152,183,198,233,221,242,131,172,97,78,63,16,138,165,212,251,54,25,104,71,230,201,184,151,90,117,4,43,177,158,239,192,13,34,83,124,72,103,22,57,244,219,170,133,31,48,65,110,163,140,253,210,149,186,203,228,41,6,119,88,194,237,156,179,126,81,32,15,59,20,101,74,135,168,217,246,108,67,50,29,208,255,142,161,227,204,189,146,95,112,1,46,180,155,234,197,8,39,86,121,77,98,19,60,241,222,175,128,26,53,68,107,166,137,248,215,144,191,206,225,44,3,114,93,199,232,153,182,123,84,37,10,62,17,96,79,130,173,220,243,105,70,55,24,213,250,139,164,5,42,91,116,185,150,231,200,82,125,12,35,238,193,176,159,171,132,245,218,23,56,73,102,252,211,162,141,64,111,30,49,118,89,40,7,202,229,148,187,33,14,127,80,157,178,195,236,216,247,134,169,100,75,58,21,143,160,209,254,51,28,109,66]),U0=255;function c(B=new Uint8Array,D=0){F[0]=D^U0;for(let A of B)F[0]=K0[F[0]^A];return F[0]^U0}var M0=new Uint8Array([0,107,214,189,103,12,177,218,206,165,24,115,169,194,127,20,87,60,129,234,48,91,230,141,153,242,79,36,254,149,40,67,174,197,120,19,201,162,31,116,96,11,182,221,7,108,209,186,249,146,47,68,158,245,72,35,55,92,225,138,80,59,134,237,151,252,65,42,240,155,38,77,89,50,143,228,62,85,232,131,192,171,22,125,167,204,113,26,14,101,216,179,105,2,191,212,57,82,239,132,94,53,136,227,247,156,33,74,144,251,70,45,110,5,184,211,9,98,223,180,160,203,118,29,199,172,17,122,229,142,51,88,130,233,84,63,43,64,253,150,76,39,154,241,178,217,100,15,213,190,3,104,124,23,170,193,27,112,205,166,75,32,157,246,44,71,250,145,133,238,83,56,226,137,52,95,28,119,202,161,123,16,173,198,210,185,4,111,181,222,99,8,114,25,164,207,21,126,195,168,188,215,106,1,219,176,13,102,37,78,243,152,66,41,148,255,235,128,61,86,140,231,90,49,220,183,10,97,187,208,109,6,18,121,196,175,117,30,163,200,139,224,93,54,236,135,58,81,69,46,147,248,34,73,244,159]);function o(B=new Uint8Array,D=0){F[0]=D;for(let A of B)F[0]=M0[F[0]^A];return F[0]}var N0=new Uint8Array([0,7,14,9,28,27,18,21,56,63,54,49,36,35,42,45,112,119,126,121,108,107,98,101,72,79,70,65,84,83,90,93,224,231,238,233,252,251,242,245,216,223,214,209,196,195,202,205,144,151,158,153,140,139,130,133,168,175,166,161,180,179,186,189,199,192,201,206,219,220,213,210,255,248,241,246,227,228,237,234,183,176,185,190,171,172,165,162,143,136,129,134,147,148,157,154,39,32,41,46,59,60,53,50,31,24,17,22,3,4,13,10,87,80,89,94,75,76,69,66,111,104,97,102,115,116,125,122,137,142,135,128,149,146,155,156,177,182,191,184,173,170,163,164,249,254,247,240,229,226,235,236,193,198,207,200,221,218,211,212,105,110,103,96,117,114,123,124,81,86,95,88,77,74,67,68,25,30,23,16,5,2,11,12,33,38,47,40,61,58,51,52,78,73,64,71,82,85,92,91,118,113,120,127,106,109,100,99,62,57,48,55,34,37,44,43,6,1,8,15,26,29,20,19,174,169,160,167,178,181,188,187,150,145,152,159,138,141,132,131,222,217,208,215,194,197,204,203,230,225,232,239,250,253,244,243]);function e(B=new Uint8Array,D=44){F[0]=D;for(let A of B)F[0]=N0[F[0]^A];return F[0]}var Q0=new Uint8Array([0,155,173,54,193,90,108,247,25,130,180,47,216,67,117,238,50,169,159,4,243,104,94,197,43,176,134,29,234,113,71,220,100,255,201,82,165,62,8,147,125,230,208,75,188,39,17,138,86,205,251,96,151,12,58,161,79,212,226,121,142,21,35,184,200,83,101,254,9,146,164,63,209,74,124,231,16,139,189,38,250,97,87,204,59,160,150,13,227,120,78,213,34,185,143,20,172,55,1,154,109,246,192,91,181,46,24,131,116,239,217,66,158,5,51,168,95,196,242,105,135,28,42,177,70,221,235,112,11,144,166,61,202,81,103,252,18,137,191,36,211,72,126,229,57,162,148,15,248,99,85,206,32,187,141,22,225,122,76,215,111,244,194,89,174,53,3,152,118,237,219,64,183,44,26,129,93,198,240,107,156,7,49,170,68,223,233,114,133,30,40,179,195,88,110,245,2,153,175,52,218,65,119,236,27,128,182,45,241,106,92,199,48,171,157,6,232,115,69,222,41,178,132,31,167,60,10,145,102,253,203,80,190,37,19,136,127,228,210,73,149,14,56,163,84,207,249,98,140,23,33,186,77,214,224,123]);function a(B=new Uint8Array,D=255){F[0]=D;for(let A of B)F[0]=Q0[F[0]^A];return F[0]}var S0=new Uint8Array([0,114,228,150,241,131,21,103,219,169,63,77,42,88,206,188,143,253,107,25,126,12,154,232,84,38,176,194,165,215,65,51,39,85,195,177,214,164,50,64,252,142,24,106,13,127,233,155,168,218,76,62,89,43,189,207,115,1,151,229,130,240,102,20,78,60,170,216,191,205,91,41,149,231,113,3,100,22,128,242,193,179,37,87,48,66,212,166,26,104,254,140,235,153,15,125,105,27,141,255,152,234,124,14,178,192,86,36,67,49,167,213,230,148,2,112,23,101,243,129,61,79,217,171,204,190,40,90,156,238,120,10,109,31,137,251,71,53,163,209,182,196,82,32,19,97,247,133,226,144,6,116,200,186,44,94,57,75,221,175,187,201,95,45,74,56,174,220,96,18,132,246,145,227,117,7,52,70,208,162,197,183,33,83,239,157,11,121,30,108,250,136,210,160,54,68,35,81,199,181,9,123,237,159,248,138,28,110,93,47,185,203,172,222,72,58,134,244,98,16,119,5,147,225,245,135,17,99,4,118,224,146,46,92,202,184,223,173,59,73,122,8,158,236,139,249,111,29,161,211,69,55,80,34,180,198]);function i(B=new Uint8Array,D=0){F[0]=D;for(let A of B)F[0]=S0[F[0]^A];return F[0]}var V0=new Uint8Array([0,213,127,170,254,43,129,84,41,252,86,131,215,2,168,125,82,135,45,248,172,121,211,6,123,174,4,209,133,80,250,47,164,113,219,14,90,143,37,240,141,88,242,39,115,166,12,217,246,35,137,92,8,221,119,162,223,10,160,117,33,244,94,139,157,72,226,55,99,182,28,201,180,97,203,30,74,159,53,224,207,26,176,101,49,228,78,155,230,51,153,76,24,205,103,178,57,236,70,147,199,18,184,109,16,197,111,186,238,59,145,68,107,190,20,193,149,64,234,63,66,151,61,232,188,105,195,22,239,58,144,69,17,196,110,187,198,19,185,108,56,237,71,146,189,104,194,23,67,150,60,233,148,65,235,62,106,191,21,192,75,158,52,225,181,96,202,31,98,183,29,200,156,73,227,54,25,204,102,179,231,50,152,77,48,229,79,154,206,27,177,100,114,167,13,216,140,89,243,38,91,142,36,241,165,112,218,15,32,245,95,138,222,11,161,116,9,220,118,163,247,34,136,93,214,3,169,124,40,253,87,130,255,42,128,85,1,212,126,171,132,81,251,46,122,175,5,208,173,120,210,7,83,134,44,249]);function u(B=new Uint8Array,D=0){F[0]=D;for(let A of B)F[0]=V0[F[0]^A];return F[0]}var W0=new Uint8Array([0,100,200,172,225,133,41,77,179,215,123,31,82,54,154,254,23,115,223,187,246,146,62,90,164,192,108,8,69,33,141,233,46,74,230,130,207,171,7,99,157,249,85,49,124,24,180,208,57,93,241,149,216,188,16,116,138,238,66,38,107,15,163,199,92,56,148,240,189,217,117,17,239,139,39,67,14,106,198,162,75,47,131,231,170,206,98,6,248,156,48,84,25,125,209,181,114,22,186,222,147,247,91,63,193,165,9,109,32,68,232,140,101,1,173,201,132,224,76,40,214,178,30,122,55,83,255,155,184,220,112,20,89,61,145,245,11,111,195,167,234,142,34,70,175,203,103,3,78,42,134,226,28,120,212,176,253,153,53,81,150,242,94,58,119,19,191,219,37,65,237,137,196,160,12,104,129,229,73,45,96,4,168,204,50,86,250,158,211,183,27,127,228,128,44,72,5,97,205,169,87,51,159,251,182,210,126,26,243,151,59,95,18,118,218,190,64,36,136,236,161,197,105,13,202,174,2,102,43,79,227,135,121,29,177,213,152,252,80,52,221,185,21,113,60,88,244,144,110,10,166,194,143,235,71,35]);function f(B=new Uint8Array,D=255){F[0]=D;for(let A of B)F[0]=W0[F[0]^A];return F[0]}var X0=new Uint8Array([0,29,58,39,116,105,78,83,232,245,210,207,156,129,166,187,205,208,247,234,185,164,131,158,37,56,31,2,81,76,107,118,135,154,189,160,243,238,201,212,111,114,85,72,27,6,33,60,74,87,112,109,62,35,4,25,162,191,152,133,214,203,236,241,19,14,41,52,103,122,93,64,251,230,193,220,143,146,181,168,222,195,228,249,170,183,144,141,54,43,12,17,66,95,120,101,148,137,174,179,224,253,218,199,124,97,70,91,8,21,50,47,89,68,99,126,45,48,23,10,177,172,139,150,197,216,255,226,38,59,28,1,82,79,104,117,206,211,244,233,186,167,128,157,235,246,209,204,159,130,165,184,3,30,57,36,119,106,77,80,161,188,155,134,213,200,239,242,73,84,115,110,61,32,7,26,108,113,86,75,24,5,34,63,132,153,190,163,240,237,202,215,53,40,15,18,65,92,123,102,221,192,231,250,169,180,147,142,248,229,194,223,140,145,182,171,16,13,42,55,100,121,94,67,178,175,136,149,198,219,252,225,90,71,96,125,46,51,20,9,127,98,69,88,11,22,49,44,151,138,173,176,227,254,217,196]);function m(B=new Uint8Array,D=0){F[0]=D;for(let A of B)F[0]=X0[F[0]^A];return F[0]}var Z0=new Uint8Array([0,73,146,219,109,36,255,182,218,147,72,1,183,254,37,108,253,180,111,38,144,217,2,75,39,110,181,252,74,3,216,145,179,250,33,104,222,151,76,5,105,32,251,178,4,77,150,223,78,7,220,149,35,106,177,248,148,221,6,79,249,176,107,34,47,102,189,244,66,11,208,153,245,188,103,46,152,209,10,67,210,155,64,9,191,246,45,100,8,65,154,211,101,44,247,190,156,213,14,71,241,184,99,42,70,15,212,157,43,98,185,240,97,40,243,186,12,69,158,215,187,242,41,96,214,159,68,13,94,23,204,133,51,122,161,232,132,205,22,95,233,160,123,50,163,234,49,120,206,135,92,21,121,48,235,162,20,93,134,207,237,164,127,54,128,201,18,91,55,126,165,236,90,19,200,129,16,89,130,203,125,52,239,166,202,131,88,17,167,238,53,124,113,56,227,170,28,85,142,199,171,226,57,112,198,143,84,29,140,197,30,87,225,168,115,58,86,31,196,141,59,114,169,224,194,139,80,25,175,230,61,116,24,81,138,195,117,60,231,174,63,118,173,228,82,27,192,137,229,172,119,62,136,193,26,83]),d0=255;function s(B=new Uint8Array,D=255){F[0]=D^d0;for(let A of B)F[0]=Z0[F[0]^A];return F[0]^d0}var $0=new Uint8Array([0,29,58,39,116,105,78,83,232,245,210,207,156,129,166,187,205,208,247,234,185,164,131,158,37,56,31,2,81,76,107,118,135,154,189,160,243,238,201,212,111,114,85,72,27,6,33,60,74,87,112,109,62,35,4,25,162,191,152,133,214,203,236,241,19,14,41,52,103,122,93,64,251,230,193,220,143,146,181,168,222,195,228,249,170,183,144,141,54,43,12,17,66,95,120,101,148,137,174,179,224,253,218,199,124,97,70,91,8,21,50,47,89,68,99,126,45,48,23,10,177,172,139,150,197,216,255,226,38,59,28,1,82,79,104,117,206,211,244,233,186,167,128,157,235,246,209,204,159,130,165,184,3,30,57,36,119,106,77,80,161,188,155,134,213,200,239,242,73,84,115,110,61,32,7,26,108,113,86,75,24,5,34,63,132,153,190,163,240,237,202,215,53,40,15,18,65,92,123,102,221,192,231,250,169,180,147,142,248,229,194,223,140,145,182,171,16,13,42,55,100,121,94,67,178,175,136,149,198,219,252,225,90,71,96,125,46,51,20,9,127,98,69,88,11,22,49,44,151,138,173,176,227,254,217,196]);function b(B=new Uint8Array,D=255){F[0]=D;for(let A of B)F[0]=$0[F[0]^A];return F[0]}var xx=new Uint8Array([0,29,58,39,116,105,78,83,232,245,210,207,156,129,166,187,205,208,247,234,185,164,131,158,37,56,31,2,81,76,107,118,135,154,189,160,243,238,201,212,111,114,85,72,27,6,33,60,74,87,112,109,62,35,4,25,162,191,152,133,214,203,236,241,19,14,41,52,103,122,93,64,251,230,193,220,143,146,181,168,222,195,228,249,170,183,144,141,54,43,12,17,66,95,120,101,148,137,174,179,224,253,218,199,124,97,70,91,8,21,50,47,89,68,99,126,45,48,23,10,177,172,139,150,197,216,255,226,38,59,28,1,82,79,104,117,206,211,244,233,186,167,128,157,235,246,209,204,159,130,165,184,3,30,57,36,119,106,77,80,161,188,155,134,213,200,239,242,73,84,115,110,61,32,7,26,108,113,86,75,24,5,34,63,132,153,190,163,240,237,202,215,53,40,15,18,65,92,123,102,221,192,231,250,169,180,147,142,248,229,194,223,140,145,182,171,16,13,42,55,100,121,94,67,178,175,136,149,198,219,252,225,90,71,96,125,46,51,20,9,127,98,69,88,11,22,49,44,151,138,173,176,227,254,217,196]);function l(B=new Uint8Array,D=253){F[0]=D;for(let A of B)F[0]=xx[F[0]^A];return F[0]}var Bx=new Uint8Array([0,7,14,9,28,27,18,21,56,63,54,49,36,35,42,45,112,119,126,121,108,107,98,101,72,79,70,65,84,83,90,93,224,231,238,233,252,251,242,245,216,223,214,209,196,195,202,205,144,151,158,153,140,139,130,133,168,175,166,161,180,179,186,189,199,192,201,206,219,220,213,210,255,248,241,246,227,228,237,234,183,176,185,190,171,172,165,162,143,136,129,134,147,148,157,154,39,32,41,46,59,60,53,50,31,24,17,22,3,4,13,10,87,80,89,94,75,76,69,66,111,104,97,102,115,116,125,122,137,142,135,128,149,146,155,156,177,182,191,184,173,170,163,164,249,254,247,240,229,226,235,236,193,198,207,200,221,218,211,212,105,110,103,96,117,114,123,124,81,86,95,88,77,74,67,68,25,30,23,16,5,2,11,12,33,38,47,40,61,58,51,52,78,73,64,71,82,85,92,91,118,113,120,127,106,109,100,99,62,57,48,55,34,37,44,43,6,1,8,15,26,29,20,19,174,169,160,167,178,181,188,187,150,145,152,159,138,141,132,131,222,217,208,215,194,197,204,203,230,225,232,239,250,253,244,243]),h0=85;function p(B=new Uint8Array,D=85){F[0]=D^h0;for(let A of B)F[0]=Bx[F[0]^A];return F[0]^h0}var Dx=new Uint8Array([0,19,38,53,76,95,106,121,152,139,190,173,212,199,242,225,189,174,155,136,241,226,215,196,37,54,3,16,105,122,79,92,247,228,209,194,187,168,157,142,111,124,73,90,35,48,5,22,74,89,108,127,6,21,32,51,210,193,244,231,158,141,184,171,99,112,69,86,47,60,9,26,251,232,221,206,183,164,145,130,222,205,248,235,146,129,180,167,70,85,96,115,10,25,44,63,148,135,178,161,216,203,254,237,12,31,42,57,64,83,102,117,41,58,15,28,101,118,67,80,177,162,151,132,253,238,219,200,198,213,224,243,138,153,172,191,94,77,120,107,18,1,52,39,123,104,93,78,55,36,17,2,227,240,197,214,175,188,137,154,49,34,23,4,125,110,91,72,169,186,143,156,229,246,195,208,140,159,170,185,192,211,230,245,20,7,50,33,88,75,126,109,165,182,131,144,233,250,207,220,61,46,27,8,113,98,87,68,24,11,62,45,84,71,114,97,128,147,166,181,204,223,234,249,82,65,116,103,30,13,56,43,202,217,236,255,134,149,160,179,239,252,201,218,163,176,133,150,119,100,81,66,59,40,29,14]);function y(B=new Uint8Array,D=170){F[0]=D;for(let A of B)F[0]=Dx[F[0]^A];return F[0]}var Ax=new Uint8Array([0,29,58,39,116,105,78,83,232,245,210,207,156,129,166,187,205,208,247,234,185,164,131,158,37,56,31,2,81,76,107,118,135,154,189,160,243,238,201,212,111,114,85,72,27,6,33,60,74,87,112,109,62,35,4,25,162,191,152,133,214,203,236,241,19,14,41,52,103,122,93,64,251,230,193,220,143,146,181,168,222,195,228,249,170,183,144,141,54,43,12,17,66,95,120,101,148,137,174,179,224,253,218,199,124,97,70,91,8,21,50,47,89,68,99,126,45,48,23,10,177,172,139,150,197,216,255,226,38,59,28,1,82,79,104,117,206,211,244,233,186,167,128,157,235,246,209,204,159,130,165,184,3,30,57,36,119,106,77,80,161,188,155,134,213,200,239,242,73,84,115,110,61,32,7,26,108,113,86,75,24,5,34,63,132,153,190,163,240,237,202,215,53,40,15,18,65,92,123,102,221,192,231,250,169,180,147,142,248,229,194,223,140,145,182,171,16,13,42,55,100,121,94,67,178,175,136,149,198,219,252,225,90,71,96,125,46,51,20,9,127,98,69,88,11,22,49,44,151,138,173,176,227,254,217,196]);function U(B=new Uint8Array,D=199){F[0]=D;for(let A of B)F[0]=Ax[F[0]^A];return F[0]}var Cx=new Uint8Array([0,94,188,226,97,63,221,131,194,156,126,32,163,253,31,65,157,195,33,127,252,162,64,30,95,1,227,189,62,96,130,220,35,125,159,193,66,28,254,160,225,191,93,3,128,222,60,98,190,224,2,92,223,129,99,61,124,34,192,158,29,67,161,255,70,24,250,164,39,121,155,197,132,218,56,102,229,187,89,7,219,133,103,57,186,228,6,88,25,71,165,251,120,38,196,154,101,59,217,135,4,90,184,230,167,249,27,69,198,152,122,36,248,166,68,26,153,199,37,123,58,100,134,216,91,5,231,185,140,210,48,110,237,179,81,15,78,16,242,172,47,113,147,205,17,79,173,243,112,46,204,146,211,141,111,49,178,236,14,80,175,241,19,77,206,144,114,44,109,51,209,143,12,82,176,238,50,108,142,208,83,13,239,177,240,174,76,18,145,207,45,115,202,148,118,40,171,245,23,73,8,86,180,234,105,55,213,139,87,9,235,181,54,104,138,212,149,203,41,119,244,170,72,22,233,183,85,11,136,214,52,106,43,117,151,201,74,20,246,168,116,42,200,150,21,75,169,247,182,232,10,84,215,137,107,53]);function d(B=new Uint8Array,D=0){F[0]=D;for(let A of B)F[0]=Cx[F[0]^A];return F[0]}var Fx=new Uint8Array([0,49,98,83,196,245,166,151,185,136,219,234,125,76,31,46,67,114,33,16,135,182,229,212,250,203,152,169,62,15,92,109,134,183,228,213,66,115,32,17,63,14,93,108,251,202,153,168,197,244,167,150,1,48,99,82,124,77,30,47,184,137,218,235,61,12,95,110,249,200,155,170,132,181,230,215,64,113,34,19,126,79,28,45,186,139,216,233,199,246,165,148,3,50,97,80,187,138,217,232,127,78,29,44,2,51,96,81,198,247,164,149,248,201,154,171,60,13,94,111,65,112,35,18,133,180,231,214,122,75,24,41,190,143,220,237,195,242,161,144,7,54,101,84,57,8,91,106,253,204,159,174,128,177,226,211,68,117,38,23,252,205,158,175,56,9,90,107,69,116,39,22,129,176,227,210,191,142,221,236,123,74,25,40,6,55,100,85,194,243,160,145,71,118,37,20,131,178,225,208,254,207,156,173,58,11,88,105,4,53,102,87,192,241,162,147,189,140,223,238,121,72,27,42,193,240,163,146,5,52,103,86,120,73,26,43,188,141,222,239,130,179,224,209,70,119,36,21,59,10,89,104,255,206,157,172]);function h(B=new Uint8Array,D=255){F[0]=D;for(let A of B)F[0]=Fx[F[0]^A];return F[0]}var Ex=new Uint8Array([0,47,94,113,188,147,226,205,87,120,9,38,235,196,181,154,174,129,240,223,18,61,76,99,249,214,167,136,69,106,27,52,115,92,45,2,207,224,145,190,36,11,122,85,152,183,198,233,221,242,131,172,97,78,63,16,138,165,212,251,54,25,104,71,230,201,184,151,90,117,4,43,177,158,239,192,13,34,83,124,72,103,22,57,244,219,170,133,31,48,65,110,163,140,253,210,149,186,203,228,41,6,119,88,194,237,156,179,126,81,32,15,59,20,101,74,135,168,217,246,108,67,50,29,208,255,142,161,227,204,189,146,95,112,1,46,180,155,234,197,8,39,86,121,77,98,19,60,241,222,175,128,26,53,68,107,166,137,248,215,144,191,206,225,44,3,114,93,199,232,153,182,123,84,37,10,62,17,96,79,130,173,220,243,105,70,55,24,213,250,139,164,5,42,91,116,185,150,231,200,82,125,12,35,238,193,176,159,171,132,245,218,23,56,73,102,252,211,162,141,64,111,30,49,118,89,40,7,202,229,148,187,33,14,127,80,157,178,195,236,216,247,134,169,100,75,58,21,143,160,209,254,51,28,109,66]);function w(B=new Uint8Array,D=0){F[0]=D;for(let A of B)F[0]=Ex[F[0]^A];return F[0]}var rx=new Uint8Array([0,145,227,114,7,150,228,117,14,159,237,124,9,152,234,123,28,141,255,110,27,138,248,105,18,131,241,96,21,132,246,103,56,169,219,74,63,174,220,77,54,167,213,68,49,160,210,67,36,181,199,86,35,178,192,81,42,187,201,88,45,188,206,95,112,225,147,2,119,230,148,5,126,239,157,12,121,232,154,11,108,253,143,30,107,250,136,25,98,243,129,16,101,244,134,23,72,217,171,58,79,222,172,61,70,215,165,52,65,208,162,51,84,197,183,38,83,194,176,33,90,203,185,40,93,204,190,47,224,113,3,146,231,118,4,149,238,127,13,156,233,120,10,155,252,109,31,142,251,106,24,137,242,99,17,128,245,100,22,135,216,73,59,170,223,78,60,173,214,71,53,164,209,64,50,163,196,85,39,182,195,82,32,177,202,91,41,184,205,92,46,191,144,1,115,226,151,6,116,229,158,15,125,236,153,8,122,235,140,29,111,254,139,26,104,249,130,19,97,240,133,20,102,247,168,57,75,218,175,62,76,221,166,55,69,212,161,48,66,211,180,37,87,198,179,34,80,193,186,43,89,200,189,44,94,207]);function T(B=new Uint8Array,D=255){F[0]=D;for(let A of B)F[0]=rx[F[0]^A];return F[0]}var tx=new Uint8Array([0,29,58,39,116,105,78,83,232,245,210,207,156,129,166,187,205,208,247,234,185,164,131,158,37,56,31,2,81,76,107,118,135,154,189,160,243,238,201,212,111,114,85,72,27,6,33,60,74,87,112,109,62,35,4,25,162,191,152,133,214,203,236,241,19,14,41,52,103,122,93,64,251,230,193,220,143,146,181,168,222,195,228,249,170,183,144,141,54,43,12,17,66,95,120,101,148,137,174,179,224,253,218,199,124,97,70,91,8,21,50,47,89,68,99,126,45,48,23,10,177,172,139,150,197,216,255,226,38,59,28,1,82,79,104,117,206,211,244,233,186,167,128,157,235,246,209,204,159,130,165,184,3,30,57,36,119,106,77,80,161,188,155,134,213,200,239,242,73,84,115,110,61,32,7,26,108,113,86,75,24,5,34,63,132,153,190,163,240,237,202,215,53,40,15,18,65,92,123,102,221,192,231,250,169,180,147,142,248,229,194,223,140,145,182,171,16,13,42,55,100,121,94,67,178,175,136,149,198,219,252,225,90,71,96,125,46,51,20,9,127,98,69,88,11,22,49,44,151,138,173,176,227,254,217,196]),w0=255;function O(B=new Uint8Array,D=0){F[0]=D^w0;for(let A of B)F[0]=tx[F[0]^A];return F[0]^w0}var nx=new Uint8Array([0,208,19,195,38,246,53,229,76,156,95,143,106,186,121,169,152,72,139,91,190,110,173,125,212,4,199,23,242,34,225,49,131,83,144,64,165,117,182,102,207,31,220,12,233,57,250,42,27,203,8,216,61,237,46,254,87,135,68,148,113,161,98,178,181,101,166,118,147,67,128,80,249,41,234,58,223,15,204,28,45,253,62,238,11,219,24,200,97,177,114,162,71,151,84,132,54,230,37,245,16,192,3,211,122,170,105,185,92,140,79,159,174,126,189,109,136,88,155,75,226,50,241,33,196,20,215,7,217,9,202,26,255,47,236,60,149,69,134,86,179,99,160,112,65,145,82,130,103,183,116,164,13,221,30,206,43,251,56,232,90,138,73,153,124,172,111,191,22,198,5,213,48,224,35,243,194,18,209,1,228,52,247,39,142,94,157,77,168,120,187,107,108,188,127,175,74,154,89,137,32,240,51,227,6,214,21,197,244,36,231,55,210,2,193,17,184,104,171,123,158,78,141,93,239,63,252,44,201,25,218,10,163,115,176,96,133,85,150,70,119,167,100,180,81,129,66,146,59,235,40,248,29,205,14,222]);function L(B=new Uint8Array,D=0){F[0]=D;for(let A of B)F[0]=nx[F[0]^A];return F[0]}var cx=new Uint16Array([0,4489,8978,12955,17956,22445,25910,29887,35912,40385,44890,48851,51820,56293,59774,63735,4225,264,13203,8730,22181,18220,30135,25662,40137,36160,49115,44626,56045,52068,63999,59510,8450,12427,528,5017,26406,30383,17460,21949,44362,48323,36440,40913,60270,64231,51324,55797,12675,8202,4753,792,30631,26158,21685,17724,48587,44098,40665,36688,64495,60006,55549,51572,16900,21389,24854,28831,1056,5545,10034,14011,52812,57285,60766,64727,34920,39393,43898,47859,21125,17164,29079,24606,5281,1320,14259,9786,57037,53060,64991,60502,39145,35168,48123,43634,25350,29327,16404,20893,9506,13483,1584,6073,61262,65223,52316,56789,43370,47331,35448,39921,29575,25102,20629,16668,13731,9258,5809,1848,65487,60998,56541,52564,47595,43106,39673,35696,33800,38273,42778,46739,49708,54181,57662,61623,2112,6601,11090,15067,20068,24557,28022,31999,38025,34048,47003,42514,53933,49956,61887,57398,6337,2376,15315,10842,24293,20332,32247,27774,42250,46211,34328,38801,58158,62119,49212,53685,10562,14539,2640,7129,28518,32495,19572,24061,46475,41986,38553,34576,62383,57894,53437,49460,14787,10314,6865,2904,32743,28270,23797,19836,50700,55173,58654,62615,32808,37281,41786,45747,19012,23501,26966,30943,3168,7657,12146,16123,54925,50948,62879,58390,37033,33056,46011,41522,23237,19276,31191,26718,7393,3432,16371,11898,59150,63111,50204,54677,41258,45219,33336,37809,27462,31439,18516,23005,11618,15595,3696,8185,63375,58886,54429,50452,45483,40994,37561,33584,31687,27214,22741,18780,15843,11370,7921,3960]);function g(B=new Uint8Array,D=25443){x[0]=D;for(let A of B)x[0]=cx[(x[0]^A)&255]^x[0]>>>8;return x[0]}var ox=new Uint16Array([0,49345,49537,320,49921,960,640,49729,50689,1728,1920,51009,1280,50625,50305,1088,52225,3264,3456,52545,3840,53185,52865,3648,2560,51905,52097,2880,51457,2496,2176,51265,55297,6336,6528,55617,6912,56257,55937,6720,7680,57025,57217,8e3,56577,7616,7296,56385,5120,54465,54657,5440,55041,6080,5760,54849,53761,4800,4992,54081,4352,53697,53377,4160,61441,12480,12672,61761,13056,62401,62081,12864,13824,63169,63361,14144,62721,13760,13440,62529,15360,64705,64897,15680,65281,16320,16e3,65089,64001,15040,15232,64321,14592,63937,63617,14400,10240,59585,59777,10560,60161,11200,10880,59969,60929,11968,12160,61249,11520,60865,60545,11328,58369,9408,9600,58689,9984,59329,59009,9792,8704,58049,58241,9024,57601,8640,8320,57409,40961,24768,24960,41281,25344,41921,41601,25152,26112,42689,42881,26432,42241,26048,25728,42049,27648,44225,44417,27968,44801,28608,28288,44609,43521,27328,27520,43841,26880,43457,43137,26688,30720,47297,47489,31040,47873,31680,31360,47681,48641,32448,32640,48961,32e3,48577,48257,31808,46081,29888,30080,46401,30464,47041,46721,30272,29184,45761,45953,29504,45313,29120,28800,45121,20480,37057,37249,20800,37633,21440,21120,37441,38401,22208,22400,38721,21760,38337,38017,21568,39937,23744,23936,40257,24320,40897,40577,24128,23040,39617,39809,23360,39169,22976,22656,38977,34817,18624,18816,35137,19200,35777,35457,19008,19968,36545,36737,20288,36097,19904,19584,35905,17408,33985,34177,17728,34561,18368,18048,34369,33281,17088,17280,33601,16640,33217,32897,16448]);function j(B=new Uint8Array,D=0){x[0]=D;for(let A of B)x[0]=ox[(x[0]^A)&255]^x[0]>>>8;return x[0]}var ex=new Uint16Array([0,4129,8258,12387,16516,20645,24774,28903,33032,37161,41290,45419,49548,53677,57806,61935,4657,528,12915,8786,21173,17044,29431,25302,37689,33560,45947,41818,54205,50076,62463,58334,9314,13379,1056,5121,25830,29895,17572,21637,42346,46411,34088,38153,58862,62927,50604,54669,13907,9842,5649,1584,30423,26358,22165,18100,46939,42874,38681,34616,63455,59390,55197,51132,18628,22757,26758,30887,2112,6241,10242,14371,51660,55789,59790,63919,35144,39273,43274,47403,23285,19156,31415,27286,6769,2640,14899,10770,56317,52188,64447,60318,39801,35672,47931,43802,27814,31879,19684,23749,11298,15363,3168,7233,60846,64911,52716,56781,44330,48395,36200,40265,32407,28342,24277,20212,15891,11826,7761,3696,65439,61374,57309,53244,48923,44858,40793,36728,37256,33193,45514,41451,53516,49453,61774,57711,4224,161,12482,8419,20484,16421,28742,24679,33721,37784,41979,46042,49981,54044,58239,62302,689,4752,8947,13010,16949,21012,25207,29270,46570,42443,38312,34185,62830,58703,54572,50445,13538,9411,5280,1153,29798,25671,21540,17413,42971,47098,34713,38840,59231,63358,50973,55100,9939,14066,1681,5808,26199,30326,17941,22068,55628,51565,63758,59695,39368,35305,47498,43435,22596,18533,30726,26663,6336,2273,14466,10403,52093,56156,60223,64286,35833,39896,43963,48026,19061,23124,27191,31254,2801,6864,10931,14994,64814,60687,56684,52557,48554,44427,40424,36297,31782,27655,23652,19525,15522,11395,7392,3265,61215,65342,53085,57212,44955,49082,36825,40952,28183,32310,20053,24180,11923,16050,3793,7920]);function P(B=new Uint8Array,D=7439){x[0]=D;for(let A of B)x[0]=ex[x[0]>>>8^A]^x[0]<<8;return x[0]}var ax=new Uint16Array([0,32773,32783,10,32795,30,20,32785,32819,54,60,32825,40,32813,32807,34,32867,102,108,32873,120,32893,32887,114,80,32853,32863,90,32843,78,68,32833,32963,198,204,32969,216,32989,32983,210,240,33013,33023,250,33003,238,228,32993,160,32933,32943,170,32955,190,180,32945,32915,150,156,32921,136,32909,32903,130,33155,390,396,33161,408,33181,33175,402,432,33205,33215,442,33195,430,420,33185,480,33253,33263,490,33275,510,500,33265,33235,470,476,33241,456,33229,33223,450,320,33093,33103,330,33115,350,340,33105,33139,374,380,33145,360,33133,33127,354,33059,294,300,33065,312,33085,33079,306,272,33045,33055,282,33035,270,260,33025,33539,774,780,33545,792,33565,33559,786,816,33589,33599,826,33579,814,804,33569,864,33637,33647,874,33659,894,884,33649,33619,854,860,33625,840,33613,33607,834,960,33733,33743,970,33755,990,980,33745,33779,1014,1020,33785,1e3,33773,33767,994,33699,934,940,33705,952,33725,33719,946,912,33685,33695,922,33675,910,900,33665,640,33413,33423,650,33435,670,660,33425,33459,694,700,33465,680,33453,33447,674,33507,742,748,33513,760,33533,33527,754,720,33493,33503,730,33483,718,708,33473,33347,582,588,33353,600,33373,33367,594,624,33397,33407,634,33387,622,612,33377,544,33317,33327,554,33339,574,564,33329,33299,534,540,33305,520,33293,33287,514]);function Y(B=new Uint8Array,D=0){x[0]=D;for(let A of B)x[0]=ax[x[0]>>>8^A]^x[0]<<8;return x[0]}var ix=new Uint16Array([0,4129,8258,12387,16516,20645,24774,28903,33032,37161,41290,45419,49548,53677,57806,61935,4657,528,12915,8786,21173,17044,29431,25302,37689,33560,45947,41818,54205,50076,62463,58334,9314,13379,1056,5121,25830,29895,17572,21637,42346,46411,34088,38153,58862,62927,50604,54669,13907,9842,5649,1584,30423,26358,22165,18100,46939,42874,38681,34616,63455,59390,55197,51132,18628,22757,26758,30887,2112,6241,10242,14371,51660,55789,59790,63919,35144,39273,43274,47403,23285,19156,31415,27286,6769,2640,14899,10770,56317,52188,64447,60318,39801,35672,47931,43802,27814,31879,19684,23749,11298,15363,3168,7233,60846,64911,52716,56781,44330,48395,36200,40265,32407,28342,24277,20212,15891,11826,7761,3696,65439,61374,57309,53244,48923,44858,40793,36728,37256,33193,45514,41451,53516,49453,61774,57711,4224,161,12482,8419,20484,16421,28742,24679,33721,37784,41979,46042,49981,54044,58239,62302,689,4752,8947,13010,16949,21012,25207,29270,46570,42443,38312,34185,62830,58703,54572,50445,13538,9411,5280,1153,29798,25671,21540,17413,42971,47098,34713,38840,59231,63358,50973,55100,9939,14066,1681,5808,26199,30326,17941,22068,55628,51565,63758,59695,39368,35305,47498,43435,22596,18533,30726,26663,6336,2273,14466,10403,52093,56156,60223,64286,35833,39896,43963,48026,19061,23124,27191,31254,2801,6864,10931,14994,64814,60687,56684,52557,48554,44427,40424,36297,31782,27655,23652,19525,15522,11395,7392,3265,61215,65342,53085,57212,44955,49082,36825,40952,28183,32310,20053,24180,11923,16050,3793,7920]);function _(B=new Uint8Array,D=65535){x[0]=D;for(let A of B)x[0]=ix[x[0]>>>8^A]^x[0]<<8;return x[0]}var ux=new Uint16Array([0,51303,22697,37070,45394,31029,59899,8604,43715,25252,62058,14861,7057,54262,17208,35679,40417,21894,50504,3375,11443,58580,29722,48253,14114,65349,28555,42988,34416,19991,57049,5822,62373,15298,43788,25451,17143,35472,6750,53817,22886,37121,463,51624,59444,8275,45213,30970,28228,42531,14061,65162,57110,6001,34751,20440,50311,3296,39982,21577,30165,48562,11644,58651,12077,59210,30596,49123,40575,22040,50902,3761,34286,19849,56647,5408,13500,64731,27669,42098,45772,31403,60005,8706,926,52217,23351,37712,6159,53352,16550,35009,43357,24890,61940,14739,56456,5359,33825,19526,28122,42429,13683,64788,30283,48684,12002,59013,50969,3966,40880,22487,16745,35086,6592,53671,61499,14428,43154,24821,60330,9165,45827,31588,23288,37535,593,51766,24154,38461,1779,52884,61192,10095,47009,32710,62617,15614,44080,25687,17867,36268,7522,54533,50107,3036,39698,21365,29417,47758,10816,57895,27e3,41247,12753,63926,55338,4173,32899,18660,44543,26008,62806,15665,7341,54474,17412,35939,1852,53083,24469,38898,46702,32265,61127,9888,12318,63609,26807,41168,33100,18731,55781,4482,39645,21178,49780,2579,11151,58344,29478,47937,29047,47376,10718,57785,49189,2114,39052,20715,56244,5075,33565,19322,27366,41601,12879,64040,60566,9457,46143,31832,24004,38307,1389,52490,18005,36402,7932,54939,63239,16224,44974,26569,33490,19125,55931,4636,13184,64487,27433,41806,10257,57462,28856,47327,39235,20772,49642,2445,7987,55124,18330,36861,44641,26118,63176,16047,46576,32151,60761,9534,1186,52421,23563,37996]);function k(B=new Uint8Array,D=65535){x[0]=D;for(let A of B)x[0]=ux[x[0]>>>8^A]^x[0]<<8;return x[0]}var fx=new Uint16Array([0,32773,32783,10,32795,30,20,32785,32819,54,60,32825,40,32813,32807,34,32867,102,108,32873,120,32893,32887,114,80,32853,32863,90,32843,78,68,32833,32963,198,204,32969,216,32989,32983,210,240,33013,33023,250,33003,238,228,32993,160,32933,32943,170,32955,190,180,32945,32915,150,156,32921,136,32909,32903,130,33155,390,396,33161,408,33181,33175,402,432,33205,33215,442,33195,430,420,33185,480,33253,33263,490,33275,510,500,33265,33235,470,476,33241,456,33229,33223,450,320,33093,33103,330,33115,350,340,33105,33139,374,380,33145,360,33133,33127,354,33059,294,300,33065,312,33085,33079,306,272,33045,33055,282,33035,270,260,33025,33539,774,780,33545,792,33565,33559,786,816,33589,33599,826,33579,814,804,33569,864,33637,33647,874,33659,894,884,33649,33619,854,860,33625,840,33613,33607,834,960,33733,33743,970,33755,990,980,33745,33779,1014,1020,33785,1e3,33773,33767,994,33699,934,940,33705,952,33725,33719,946,912,33685,33695,922,33675,910,900,33665,640,33413,33423,650,33435,670,660,33425,33459,694,700,33465,680,33453,33447,674,33507,742,748,33513,760,33533,33527,754,720,33493,33503,730,33483,718,708,33473,33347,582,588,33353,600,33373,33367,594,624,33397,33407,634,33387,622,612,33377,544,33317,33327,554,33339,574,564,33329,33299,534,540,33305,520,33293,33287,514]);function q(B=new Uint8Array,D=65535){x[0]=D;for(let A of B)x[0]=fx[x[0]>>>8^A]^x[0]<<8;return x[0]}var mx=new Uint16Array([0,32773,32783,10,32795,30,20,32785,32819,54,60,32825,40,32813,32807,34,32867,102,108,32873,120,32893,32887,114,80,32853,32863,90,32843,78,68,32833,32963,198,204,32969,216,32989,32983,210,240,33013,33023,250,33003,238,228,32993,160,32933,32943,170,32955,190,180,32945,32915,150,156,32921,136,32909,32903,130,33155,390,396,33161,408,33181,33175,402,432,33205,33215,442,33195,430,420,33185,480,33253,33263,490,33275,510,500,33265,33235,470,476,33241,456,33229,33223,450,320,33093,33103,330,33115,350,340,33105,33139,374,380,33145,360,33133,33127,354,33059,294,300,33065,312,33085,33079,306,272,33045,33055,282,33035,270,260,33025,33539,774,780,33545,792,33565,33559,786,816,33589,33599,826,33579,814,804,33569,864,33637,33647,874,33659,894,884,33649,33619,854,860,33625,840,33613,33607,834,960,33733,33743,970,33755,990,980,33745,33779,1014,1020,33785,1e3,33773,33767,994,33699,934,940,33705,952,33725,33719,946,912,33685,33695,922,33675,910,900,33665,640,33413,33423,650,33435,670,660,33425,33459,694,700,33465,680,33453,33447,674,33507,742,748,33513,760,33533,33527,754,720,33493,33503,730,33483,718,708,33473,33347,582,588,33353,600,33373,33367,594,624,33397,33407,634,33387,622,612,33377,544,33317,33327,554,33339,574,564,33329,33299,534,540,33305,520,33293,33287,514]);function v(B=new Uint8Array,D=32781){x[0]=D;for(let A of B)x[0]=mx[x[0]>>>8^A]^x[0]<<8;return x[0]}var sx=new Uint16Array([0,1417,2834,3739,5668,5037,7478,6335,11336,10689,10074,8915,14956,16357,12670,13559,22672,23833,21378,22027,20148,19261,17830,16431,29912,29009,32714,31299,25340,26485,27118,27751,45344,46249,47666,49083,42756,41613,44054,43423,40296,39137,38522,37875,35660,36549,32862,34263,59824,60473,58018,59179,65428,64029,62598,61711,50680,49265,52970,52067,54236,54869,55502,56647,26569,25152,27867,26962,29165,29796,31487,32630,19329,19976,16531,17690,23973,22572,22199,21310,16217,15056,13387,12738,10621,11508,8815,10214,4881,5784,6147,7562,1333,188,3623,2990,55017,54112,56827,55410,49357,50500,52191,52822,64161,65320,61875,62522,60549,59660,59287,57886,36473,35824,34155,32994,39005,40404,37711,38598,41521,42936,43299,44202,46101,45468,48903,47758,53138,51739,50304,49417,55734,56383,53924,55085,58330,58963,59592,60737,62974,61559,65260,64357,38658,37515,39952,39321,33062,33967,35380,36797,47946,48835,45144,46545,44398,43239,42620,41973,32434,31547,30112,28713,26774,27935,25476,26125,21242,22387,23016,23649,17630,16727,20428,19013,9762,9131,11568,10425,12294,13711,15124,16029,2666,4067,376,1265,7246,6599,5980,4821,43099,44498,41801,42688,48767,48118,46445,45284,33811,33178,36609,35464,37431,38846,39205,40108,61643,62786,64473,65104,59119,58214,60925,59508,56451,55562,55185,53784,51879,53038,49589,50236,6523,7410,4713,6112,3935,2774,1101,452,13619,12474,15905,15272,8983,9886,10245,11660,16875,17506,19193,20336,22479,21062,23773,22868,28067,26666,26289,25400,31623,32270,28821,29980]),T0=1;function z(B=new Uint8Array,D=1){x[0]=D^T0;for(let A of B)x[0]=sx[x[0]>>>8^A]^x[0]<<8;return x[0]^T0}var bx=new Uint16Array([0,1417,2834,3739,5668,5037,7478,6335,11336,10689,10074,8915,14956,16357,12670,13559,22672,23833,21378,22027,20148,19261,17830,16431,29912,29009,32714,31299,25340,26485,27118,27751,45344,46249,47666,49083,42756,41613,44054,43423,40296,39137,38522,37875,35660,36549,32862,34263,59824,60473,58018,59179,65428,64029,62598,61711,50680,49265,52970,52067,54236,54869,55502,56647,26569,25152,27867,26962,29165,29796,31487,32630,19329,19976,16531,17690,23973,22572,22199,21310,16217,15056,13387,12738,10621,11508,8815,10214,4881,5784,6147,7562,1333,188,3623,2990,55017,54112,56827,55410,49357,50500,52191,52822,64161,65320,61875,62522,60549,59660,59287,57886,36473,35824,34155,32994,39005,40404,37711,38598,41521,42936,43299,44202,46101,45468,48903,47758,53138,51739,50304,49417,55734,56383,53924,55085,58330,58963,59592,60737,62974,61559,65260,64357,38658,37515,39952,39321,33062,33967,35380,36797,47946,48835,45144,46545,44398,43239,42620,41973,32434,31547,30112,28713,26774,27935,25476,26125,21242,22387,23016,23649,17630,16727,20428,19013,9762,9131,11568,10425,12294,13711,15124,16029,2666,4067,376,1265,7246,6599,5980,4821,43099,44498,41801,42688,48767,48118,46445,45284,33811,33178,36609,35464,37431,38846,39205,40108,61643,62786,64473,65104,59119,58214,60925,59508,56451,55562,55185,53784,51879,53038,49589,50236,6523,7410,4713,6112,3935,2774,1101,452,13619,12474,15905,15272,8983,9886,10245,11660,16875,17506,19193,20336,22479,21062,23773,22868,28067,26666,26289,25400,31623,32270,28821,29980]);function R(B=new Uint8Array,D=0){x[0]=D;for(let A of B)x[0]=bx[x[0]>>>8^A]^x[0]<<8;return x[0]}var lx=new Uint16Array([0,13918,27836,23266,55672,61222,46532,33690,65417,51671,37685,42347,9969,4271,19021,31763,45675,33845,57047,59529,27411,23885,1967,12785,19938,31676,8542,5888,38042,41668,63526,52856,10671,8177,17683,29517,61655,50825,40043,43573,54822,57464,47770,36036,3934,14592,25570,21948,39876,44442,63352,49446,17084,29922,11776,6238,25677,21011,2289,16047,48437,35691,53641,59351,21342,25856,16354,2492,35366,48248,59034,53444,44247,39561,49259,63029,30127,17393,6419,12109,57653,55147,36233,48087,14413,3603,21745,25263,7868,10466,29184,17502,51140,61850,43896,40230,31473,19631,5709,8211,41865,38359,53045,63851,34168,45862,59844,57242,23552,27230,12476,1762,51354,65220,42022,37496,4578,10172,32094,19200,14099,333,23471,28145,61035,55349,33495,46217,42684,37090,51712,64606,32708,18842,4984,9510,22837,28523,13705,983,32845,46611,60657,55983,5335,8841,30827,20021,52655,64497,41235,38733,60254,56576,34786,45500,12838,1144,24218,26820,36627,47437,58287,54769,22123,24629,15063,3209,28826,18116,7206,10872,43490,40892,50526,62208,15736,2854,20932,26522,58368,53854,35004,48866,49905,62639,44621,38931,7049,11735,30517,16747,62946,50108,39262,44800,11418,6852,16422,30328,2667,15413,26327,20617,54035,58701,49071,35313,18313,29143,11061,7531,40689,43183,62029,50195,47104,36446,54460,58082,24952,22310,3524,15258,56397,59923,45297,34479,1333,13163,27017,24535,9156,5530,20344,31014,64188,52450,38400,41054,28198,22648,666,13508,46942,33024,56290,60860,37295,42993,64787,52045,18647,32393,9323,4661]),O0=65535;function G(B=new Uint8Array,D=65535){x[0]=D^O0;for(let A of B)x[0]=lx[(x[0]^A)&255]^x[0]>>>8;return x[0]^O0}var px=new Uint16Array([0,15717,31434,18351,62868,51441,36702,45627,54861,60200,44167,37346,9177,7868,22803,25718,37375,44186,60213,54864,25707,22798,7841,9156,18354,31447,15736,29,45606,36675,51436,62857,7835,9214,25681,22836,60175,54890,37317,44192,51414,62899,45596,36729,15682,39,18312,31469,36708,45569,62894,51403,31472,18325,58,15711,22825,25676,9187,7814,44221,37336,54903,60178,15670,83,18428,31385,51362,62919,45672,36621,60283,54814,37297,44244,7919,9098,25637,22848,44233,37292,54787,60262,22877,25656,9111,7922,31364,18401,78,15659,36624,45685,62938,51391,9133,7880,22887,25602,54841,60252,44275,37270,62944,51333,36650,45647,116,15633,31422,18395,45650,36663,51352,62973,18374,31395,15628,105,25631,22906,7893,9136,37259,44270,60225,54820,31340,18185,166,15811,36856,45725,62770,51287,44065,37188,55019,60302,22965,25808,9087,7706,60307,55030,37209,44092,7687,9058,25805,22952,15838,187,18196,31345,51274,62767,45696,36837,25847,22930,7741,9048,37219,44038,60329,54988,45754,36831,51312,62741,18222,31307,15844,129,62728,51309,36802,45735,156,15865,31318,18227,9029,7712,22927,25834,54993,60340,44059,37246,18266,31295,15760,245,45774,36779,51204,62817,37143,44146,60381,54968,25731,23014,7753,9004,54949,60352,44143,37130,9009,7764,23035,25758,232,15757,31266,18247,62844,51225,36790,45779,22977,25764,8971,7790,44117,37168,54943,60410,36748,45801,62790,51235,31256,18301,210,15799,51262,62811,45812,36753,15786,207,18272,31237,7795,8982,25785,23004,60391,54914,37165,44104]),L0=65535;function H(B=new Uint8Array,D=65535){x[0]=D^L0;for(let A of B)x[0]=px[x[0]>>>8^A]^x[0]<<8;return x[0]^L0}var yx=new Uint16Array([0,4129,8258,12387,16516,20645,24774,28903,33032,37161,41290,45419,49548,53677,57806,61935,4657,528,12915,8786,21173,17044,29431,25302,37689,33560,45947,41818,54205,50076,62463,58334,9314,13379,1056,5121,25830,29895,17572,21637,42346,46411,34088,38153,58862,62927,50604,54669,13907,9842,5649,1584,30423,26358,22165,18100,46939,42874,38681,34616,63455,59390,55197,51132,18628,22757,26758,30887,2112,6241,10242,14371,51660,55789,59790,63919,35144,39273,43274,47403,23285,19156,31415,27286,6769,2640,14899,10770,56317,52188,64447,60318,39801,35672,47931,43802,27814,31879,19684,23749,11298,15363,3168,7233,60846,64911,52716,56781,44330,48395,36200,40265,32407,28342,24277,20212,15891,11826,7761,3696,65439,61374,57309,53244,48923,44858,40793,36728,37256,33193,45514,41451,53516,49453,61774,57711,4224,161,12482,8419,20484,16421,28742,24679,33721,37784,41979,46042,49981,54044,58239,62302,689,4752,8947,13010,16949,21012,25207,29270,46570,42443,38312,34185,62830,58703,54572,50445,13538,9411,5280,1153,29798,25671,21540,17413,42971,47098,34713,38840,59231,63358,50973,55100,9939,14066,1681,5808,26199,30326,17941,22068,55628,51565,63758,59695,39368,35305,47498,43435,22596,18533,30726,26663,6336,2273,14466,10403,52093,56156,60223,64286,35833,39896,43963,48026,19061,23124,27191,31254,2801,6864,10931,14994,64814,60687,56684,52557,48554,44427,40424,36297,31782,27655,23652,19525,15522,11395,7392,3265,61215,65342,53085,57212,44955,49082,36825,40952,28183,32310,20053,24180,11923,16050,3793,7920]),g0=65535;function I(B=new Uint8Array,D=0){x[0]=D^g0;for(let A of B)x[0]=yx[x[0]>>>8^A]^x[0]<<8;return x[0]^g0}var Ux=new Uint16Array([0,4129,8258,12387,16516,20645,24774,28903,33032,37161,41290,45419,49548,53677,57806,61935,4657,528,12915,8786,21173,17044,29431,25302,37689,33560,45947,41818,54205,50076,62463,58334,9314,13379,1056,5121,25830,29895,17572,21637,42346,46411,34088,38153,58862,62927,50604,54669,13907,9842,5649,1584,30423,26358,22165,18100,46939,42874,38681,34616,63455,59390,55197,51132,18628,22757,26758,30887,2112,6241,10242,14371,51660,55789,59790,63919,35144,39273,43274,47403,23285,19156,31415,27286,6769,2640,14899,10770,56317,52188,64447,60318,39801,35672,47931,43802,27814,31879,19684,23749,11298,15363,3168,7233,60846,64911,52716,56781,44330,48395,36200,40265,32407,28342,24277,20212,15891,11826,7761,3696,65439,61374,57309,53244,48923,44858,40793,36728,37256,33193,45514,41451,53516,49453,61774,57711,4224,161,12482,8419,20484,16421,28742,24679,33721,37784,41979,46042,49981,54044,58239,62302,689,4752,8947,13010,16949,21012,25207,29270,46570,42443,38312,34185,62830,58703,54572,50445,13538,9411,5280,1153,29798,25671,21540,17413,42971,47098,34713,38840,59231,63358,50973,55100,9939,14066,1681,5808,26199,30326,17941,22068,55628,51565,63758,59695,39368,35305,47498,43435,22596,18533,30726,26663,6336,2273,14466,10403,52093,56156,60223,64286,35833,39896,43963,48026,19061,23124,27191,31254,2801,6864,10931,14994,64814,60687,56684,52557,48554,44427,40424,36297,31782,27655,23652,19525,15522,11395,7392,3265,61215,65342,53085,57212,44955,49082,36825,40952,28183,32310,20053,24180,11923,16050,3793,7920]),j0=65535;function J(B=new Uint8Array,D=65535){x[0]=D^j0;for(let A of B)x[0]=Ux[x[0]>>>8^A]^x[0]<<8;return x[0]^j0}var dx=new Uint16Array([0,4489,8978,12955,17956,22445,25910,29887,35912,40385,44890,48851,51820,56293,59774,63735,4225,264,13203,8730,22181,18220,30135,25662,40137,36160,49115,44626,56045,52068,63999,59510,8450,12427,528,5017,26406,30383,17460,21949,44362,48323,36440,40913,60270,64231,51324,55797,12675,8202,4753,792,30631,26158,21685,17724,48587,44098,40665,36688,64495,60006,55549,51572,16900,21389,24854,28831,1056,5545,10034,14011,52812,57285,60766,64727,34920,39393,43898,47859,21125,17164,29079,24606,5281,1320,14259,9786,57037,53060,64991,60502,39145,35168,48123,43634,25350,29327,16404,20893,9506,13483,1584,6073,61262,65223,52316,56789,43370,47331,35448,39921,29575,25102,20629,16668,13731,9258,5809,1848,65487,60998,56541,52564,47595,43106,39673,35696,33800,38273,42778,46739,49708,54181,57662,61623,2112,6601,11090,15067,20068,24557,28022,31999,38025,34048,47003,42514,53933,49956,61887,57398,6337,2376,15315,10842,24293,20332,32247,27774,42250,46211,34328,38801,58158,62119,49212,53685,10562,14539,2640,7129,28518,32495,19572,24061,46475,41986,38553,34576,62383,57894,53437,49460,14787,10314,6865,2904,32743,28270,23797,19836,50700,55173,58654,62615,32808,37281,41786,45747,19012,23501,26966,30943,3168,7657,12146,16123,54925,50948,62879,58390,37033,33056,46011,41522,23237,19276,31191,26718,7393,3432,16371,11898,59150,63111,50204,54677,41258,45219,33336,37809,27462,31439,18516,23005,11618,15595,3696,8185,63375,58886,54429,50452,45483,40994,37561,33584,31687,27214,22741,18780,15843,11370,7921,3960]),P0=3011;function K(B=new Uint8Array,D=60369){x[0]=D^P0;for(let A of B)x[0]=dx[(x[0]^A)&255]^x[0]>>>8;return x[0]^P0}var hx=new Uint16Array([0,4489,8978,12955,17956,22445,25910,29887,35912,40385,44890,48851,51820,56293,59774,63735,4225,264,13203,8730,22181,18220,30135,25662,40137,36160,49115,44626,56045,52068,63999,59510,8450,12427,528,5017,26406,30383,17460,21949,44362,48323,36440,40913,60270,64231,51324,55797,12675,8202,4753,792,30631,26158,21685,17724,48587,44098,40665,36688,64495,60006,55549,51572,16900,21389,24854,28831,1056,5545,10034,14011,52812,57285,60766,64727,34920,39393,43898,47859,21125,17164,29079,24606,5281,1320,14259,9786,57037,53060,64991,60502,39145,35168,48123,43634,25350,29327,16404,20893,9506,13483,1584,6073,61262,65223,52316,56789,43370,47331,35448,39921,29575,25102,20629,16668,13731,9258,5809,1848,65487,60998,56541,52564,47595,43106,39673,35696,33800,38273,42778,46739,49708,54181,57662,61623,2112,6601,11090,15067,20068,24557,28022,31999,38025,34048,47003,42514,53933,49956,61887,57398,6337,2376,15315,10842,24293,20332,32247,27774,42250,46211,34328,38801,58158,62119,49212,53685,10562,14539,2640,7129,28518,32495,19572,24061,46475,41986,38553,34576,62383,57894,53437,49460,14787,10314,6865,2904,32743,28270,23797,19836,50700,55173,58654,62615,32808,37281,41786,45747,19012,23501,26966,30943,3168,7657,12146,16123,54925,50948,62879,58390,37033,33056,46011,41522,23237,19276,31191,26718,7393,3432,16371,11898,59150,63111,50204,54677,41258,45219,33336,37809,27462,31439,18516,23005,11618,15595,3696,8185,63375,58886,54429,50452,45483,40994,37561,33584,31687,27214,22741,18780,15843,11370,7921,3960]);function M(B=new Uint8Array,D=0){x[0]=D;for(let A of B)x[0]=hx[(x[0]^A)&255]^x[0]>>>8;return x[0]}var wx=new Uint16Array([0,28515,57030,45477,53999,48524,3113,25418,51901,42462,5243,31512,6226,30513,50836,43511,64025,38266,9439,19388,10486,18325,63024,39251,12452,24519,61026,33025,57931,36136,15501,21486,39761,62514,17815,10996,18878,9949,38776,63515,20972,16015,36650,57417,33539,60512,24005,12966,24904,3627,49038,53485,45991,56516,28001,514,44021,50326,30003,6736,31002,5753,42972,51391,22977,13986,34567,59492,35630,58445,21992,14987,37756,64543,19898,8921,16787,12016,40789,61494,41944,52411,32030,4733,28983,7764,45041,49298,26981,1542,47011,55488,48010,54505,25932,2607,49808,44531,7254,29493,4223,32540,52921,41434,2093,26446,55019,47496,56002,46497,1028,27495,14473,22506,58959,35116,60006,34053,13472,23491,62004,40279,11506,17297,8411,20408,65053,37246,45954,56545,27972,551,24941,3598,49067,53448,31039,5724,43001,51354,43984,50355,29974,6773,18843,9976,38749,63550,39796,62487,17842,10961,33574,60485,24032,12931,20937,16042,36623,57452,10451,18352,62997,39286,64060,38239,9466,19353,57966,36109,15528,21451,12417,24546,60999,33060,53962,48553,3084,25455,37,28486,57059,45440,6263,30484,50865,43474,51864,42491,5214,31549,59971,34080,13445,23526,14508,22479,58986,35081,8446,20381,65080,37211,61969,40306,11479,17332,4186,32569,52892,41471,49845,44502,7283,29456,56039,46468,1057,27458,2056,26475,54990,47533,28946,7793,45012,49335,41981,52382,32059,4696,48047,54476,25961,2570,26944,1571,46982,55525,35595,58472,21965,15022,23012,13959,34594,59457,16822,11989,40816,61459,37721,64570,19871,8956]);function N(B=new Uint8Array,D=0){x[0]=D;for(let A of B)x[0]=wx[x[0]>>>8^A]^x[0]<<8;return x[0]}var Tx=new Uint16Array([0,22837,45674,60255,15841,25812,36747,54974,31682,8951,51624,37021,17955,7958,62537,44412,63364,44721,17902,7387,51813,37712,30735,8506,35910,54643,15916,26393,45479,59538,973,23288,46653,61192,1111,23906,35804,53993,14774,24707,52735,38090,32661,9888,61470,43307,17012,6977,16825,6284,62419,43750,31832,9581,52786,38663,14971,25422,34833,53540,1946,24239,46576,60613,13647,27770,34597,56848,2222,20891,47812,58353,20109,6072,64743,42450,29548,10841,49414,38963,49867,39934,28833,10644,65322,42527,19776,5237,47369,57404,2915,21078,34024,56797,13954,28599,33650,55879,12568,26669,48787,59302,3321,21964,63664,41349,19162,5103,50513,40036,30523,11790,29942,11715,50844,40873,18711,4130,64381,41544,3892,22017,48478,58475,13013,27616,32959,55690,27294,13227,55540,33217,22399,3658,58645,48160,4444,18537,41782,64003,11453,30088,40663,51170,40218,50223,12144,30277,41211,63950,4753,19364,59096,49133,21682,3463,56121,33292,26963,12390,56483,34198,28361,14332,57666,47223,21288,2589,42849,65108,5387,19518,39552,50101,10474,29151,11047,29202,39245,49272,5830,20467,42156,64921,20709,2512,57999,48058,27908,13361,57198,34395,24529,1764,60859,46222,25136,15109,53338,35183,9235,32038,38521,53068,6642,16583,43928,62125,43093,61792,6719,17162,38324,52353,10206,32491,54167,35490,25085,14536,61046,46915,23580,132