diff --git a/.eslintrc.json b/.eslintrc.json index 884b158..d829e5b 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -3,11 +3,11 @@ "browser": true, "node": true }, - "parser": "@typescript-eslint/parser", "extends": [ "eslint:recommended", "plugin:@typescript-eslint/recommended" ], + "parser": "@typescript-eslint/parser", "plugins": ["import", "jsdoc"], "rules": { "@typescript-eslint/no-explicit-any": "off", @@ -59,5 +59,6 @@ "memberSyntaxSortOrder": ["none", "all", "multiple", "single"] }], "space-infix-ops": "error" - } + }, + "ignorePatterns": ["**/*.min.js"] } diff --git a/demo/demo.js b/demo/demo.js index baf1d94..c5ed09a 100644 --- a/demo/demo.js +++ b/demo/demo.js @@ -1,6 +1,7 @@ import { parquetMetadata, parquetMetadataAsync, parquetRead, parquetSchema, toJson, } from '../src/hyparquet.js' +import { compressors } from './hyparquet-compressors.min.js' import { fileLayout, fileMetadata } from './layout.js' /** @@ -137,6 +138,7 @@ async function render(asyncBuffer, metadata, name) { const startTime = performance.now() await parquetRead({ + compressors, file: asyncBuffer, rowEnd: 1000, onComplete(/** @type {any[][]} */ data) { diff --git a/demo/hyparquet-compressors.min.js b/demo/hyparquet-compressors.min.js new file mode 100644 index 0000000..03ae0f5 --- /dev/null +++ b/demo/hyparquet-compressors.min.js @@ -0,0 +1,3 @@ +// @ts-ignore +var n=ArrayBuffer,A=Uint8Array,e=Uint16Array,t=Int16Array,r=Int32Array,o=function(n,e,t){if(A.prototype.slice)return A.prototype.slice.call(n,e,t);(null==e||e<0)&&(e=0),(null==t||t>n.length)&&(t=n.length);var r=new A(t-e);return r.set(n.subarray(e,t)),r},i=function(n,e,t,r){if(A.prototype.fill)return A.prototype.fill.call(n,e,t,r);for((null==t||t<0)&&(t=0),(null==r||r>n.length)&&(r=n.length);tn.length)&&(r=n.length);t2046MB)","invalid block type","FSE accuracy too high","match distance too far back","unexpected EOF"],f=function(n,A,e){var t=new Error(A||w[n]);if(t.code=n,Error.captureStackTrace&&Error.captureStackTrace(t,f),!e)throw t;return t},a=function(n,A,e){for(var t=0,r=0;t>5&1,g=s>>2&1,I=3&s,B=s>>6;8&s&&f(0);var l=6-w,h=3==I?4:I,u=a(n,l,h),Q=B?1<>3);c=C+(C>>3)*(7&n[5])}c>2145386496&&f(1);var b=new A((1==e?d||c:e?0:c)+12);return b[0]=1,b[4]=4,b[8]=8,{b:l+Q,y:0,l:0,d:u,w:e&&1!=e?e:b.subarray(12),e:c,o:new r(b.buffer,0,3),u:d,c:g,m:Math.min(131072,c)}}if(25481893==(i>>4|n[3]<<20))return 8+(((t=n)[o=4]|t[o+1]<<8|t[o+2]<<16|t[o+3]<<24)>>>0);f(0)},I=function(n){for(var A=0;1<i&&f(3);for(var a=1<0;){var v=I(g+1),y=s>>3,F=(1<>(7&s)&F,W=(1<W&&(U-=Y)),d[++B]=--U,-1==U?(g+=U,E[--u]=B):g-=U,!U)do{var S=s>>3;l=(r[S]|r[S+1]<<8)>>(7&s)&3,s+=2,B+=l}while(3==l)}(B>255||g)&&f(0);for(var H=0,x=(a>>1)+(a>>3)+3,G=a-1,P=0;P<=B;++P){var q=d[P];if(q<1)c[P]=-q;else for(h=0;h=u)}}for(H&&f(0),h=0;h>3,{b:w,s:E,n:p,t:C}]},l=B(new A([81,16,99,140,49,198,24,99,12,33,196,24,99,102,102,134,70,146,4]),0,6)[1],h=B(new A([33,20,196,24,99,140,33,132,16,66,8,33,132,16,66,8,33,68,68,68,68,68,68,68,68,36,9]),0,6)[1],u=B(new A([32,132,16,66,102,70,68,68,68,68,36,73,2]),0,5)[1],Q=function(n,A){for(var e=n.length,t=new r(e),o=0;os&&B>3;w=(w<>(7&g))&i,A[++B]=e.s[w],g-=a=e.n[w]}g==s&&B+1==r||f(0)},p=function(n,A,e){var t=6,r=A.length+3>>2,o=r<<1,i=r+o;E(n.subarray(t,t+=n[0]|n[1]<<8),A.subarray(0,r),e),E(n.subarray(t,t+=n[2]|n[3]<<8),A.subarray(r,o),e),E(n.subarray(t,t+=n[4]|n[5]<<8),A.subarray(o,i),e),E(n.subarray(t),A.subarray(i),e)},v=function(n,t,r){var s,w=t.b,a=n[w],g=a>>1&3;t.l=1&a;var Q=a>>3|n[w+1]<<5|n[w+2]<<13,v=(w+=3)+Q;if(1==g){if(w>=n.length)return;return t.b=w+1,r?(i(r,n[w],t.y,t.y+=Q),r):i(new A(Q),n[w])}if(!(v>n.length)){if(0==g)return t.b=v,r?(r.set(n.subarray(w,v),t.y),t.y+=Q,r):o(n,w,v);if(2==g){var y=n[w],F=3&y,U=y>>2&3,W=y>>4,Y=0,m=0;F<2?1&U?W|=n[++w]<<4|(2&U&&n[++w]<<12):W=y>>3:(m=U,U<2?(W|=(63&n[++w])<<4,Y=n[w]>>6|n[++w]<<2):2==U?(W|=n[++w]<<4|(3&n[++w])<<12,Y=n[w]>>2|n[++w]<<6):(W|=n[++w]<<4|(63&n[++w])<<12,Y=n[w]>>6|n[++w]<<2|n[++w]<<10)),++w;var S=r?r.subarray(t.y,t.y+t.m):new A(t.m),H=S.length-W;if(0==F)S.set(n.subarray(w,w+=W),H);else if(1==F)i(S,n[w++],H);else{var x=t.h;if(2==F){var G=function(n,t){var r=0,o=-1,s=new A(292),w=n[t],a=s.subarray(0,256),g=s.subarray(256,268),l=new e(s.buffer,268);if(w<128){var h=B(n,t+1,6),u=h[0],Q=h[1],d=u<<3,c=n[t+=w];c||f(0);for(var C=0,b=0,E=Q.b,p=E,v=(++t<<3)-8+I(c);!((v-=E)>3;if(C+=(n[y]|n[y+1]<<8)>>(7&v)&(1<>3]|n[y+1]<<8)>>(7&v)&(1<255&&f(0)}else{for(o=w-127;r>4,a[r+1]=15&F}++t}var U=0;for(r=0;r11&&f(0),U+=S&&1<0;--r){var P=l[r];i(G,r,P,l[r-1]=P+g[r]*(1<127&&(P=P-128<<8|n[w++]);var q=n[w++];3&q&&f(0);for(var Z=[h,u,l],R=2;R>-1;--R){var V=q>>2+(R<<1)&3;if(1==V){var L=new A([0,0,n[w++]]);Z[R]={s:L.subarray(2,3),n:L.subarray(0,1),t:new e(L.buffer,0,1),b:0}}else 2==V?(w=(s=B(n,w,9-(1&R)))[0],Z[R]=s[1]):3==V&&(t.t||f(0),Z[R]=t.t[R])}var N=t.t=Z,K=N[0],J=N[1],D=N[2],z=n[v-1];z||f(0);var M=(v<<3)-8+I(z)-D.b,k=M>>3,T=0,X=(n[k]|n[k+1]<<8)>>(7&M)&(1<>3]|n[k+1]<<8)>>(7&M)&(1<>3]|n[k+1]<<8)>>(7&M)&(1<>3]|n[k+1]<<8|n[k+2]<<16|n[k+3]<<24)>>>(7&M)&rn-1);k=(M-=C[nn])>>3;var sn=b[nn]+((n[k]|n[k+1]<<8|n[k+2]<<16)>>(7&M)&(1<>3;var wn=c[_]+((n[k]|n[k+1]<<8|n[k+2]<<16)>>(7&M)&(1<>3,X=D.t[X]+((n[k]|n[k+1]<<8)>>(7&M)&(1<<$)-1),k=(M-=An)>>3,O=K.t[O]+((n[k]|n[k+1]<<8)>>(7&M)&(1<>3,j=J.t[j]+((n[k]|n[k+1]<<8)>>(7&M)&(1<3)t.o[2]=t.o[1],t.o[1]=t.o[0],t.o[0]=on-=3;else{var fn=on-(0!=wn);fn?(on=3==fn?t.o[0]-1:t.o[fn],fn>1&&(t.o[2]=t.o[1]),t.o[1]=t.o[0],t.o[0]=on):on=t.o[0]}for(R=0;Rsn&&(gn=sn);for(R=0;R0},m.prototype.readMoreInput=function(){if(this.bit_end_pos_>256);else if(this.eos_){if(this.bit_pos_>this.bit_end_pos_)throw new Error("Unexpected end of input "+this.bit_pos_+" "+this.bit_end_pos_)}else{const n=this.buf_ptr_,A=this.input_.read(this.buf_,n,U);if(A<0)throw new Error("Unexpected end of input");if(A=8;)this.val_>>>=8,this.val_|=this.buf_[8191&this.pos_]<<24,this.pos_++,this.bit_pos_=this.bit_pos_-8>>>0,this.bit_end_pos_=this.bit_end_pos_-8>>>0},m.prototype.readBits=function(n){32-this.bit_pos_>>this.bit_pos_&Y[n];return this.bit_pos_+=n,A};const S=new Uint8Array([0,0,0,0,0,0,0,0,0,4,4,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,12,16,12,12,20,12,16,24,28,12,12,32,12,36,12,44,44,44,44,44,44,44,44,44,44,32,32,24,40,28,12,12,48,52,52,52,48,52,52,52,48,52,52,52,52,52,48,52,52,52,52,52,48,52,52,52,52,52,24,12,28,12,12,12,56,60,60,60,56,60,60,60,56,60,60,60,60,60,56,60,60,60,60,60,56,60,60,60,60,60,24,12,28,12,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,56,0,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,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,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,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,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,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,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,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,43,43,43,43,44,44,44,44,45,45,45,45,46,46,46,46,47,47,47,47,48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52,52,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,57,57,57,57,58,58,58,58,59,59,59,59,60,60,60,60,61,61,61,61,62,62,62,62,63,63,63,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),H=new Uint16Array([1024,1536,1280,1536,0,256,768,512]),x=8,G=8,P=255,q=18,Z=new Uint8Array([1,2,3,4,0,5,17,6,16,7,8,9,10,11,12,13,14,15]);function R(n,A){this.bits=n,this.value=A}const V=16,L=15;function N(n,A){let e=1<>=1;return(n&e-1)+e}function K(n,A,e,t,r){do{n[A+(t-=e)]=new R(r.bits,r.value)}while(t>0)}function J(n,A,e){let t=1<0;--i[t]){K(n,A+I,r,a,new R(255&t,65535&w[B++])),I=N(I,t)}const l=g-1;let h=-1;for(let t=e+1,r=2;t<=L;++t,r<<=1)for(;i[t]>0;--i[t]){(I&l)!==h&&(A+=a,f=J(i,t,e),a=1<>e),r,a,new R(t-e&255,65535&w[B++])),I=N(I,t)}return g}function z(n,A,e,t){const r=new Uint8Array(n);t.readMoreInput();const o=t.readBits(2);if(1===o){let A=n-1,e=0;const o=new Int32Array(4),i=t.readBits(2)+1;for(;A;)A>>=1,e++;for(let A=0;A0;n++){const r=Z[n];let o=0;t.fillBitWindow(),o+=t.val_>>>t.bit_pos_&15,t.bit_pos_+=s[o].bits;const w=s[o].value;A[r]=w,0!==w&&(e-=32>>w,i++)}if(1!==i&&0!==e)throw new Error("[ReadHuffmanCode] invalid num_codes or space");!function(n,A,e,t){let r=0,o=x,i=0,s=0,w=32768;const f=[];for(let n=0;n<32;n++)f.push(new R(0,0));D(f,0,5,n,q);for(;r0;){let n=0;t.readMoreInput(),t.fillBitWindow(),n+=t.val_>>>t.bit_pos_&31,t.bit_pos_+=f[n].bits;const a=255&f[n].value;if(a>a);else{const n=a-14;let f=0;a===V&&(f=o),s!==f&&(i=0,s=f);const g=i;i>0&&(i-=2,i<<=n),i+=t.readBits(n)+3;const I=i-g;if(r+I>A)throw new Error("[ReadHuffmanCodeLengths] symbol + repeat_delta > num_symbols");for(let n=0;n>>e.bit_pos_&P].bits-G;return t>0&&(e.bit_pos_+=G,A+=n[A].value,A+=e.val_>>>e.bit_pos_&(1<this.buffer.length&&(e=this.buffer.length-this.pos);for(let t=0;tthis.buffer.length)throw new Error("brotli output buffer is not large enough");return this.buffer.set(n.subarray(0,A),this.pos),this.pos+=A,A};const An=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),en=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),tn=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);function rn(n,A){const e=new Uint16Array(31);for(let t=0;t<31;t++)e[t]=A+=1<>1|(21845&n)<<1;A=(52428&A)>>2|(13107&A)<<2,A=(61680&A)>>4|(3855&A)<<4,fn[n]=((65280&A)>>8|(255&A)<<8)>>1}function an(n,A,e){const t=new Uint16Array(A);for(let A=0;A>e]=i}}return o}const gn=new Uint8Array(288);for(let n=0;n<144;n++)gn[n]=8;for(let n=144;n<256;n++)gn[n]=9;for(let n=256;n<280;n++)gn[n]=7;for(let n=280;n<288;n++)gn[n]=8;const In=new Uint8Array(32);for(let n=0;n<32;n++)In[n]=5;const Bn=an(gn,9),ln=an(In,5);function hn(n){let A=n[0];for(let e=1;eA&&(A=n[e]);return A}function un(n,A,e){const t=A/8|0;return(n[t]|n[t+1]<<8)>>(7&A)&e}function Qn(n,A){const e=A/8|0;return(n[e]|n[e+1]<<8|n[e+2]<<16)>>(7&A)}function dn(n,A,e=0,t=0){if(!(n.length-e))return;const r=function(n,A){if(31!==n[A++]||139!==n[A++]||8!==n[A++])throw new Error("invalid gzip data");const e=n[A++];A+=6,4&e&&(A+=2+(n[A+10]|n[A+11]<<8));for(let t=(e>>3&1)+(e>>4&1);t>0;t-=Number(!n[A++]));return A+(2&e)}(n,e);if(r===n.length-8)return;if(r>n.length-8)throw new Error("unexpected EOF");let o,i,s=8*r,w=0,f=0,a=0;const g=8*n.length;do{if(!o){w=un(n,s,1);const e=un(n,s+1,3);if(s+=3,!e){const e=4+((s+7)/8|0),r=n[e-4]|n[e-3]<<8,o=e+r;if(o>n.length)throw new Error("unexpected EOF");A.set(n.subarray(e,o),t),t+=r,s=8*o;continue}if(1===e)o=Bn,i=ln,f=9,a=5;else{if(2!==e)throw new Error("invalid block type");{const A=un(n,s,31)+257,e=un(n,s+10,15)+4,t=A+un(n,s+5,31)+1;s+=14;const r=new Uint8Array(t),w=new Uint8Array(19);for(let A=0;A>4;if(t<16)r[A++]=t;else{let e=0,o=0;for(16===t?(o=3+un(n,s,3),s+=2,e=r[A-1]):17===t?(o=3+un(n,s,7),s+=3):18===t&&(o=11+un(n,s,127),s+=7);o--;)r[A++]=e}}const l=r.subarray(0,A),h=r.subarray(A);f=hn(l),a=hn(h),o=an(l,f),i=an(h,a)}}if(s>g)throw new Error("unexpected EOF")}const e=(1<>4;if(s+=15&w,s>g)throw new Error("unexpected EOF");if(!w)throw new Error("invalid length/literal");if(f<256)A[t++]=f;else{if(256===f){I=s,o=void 0;break}{let e=f-254;if(f>264){const A=f-257,t=An[A];e=un(n,s,(1<>4;if(!o)throw new Error("invalid distance");s+=15&o;let a=wn[w];if(w>3){const A=en[w];a+=Qn(n,s)&(1<g)throw new Error("unexpected EOF");const I=t+e;if(t'),new Fn("",0,"\n"),new Fn("",3,""),new Fn("",0,"]"),new Fn("",0," for "),new Fn("",14,""),new Fn("",2,""),new Fn("",0," a "),new Fn("",0," that "),new Fn(" ",pn,""),new Fn("",0,". "),new Fn(".",0,""),new Fn(" ",0,", "),new Fn("",15,""),new Fn("",0," with "),new Fn("",0,"'"),new Fn("",0," from "),new Fn("",0," by "),new Fn("",16,""),new Fn("",17,""),new Fn(" the ",0,""),new Fn("",4,""),new Fn("",0,". The "),new Fn("",vn,""),new Fn("",0," on "),new Fn("",0," as "),new Fn("",0," is "),new Fn("",7,""),new Fn("",1,"ing "),new Fn("",0,"\n\t"),new Fn("",0,":"),new Fn(" ",0,". "),new Fn("",0,"ed "),new Fn("",20,""),new Fn("",18,""),new Fn("",6,""),new Fn("",0,"("),new Fn("",pn,", "),new Fn("",8,""),new Fn("",0," at "),new Fn("",0,"ly "),new Fn(" the ",0," of "),new Fn("",5,""),new Fn("",En,""),new Fn(" ",pn,", "),new Fn("",pn,'"'),new Fn(".",0,"("),new Fn("",vn," "),new Fn("",pn,'">'),new Fn("",0,'="'),new Fn(" ",0,"."),new Fn(".com/",0,""),new Fn(" the ",0," of the "),new Fn("",pn,"'"),new Fn("",0,". This "),new Fn("",0,","),new Fn(".",0," "),new Fn("",pn,"("),new Fn("",pn,"."),new Fn("",0," not "),new Fn(" ",0,'="'),new Fn("",0,"er "),new Fn(" ",vn," "),new Fn("",0,"al "),new Fn(" ",vn,""),new Fn("",0,"='"),new Fn("",vn,'"'),new Fn("",pn,". "),new Fn(" ",0,"("),new Fn("",0,"ful "),new Fn(" ",pn,". "),new Fn("",0,"ive "),new Fn("",0,"less "),new Fn("",vn,"'"),new Fn("",0,"est "),new Fn(" ",pn,"."),new Fn("",vn,'">'),new Fn(" ",0,"='"),new Fn("",pn,","),new Fn("",0,"ize "),new Fn("",vn,"."),new Fn(" ",0,""),new Fn(" ",0,","),new Fn("",pn,'="'),new Fn("",vn,'="'),new Fn("",0,"ous "),new Fn("",vn,", "),new Fn("",pn,"='"),new Fn(" ",pn,","),new Fn(" ",vn,'="'),new Fn(" ",vn,", "),new Fn("",vn,","),new Fn("",vn,"("),new Fn("",vn,". "),new Fn(" ",vn,"."),new Fn("",vn,"='"),new Fn(" ",vn,". "),new Fn(" ",pn,'="'),new Fn(" ",vn,"='"),new Fn(" ",pn,"='")],Wn=Un.length;function Yn(n,A){return n[A]<192?(n[A]>=97&&n[A]<=122&&(n[A]^=32),1):n[A]<224?(n[A+1]^=32,2):(n[A+2]^=5,3)}function mn(n,A,e,t,r){const o=bn(),{prefix:i}=Un[r],{suffix:s}=Un[r],w=Un[r].transform;let f=wt&&(f=t);let g=0;for(;g0;){const A=Yn(n,I);I+=A,t-=A}let B=0;for(;B=n&&(a-=n),t[e]=a,r[s+(1&o[w])]=a,++o[w]}function Mn(n,A){this.alphabet_size=n,this.num_htrees=A,this.codes=new Array(A+A*Ln[n+31>>>5]),this.htrees=new Uint32Array(A)}function kn(n,A,e){const t=M(n,A,e),{nbits:r}=T[t];return T[t].offset+e.readBits(r)}function Tn(n,A,e){return n0;)o.readMoreInput(),t[s++]=o.readBits(8),s===i&&(n.write(t,i),s=0);return}if(o.bit_end_pos_<32)throw new Error("[CopyUncompressedBlockToOutput] br.bit_end_pos_ < 32");for(;o.bit_pos_<32;)t[s]=o.val_>>>o.bit_pos_,o.bit_pos_+=8,s++,A--;let f=o.bit_end_pos_-o.bit_pos_>>3;if(w+f>m.IBUF_MASK){const n=m.IBUF_MASK+1-w;for(let A=0;A=i){n.write(t,i),s-=i;for(let n=0;n=i;){if(f=i-s,o.input_.read(t,s,f)1&&0===r)throw new Error("Invalid size byte");A.meta_block_length|=r<<8*t}}else for(let t=0;t4&&0===r)throw new Error("Invalid size nibble");A.meta_block_length|=r<<4*t}return A.meta_block_length++,A.input_end||A.is_metadata||(A.is_uncompressed=n.readBits(1)),A}function $n(n,A){let e=0;A.readMoreInput();const t=jn(A)+1,r=new Uint8Array(n);if(t<=1)return{num_htrees:t,context_map:r};A.readBits(1)&&(e=A.readBits(4)+1);const o=[];for(let n=0;n=n)throw new Error("[DecodeContextMap] i >= context_map_size");r[t]=0,t++}}else r[t]=i-e,t++}return A.readBits(1)&&function(n,A){const e=new Uint8Array(256);for(let n=0;n<256;n++)e[n]=n;for(let t=0;t>4;if(i){let o=i+240;for(;255===o;)i+=o=n[r++];if(A.set(n.subarray(r,r+i),t),t+=i,r+=i,r>=n.length)return t-e}const s=n[r++]|n[r++]<<8;if(!s||s>t)throw new Error(`lz4 offset out of range ${s}`);let w=4+(15&o),f=w+240;for(;255===f;)w+=f=n[r++];let a=t-s;const g=t+w;for(;t{const{memory:t,uncompress:r}=n.exports,o=68e3,i=o+A.byteLength,s=o+A.byteLength+e;if(t.buffer.byteLength{const e=new Uint8Array(A);return dn(n,e),e},BROTLI:function(n,A){const e=new Uint8Array(A);return function(n,A){let e=0,t=0,r=0,o=0;const i=[16,15,11,4];let s=0,w=0,f=0;const a=[new Mn(0,0),new Mn(0,0),new Mn(0,0)],g=128+m.READ_SIZE,I=new m(n);r=function(n){if(0===n.readBits(1))return 16;let A=n.readBits(3);return A>0?17+A:(A=n.readBits(3),A>0?8+A:17)}(I);const B=(1<A.buffer.length){const t=new Uint8Array(e+n);t.set(A.buffer),A.buffer=t}if(t=v.input_end,v.is_metadata){for(AA(I);n>0;--n)I.readMoreInput(),I.readBits(8);continue}if(0===n)continue;if(v.is_uncompressed){I.bit_pos_=I.bit_pos_+7&-8,Xn(A,n,e,u,h,I),e+=n;continue}for(let n=0;n<3;n++)C[n]=jn(I)+1,C[n]>=2&&(z(C[n]+2,d,n*qn,I),z(xn,c,n*qn,I),r[n]=kn(c,n*qn,I),E[n]=1);I.readMoreInput();const y=I.readBits(2),F=Zn+(I.readBits(4)<0;){let t;I.readMoreInput(),0===r[1]&&(zn(C[1],d,1,g,b,E,I),r[1]=kn(c,qn,I),J=a[1].htrees[g[1]]),r[1]--;const v=M(a[1].codes,J,I);let W=v>>6;W>=2?(W-=2,t=-1):t=0;const m=O[W]+(v>>3&7),x=_[W]+(7&v),P=X[m].offset+I.readBits(X[m].nbits),q=j[x].offset+I.readBits(j[x].nbits);w=u[e-1&h],f=u[e-2&h];for(let n=0;n4?3:q-2))];if(t=M(a[2].codes,a[2].htrees[n],I),t>=F){t-=F;const n=t&U;t>>=y;const A=1+(t>>1);t=F+((2+(1&t)<o){if(!(q>=Jn&&q<=Dn))throw new Error("Invalid backward reference");{let t=Nn[q];const r=D-o-1,i=Kn[q],s=r>>i;if(t+=(r&(1<=Q){A.write(u,l);for(let n=0;n0&&(i[3&s]=D,s++),q>n)throw new Error("Invalid backward reference");for(let t=0;ty(n),LZ4:function(n,A){const e=new Uint8Array(A);try{let A=0,t=0;for(;A