@woosh/meep-engine 2.126.46 → 2.126.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/bundle-worker-image-decoder.js +1 -1
- package/package.json +1 -1
- package/src/core/binary/BinaryBuffer.d.ts +26 -7
- package/src/core/binary/BinaryBuffer.d.ts.map +1 -1
- package/src/core/binary/BinaryBuffer.js +45 -14
- package/src/core/geom/3d/mat4/m4_multiply.d.ts.map +1 -1
- package/src/core/geom/3d/mat4/m4_multiply.js +12 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
function t(t){let e=t.length;for(;--e>=0;)t[e]=0}const e=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]),i=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]),n=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),r=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),a=new Array(576);t(a);const s=new Array(60);t(s);const o=new Array(512);t(o);const h=new Array(256);t(h);const l=new Array(29);t(l);const d=new Array(30);function c(t,e,i,n,r){this.static_tree=t,this.extra_bits=e,this.extra_base=i,this.elems=n,this.max_length=r,this.has_stree=t&&t.length}let f,u,_;function p(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}t(d);const w=t=>t<256?o[t]:o[256+(t>>>7)],g=(t,e)=>{t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255},b=(t,e,i)=>{t.bi_valid>16-i?(t.bi_buf|=e<<t.bi_valid&65535,g(t,t.bi_buf),t.bi_buf=e>>16-t.bi_valid,t.bi_valid+=i-16):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=i)},m=(t,e,i)=>{b(t,i[2*e],i[2*e+1])},y=(t,e)=>{let i=0;do{i|=1&t,t>>>=1,i<<=1}while(--e>0);return i>>>1},k=(t,e,i)=>{const n=new Array(16);let r,a,s=0;for(r=1;r<=15;r++)n[r]=s=s+i[r-1]<<1;for(a=0;a<=e;a++){let e=t[2*a+1];0!==e&&(t[2*a]=y(n[e]++,e))}},v=t=>{let e;for(e=0;e<286;e++)t.dyn_ltree[2*e]=0;for(e=0;e<30;e++)t.dyn_dtree[2*e]=0;for(e=0;e<19;e++)t.bl_tree[2*e]=0;t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0},A=t=>{t.bi_valid>8?g(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},x=(t,e,i,n)=>{const r=2*e,a=2*i;return t[r]<t[a]||t[r]===t[a]&&n[e]<=n[i]},U=(t,e,i)=>{const n=t.heap[i];let r=i<<1;for(;r<=t.heap_len&&(r<t.heap_len&&x(e,t.heap[r+1],t.heap[r],t.depth)&&r++,!x(e,n,t.heap[r],t.depth));)t.heap[i]=t.heap[r],i=r,r<<=1;t.heap[i]=n},E=(t,n,r)=>{let a,s,o,c,f=0;if(0!==t.last_lit)do{a=t.pending_buf[t.d_buf+2*f]<<8|t.pending_buf[t.d_buf+2*f+1],s=t.pending_buf[t.l_buf+f],f++,0===a?m(t,s,n):(o=h[s],m(t,o+256+1,n),c=e[o],0!==c&&(s-=l[o],b(t,s,c)),a--,o=w(a),m(t,o,r),c=i[o],0!==c&&(a-=d[o],b(t,a,c)))}while(f<t.last_lit);m(t,256,n)},I=(t,e)=>{const i=e.dyn_tree,n=e.stat_desc.static_tree,r=e.stat_desc.has_stree,a=e.stat_desc.elems;let s,o,h,l=-1;for(t.heap_len=0,t.heap_max=573,s=0;s<a;s++)0!==i[2*s]?(t.heap[++t.heap_len]=l=s,t.depth[s]=0):i[2*s+1]=0;for(;t.heap_len<2;)h=t.heap[++t.heap_len]=l<2?++l:0,i[2*h]=1,t.depth[h]=0,t.opt_len--,r&&(t.static_len-=n[2*h+1]);for(e.max_code=l,s=t.heap_len>>1;s>=1;s--)U(t,i,s);h=a;do{s=t.heap[1],t.heap[1]=t.heap[t.heap_len--],U(t,i,1),o=t.heap[1],t.heap[--t.heap_max]=s,t.heap[--t.heap_max]=o,i[2*h]=i[2*s]+i[2*o],t.depth[h]=(t.depth[s]>=t.depth[o]?t.depth[s]:t.depth[o])+1,i[2*s+1]=i[2*o+1]=h,t.heap[1]=h++,U(t,i,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],((t,e)=>{const i=e.dyn_tree,n=e.max_code,r=e.stat_desc.static_tree,a=e.stat_desc.has_stree,s=e.stat_desc.extra_bits,o=e.stat_desc.extra_base,h=e.stat_desc.max_length;let l,d,c,f,u,_,p=0;for(f=0;f<=15;f++)t.bl_count[f]=0;for(i[2*t.heap[t.heap_max]+1]=0,l=t.heap_max+1;l<573;l++)d=t.heap[l],f=i[2*i[2*d+1]+1]+1,f>h&&(f=h,p++),i[2*d+1]=f,d>n||(t.bl_count[f]++,u=0,d>=o&&(u=s[d-o]),_=i[2*d],t.opt_len+=_*(f+u),a&&(t.static_len+=_*(r[2*d+1]+u)));if(0!==p){do{for(f=h-1;0===t.bl_count[f];)f--;t.bl_count[f]--,t.bl_count[f+1]+=2,t.bl_count[h]--,p-=2}while(p>0);for(f=h;0!==f;f--)for(d=t.bl_count[f];0!==d;)c=t.heap[--l],c>n||(i[2*c+1]!==f&&(t.opt_len+=(f-i[2*c+1])*i[2*c],i[2*c+1]=f),d--)}})(t,e),k(i,l,t.bl_count)},z=(t,e,i)=>{let n,r,a=-1,s=e[1],o=0,h=7,l=4;for(0===s&&(h=138,l=3),e[2*(i+1)+1]=65535,n=0;n<=i;n++)r=s,s=e[2*(n+1)+1],++o<h&&r===s||(o<l?t.bl_tree[2*r]+=o:0!==r?(r!==a&&t.bl_tree[2*r]++,t.bl_tree[32]++):o<=10?t.bl_tree[34]++:t.bl_tree[36]++,o=0,a=r,0===s?(h=138,l=3):r===s?(h=6,l=3):(h=7,l=4))},S=(t,e,i)=>{let n,r,a=-1,s=e[1],o=0,h=7,l=4;for(0===s&&(h=138,l=3),n=0;n<=i;n++)if(r=s,s=e[2*(n+1)+1],!(++o<h&&r===s)){if(o<l)do{m(t,r,t.bl_tree)}while(0!=--o);else 0!==r?(r!==a&&(m(t,r,t.bl_tree),o--),m(t,16,t.bl_tree),b(t,o-3,2)):o<=10?(m(t,17,t.bl_tree),b(t,o-3,3)):(m(t,18,t.bl_tree),b(t,o-11,7));o=0,a=r,0===s?(h=138,l=3):r===s?(h=6,l=3):(h=7,l=4)}};let C=!1;const T=(t,e,i,n)=>{b(t,0+(n?1:0),3),((t,e,i,n)=>{A(t),g(t,i),g(t,~i),t.pending_buf.set(t.window.subarray(e,e+i),t.pending),t.pending+=i})(t,e,i)};var R={_tr_init:t=>{C||((()=>{let t,r,p,w,g;const b=new Array(16);for(p=0,w=0;w<28;w++)for(l[w]=p,t=0;t<1<<e[w];t++)h[p++]=w;for(h[p-1]=w,g=0,w=0;w<16;w++)for(d[w]=g,t=0;t<1<<i[w];t++)o[g++]=w;for(g>>=7;w<30;w++)for(d[w]=g<<7,t=0;t<1<<i[w]-7;t++)o[256+g++]=w;for(r=0;r<=15;r++)b[r]=0;for(t=0;t<=143;)a[2*t+1]=8,t++,b[8]++;for(;t<=255;)a[2*t+1]=9,t++,b[9]++;for(;t<=279;)a[2*t+1]=7,t++,b[7]++;for(;t<=287;)a[2*t+1]=8,t++,b[8]++;for(k(a,287,b),t=0;t<30;t++)s[2*t+1]=5,s[2*t]=y(t,5);f=new c(a,e,257,286,15),u=new c(s,i,0,30,15),_=new c(new Array(0),n,0,19,7)})(),C=!0),t.l_desc=new p(t.dyn_ltree,f),t.d_desc=new p(t.dyn_dtree,u),t.bl_desc=new p(t.bl_tree,_),t.bi_buf=0,t.bi_valid=0,v(t)},_tr_stored_block:T,_tr_flush_block:(t,e,i,n)=>{let o,h,l=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=(t=>{let e,i=4093624447;for(e=0;e<=31;e++,i>>>=1)if(1&i&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<256;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0})(t)),I(t,t.l_desc),I(t,t.d_desc),l=(t=>{let e;for(z(t,t.dyn_ltree,t.l_desc.max_code),z(t,t.dyn_dtree,t.d_desc.max_code),I(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*r[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e})(t),o=t.opt_len+3+7>>>3,h=t.static_len+3+7>>>3,h<=o&&(o=h)):o=h=i+5,i+4<=o&&-1!==e?T(t,e,i,n):4===t.strategy||h===o?(b(t,2+(n?1:0),3),E(t,a,s)):(b(t,4+(n?1:0),3),((t,e,i,n)=>{let a;for(b(t,e-257,5),b(t,i-1,5),b(t,n-4,4),a=0;a<n;a++)b(t,t.bl_tree[2*r[a]+1],3);S(t,t.dyn_ltree,e-1),S(t,t.dyn_dtree,i-1)})(t,t.l_desc.max_code+1,t.d_desc.max_code+1,l+1),E(t,t.dyn_ltree,t.dyn_dtree)),v(t),n&&A(t)},_tr_tally:(t,e,i)=>(t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&i,t.last_lit++,0===e?t.dyn_ltree[2*i]++:(t.matches++,e--,t.dyn_ltree[2*(h[i]+256+1)]++,t.dyn_dtree[2*w(e)]++),t.last_lit===t.lit_bufsize-1),_tr_align:t=>{b(t,2,3),m(t,256,a),(t=>{16===t.bi_valid?(g(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)})(t)}},F=(t,e,i,n)=>{let r=65535&t|0,a=t>>>16&65535|0,s=0;for(;0!==i;){s=i>2e3?2e3:i,i-=s;do{r=r+e[n++]|0,a=a+r|0}while(--s);r%=65521,a%=65521}return r|a<<16|0};const B=new Uint32Array((()=>{let t,e=[];for(var i=0;i<256;i++){t=i;for(var n=0;n<8;n++)t=1&t?3988292384^t>>>1:t>>>1;e[i]=t}return e})());var N=(t,e,i,n)=>{const r=B,a=n+i;t^=-1;for(let i=n;i<a;i++)t=t>>>8^r[255&(t^e[i])];return-1^t},D={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},Z={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:L,_tr_stored_block:O,_tr_flush_block:$,_tr_tally:M,_tr_align:V}=R,{Z_NO_FLUSH:H,Z_PARTIAL_FLUSH:P,Z_FULL_FLUSH:j,Z_FINISH:G,Z_BLOCK:K,Z_OK:X,Z_STREAM_END:Y,Z_STREAM_ERROR:q,Z_DATA_ERROR:W,Z_BUF_ERROR:J,Z_DEFAULT_COMPRESSION:Q,Z_FILTERED:tt,Z_HUFFMAN_ONLY:et,Z_RLE:it,Z_FIXED:nt,Z_DEFAULT_STRATEGY:rt,Z_UNKNOWN:at,Z_DEFLATED:st}=Z,ot=258,ht=262,lt=103,dt=113,ct=666,ft=(t,e)=>(t.msg=D[e],e),ut=t=>(t<<1)-(t>4?9:0),_t=t=>{let e=t.length;for(;--e>=0;)t[e]=0};let pt=(t,e,i)=>(e<<t.hash_shift^i)&t.hash_mask;const wt=t=>{const e=t.state;let i=e.pending;i>t.avail_out&&(i=t.avail_out),0!==i&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+i),t.next_out),t.next_out+=i,e.pending_out+=i,t.total_out+=i,t.avail_out-=i,e.pending-=i,0===e.pending&&(e.pending_out=0))},gt=(t,e)=>{$(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,wt(t.strm)},bt=(t,e)=>{t.pending_buf[t.pending++]=e},mt=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e},yt=(t,e,i,n)=>{let r=t.avail_in;return r>n&&(r=n),0===r?0:(t.avail_in-=r,e.set(t.input.subarray(t.next_in,t.next_in+r),i),1===t.state.wrap?t.adler=F(t.adler,e,r,i):2===t.state.wrap&&(t.adler=N(t.adler,e,r,i)),t.next_in+=r,t.total_in+=r,r)},kt=(t,e)=>{let i,n,r=t.max_chain_length,a=t.strstart,s=t.prev_length,o=t.nice_match;const h=t.strstart>t.w_size-ht?t.strstart-(t.w_size-ht):0,l=t.window,d=t.w_mask,c=t.prev,f=t.strstart+ot;let u=l[a+s-1],_=l[a+s];t.prev_length>=t.good_match&&(r>>=2),o>t.lookahead&&(o=t.lookahead);do{if(i=e,l[i+s]===_&&l[i+s-1]===u&&l[i]===l[a]&&l[++i]===l[a+1]){a+=2,i++;do{}while(l[++a]===l[++i]&&l[++a]===l[++i]&&l[++a]===l[++i]&&l[++a]===l[++i]&&l[++a]===l[++i]&&l[++a]===l[++i]&&l[++a]===l[++i]&&l[++a]===l[++i]&&a<f);if(n=ot-(f-a),a=f-ot,n>s){if(t.match_start=e,s=n,n>=o)break;u=l[a+s-1],_=l[a+s]}}}while((e=c[e&d])>h&&0!=--r);return s<=t.lookahead?s:t.lookahead},vt=t=>{const e=t.w_size;let i,n,r,a,s;do{if(a=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-ht)){t.window.set(t.window.subarray(e,e+e),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,n=t.hash_size,i=n;do{r=t.head[--i],t.head[i]=r>=e?r-e:0}while(--n);n=e,i=n;do{r=t.prev[--i],t.prev[i]=r>=e?r-e:0}while(--n);a+=e}if(0===t.strm.avail_in)break;if(n=yt(t.strm,t.window,t.strstart+t.lookahead,a),t.lookahead+=n,t.lookahead+t.insert>=3)for(s=t.strstart-t.insert,t.ins_h=t.window[s],t.ins_h=pt(t,t.ins_h,t.window[s+1]);t.insert&&(t.ins_h=pt(t,t.ins_h,t.window[s+3-1]),t.prev[s&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=s,s++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead<ht&&0!==t.strm.avail_in)},At=(t,e)=>{let i,n;for(;;){if(t.lookahead<ht){if(vt(t),t.lookahead<ht&&e===H)return 1;if(0===t.lookahead)break}if(i=0,t.lookahead>=3&&(t.ins_h=pt(t,t.ins_h,t.window[t.strstart+3-1]),i=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==i&&t.strstart-i<=t.w_size-ht&&(t.match_length=kt(t,i)),t.match_length>=3)if(n=M(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=pt(t,t.ins_h,t.window[t.strstart+3-1]),i=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart}while(0!=--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=pt(t,t.ins_h,t.window[t.strstart+1]);else n=M(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(n&&(gt(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<2?t.strstart:2,e===G?(gt(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(gt(t,!1),0===t.strm.avail_out)?1:2},xt=(t,e)=>{let i,n,r;for(;;){if(t.lookahead<ht){if(vt(t),t.lookahead<ht&&e===H)return 1;if(0===t.lookahead)break}if(i=0,t.lookahead>=3&&(t.ins_h=pt(t,t.ins_h,t.window[t.strstart+3-1]),i=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==i&&t.prev_length<t.max_lazy_match&&t.strstart-i<=t.w_size-ht&&(t.match_length=kt(t,i),t.match_length<=5&&(t.strategy===tt||3===t.match_length&&t.strstart-t.match_start>4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){r=t.strstart+t.lookahead-3,n=M(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=r&&(t.ins_h=pt(t,t.ins_h,t.window[t.strstart+3-1]),i=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart)}while(0!=--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,n&&(gt(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if(n=M(t,0,t.window[t.strstart-1]),n&>(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(n=M(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,e===G?(gt(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(gt(t,!1),0===t.strm.avail_out)?1:2};function Ut(t,e,i,n,r){this.good_length=t,this.max_lazy=e,this.nice_length=i,this.max_chain=n,this.func=r}const Et=[new Ut(0,0,0,0,((t,e)=>{let i=65535;for(i>t.pending_buf_size-5&&(i=t.pending_buf_size-5);;){if(t.lookahead<=1){if(vt(t),0===t.lookahead&&e===H)return 1;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;const n=t.block_start+i;if((0===t.strstart||t.strstart>=n)&&(t.lookahead=t.strstart-n,t.strstart=n,gt(t,!1),0===t.strm.avail_out))return 1;if(t.strstart-t.block_start>=t.w_size-ht&&(gt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===G?(gt(t,!0),0===t.strm.avail_out?3:4):(t.strstart>t.block_start&&(gt(t,!1),t.strm.avail_out),1)})),new Ut(4,4,8,4,At),new Ut(4,5,16,8,At),new Ut(4,6,32,32,At),new Ut(4,4,16,16,xt),new Ut(8,16,32,32,xt),new Ut(8,16,128,128,xt),new Ut(8,32,128,256,xt),new Ut(32,128,258,1024,xt),new Ut(32,258,258,4096,xt)];function It(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=st,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),_t(this.dyn_ltree),_t(this.dyn_dtree),_t(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),_t(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),_t(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const zt=t=>{if(!t||!t.state)return ft(t,q);t.total_in=t.total_out=0,t.data_type=at;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?42:dt,t.adler=2===e.wrap?0:1,e.last_flush=H,L(e),X},St=t=>{const e=zt(t);var i;return e===X&&((i=t.state).window_size=2*i.w_size,_t(i.head),i.max_lazy_match=Et[i.level].max_lazy,i.good_match=Et[i.level].good_length,i.nice_match=Et[i.level].nice_length,i.max_chain_length=Et[i.level].max_chain,i.strstart=0,i.block_start=0,i.lookahead=0,i.insert=0,i.match_length=i.prev_length=2,i.match_available=0,i.ins_h=0),e},Ct=(t,e,i,n,r,a)=>{if(!t)return q;let s=1;if(e===Q&&(e=6),n<0?(s=0,n=-n):n>15&&(s=2,n-=16),r<1||r>9||i!==st||n<8||n>15||e<0||e>9||a<0||a>nt)return ft(t,q);8===n&&(n=9);const o=new It;return t.state=o,o.strm=t,o.wrap=s,o.gzhead=null,o.w_bits=n,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=r+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+3-1)/3),o.window=new Uint8Array(2*o.w_size),o.head=new Uint16Array(o.hash_size),o.prev=new Uint16Array(o.w_size),o.lit_bufsize=1<<r+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new Uint8Array(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=e,o.strategy=a,o.method=i,St(t)};var Tt={deflateInit:(t,e)=>Ct(t,e,st,15,8,rt),deflateInit2:Ct,deflateReset:St,deflateResetKeep:zt,deflateSetHeader:(t,e)=>t&&t.state?2!==t.state.wrap?q:(t.state.gzhead=e,X):q,deflate:(t,e)=>{let i,n;if(!t||!t.state||e>K||e<0)return t?ft(t,q):q;const r=t.state;if(!t.output||!t.input&&0!==t.avail_in||r.status===ct&&e!==G)return ft(t,0===t.avail_out?J:q);r.strm=t;const a=r.last_flush;if(r.last_flush=e,42===r.status)if(2===r.wrap)t.adler=0,bt(r,31),bt(r,139),bt(r,8),r.gzhead?(bt(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),bt(r,255&r.gzhead.time),bt(r,r.gzhead.time>>8&255),bt(r,r.gzhead.time>>16&255),bt(r,r.gzhead.time>>24&255),bt(r,9===r.level?2:r.strategy>=et||r.level<2?4:0),bt(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(bt(r,255&r.gzhead.extra.length),bt(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(t.adler=N(t.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=69):(bt(r,0),bt(r,0),bt(r,0),bt(r,0),bt(r,0),bt(r,9===r.level?2:r.strategy>=et||r.level<2?4:0),bt(r,3),r.status=dt);else{let e=st+(r.w_bits-8<<4)<<8,i=-1;i=r.strategy>=et||r.level<2?0:r.level<6?1:6===r.level?2:3,e|=i<<6,0!==r.strstart&&(e|=32),e+=31-e%31,r.status=dt,mt(r,e),0!==r.strstart&&(mt(r,t.adler>>>16),mt(r,65535&t.adler)),t.adler=1}if(69===r.status)if(r.gzhead.extra){for(i=r.pending;r.gzindex<(65535&r.gzhead.extra.length)&&(r.pending!==r.pending_buf_size||(r.gzhead.hcrc&&r.pending>i&&(t.adler=N(t.adler,r.pending_buf,r.pending-i,i)),wt(t),i=r.pending,r.pending!==r.pending_buf_size));)bt(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(t.adler=N(t.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=73)}else r.status=73;if(73===r.status)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(t.adler=N(t.adler,r.pending_buf,r.pending-i,i)),wt(t),i=r.pending,r.pending===r.pending_buf_size)){n=1;break}n=r.gzindex<r.gzhead.name.length?255&r.gzhead.name.charCodeAt(r.gzindex++):0,bt(r,n)}while(0!==n);r.gzhead.hcrc&&r.pending>i&&(t.adler=N(t.adler,r.pending_buf,r.pending-i,i)),0===n&&(r.gzindex=0,r.status=91)}else r.status=91;if(91===r.status)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(t.adler=N(t.adler,r.pending_buf,r.pending-i,i)),wt(t),i=r.pending,r.pending===r.pending_buf_size)){n=1;break}n=r.gzindex<r.gzhead.comment.length?255&r.gzhead.comment.charCodeAt(r.gzindex++):0,bt(r,n)}while(0!==n);r.gzhead.hcrc&&r.pending>i&&(t.adler=N(t.adler,r.pending_buf,r.pending-i,i)),0===n&&(r.status=lt)}else r.status=lt;if(r.status===lt&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&wt(t),r.pending+2<=r.pending_buf_size&&(bt(r,255&t.adler),bt(r,t.adler>>8&255),t.adler=0,r.status=dt)):r.status=dt),0!==r.pending){if(wt(t),0===t.avail_out)return r.last_flush=-1,X}else if(0===t.avail_in&&ut(e)<=ut(a)&&e!==G)return ft(t,J);if(r.status===ct&&0!==t.avail_in)return ft(t,J);if(0!==t.avail_in||0!==r.lookahead||e!==H&&r.status!==ct){let i=r.strategy===et?((t,e)=>{let i;for(;;){if(0===t.lookahead&&(vt(t),0===t.lookahead)){if(e===H)return 1;break}if(t.match_length=0,i=M(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,i&&(gt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===G?(gt(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(gt(t,!1),0===t.strm.avail_out)?1:2})(r,e):r.strategy===it?((t,e)=>{let i,n,r,a;const s=t.window;for(;;){if(t.lookahead<=ot){if(vt(t),t.lookahead<=ot&&e===H)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(r=t.strstart-1,n=s[r],n===s[++r]&&n===s[++r]&&n===s[++r])){a=t.strstart+ot;do{}while(n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&r<a);t.match_length=ot-(a-r),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(i=M(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(i=M(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),i&&(gt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===G?(gt(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(gt(t,!1),0===t.strm.avail_out)?1:2})(r,e):Et[r.level].func(r,e);if(3!==i&&4!==i||(r.status=ct),1===i||3===i)return 0===t.avail_out&&(r.last_flush=-1),X;if(2===i&&(e===P?V(r):e!==K&&(O(r,0,0,!1),e===j&&(_t(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),wt(t),0===t.avail_out))return r.last_flush=-1,X}return e!==G?X:r.wrap<=0?Y:(2===r.wrap?(bt(r,255&t.adler),bt(r,t.adler>>8&255),bt(r,t.adler>>16&255),bt(r,t.adler>>24&255),bt(r,255&t.total_in),bt(r,t.total_in>>8&255),bt(r,t.total_in>>16&255),bt(r,t.total_in>>24&255)):(mt(r,t.adler>>>16),mt(r,65535&t.adler)),wt(t),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?X:Y)},deflateEnd:t=>{if(!t||!t.state)return q;const e=t.state.status;return 42!==e&&69!==e&&73!==e&&91!==e&&e!==lt&&e!==dt&&e!==ct?ft(t,q):(t.state=null,e===dt?ft(t,W):X)},deflateSetDictionary:(t,e)=>{let i=e.length;if(!t||!t.state)return q;const n=t.state,r=n.wrap;if(2===r||1===r&&42!==n.status||n.lookahead)return q;if(1===r&&(t.adler=F(t.adler,e,i,0)),n.wrap=0,i>=n.w_size){0===r&&(_t(n.head),n.strstart=0,n.block_start=0,n.insert=0);let t=new Uint8Array(n.w_size);t.set(e.subarray(i-n.w_size,i),0),e=t,i=n.w_size}const a=t.avail_in,s=t.next_in,o=t.input;for(t.avail_in=i,t.next_in=0,t.input=e,vt(n);n.lookahead>=3;){let t=n.strstart,e=n.lookahead-2;do{n.ins_h=pt(n,n.ins_h,n.window[t+3-1]),n.prev[t&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=t,t++}while(--e);n.strstart=t,n.lookahead=2,vt(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=2,n.match_available=0,t.next_in=s,t.input=o,t.avail_in=a,n.wrap=r,X},deflateInfo:"pako deflate (from Nodeca project)"};const Rt=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var Ft={assign:function(t){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const i=e.shift();if(i){if("object"!=typeof i)throw new TypeError(i+"must be non-object");for(const e in i)Rt(i,e)&&(t[e]=i[e])}}return t},flattenChunks:t=>{let e=0;for(let i=0,n=t.length;i<n;i++)e+=t[i].length;const i=new Uint8Array(e);for(let e=0,n=0,r=t.length;e<r;e++){let r=t[e];i.set(r,n),n+=r.length}return i}};let Bt=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){Bt=!1}const Nt=new Uint8Array(256);for(let t=0;t<256;t++)Nt[t]=t>=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;Nt[254]=Nt[254]=1;var Dt={string2buf:t=>{let e,i,n,r,a,s=t.length,o=0;for(r=0;r<s;r++)i=t.charCodeAt(r),55296==(64512&i)&&r+1<s&&(n=t.charCodeAt(r+1),56320==(64512&n)&&(i=65536+(i-55296<<10)+(n-56320),r++)),o+=i<128?1:i<2048?2:i<65536?3:4;for(e=new Uint8Array(o),a=0,r=0;a<o;r++)i=t.charCodeAt(r),55296==(64512&i)&&r+1<s&&(n=t.charCodeAt(r+1),56320==(64512&n)&&(i=65536+(i-55296<<10)+(n-56320),r++)),i<128?e[a++]=i:i<2048?(e[a++]=192|i>>>6,e[a++]=128|63&i):i<65536?(e[a++]=224|i>>>12,e[a++]=128|i>>>6&63,e[a++]=128|63&i):(e[a++]=240|i>>>18,e[a++]=128|i>>>12&63,e[a++]=128|i>>>6&63,e[a++]=128|63&i);return e},buf2string:(t,e)=>{let i,n;const r=e||t.length,a=new Array(2*r);for(n=0,i=0;i<r;){let e=t[i++];if(e<128){a[n++]=e;continue}let s=Nt[e];if(s>4)a[n++]=65533,i+=s-1;else{for(e&=2===s?31:3===s?15:7;s>1&&i<r;)e=e<<6|63&t[i++],s--;s>1?a[n++]=65533:e<65536?a[n++]=e:(e-=65536,a[n++]=55296|e>>10&1023,a[n++]=56320|1023&e)}}return((t,e)=>{if(e<65534&&t.subarray&&Bt)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));let i="";for(let n=0;n<e;n++)i+=String.fromCharCode(t[n]);return i})(a,n)},utf8border:(t,e)=>{(e=e||t.length)>t.length&&(e=t.length);let i=e-1;for(;i>=0&&128==(192&t[i]);)i--;return i<0||0===i?e:i+Nt[t[i]]>e?i:e}},Zt=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Lt=Object.prototype.toString,{Z_NO_FLUSH:Ot,Z_SYNC_FLUSH:$t,Z_FULL_FLUSH:Mt,Z_FINISH:Vt,Z_OK:Ht,Z_STREAM_END:Pt,Z_DEFAULT_COMPRESSION:jt,Z_DEFAULT_STRATEGY:Gt,Z_DEFLATED:Kt}=Z;function Xt(t){this.options=Ft.assign({level:jt,method:Kt,chunkSize:16384,windowBits:15,memLevel:8,strategy:Gt},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Zt,this.strm.avail_out=0;let i=Tt.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(i!==Ht)throw new Error(D[i]);if(e.header&&Tt.deflateSetHeader(this.strm,e.header),e.dictionary){let t;if(t="string"==typeof e.dictionary?Dt.string2buf(e.dictionary):"[object ArrayBuffer]"===Lt.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,i=Tt.deflateSetDictionary(this.strm,t),i!==Ht)throw new Error(D[i]);this._dict_set=!0}}function Yt(t,e){const i=new Xt(e);if(i.push(t,!0),i.err)throw i.msg||D[i.err];return i.result}Xt.prototype.push=function(t,e){const i=this.strm,n=this.options.chunkSize;let r,a;if(this.ended)return!1;for(a=e===~~e?e:!0===e?Vt:Ot,"string"==typeof t?i.input=Dt.string2buf(t):"[object ArrayBuffer]"===Lt.call(t)?i.input=new Uint8Array(t):i.input=t,i.next_in=0,i.avail_in=i.input.length;;)if(0===i.avail_out&&(i.output=new Uint8Array(n),i.next_out=0,i.avail_out=n),(a===$t||a===Mt)&&i.avail_out<=6)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else{if(r=Tt.deflate(i,a),r===Pt)return i.next_out>0&&this.onData(i.output.subarray(0,i.next_out)),r=Tt.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===Ht;if(0!==i.avail_out){if(a>0&&i.next_out>0)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else if(0===i.avail_in)break}else this.onData(i.output)}return!0},Xt.prototype.onData=function(t){this.chunks.push(t)},Xt.prototype.onEnd=function(t){t===Ht&&(this.result=Ft.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var qt={Deflate:Xt,deflate:Yt,deflateRaw:function(t,e){return(e=e||{}).raw=!0,Yt(t,e)},gzip:function(t,e){return(e=e||{}).gzip=!0,Yt(t,e)},constants:Z},Wt=function(t,e){let i,n,r,a,s,o,h,l,d,c,f,u,_,p,w,g,b,m,y,k,v,A,x,U;const E=t.state;i=t.next_in,x=t.input,n=i+(t.avail_in-5),r=t.next_out,U=t.output,a=r-(e-t.avail_out),s=r+(t.avail_out-257),o=E.dmax,h=E.wsize,l=E.whave,d=E.wnext,c=E.window,f=E.hold,u=E.bits,_=E.lencode,p=E.distcode,w=(1<<E.lenbits)-1,g=(1<<E.distbits)-1;t:do{u<15&&(f+=x[i++]<<u,u+=8,f+=x[i++]<<u,u+=8),b=_[f&w];e:for(;;){if(m=b>>>24,f>>>=m,u-=m,m=b>>>16&255,0===m)U[r++]=65535&b;else{if(!(16&m)){if(0==(64&m)){b=_[(65535&b)+(f&(1<<m)-1)];continue e}if(32&m){E.mode=12;break t}t.msg="invalid literal/length code",E.mode=30;break t}y=65535&b,m&=15,m&&(u<m&&(f+=x[i++]<<u,u+=8),y+=f&(1<<m)-1,f>>>=m,u-=m),u<15&&(f+=x[i++]<<u,u+=8,f+=x[i++]<<u,u+=8),b=p[f&g];i:for(;;){if(m=b>>>24,f>>>=m,u-=m,m=b>>>16&255,!(16&m)){if(0==(64&m)){b=p[(65535&b)+(f&(1<<m)-1)];continue i}t.msg="invalid distance code",E.mode=30;break t}if(k=65535&b,m&=15,u<m&&(f+=x[i++]<<u,u+=8,u<m&&(f+=x[i++]<<u,u+=8)),k+=f&(1<<m)-1,k>o){t.msg="invalid distance too far back",E.mode=30;break t}if(f>>>=m,u-=m,m=r-a,k>m){if(m=k-m,m>l&&E.sane){t.msg="invalid distance too far back",E.mode=30;break t}if(v=0,A=c,0===d){if(v+=h-m,m<y){y-=m;do{U[r++]=c[v++]}while(--m);v=r-k,A=U}}else if(d<m){if(v+=h+d-m,m-=d,m<y){y-=m;do{U[r++]=c[v++]}while(--m);if(v=0,d<y){m=d,y-=m;do{U[r++]=c[v++]}while(--m);v=r-k,A=U}}}else if(v+=d-m,m<y){y-=m;do{U[r++]=c[v++]}while(--m);v=r-k,A=U}for(;y>2;)U[r++]=A[v++],U[r++]=A[v++],U[r++]=A[v++],y-=3;y&&(U[r++]=A[v++],y>1&&(U[r++]=A[v++]))}else{v=r-k;do{U[r++]=U[v++],U[r++]=U[v++],U[r++]=U[v++],y-=3}while(y>2);y&&(U[r++]=U[v++],y>1&&(U[r++]=U[v++]))}break}}break}}while(i<n&&r<s);y=u>>3,i-=y,u-=y<<3,f&=(1<<u)-1,t.next_in=i,t.next_out=r,t.avail_in=i<n?n-i+5:5-(i-n),t.avail_out=r<s?s-r+257:257-(r-s),E.hold=f,E.bits=u};const Jt=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),Qt=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),te=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),ee=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var ie=(t,e,i,n,r,a,s,o)=>{const h=o.bits;let l,d,c,f,u,_,p=0,w=0,g=0,b=0,m=0,y=0,k=0,v=0,A=0,x=0,U=null,E=0;const I=new Uint16Array(16),z=new Uint16Array(16);let S,C,T,R=null,F=0;for(p=0;p<=15;p++)I[p]=0;for(w=0;w<n;w++)I[e[i+w]]++;for(m=h,b=15;b>=1&&0===I[b];b--);if(m>b&&(m=b),0===b)return r[a++]=20971520,r[a++]=20971520,o.bits=1,0;for(g=1;g<b&&0===I[g];g++);for(m<g&&(m=g),v=1,p=1;p<=15;p++)if(v<<=1,v-=I[p],v<0)return-1;if(v>0&&(0===t||1!==b))return-1;for(z[1]=0,p=1;p<15;p++)z[p+1]=z[p]+I[p];for(w=0;w<n;w++)0!==e[i+w]&&(s[z[e[i+w]]++]=w);if(0===t?(U=R=s,_=19):1===t?(U=Jt,E-=257,R=Qt,F-=257,_=256):(U=te,R=ee,_=-1),x=0,w=0,p=g,u=a,y=m,k=0,c=-1,A=1<<m,f=A-1,1===t&&A>852||2===t&&A>592)return 1;for(;;){S=p-k,s[w]<_?(C=0,T=s[w]):s[w]>_?(C=R[F+s[w]],T=U[E+s[w]]):(C=96,T=0),l=1<<p-k,d=1<<y,g=d;do{d-=l,r[u+(x>>k)+d]=S<<24|C<<16|T|0}while(0!==d);for(l=1<<p-1;x&l;)l>>=1;if(0!==l?(x&=l-1,x+=l):x=0,w++,0==--I[p]){if(p===b)break;p=e[i+s[w]]}if(p>m&&(x&f)!==c){for(0===k&&(k=m),u+=g,y=p-k,v=1<<y;y+k<b&&(v-=I[y+k],!(v<=0));)y++,v<<=1;if(A+=1<<y,1===t&&A>852||2===t&&A>592)return 1;c=x&f,r[c]=m<<24|y<<16|u-a|0}}return 0!==x&&(r[u+x]=p-k<<24|64<<16|0),o.bits=m,0};const{Z_FINISH:ne,Z_BLOCK:re,Z_TREES:ae,Z_OK:se,Z_STREAM_END:oe,Z_NEED_DICT:he,Z_STREAM_ERROR:le,Z_DATA_ERROR:de,Z_MEM_ERROR:ce,Z_BUF_ERROR:fe,Z_DEFLATED:ue}=Z,_e=12,pe=30,we=t=>(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24);function ge(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const be=t=>{if(!t||!t.state)return le;const e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,se},me=t=>{if(!t||!t.state)return le;const e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,be(t)},ye=(t,e)=>{let i;if(!t||!t.state)return le;const n=t.state;return e<0?(i=0,e=-e):(i=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?le:(null!==n.window&&n.wbits!==e&&(n.window=null),n.wrap=i,n.wbits=e,me(t))},ke=(t,e)=>{if(!t)return le;const i=new ge;t.state=i,i.window=null;const n=ye(t,e);return n!==se&&(t.state=null),n};let ve,Ae,xe=!0;const Ue=t=>{if(xe){ve=new Int32Array(512),Ae=new Int32Array(32);let e=0;for(;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(ie(1,t.lens,0,288,ve,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;ie(2,t.lens,0,32,Ae,0,t.work,{bits:5}),xe=!1}t.lencode=ve,t.lenbits=9,t.distcode=Ae,t.distbits=5},Ee=(t,e,i,n)=>{let r;const a=t.state;return null===a.window&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),n>=a.wsize?(a.window.set(e.subarray(i-a.wsize,i),0),a.wnext=0,a.whave=a.wsize):(r=a.wsize-a.wnext,r>n&&(r=n),a.window.set(e.subarray(i-n,i-n+r),a.wnext),(n-=r)?(a.window.set(e.subarray(i-n,i),0),a.wnext=n,a.whave=a.wsize):(a.wnext+=r,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=r))),0};var Ie={inflateReset:me,inflateReset2:ye,inflateResetKeep:be,inflateInit:t=>ke(t,15),inflateInit2:ke,inflate:(t,e)=>{let i,n,r,a,s,o,h,l,d,c,f,u,_,p,w,g,b,m,y,k,v,A,x=0;const U=new Uint8Array(4);let E,I;const z=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!t||!t.state||!t.output||!t.input&&0!==t.avail_in)return le;i=t.state,i.mode===_e&&(i.mode=13),s=t.next_out,r=t.output,h=t.avail_out,a=t.next_in,n=t.input,o=t.avail_in,l=i.hold,d=i.bits,c=o,f=h,A=se;t:for(;;)switch(i.mode){case 1:if(0===i.wrap){i.mode=13;break}for(;d<16;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}if(2&i.wrap&&35615===l){i.check=0,U[0]=255&l,U[1]=l>>>8&255,i.check=N(i.check,U,2,0),l=0,d=0,i.mode=2;break}if(i.flags=0,i.head&&(i.head.done=!1),!(1&i.wrap)||(((255&l)<<8)+(l>>8))%31){t.msg="incorrect header check",i.mode=pe;break}if((15&l)!==ue){t.msg="unknown compression method",i.mode=pe;break}if(l>>>=4,d-=4,v=8+(15&l),0===i.wbits)i.wbits=v;else if(v>i.wbits){t.msg="invalid window size",i.mode=pe;break}i.dmax=1<<i.wbits,t.adler=i.check=1,i.mode=512&l?10:_e,l=0,d=0;break;case 2:for(;d<16;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}if(i.flags=l,(255&i.flags)!==ue){t.msg="unknown compression method",i.mode=pe;break}if(57344&i.flags){t.msg="unknown header flags set",i.mode=pe;break}i.head&&(i.head.text=l>>8&1),512&i.flags&&(U[0]=255&l,U[1]=l>>>8&255,i.check=N(i.check,U,2,0)),l=0,d=0,i.mode=3;case 3:for(;d<32;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}i.head&&(i.head.time=l),512&i.flags&&(U[0]=255&l,U[1]=l>>>8&255,U[2]=l>>>16&255,U[3]=l>>>24&255,i.check=N(i.check,U,4,0)),l=0,d=0,i.mode=4;case 4:for(;d<16;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}i.head&&(i.head.xflags=255&l,i.head.os=l>>8),512&i.flags&&(U[0]=255&l,U[1]=l>>>8&255,i.check=N(i.check,U,2,0)),l=0,d=0,i.mode=5;case 5:if(1024&i.flags){for(;d<16;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}i.length=l,i.head&&(i.head.extra_len=l),512&i.flags&&(U[0]=255&l,U[1]=l>>>8&255,i.check=N(i.check,U,2,0)),l=0,d=0}else i.head&&(i.head.extra=null);i.mode=6;case 6:if(1024&i.flags&&(u=i.length,u>o&&(u=o),u&&(i.head&&(v=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Uint8Array(i.head.extra_len)),i.head.extra.set(n.subarray(a,a+u),v)),512&i.flags&&(i.check=N(i.check,n,u,a)),o-=u,a+=u,i.length-=u),i.length))break t;i.length=0,i.mode=7;case 7:if(2048&i.flags){if(0===o)break t;u=0;do{v=n[a+u++],i.head&&v&&i.length<65536&&(i.head.name+=String.fromCharCode(v))}while(v&&u<o);if(512&i.flags&&(i.check=N(i.check,n,u,a)),o-=u,a+=u,v)break t}else i.head&&(i.head.name=null);i.length=0,i.mode=8;case 8:if(4096&i.flags){if(0===o)break t;u=0;do{v=n[a+u++],i.head&&v&&i.length<65536&&(i.head.comment+=String.fromCharCode(v))}while(v&&u<o);if(512&i.flags&&(i.check=N(i.check,n,u,a)),o-=u,a+=u,v)break t}else i.head&&(i.head.comment=null);i.mode=9;case 9:if(512&i.flags){for(;d<16;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}if(l!==(65535&i.check)){t.msg="header crc mismatch",i.mode=pe;break}l=0,d=0}i.head&&(i.head.hcrc=i.flags>>9&1,i.head.done=!0),t.adler=i.check=0,i.mode=_e;break;case 10:for(;d<32;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}t.adler=i.check=we(l),l=0,d=0,i.mode=11;case 11:if(0===i.havedict)return t.next_out=s,t.avail_out=h,t.next_in=a,t.avail_in=o,i.hold=l,i.bits=d,he;t.adler=i.check=1,i.mode=_e;case _e:if(e===re||e===ae)break t;case 13:if(i.last){l>>>=7&d,d-=7&d,i.mode=27;break}for(;d<3;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}switch(i.last=1&l,l>>>=1,d-=1,3&l){case 0:i.mode=14;break;case 1:if(Ue(i),i.mode=20,e===ae){l>>>=2,d-=2;break t}break;case 2:i.mode=17;break;case 3:t.msg="invalid block type",i.mode=pe}l>>>=2,d-=2;break;case 14:for(l>>>=7&d,d-=7&d;d<32;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}if((65535&l)!=(l>>>16^65535)){t.msg="invalid stored block lengths",i.mode=pe;break}if(i.length=65535&l,l=0,d=0,i.mode=15,e===ae)break t;case 15:i.mode=16;case 16:if(u=i.length,u){if(u>o&&(u=o),u>h&&(u=h),0===u)break t;r.set(n.subarray(a,a+u),s),o-=u,a+=u,h-=u,s+=u,i.length-=u;break}i.mode=_e;break;case 17:for(;d<14;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}if(i.nlen=257+(31&l),l>>>=5,d-=5,i.ndist=1+(31&l),l>>>=5,d-=5,i.ncode=4+(15&l),l>>>=4,d-=4,i.nlen>286||i.ndist>30){t.msg="too many length or distance symbols",i.mode=pe;break}i.have=0,i.mode=18;case 18:for(;i.have<i.ncode;){for(;d<3;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}i.lens[z[i.have++]]=7&l,l>>>=3,d-=3}for(;i.have<19;)i.lens[z[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,E={bits:i.lenbits},A=ie(0,i.lens,0,19,i.lencode,0,i.work,E),i.lenbits=E.bits,A){t.msg="invalid code lengths set",i.mode=pe;break}i.have=0,i.mode=19;case 19:for(;i.have<i.nlen+i.ndist;){for(;x=i.lencode[l&(1<<i.lenbits)-1],w=x>>>24,g=x>>>16&255,b=65535&x,!(w<=d);){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}if(b<16)l>>>=w,d-=w,i.lens[i.have++]=b;else{if(16===b){for(I=w+2;d<I;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}if(l>>>=w,d-=w,0===i.have){t.msg="invalid bit length repeat",i.mode=pe;break}v=i.lens[i.have-1],u=3+(3&l),l>>>=2,d-=2}else if(17===b){for(I=w+3;d<I;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}l>>>=w,d-=w,v=0,u=3+(7&l),l>>>=3,d-=3}else{for(I=w+7;d<I;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}l>>>=w,d-=w,v=0,u=11+(127&l),l>>>=7,d-=7}if(i.have+u>i.nlen+i.ndist){t.msg="invalid bit length repeat",i.mode=pe;break}for(;u--;)i.lens[i.have++]=v}}if(i.mode===pe)break;if(0===i.lens[256]){t.msg="invalid code -- missing end-of-block",i.mode=pe;break}if(i.lenbits=9,E={bits:i.lenbits},A=ie(1,i.lens,0,i.nlen,i.lencode,0,i.work,E),i.lenbits=E.bits,A){t.msg="invalid literal/lengths set",i.mode=pe;break}if(i.distbits=6,i.distcode=i.distdyn,E={bits:i.distbits},A=ie(2,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,E),i.distbits=E.bits,A){t.msg="invalid distances set",i.mode=pe;break}if(i.mode=20,e===ae)break t;case 20:i.mode=21;case 21:if(o>=6&&h>=258){t.next_out=s,t.avail_out=h,t.next_in=a,t.avail_in=o,i.hold=l,i.bits=d,Wt(t,f),s=t.next_out,r=t.output,h=t.avail_out,a=t.next_in,n=t.input,o=t.avail_in,l=i.hold,d=i.bits,i.mode===_e&&(i.back=-1);break}for(i.back=0;x=i.lencode[l&(1<<i.lenbits)-1],w=x>>>24,g=x>>>16&255,b=65535&x,!(w<=d);){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}if(g&&0==(240&g)){for(m=w,y=g,k=b;x=i.lencode[k+((l&(1<<m+y)-1)>>m)],w=x>>>24,g=x>>>16&255,b=65535&x,!(m+w<=d);){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}l>>>=m,d-=m,i.back+=m}if(l>>>=w,d-=w,i.back+=w,i.length=b,0===g){i.mode=26;break}if(32&g){i.back=-1,i.mode=_e;break}if(64&g){t.msg="invalid literal/length code",i.mode=pe;break}i.extra=15&g,i.mode=22;case 22:if(i.extra){for(I=i.extra;d<I;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}i.length+=l&(1<<i.extra)-1,l>>>=i.extra,d-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=23;case 23:for(;x=i.distcode[l&(1<<i.distbits)-1],w=x>>>24,g=x>>>16&255,b=65535&x,!(w<=d);){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}if(0==(240&g)){for(m=w,y=g,k=b;x=i.distcode[k+((l&(1<<m+y)-1)>>m)],w=x>>>24,g=x>>>16&255,b=65535&x,!(m+w<=d);){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}l>>>=m,d-=m,i.back+=m}if(l>>>=w,d-=w,i.back+=w,64&g){t.msg="invalid distance code",i.mode=pe;break}i.offset=b,i.extra=15&g,i.mode=24;case 24:if(i.extra){for(I=i.extra;d<I;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}i.offset+=l&(1<<i.extra)-1,l>>>=i.extra,d-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){t.msg="invalid distance too far back",i.mode=pe;break}i.mode=25;case 25:if(0===h)break t;if(u=f-h,i.offset>u){if(u=i.offset-u,u>i.whave&&i.sane){t.msg="invalid distance too far back",i.mode=pe;break}u>i.wnext?(u-=i.wnext,_=i.wsize-u):_=i.wnext-u,u>i.length&&(u=i.length),p=i.window}else p=r,_=s-i.offset,u=i.length;u>h&&(u=h),h-=u,i.length-=u;do{r[s++]=p[_++]}while(--u);0===i.length&&(i.mode=21);break;case 26:if(0===h)break t;r[s++]=i.length,h--,i.mode=21;break;case 27:if(i.wrap){for(;d<32;){if(0===o)break t;o--,l|=n[a++]<<d,d+=8}if(f-=h,t.total_out+=f,i.total+=f,f&&(t.adler=i.check=i.flags?N(i.check,r,f,s-f):F(i.check,r,f,s-f)),f=h,(i.flags?l:we(l))!==i.check){t.msg="incorrect data check",i.mode=pe;break}l=0,d=0}i.mode=28;case 28:if(i.wrap&&i.flags){for(;d<32;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}if(l!==(4294967295&i.total)){t.msg="incorrect length check",i.mode=pe;break}l=0,d=0}i.mode=29;case 29:A=oe;break t;case pe:A=de;break t;case 31:return ce;default:return le}return t.next_out=s,t.avail_out=h,t.next_in=a,t.avail_in=o,i.hold=l,i.bits=d,(i.wsize||f!==t.avail_out&&i.mode<pe&&(i.mode<27||e!==ne))&&Ee(t,t.output,t.next_out,f-t.avail_out),c-=t.avail_in,f-=t.avail_out,t.total_in+=c,t.total_out+=f,i.total+=f,i.wrap&&f&&(t.adler=i.check=i.flags?N(i.check,r,f,t.next_out-f):F(i.check,r,f,t.next_out-f)),t.data_type=i.bits+(i.last?64:0)+(i.mode===_e?128:0)+(20===i.mode||15===i.mode?256:0),(0===c&&0===f||e===ne)&&A===se&&(A=fe),A},inflateEnd:t=>{if(!t||!t.state)return le;let e=t.state;return e.window&&(e.window=null),t.state=null,se},inflateGetHeader:(t,e)=>{if(!t||!t.state)return le;const i=t.state;return 0==(2&i.wrap)?le:(i.head=e,e.done=!1,se)},inflateSetDictionary:(t,e)=>{const i=e.length;let n,r,a;return t&&t.state?(n=t.state,0!==n.wrap&&11!==n.mode?le:11===n.mode&&(r=1,r=F(r,e,i,0),r!==n.check)?de:(a=Ee(t,e,i,i),a?(n.mode=31,ce):(n.havedict=1,se))):le},inflateInfo:"pako inflate (from Nodeca project)"},ze=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const Se=Object.prototype.toString,{Z_NO_FLUSH:Ce,Z_FINISH:Te,Z_OK:Re,Z_STREAM_END:Fe,Z_NEED_DICT:Be,Z_STREAM_ERROR:Ne,Z_DATA_ERROR:De,Z_MEM_ERROR:Ze}=Z;function Le(t){this.options=Ft.assign({chunkSize:65536,windowBits:15,to:""},t||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Zt,this.strm.avail_out=0;let i=Ie.inflateInit2(this.strm,e.windowBits);if(i!==Re)throw new Error(D[i]);if(this.header=new ze,Ie.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=Dt.string2buf(e.dictionary):"[object ArrayBuffer]"===Se.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(i=Ie.inflateSetDictionary(this.strm,e.dictionary),i!==Re)))throw new Error(D[i])}function Oe(t,e){const i=new Le(e);if(i.push(t),i.err)throw i.msg||D[i.err];return i.result}Le.prototype.push=function(t,e){const i=this.strm,n=this.options.chunkSize,r=this.options.dictionary;let a,s,o;if(this.ended)return!1;for(s=e===~~e?e:!0===e?Te:Ce,"[object ArrayBuffer]"===Se.call(t)?i.input=new Uint8Array(t):i.input=t,i.next_in=0,i.avail_in=i.input.length;;){for(0===i.avail_out&&(i.output=new Uint8Array(n),i.next_out=0,i.avail_out=n),a=Ie.inflate(i,s),a===Be&&r&&(a=Ie.inflateSetDictionary(i,r),a===Re?a=Ie.inflate(i,s):a===De&&(a=Be));i.avail_in>0&&a===Fe&&i.state.wrap>0&&0!==t[i.next_in];)Ie.inflateReset(i),a=Ie.inflate(i,s);switch(a){case Ne:case De:case Be:case Ze:return this.onEnd(a),this.ended=!0,!1}if(o=i.avail_out,i.next_out&&(0===i.avail_out||a===Fe))if("string"===this.options.to){let t=Dt.utf8border(i.output,i.next_out),e=i.next_out-t,r=Dt.buf2string(i.output,t);i.next_out=e,i.avail_out=n-e,e&&i.output.set(i.output.subarray(t,t+e),0),this.onData(r)}else this.onData(i.output.length===i.next_out?i.output:i.output.subarray(0,i.next_out));if(a!==Re||0!==o){if(a===Fe)return a=Ie.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(0===i.avail_in)break}}return!0},Le.prototype.onData=function(t){this.chunks.push(t)},Le.prototype.onEnd=function(t){t===Re&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Ft.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var $e={Inflate:Le,inflate:Oe,inflateRaw:function(t,e){return(e=e||{}).raw=!0,Oe(t,e)},ungzip:Oe,constants:Z};const{Deflate:Me,deflate:Ve,deflateRaw:He,gzip:Pe}=qt,{Inflate:je,inflate:Ge,inflateRaw:Ke,ungzip:Xe}=$e;var Ye={Deflate:Me,deflate:Ve,deflateRaw:He,gzip:Pe,Inflate:je,inflate:Ge,inflateRaw:Ke,ungzip:Xe,constants:Z};function qe(t,e){const i=t.length;if(i!==e.length)return!1;for(let n=0;n<i;n++)if(t[n]!==e[n])return!1;return!0}class We{appendDescriptionOf(t){throw new Error("Not Implemented")}appendList(t,e,i,n){throw new Error("Not Implemented")}appendText(t){throw new Error("Not Implemented")}appendValue(t){throw new Error("Not Implemented")}appendValueList(t,e,i,n){throw new Error("Not Implemented")}}class Je{describeTo(t){throw new Error("Not Implemented")}}class Qe extends Je{value;constructor(t){super(),this.value=t}describeTo(t){t.appendValue(this.value)}}class ti{#t;constructor(t){this.#t=t}*[Symbol.iterator](){for(const t of this.#t)yield new Qe(t)}}class ei extends We{appendDescriptionOf(t){return t.describeTo(this),this}#e(t){this.appendText('"'),this.appendText(t),this.appendText('"')}appendValue(t){return null==t?this.appendText("null"):void 0===t?this.appendText("undefined"):"string"==typeof t?this.#e(t):"number"==typeof t?this.appendText(function(t){return String(t)}(t)):Array.isArray(t)?this.appendValueList("[",", ","]",t):(this.appendText("<"),this.appendText(function(t){try{return String(t)}catch(t){return"VALUE@0"}}(t)),this.appendText(">")),this}appendValueList(t,e,i,n){return this.appendList(t,e,i,new ti(n)),this}appendList(t,e,i,n){let r=!1;this.appendText(t);const a=n[Symbol.iterator]();for(let t=a.next();!0!==t.done;t=a.next())r&&this.appendText(e),this.appendDescriptionOf(t.value),r=!0;return this.appendText(i),this}}class ii extends ei{value="";appendText(t){return this.value+=t,this}}function ni(t,e){if(!t)throw new Error(e||"AssertionError")}function ri(t,e,i="value"){if(-1===e.indexOf(t))throw new Error(`${i} must be one of [${e.join(", ")}], instead was '${t}'`)}const ai=["string","boolean","number","object","undefined","function","symbol"];ni.enum=function(t,e,i="value"){for(let i in e)if(e[i]===t)return;throw new Error(`${i}(=${t}) is not a valid enumerable value, valid values are: [${Object.values(e).join(", ")}]`)},ni.notEqual=function(t,e,i){ni(t!==e,i)},ni.notOk=function(t,e){ni(!t,e)},ni.equal=function(t,e,i){if(t!==e){const n=`${t} !== ${e}`;throw new Error(void 0!==i&&""!==i?`${i}. ${n}`:n)}},ni.logicalyEqual=function(t,e,i){},ni.ok=ni,ni.greaterThan=function(t,e,i){if(!(t>e)){let n="";throw void 0!==i&&(n+=i+". "),n+=`Expected ${t} > ${e}.`,new Error(n)}},ni.greaterThanOrEqual=function(t,e,i){if(!(t>=e)){let n="";throw void 0!==i&&(n+=i+". "),n+=`Expected ${t} >= ${e}.`,new Error(n)}},ni.lessThan=function(t,e,i){if(!(t<e)){let n="";throw void 0!==i&&(n+=i+". "),n+=`Expected ${t} < ${e}.`,new Error(n)}},ni.lessThanOrEqual=function(t,e,i){if(!(t<=e)){let n="";throw void 0!==i&&(n+=i+". "),n+=`Expected ${t} <= ${e}.`,new Error(n)}},ni.typeOf=function(t,e,i="value"){ri(typeof t,ai);const n=typeof t;if(n!==e)throw new Error(`expected ${i} to be ${e}, instead was '${n}'(=${t})`)},ni.arrayHas=function(t,e,i="Array does not contain the item"){},ni.arrayHasNo=function(t,e,i="Array contains the item"){},ni.arrayEqual=function(t,e,i="Arrays are not equal"){if(!qe(t,e))throw new Error(i)},ni.isOneOf=ri,ni.isInstanceOf=function(t,e,i="value",n=e.name){},ni.isNumber=function(t,e="value"){const i=typeof t;if("number"!==i)throw new Error(`expected ${e} to be a number, instead was '${i}'(=${t})`)},ni.isString=function(t,e="value"){const i=typeof t;if("string"!==i)throw new Error(`expected ${e} to be a string, instead was '${i}'(=${t})`)},ni.isBoolean=function(t,e="value"){const i=typeof t;if("boolean"!==i)throw new Error(`expected ${e} to be a boolean, instead was '${i}'(=${t})`)},ni.isFunction=function(t,e="value"){const i=typeof t;if("function"!==i)throw new Error(`expected ${e} to be a function, instead was '${i}'(=${t})`)},ni.isObject=function(t,e="value"){const i=typeof t;if("object"!==i)throw new Error(`expected ${e} to be an object, instead was '${i}'(=${t})`)},ni.isInteger=function(t,e="value"){if(!Number.isInteger(t))throw new Error(`${e} must be an integer, instead was ${t}`)},ni.isNonNegativeInteger=function(t,e="value"){if(t<0)throw new Error(`${e} must be >= 0, instead was ${t}`)},ni.isArray=function(t,e="value"){if(!Array.isArray(t))throw new Error(`expected ${e} to be an array, instead was something else (typeof ='${typeof t}')`)},ni.isArrayLike=function(t,e="value"){if(!function(t){if(Array.isArray(t))return!0;if("object"!=typeof t)return!1;if(null===t)return!1;if(function(t){if("object"!=typeof t)return!1;if(null===t)return!1;const e=t.constructor;return e===Uint8Array||e===Uint16Array||e===Uint32Array||e===Int8Array||e===Int16Array||e===Int32Array||e===Float32Array||e===Float64Array||e===BigUint64Array||e===BigInt64Array}(t))return!0;const e=t.length;return!("number"!=typeof e&&!Number.isInteger(e)||e<0)}(t))throw new Error(`expected ${e} to be an array-like structure, instead was something else (typeof ='${typeof t}')`)},ni.defined=function(t,e="value"){if(void 0===t)throw new Error(`${e} is undefined`)},ni.undefined=function(t,e="value"){if(void 0!==t)throw new Error(`${e} is not undefined`)},ni.isNull=function(t,e){if(null!==t)throw new Error(`${e} is NOT null`)},ni.notNull=function(t,e="value"){if(null===t)throw new Error(`${e} is null`)},ni.notNaN=function(t,e="value"){if(Number.isNaN(t))throw new Error(`${e} must be a valid number, instead was NaN`)},ni.isFinite=function(t,e="value"){if(!Number.isFinite(t))throw new Error(`${e} must be a finite number, instead was ${t}`)},ni.isFiniteNumber=ni.isFinite,ni.that=function(t,e,i){if(i.matches(t))return;const n=new ii;throw n.appendText(`Expected ${e} to be `),i.describeTo(n),n.appendText(" instead "),i.describeMismatch(t,n),new Error(n.value)};const si=!1,oi=!0,hi=new Float32Array(1),li=new Int32Array(hi.buffer);class di{endianness=oi;position=0;get length(){throw new Error("Deprecated, use 'capacity' instead")}set length(t){throw new Error("Deprecated, use 'capacity' instead")}capacity=1024;data=new ArrayBuffer(1024);dataView=new DataView(this.data);__data_uint8=new Uint8Array(this.data);__growFactor=1.1;get raw_bytes(){return this.__data_uint8}fromArrayBuffer(t){this.data=t,this.dataView=new DataView(t),this.__data_uint8=new Uint8Array(t),this.capacity=t.byteLength,this.position=0}trim(){return this.setCapacity(this.position),this}setCapacity(t){if(t<this.position)throw new Error(`Attempting to set capacity(=${t}) below current position(=${this.position})`);const e=this.__data_uint8,i=new Uint8Array(t);!function(t,e,i,n,r){let a,s;const o=function(t,e,i){const n=0|i;return 0==(3&n)?4:0==(1&n)?2:1}(0,0,r);4===o?(a=new Uint32Array(t,0,r>>>2),s=new Uint32Array(i,0,r>>>2)):2===o?(a=new Uint16Array(t,0,r>>>1),s=new Uint16Array(i,0,r>>>1)):(a=new Uint8Array(t,0,r),s=new Uint8Array(i,0,r)),s.set(a)}(e.buffer,0,i.buffer,0,Math.min(e.buffer.byteLength,i.buffer.byteLength)),this.data=i.buffer,this.__data_uint8=i,this.dataView=new DataView(this.data),this.capacity=t}ensureCapacity(t){const e=this.capacity;if(e>=t)return;const i=Math.ceil(Math.max(t,e*this.__growFactor,e+1024))+3>>2<<2;this.setCapacity(i)}readFloat16(){return function(t){let e=0;const i=(31744&t)>>10,n=1023&t;let r=1;return t>>15!=0&&(r=-1),e=0!==i?31===i?0!==n?NaN:Infinity:r*Math.pow(2,i-15)*(1+n/1024):r*(n/1024*6103515625e-14),e}(this.readUint16())}readFloat32(){const t=this.dataView.getFloat32(this.position,this.endianness);return this.position+=4,t}readFloat64(){const t=this.dataView.getFloat64(this.position,this.endianness);return this.position+=8,t}readInt8(){const t=this.dataView.getInt8(this.position);return this.position+=1,t}readInt16(){const t=this.dataView.getInt16(this.position,this.endianness);return this.position+=2,t}readInt32(){const t=this.dataView.getInt32(this.position,this.endianness);return this.position+=4,t}readUint8(){const t=this.dataView.getUint8(this.position);return this.position+=1,t}readUint16(){const t=this.dataView.getUint16(this.position,this.endianness);return this.position+=2,t}readUint16LE(){const t=this.dataView.getUint16(this.position,oi);return this.position+=2,t}readUint16BE(){const t=this.dataView.getUint16(this.position,si);return this.position+=2,t}readUint24(){return this.endianness===si?this.readUint24BE():this.readUint24LE()}readUint24LE(){const t=this.dataView.getUint8(this.position),e=this.dataView.getUint8(this.position+1),i=this.dataView.getUint8(this.position+2);return this.position+=3,t|e<<8|i<<16}readUint24BE(){const t=this.dataView.getUint8(this.position),e=this.dataView.getUint8(this.position+1),i=this.dataView.getUint8(this.position+2);return this.position+=3,i|e<<8|t<<16}readUint32(){const t=this.dataView.getUint32(this.position,this.endianness);return this.position+=4,t}readUint32LE(){const t=this.dataView.getUint32(this.position,oi);return this.position+=4,t}readUint32BE(){const t=this.dataView.getUint32(this.position,si);return this.position+=4,t}readUint8Array(t,e,i){for(let n=0;n<i;n++)t[n+e]=this.readUint8()}readUint16Array(t,e,i){for(let n=0;n<i;n++)t[n+e]=this.readUint16()}readUint32Array(t,e,i){for(let n=0;n<i;n++)t[n+e]=this.readUint32()}readInt8Array(t,e,i){for(let n=0;n<i;n++)t[n+e]=this.readInt8()}readInt16Array(t,e,i){for(let n=0;n<i;n++)t[n+e]=this.readInt16()}readInt32Array(t,e,i){for(let n=0;n<i;n++)t[n+e]=this.readInt32()}readFloat32Array(t,e,i){for(let n=0;n<i;n++)t[n+e]=this.readFloat32()}readFloat64Array(t,e,i){for(let n=0;n<i;n++)t[n+e]=this.readFloat64()}writeFloat32Array(t,e,i){for(let n=0;n<i;n++)this.writeFloat32(t[n+e])}writeFloat16(t){const e=function(t){let e=t;e>65504&&(e=65504),hi[0]=e;const i=li[0];let n=i>>16&32768,r=i>>12&2047;const a=i>>23&255;return a<103?n:a>142?(n|=31744,n|=(255===a?0:1)&&8388607&i,n):a<113?(r|=2048,n|=(r>>114-a)+(r>>113-a&1),n):(n|=a-112<<10|r>>1,n+=1&r,n)}(t);this.writeUint16(e)}writeFloat32(t){const e=this.position+4;this.ensureCapacity(e),this.dataView.setFloat32(this.position,t,this.endianness),this.position=e}writeFloat64(t){const e=this.position+8;this.ensureCapacity(e),this.dataView.setFloat64(this.position,t,this.endianness),this.position=e}writeInt8(t){const e=this.position+1;this.ensureCapacity(e),this.dataView.setInt8(this.position,t),this.position=e}writeInt16(t){const e=this.position+2;this.ensureCapacity(e),this.dataView.setInt16(this.position,t,this.endianness),this.position=e}writeInt32(t){const e=this.position+4;this.ensureCapacity(e),this.dataView.setInt32(this.position,t,this.endianness),this.position=e}writeInt8Array(t,e,i){this.ensureCapacity(this.position+i);for(let n=0;n<i;n++)this.writeInt8(t[e+n])}writeInt16Array(t,e,i){this.ensureCapacity(this.position+2*i);for(let n=0;n<i;n++)this.writeInt16(t[e+n])}writeInt32Array(t,e,i){this.ensureCapacity(this.position+4*i);for(let n=0;n<i;n++)this.writeInt32(t[e+n])}writeUint8(t){const e=this.position+1;this.ensureCapacity(e),this.dataView.setUint8(this.position,t),this.position=e}writeUint8Array(t,e,i){for(let n=0;n<i;n++)this.writeUint8(t[e+n])}writeUint16(t){const e=this.position+2;this.ensureCapacity(e),this.dataView.setUint16(this.position,t,this.endianness),this.position=e}writeUint16BE(t){const e=this.position+2;this.ensureCapacity(e),this.dataView.setUint16(this.position,t,si),this.position=e}writeUint16LE(t){const e=this.position+2;this.ensureCapacity(e),this.dataView.setUint16(this.position,t,oi),this.position=e}writeUint16Array(t,e,i){for(let n=0;n<i;n++)this.writeUint16(t[e+n])}writeUint24(t){this.endianness===si?this.writeUint24BE(t):this.writeUint24LE(t)}writeUint24BE(t){const e=this.position+3;this.ensureCapacity(e);const i=255&t,n=t>>8&255,r=t>>16&255;this.dataView.setUint8(this.position,r),this.dataView.setUint8(this.position+1,n),this.dataView.setUint8(this.position+2,i),this.position=e}writeUint24LE(t){const e=this.position+3;this.ensureCapacity(e);const i=255&t,n=t>>8&255,r=t>>16&255;this.dataView.setUint8(this.position,i),this.dataView.setUint8(this.position+1,n),this.dataView.setUint8(this.position+2,r),this.position=e}writeUintVar(t){let e=!0;for(;e||0!==t;){e=!1;let i=127&t;(t>>=7)>0&&(i|=128),this.writeUint8(i)}}readUintVar(){let t=!0,e=0,i=0;for(;t;){let n=this.readUint8();t=0!=(128&n),e|=(127&n)<<i,i+=7}return e}writeUint32(t){const e=this.position+4;this.ensureCapacity(e),this.dataView.setUint32(this.position,t,this.endianness),this.position=e}writeUint32BE(t){const e=this.position+4;this.ensureCapacity(e),this.dataView.setUint32(this.position,t,si),this.position=e}writeUint32LE(t){const e=this.position+4;this.ensureCapacity(e),this.dataView.setUint32(this.position,t,oi),this.position=e}writeUint32Array(t,e,i){this.ensureCapacity(this.position+4*i);for(let n=0;n<i;n++)this.writeUint32(t[e+n])}writeBytes(t,e,i){const n=e+i,r=this.position,a=r+i;if(this.ensureCapacity(a),0===e&&t.length===i)this.__data_uint8.set(t,r);else if("function"==typeof t.subarray)this.__data_uint8.set(t.subarray(e,n),r);else for(let n=0;n<i;n++)this.__data_uint8[r+n]=t[e+n];this.position=a}readBytes(t,e,i){const n=this.position,r=n+i,a=this.__data_uint8;i<128?function(t,e,i,n,r){let a,s,o;for(o=0;o<r;o++)a=e+o,s=n+o,i[s]=t[a]}(a,n,t,e,i):t.set(a.subarray(n,r),e),this.position=r}writeUTF8String(t){if(null===t)return void this.writeUint32(4294967295);if(void 0===t)return void this.writeUint32(4294967294);let e=0;const i=t.length;if(i>=4294967294)throw new Error("String is too long");this.writeUint32(i);let n=this.position;const r=Math.max(32,i+(i>>1)+7);this.ensureCapacity(r+n);let a=this.__data_uint8,s=this.capacity;for(;e<i;){let r=t.charCodeAt(e++);if(r>=55296&&r<=56319){if(e<i){const i=t.charCodeAt(e);56320==(64512&i)&&(++e,r=((1023&r)<<10)+(1023&i)+65536)}if(r>=55296&&r<=56319)continue}if(n+4>s&&(this.ensureCapacity(n+4),s=this.capacity,a=this.__data_uint8),0!=(4294967168&r)){if(0==(4294965248&r))a[n++]=r>>6&31|192;else if(0==(4294901760&r))a[n++]=r>>12&15|224,a[n++]=r>>6&63|128;else{if(0!=(4292870144&r))continue;a[n++]=r>>18&7|240,a[n++]=r>>12&63|128,a[n++]=r>>6&63|128}a[n++]=63&r|128}else a[n++]=r}this.position=n}readUTF8String(){const t=this.readUint32();if(4294967295===t)return null;if(4294967294===t)return;const e=this.__data_uint8;let i="",n=this.position,r=0;for(;n<this.capacity&&r<t;){const t=e[n++];let a;if(0===t)break;0==(128&t)?a=t:192==(224&t)?a=(31&t)<<6|63&e[n++]:224==(240&t)?a=(31&t)<<12|(63&e[n++])<<6|63&e[n++]:240==(248&t)&&(a=(7&t)<<18|(63&e[n++])<<12|(63&e[n++])<<6|63&e[n++],a>65535&&(a-=65536,i+=String.fromCharCode(a>>>10&1023|55296),r++,a=56320|1023&a)),r++,i+=String.fromCharCode(a)}return this.position=n,i}writeASCIIString(t){const e=t.length,i=this.position,n=i+e;this.ensureCapacity(n);for(let n=0;n<e;n++){const e=t.charCodeAt(n);if(e>128)throw new Error(`Character ${String.fromCharCode(e)} can't be represented by a US-ASCII byte.`);this.__data_uint8[i+n]=e}this.position=n}readASCIICharacters(t,e=!1){let i="";for(let n=0;n<t;n++){const t=this.readUint8();if(e&&0===t)break;i+=String.fromCharCode(t)}return i}toString(){return`BinaryBuffer[position=${this.position}, capacity=${this.capacity}, endianness=${this.endianness}]`}toHexString(){const t=this.__data_uint8,e=Math.min(t.length,this.position);let i="";for(let n=0;n<e;n++)i+=t[n].toString(16).padStart(2,"0").toUpperCase();return i}static fromEndianness(t){const e=new di;return e.endianness=t,e}static fromArrayBuffer(t){const e=new di;return e.fromArrayBuffer(t),e}static copyUTF8String(t,e){const i=t.readUTF8String();return e.writeUTF8String(i),i}static copyUintVar(t,e){const i=t.readUintVar();return e.writeUintVar(i),i}static copyUint8(t,e){const i=t.readUint8();return e.writeUint8(i),i}static copyUint16(t,e){const i=t.readUint16();return e.writeUint16(i),i}static copyUint32(t,e){const i=t.readUint32();return e.writeUint32(i),i}static copyFloat32(t,e){const i=t.readFloat32();return e.writeFloat32(i),i}static copyFloat64(t,e){const i=t.readFloat64();return e.writeFloat64(i),i}static copyBytes(t,e,i){const n=new Uint8Array(i);return t.readBytes(n,0,i),e.writeBytes(n,0,i),n}}di.prototype.isBinaryBuffer=!0;const ci=new Uint32Array(256);for(let t=0;t<256;t++){let e=t;for(let t=0;t<8;t++)0!=(1&e)?e=3988292384^e>>>1:e>>>=1;ci[t]=e}class fi{width=0;height=0;bitDepth=0;colorType=0;compressionMethod=0;filterMethod=0;interlaceMethod=0;colors=0;alpha=!1;pixelBits=0;palette=null;pixels=null;trns=null;text={};getWidth(){return this.width}setWidth(t){this.width=t}getHeight(){return this.height}setHeight(t){this.height=t}getBitDepth(){return this.bitDepth}setBitDepth(t){if(-1===[1,2,4,8,16].indexOf(t))throw new Error("invalid bith depth "+t);this.bitDepth=t}getColorType(){return this.colorType}setColorType(t){let e=0,i=!1;switch(t){case 0:case 3:e=1;break;case 2:e=3;break;case 4:e=2,i=!0;break;case 6:e=4,i=!0;break;default:throw new Error("invalid color type")}this.colors=e,this.alpha=i,this.colorType=t}getCompressionMethod(){return this.compressionMethod}setCompressionMethod(t){if(0!==t)throw new Error("invalid compression method "+t);this.compressionMethod=t}getFilterMethod(){return this.filterMethod}setFilterMethod(t){if(0!==t)throw new Error("invalid filter method "+t);this.filterMethod=t}getInterlaceMethod(){return this.interlaceMethod}setInterlaceMethod(t){if(0!==t&&1!==t)throw new Error("invalid interlace method "+t);this.interlaceMethod=t}setTRNS(t){this.trns=t}setPalette(t){if(t.length%3!=0)throw new Error("incorrect PLTE chunk length");if(t.length>3*Math.pow(2,this.bitDepth))throw new Error("palette has more colors than 2^bitdepth");this.palette=t}getPalette(){return this.palette}getPixel(t,e,i,n){const r=this.pixels;if(!r)throw new Error("pixel data is empty");if(i>=this.width||n>=this.height)throw new Error("x,y position out of bound");const a=this.colors*this.bitDepth/8*(n*this.width+i);let s,o,h,l;switch(this.colorType){case 0:s=r[a],o=s,h=s,l=255;break;case 2:s=r[a],o=r[a+1],h=r[a+2],l=255;break;case 3:l=255,null!=this.trns&&(l=this.trns[r[a]]);const t=3*r[a],e=this.palette;s=e[t],o=e[t+1],h=e[t+2];break;case 4:s=r[a],o=s,h=s,l=r[a+1];break;case 6:s=r[a],o=r[a+1],h=r[a+2],l=r[a+3];break;default:throw new Error("Unsupported color type")}t[e+0]=s,t[e+1]=o,t[e+2]=h,t[e+3]=l}getRGBA8Array_fromRGB(t){const e=this.height,i=this.width*e,n=this.pixels;for(let e=0;e<i;e++){const i=3*e,r=i+e;t[r]=n[i],t[r+1]=n[i+1],t[r+2]=n[i+2],t[r+3]=255}}getRGBA8Array_generic(t){const e=this.height,i=this.width;for(let n=0;n<e;n++){const e=n*i;for(let r=0;r<i;r++){const i=4*(e+r);this.getPixel(t,i,r,n)}}}getRGBA8Array(){if(6===this.colorType)return this.pixels;const t=this.height,e=this.width,i=new Uint8Array(e*t*4);return 2===this.colorType?this.getRGBA8Array_fromRGB(i):this.getRGBA8Array_generic(i),i}getUint8Data_case3(){const t=this.width*this.height;let e;const i=this.trns;e=null!==i?4:3;const n=new Uint8Array(t*e),r=this.pixels,a=this.palette,s=this.colors*Math.ceil(this.bitDepth/8);for(let i=0;i<t;i++){const t=i*e,o=3*r[i*s];n[t]=a[o],n[t+1]=a[o+1],n[t+2]=a[o+2]}if(null!==i){const e=i.length;for(let a=0;a<t;a++){const t=r[a*s];n[4*a+3]=t>=e?255:i[t]}}return{data:n,itemSize:e}}getUint8Data(){let t,e=0;switch(this.colorType){case 0:t=this.pixels,e=1;break;case 2:t=this.pixels,e=3;break;case 3:const i=this.getUint8Data_case3();t=i.data,e=i.itemSize;break;case 4:t=this.pixels,e=2;break;case 6:t=this.pixels,e=4;break;default:throw new Error("Unsupported color type")}return{data:t,itemSize:e}}}const ui=[137,80,78,71,13,10,26,10];function _i(t){const e=new Ye.Inflate;if(e.push(t),e.err)throw new Error(e.err);return e.result.buffer}function pi(t,e){return t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3]}function wi(t,e){return t[e]}function gi(t){this.i=0,this.bytes=new Uint8Array(t),this.png=new fi,this.dataChunks=[],this.buffer=new di,this.buffer.endianness=si,this.buffer.fromArrayBuffer(t),this.crc_enabled=!1,this.header=new Uint8Array(8)}gi.prototype.readBytes=function(t){const e=new Uint8Array(t);return this.buffer.readBytes(e,0,t),e},gi.prototype.decodeHeader=function(){if(0!==this.i)throw new Error("file pointer should be at 0 to read the header");const t=this.buffer,e=this.header;if(t.readBytes(e,0,8),!qe(e,ui))throw new Error("invalid PNGReader file (bad signature)")},gi.prototype.decodeChunk=function(){const t=this.buffer,e=t.readUint32();if(e<0)throw new Error("Bad chunk length "+(4294967295&e));const i=t.position,n=t.readASCIICharacters(4),r=this.readBytes(e);switch(t.readUint32(),this.crc_enabled&&function(t,e=0,i=t.length){!function(t,e,i,n){let r=4294967295;const a=i+n;for(let t=i;t<a;t++){const i=e[t];r=ci[255&(r^i)]^r>>>8}}(0,t,e,i)}(t.raw_bytes,i,e+4),n){case"IHDR":this.decodeIHDR(r);break;case"PLTE":this.decodePLTE(r);break;case"IDAT":this.decodeIDAT(r);break;case"tRNS":this.decodeTRNS(r);break;case"IEND":this.decodeIEND(r);break;case"sRGB":this.decodesRGB(r);break;case"tIME":this.decodetIME(r);break;case"zTXt":this.decodezTXt(r);break;case"iTXt":this.decodeiTXt(r)}return n},gi.prototype.decodesRGB=function(t){wi(t,0)},gi.prototype.decodetIME=function(t){wi(t,0),wi(t,1),wi(t,2),wi(t,3),wi(t,4),wi(t,5),wi(t,6)},gi.prototype.decodeiTXt=function(t){const e=di.fromArrayBuffer(t.buffer),i=e.readASCIICharacters(79,!0),n=e.readUint8();e.readUint8();const r=e.readASCIICharacters(Infinity,!0),a=e.readASCIICharacters(Infinity,!0),s=e.data.length-e.position;let o;if(0===n)o=e.readASCIICharacters(s);else{if(1!==n)throw new Error(`Invalid compression flag value '${n}'`);{const t=_i(new Uint8Array(e.data,e.position,s));e.fromArrayBuffer(t),o=e.readASCIICharacters(t.byteLength)}}return{keyword:i,language_tag:r,translated_keyword:a,text:o}},gi.prototype.decodezTXt=function(t){const e=di.fromArrayBuffer(t.buffer),i=e.readASCIICharacters(79,!0),n=e.readUint8();let r;if(0!==n)throw new Error(`Unsupported compression method '${n}'`);{const i=_i(new Uint8Array(t.buffer,e.position));e.fromArrayBuffer(i),r=e.readASCIICharacters(i.length)}return{keyword:i,text:r}},gi.prototype.decodetEXt=function(t){const e=di.fromArrayBuffer(t.buffer),i=e.readASCIICharacters(Number.POSITIVE_INFINITY,!0),n=e.readASCIICharacters(i.length-1,!1);this.png.text[i]=n},gi.prototype.decodeiEXt=function(t){const e=di.fromArrayBuffer(t.buffer),i=e.readASCIICharacters(Number.POSITIVE_INFINITY,!0);if(e.readUint8(),e.readUint8(),e.readASCIICharacters(Number.POSITIVE_INFINITY,!0),e.readUTF8String(),0!==e.readUint8())throw new Error("Expected Null Separator after Translated keyword");const n=e.readUTF8String();this.png.text[i]=n},gi.prototype.decodeIHDR=function(t){const e=this.png;e.setWidth(pi(t,0)),e.setHeight(pi(t,4)),e.setBitDepth(wi(t,8)),e.setColorType(wi(t,9)),e.setCompressionMethod(wi(t,10)),e.setFilterMethod(wi(t,11)),e.setInterlaceMethod(wi(t,12))},gi.prototype.decodePLTE=function(t){this.png.setPalette(t)},gi.prototype.decodeIDAT=function(t){this.dataChunks.push(t)},gi.prototype.decodeTRNS=function(t){this.png.setTRNS(t)},gi.prototype.decodeIEND=function(){},gi.prototype.decodePixels=function(){const t=this.png,e=new Ye.Inflate,i=this.dataChunks,n=i.length;for(let t=0;t<n;t++)if(e.push(i[t]),e.err)throw new Error(e.err);const r=e.result;0===t.getInterlaceMethod()?this.interlaceNone(r):this.interlaceAdam7(r)},gi.prototype.interlaceNone=function(t){const e=this.png,i=e.bitDepth,n=e.colors*i/8,r=e.width,a=e.height,s=Math.ceil(n*r),o=Math.ceil(n)*r,h=new Uint8Array(o*a);let l=0;const d=t.length;for(let e=0;e<d;e+=s+1){const r=e+1,a=wi(t,e);switch(a){case 0:if(1===i)for(let e=0;e<o;e++){const i=t[(e>>>4)+r]>>>(7&e)&1;h[l+e]=i}else if(2===i)for(let e=0;e<o;e++){const i=t[(e>>>2)+r]>>>((3&~e)<<1)&3;h[l+e]=i}else if(4===i)for(let e=0;e<o;e++){const i=t[(e>>>1)+r]>>>((1&~e)<<2)&15;h[l+e]=i}else{if(8!==i)throw new Error(`unsupported bit depth ${i}`);for(let e=0;e<o;e++)h[l+e]=t[e+r]}break;case 1:this.unFilterSub(t,r,h,n,l,s);break;case 2:this.unFilterUp(t,r,h,n,l,s);break;case 3:this.unFilterAverage(t,r,h,n,l,s);break;case 4:this.unFilterPaeth(t,r,h,n,l,s);break;default:throw new Error(`unknown filtered scanline type '${a}'`)}l+=o}e.pixels=h},gi.prototype.interlaceAdam7=function(t){throw new Error("Adam7 interlacing is not implemented yet")},gi.prototype.unFilterSub=function(t,e,i,n,r,a){let s=0;for(;s<n;s++)i[r+s]=t[s+e];for(;s<a;s++){const a=r+s;i[a]=t[s+e]+i[a-n]&255}},gi.prototype.unFilterUp=function(t,e,i,n,r,a){let s,o,h=0;if(r-a<0)for(;h<a;h++)i[r+h]=t[h+e];else for(;h<a;h++)s=t[h+e],o=i[r+h-a],i[r+h]=s+o&255},gi.prototype.unFilterAverage=function(t,e,i,n,r,a){let s,o,h,l=0;if(r-a<0){for(;l<n;l++)i[r+l]=t[l+e];for(;l<a;l++){const a=r+l;i[a]=t[l+e]+(i[a-n]>>1)&255}}else{for(;l<n;l++){const n=r+l;i[n]=t[l+e]+(i[n-a]>>1)&255}for(;l<a;l++){s=t[l+e];const d=r+l;o=i[d-n],h=i[d-a],i[d]=s+(o+h>>1)&255}}},gi.prototype.unFilterPaeth=function(t,e,i,n,r,a){let s,o,h,l,d,c,f,u,_,p=0;if(r-a<0){for(;p<n;p++)i[r+p]=t[p+e];for(;p<a;p++)i[r+p]=t[p+e]+i[r+p-n]&255}else{const w=r-a;for(;p<n;p++)i[r+p]=t[p+e]+i[w+p]&255;for(;p<a;p++){s=t[p+e];const w=r+p;l=i[w-a-n],h=i[w-a],o=i[w-n],d=o+h-l,c=Math.abs(d-o),f=Math.abs(d-h),u=Math.abs(d-l),_=c<=f&&c<=u?o:f<=u?h:l,i[w]=s+_&255}}},gi.prototype.parse=function(){for(this.decodeHeader();"IEND"!==this.decodeChunk(););return this.decodePixels(),this.png},self.Lib={decode:async function(t,e="png"){if(!(t instanceof ArrayBuffer))throw new Error(".data argument must be an ArrayBuffer, instead was something else");if("png"===e.toLowerCase())return await async function(t){return new Promise(((e,i)=>{const n=new gi(t).parse(),r=n.getUint8Data(),a=n.getWidth(),s=n.getHeight();e({data:r.data.buffer,width:a,height:s,itemSize:r.itemSize,bitDepth:8})}))}(t);throw new Error("Unsupported type")}};
|
|
1
|
+
function t(t){let e=t.length;for(;--e>=0;)t[e]=0}const e=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]),i=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]),n=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),r=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),a=new Array(576);t(a);const s=new Array(60);t(s);const o=new Array(512);t(o);const h=new Array(256);t(h);const l=new Array(29);t(l);const d=new Array(30);function c(t,e,i,n,r){this.static_tree=t,this.extra_bits=e,this.extra_base=i,this.elems=n,this.max_length=r,this.has_stree=t&&t.length}let f,u,_;function p(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}t(d);const w=t=>t<256?o[t]:o[256+(t>>>7)],g=(t,e)=>{t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255},b=(t,e,i)=>{t.bi_valid>16-i?(t.bi_buf|=e<<t.bi_valid&65535,g(t,t.bi_buf),t.bi_buf=e>>16-t.bi_valid,t.bi_valid+=i-16):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=i)},m=(t,e,i)=>{b(t,i[2*e],i[2*e+1])},y=(t,e)=>{let i=0;do{i|=1&t,t>>>=1,i<<=1}while(--e>0);return i>>>1},k=(t,e,i)=>{const n=new Array(16);let r,a,s=0;for(r=1;r<=15;r++)n[r]=s=s+i[r-1]<<1;for(a=0;a<=e;a++){let e=t[2*a+1];0!==e&&(t[2*a]=y(n[e]++,e))}},v=t=>{let e;for(e=0;e<286;e++)t.dyn_ltree[2*e]=0;for(e=0;e<30;e++)t.dyn_dtree[2*e]=0;for(e=0;e<19;e++)t.bl_tree[2*e]=0;t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0},A=t=>{t.bi_valid>8?g(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},x=(t,e,i,n)=>{const r=2*e,a=2*i;return t[r]<t[a]||t[r]===t[a]&&n[e]<=n[i]},U=(t,e,i)=>{const n=t.heap[i];let r=i<<1;for(;r<=t.heap_len&&(r<t.heap_len&&x(e,t.heap[r+1],t.heap[r],t.depth)&&r++,!x(e,n,t.heap[r],t.depth));)t.heap[i]=t.heap[r],i=r,r<<=1;t.heap[i]=n},E=(t,n,r)=>{let a,s,o,c,f=0;if(0!==t.last_lit)do{a=t.pending_buf[t.d_buf+2*f]<<8|t.pending_buf[t.d_buf+2*f+1],s=t.pending_buf[t.l_buf+f],f++,0===a?m(t,s,n):(o=h[s],m(t,o+256+1,n),c=e[o],0!==c&&(s-=l[o],b(t,s,c)),a--,o=w(a),m(t,o,r),c=i[o],0!==c&&(a-=d[o],b(t,a,c)))}while(f<t.last_lit);m(t,256,n)},I=(t,e)=>{const i=e.dyn_tree,n=e.stat_desc.static_tree,r=e.stat_desc.has_stree,a=e.stat_desc.elems;let s,o,h,l=-1;for(t.heap_len=0,t.heap_max=573,s=0;s<a;s++)0!==i[2*s]?(t.heap[++t.heap_len]=l=s,t.depth[s]=0):i[2*s+1]=0;for(;t.heap_len<2;)h=t.heap[++t.heap_len]=l<2?++l:0,i[2*h]=1,t.depth[h]=0,t.opt_len--,r&&(t.static_len-=n[2*h+1]);for(e.max_code=l,s=t.heap_len>>1;s>=1;s--)U(t,i,s);h=a;do{s=t.heap[1],t.heap[1]=t.heap[t.heap_len--],U(t,i,1),o=t.heap[1],t.heap[--t.heap_max]=s,t.heap[--t.heap_max]=o,i[2*h]=i[2*s]+i[2*o],t.depth[h]=(t.depth[s]>=t.depth[o]?t.depth[s]:t.depth[o])+1,i[2*s+1]=i[2*o+1]=h,t.heap[1]=h++,U(t,i,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],((t,e)=>{const i=e.dyn_tree,n=e.max_code,r=e.stat_desc.static_tree,a=e.stat_desc.has_stree,s=e.stat_desc.extra_bits,o=e.stat_desc.extra_base,h=e.stat_desc.max_length;let l,d,c,f,u,_,p=0;for(f=0;f<=15;f++)t.bl_count[f]=0;for(i[2*t.heap[t.heap_max]+1]=0,l=t.heap_max+1;l<573;l++)d=t.heap[l],f=i[2*i[2*d+1]+1]+1,f>h&&(f=h,p++),i[2*d+1]=f,d>n||(t.bl_count[f]++,u=0,d>=o&&(u=s[d-o]),_=i[2*d],t.opt_len+=_*(f+u),a&&(t.static_len+=_*(r[2*d+1]+u)));if(0!==p){do{for(f=h-1;0===t.bl_count[f];)f--;t.bl_count[f]--,t.bl_count[f+1]+=2,t.bl_count[h]--,p-=2}while(p>0);for(f=h;0!==f;f--)for(d=t.bl_count[f];0!==d;)c=t.heap[--l],c>n||(i[2*c+1]!==f&&(t.opt_len+=(f-i[2*c+1])*i[2*c],i[2*c+1]=f),d--)}})(t,e),k(i,l,t.bl_count)},z=(t,e,i)=>{let n,r,a=-1,s=e[1],o=0,h=7,l=4;for(0===s&&(h=138,l=3),e[2*(i+1)+1]=65535,n=0;n<=i;n++)r=s,s=e[2*(n+1)+1],++o<h&&r===s||(o<l?t.bl_tree[2*r]+=o:0!==r?(r!==a&&t.bl_tree[2*r]++,t.bl_tree[32]++):o<=10?t.bl_tree[34]++:t.bl_tree[36]++,o=0,a=r,0===s?(h=138,l=3):r===s?(h=6,l=3):(h=7,l=4))},S=(t,e,i)=>{let n,r,a=-1,s=e[1],o=0,h=7,l=4;for(0===s&&(h=138,l=3),n=0;n<=i;n++)if(r=s,s=e[2*(n+1)+1],!(++o<h&&r===s)){if(o<l)do{m(t,r,t.bl_tree)}while(0!=--o);else 0!==r?(r!==a&&(m(t,r,t.bl_tree),o--),m(t,16,t.bl_tree),b(t,o-3,2)):o<=10?(m(t,17,t.bl_tree),b(t,o-3,3)):(m(t,18,t.bl_tree),b(t,o-11,7));o=0,a=r,0===s?(h=138,l=3):r===s?(h=6,l=3):(h=7,l=4)}};let C=!1;const T=(t,e,i,n)=>{b(t,0+(n?1:0),3),((t,e,i,n)=>{A(t),g(t,i),g(t,~i),t.pending_buf.set(t.window.subarray(e,e+i),t.pending),t.pending+=i})(t,e,i)};var R={_tr_init:t=>{C||((()=>{let t,r,p,w,g;const b=new Array(16);for(p=0,w=0;w<28;w++)for(l[w]=p,t=0;t<1<<e[w];t++)h[p++]=w;for(h[p-1]=w,g=0,w=0;w<16;w++)for(d[w]=g,t=0;t<1<<i[w];t++)o[g++]=w;for(g>>=7;w<30;w++)for(d[w]=g<<7,t=0;t<1<<i[w]-7;t++)o[256+g++]=w;for(r=0;r<=15;r++)b[r]=0;for(t=0;t<=143;)a[2*t+1]=8,t++,b[8]++;for(;t<=255;)a[2*t+1]=9,t++,b[9]++;for(;t<=279;)a[2*t+1]=7,t++,b[7]++;for(;t<=287;)a[2*t+1]=8,t++,b[8]++;for(k(a,287,b),t=0;t<30;t++)s[2*t+1]=5,s[2*t]=y(t,5);f=new c(a,e,257,286,15),u=new c(s,i,0,30,15),_=new c(new Array(0),n,0,19,7)})(),C=!0),t.l_desc=new p(t.dyn_ltree,f),t.d_desc=new p(t.dyn_dtree,u),t.bl_desc=new p(t.bl_tree,_),t.bi_buf=0,t.bi_valid=0,v(t)},_tr_stored_block:T,_tr_flush_block:(t,e,i,n)=>{let o,h,l=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=(t=>{let e,i=4093624447;for(e=0;e<=31;e++,i>>>=1)if(1&i&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<256;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0})(t)),I(t,t.l_desc),I(t,t.d_desc),l=(t=>{let e;for(z(t,t.dyn_ltree,t.l_desc.max_code),z(t,t.dyn_dtree,t.d_desc.max_code),I(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*r[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e})(t),o=t.opt_len+3+7>>>3,h=t.static_len+3+7>>>3,h<=o&&(o=h)):o=h=i+5,i+4<=o&&-1!==e?T(t,e,i,n):4===t.strategy||h===o?(b(t,2+(n?1:0),3),E(t,a,s)):(b(t,4+(n?1:0),3),((t,e,i,n)=>{let a;for(b(t,e-257,5),b(t,i-1,5),b(t,n-4,4),a=0;a<n;a++)b(t,t.bl_tree[2*r[a]+1],3);S(t,t.dyn_ltree,e-1),S(t,t.dyn_dtree,i-1)})(t,t.l_desc.max_code+1,t.d_desc.max_code+1,l+1),E(t,t.dyn_ltree,t.dyn_dtree)),v(t),n&&A(t)},_tr_tally:(t,e,i)=>(t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&i,t.last_lit++,0===e?t.dyn_ltree[2*i]++:(t.matches++,e--,t.dyn_ltree[2*(h[i]+256+1)]++,t.dyn_dtree[2*w(e)]++),t.last_lit===t.lit_bufsize-1),_tr_align:t=>{b(t,2,3),m(t,256,a),(t=>{16===t.bi_valid?(g(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)})(t)}},F=(t,e,i,n)=>{let r=65535&t|0,a=t>>>16&65535|0,s=0;for(;0!==i;){s=i>2e3?2e3:i,i-=s;do{r=r+e[n++]|0,a=a+r|0}while(--s);r%=65521,a%=65521}return r|a<<16|0};const B=new Uint32Array((()=>{let t,e=[];for(var i=0;i<256;i++){t=i;for(var n=0;n<8;n++)t=1&t?3988292384^t>>>1:t>>>1;e[i]=t}return e})());var N=(t,e,i,n)=>{const r=B,a=n+i;t^=-1;for(let i=n;i<a;i++)t=t>>>8^r[255&(t^e[i])];return-1^t},D={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},Z={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:L,_tr_stored_block:O,_tr_flush_block:$,_tr_tally:M,_tr_align:V}=R,{Z_NO_FLUSH:H,Z_PARTIAL_FLUSH:P,Z_FULL_FLUSH:j,Z_FINISH:G,Z_BLOCK:K,Z_OK:X,Z_STREAM_END:Y,Z_STREAM_ERROR:q,Z_DATA_ERROR:W,Z_BUF_ERROR:J,Z_DEFAULT_COMPRESSION:Q,Z_FILTERED:tt,Z_HUFFMAN_ONLY:et,Z_RLE:it,Z_FIXED:nt,Z_DEFAULT_STRATEGY:rt,Z_UNKNOWN:at,Z_DEFLATED:st}=Z,ot=258,ht=262,lt=103,dt=113,ct=666,ft=(t,e)=>(t.msg=D[e],e),ut=t=>(t<<1)-(t>4?9:0),_t=t=>{let e=t.length;for(;--e>=0;)t[e]=0};let pt=(t,e,i)=>(e<<t.hash_shift^i)&t.hash_mask;const wt=t=>{const e=t.state;let i=e.pending;i>t.avail_out&&(i=t.avail_out),0!==i&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+i),t.next_out),t.next_out+=i,e.pending_out+=i,t.total_out+=i,t.avail_out-=i,e.pending-=i,0===e.pending&&(e.pending_out=0))},gt=(t,e)=>{$(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,wt(t.strm)},bt=(t,e)=>{t.pending_buf[t.pending++]=e},mt=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e},yt=(t,e,i,n)=>{let r=t.avail_in;return r>n&&(r=n),0===r?0:(t.avail_in-=r,e.set(t.input.subarray(t.next_in,t.next_in+r),i),1===t.state.wrap?t.adler=F(t.adler,e,r,i):2===t.state.wrap&&(t.adler=N(t.adler,e,r,i)),t.next_in+=r,t.total_in+=r,r)},kt=(t,e)=>{let i,n,r=t.max_chain_length,a=t.strstart,s=t.prev_length,o=t.nice_match;const h=t.strstart>t.w_size-ht?t.strstart-(t.w_size-ht):0,l=t.window,d=t.w_mask,c=t.prev,f=t.strstart+ot;let u=l[a+s-1],_=l[a+s];t.prev_length>=t.good_match&&(r>>=2),o>t.lookahead&&(o=t.lookahead);do{if(i=e,l[i+s]===_&&l[i+s-1]===u&&l[i]===l[a]&&l[++i]===l[a+1]){a+=2,i++;do{}while(l[++a]===l[++i]&&l[++a]===l[++i]&&l[++a]===l[++i]&&l[++a]===l[++i]&&l[++a]===l[++i]&&l[++a]===l[++i]&&l[++a]===l[++i]&&l[++a]===l[++i]&&a<f);if(n=ot-(f-a),a=f-ot,n>s){if(t.match_start=e,s=n,n>=o)break;u=l[a+s-1],_=l[a+s]}}}while((e=c[e&d])>h&&0!=--r);return s<=t.lookahead?s:t.lookahead},vt=t=>{const e=t.w_size;let i,n,r,a,s;do{if(a=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-ht)){t.window.set(t.window.subarray(e,e+e),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,n=t.hash_size,i=n;do{r=t.head[--i],t.head[i]=r>=e?r-e:0}while(--n);n=e,i=n;do{r=t.prev[--i],t.prev[i]=r>=e?r-e:0}while(--n);a+=e}if(0===t.strm.avail_in)break;if(n=yt(t.strm,t.window,t.strstart+t.lookahead,a),t.lookahead+=n,t.lookahead+t.insert>=3)for(s=t.strstart-t.insert,t.ins_h=t.window[s],t.ins_h=pt(t,t.ins_h,t.window[s+1]);t.insert&&(t.ins_h=pt(t,t.ins_h,t.window[s+3-1]),t.prev[s&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=s,s++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead<ht&&0!==t.strm.avail_in)},At=(t,e)=>{let i,n;for(;;){if(t.lookahead<ht){if(vt(t),t.lookahead<ht&&e===H)return 1;if(0===t.lookahead)break}if(i=0,t.lookahead>=3&&(t.ins_h=pt(t,t.ins_h,t.window[t.strstart+3-1]),i=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==i&&t.strstart-i<=t.w_size-ht&&(t.match_length=kt(t,i)),t.match_length>=3)if(n=M(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=pt(t,t.ins_h,t.window[t.strstart+3-1]),i=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart}while(0!=--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=pt(t,t.ins_h,t.window[t.strstart+1]);else n=M(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(n&&(gt(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<2?t.strstart:2,e===G?(gt(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(gt(t,!1),0===t.strm.avail_out)?1:2},xt=(t,e)=>{let i,n,r;for(;;){if(t.lookahead<ht){if(vt(t),t.lookahead<ht&&e===H)return 1;if(0===t.lookahead)break}if(i=0,t.lookahead>=3&&(t.ins_h=pt(t,t.ins_h,t.window[t.strstart+3-1]),i=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==i&&t.prev_length<t.max_lazy_match&&t.strstart-i<=t.w_size-ht&&(t.match_length=kt(t,i),t.match_length<=5&&(t.strategy===tt||3===t.match_length&&t.strstart-t.match_start>4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){r=t.strstart+t.lookahead-3,n=M(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=r&&(t.ins_h=pt(t,t.ins_h,t.window[t.strstart+3-1]),i=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart)}while(0!=--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,n&&(gt(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if(n=M(t,0,t.window[t.strstart-1]),n&>(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(n=M(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,e===G?(gt(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(gt(t,!1),0===t.strm.avail_out)?1:2};function Ut(t,e,i,n,r){this.good_length=t,this.max_lazy=e,this.nice_length=i,this.max_chain=n,this.func=r}const Et=[new Ut(0,0,0,0,((t,e)=>{let i=65535;for(i>t.pending_buf_size-5&&(i=t.pending_buf_size-5);;){if(t.lookahead<=1){if(vt(t),0===t.lookahead&&e===H)return 1;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;const n=t.block_start+i;if((0===t.strstart||t.strstart>=n)&&(t.lookahead=t.strstart-n,t.strstart=n,gt(t,!1),0===t.strm.avail_out))return 1;if(t.strstart-t.block_start>=t.w_size-ht&&(gt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===G?(gt(t,!0),0===t.strm.avail_out?3:4):(t.strstart>t.block_start&&(gt(t,!1),t.strm.avail_out),1)})),new Ut(4,4,8,4,At),new Ut(4,5,16,8,At),new Ut(4,6,32,32,At),new Ut(4,4,16,16,xt),new Ut(8,16,32,32,xt),new Ut(8,16,128,128,xt),new Ut(8,32,128,256,xt),new Ut(32,128,258,1024,xt),new Ut(32,258,258,4096,xt)];function It(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=st,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),_t(this.dyn_ltree),_t(this.dyn_dtree),_t(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),_t(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),_t(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const zt=t=>{if(!t||!t.state)return ft(t,q);t.total_in=t.total_out=0,t.data_type=at;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?42:dt,t.adler=2===e.wrap?0:1,e.last_flush=H,L(e),X},St=t=>{const e=zt(t);var i;return e===X&&((i=t.state).window_size=2*i.w_size,_t(i.head),i.max_lazy_match=Et[i.level].max_lazy,i.good_match=Et[i.level].good_length,i.nice_match=Et[i.level].nice_length,i.max_chain_length=Et[i.level].max_chain,i.strstart=0,i.block_start=0,i.lookahead=0,i.insert=0,i.match_length=i.prev_length=2,i.match_available=0,i.ins_h=0),e},Ct=(t,e,i,n,r,a)=>{if(!t)return q;let s=1;if(e===Q&&(e=6),n<0?(s=0,n=-n):n>15&&(s=2,n-=16),r<1||r>9||i!==st||n<8||n>15||e<0||e>9||a<0||a>nt)return ft(t,q);8===n&&(n=9);const o=new It;return t.state=o,o.strm=t,o.wrap=s,o.gzhead=null,o.w_bits=n,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=r+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+3-1)/3),o.window=new Uint8Array(2*o.w_size),o.head=new Uint16Array(o.hash_size),o.prev=new Uint16Array(o.w_size),o.lit_bufsize=1<<r+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new Uint8Array(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=e,o.strategy=a,o.method=i,St(t)};var Tt={deflateInit:(t,e)=>Ct(t,e,st,15,8,rt),deflateInit2:Ct,deflateReset:St,deflateResetKeep:zt,deflateSetHeader:(t,e)=>t&&t.state?2!==t.state.wrap?q:(t.state.gzhead=e,X):q,deflate:(t,e)=>{let i,n;if(!t||!t.state||e>K||e<0)return t?ft(t,q):q;const r=t.state;if(!t.output||!t.input&&0!==t.avail_in||r.status===ct&&e!==G)return ft(t,0===t.avail_out?J:q);r.strm=t;const a=r.last_flush;if(r.last_flush=e,42===r.status)if(2===r.wrap)t.adler=0,bt(r,31),bt(r,139),bt(r,8),r.gzhead?(bt(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),bt(r,255&r.gzhead.time),bt(r,r.gzhead.time>>8&255),bt(r,r.gzhead.time>>16&255),bt(r,r.gzhead.time>>24&255),bt(r,9===r.level?2:r.strategy>=et||r.level<2?4:0),bt(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(bt(r,255&r.gzhead.extra.length),bt(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(t.adler=N(t.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=69):(bt(r,0),bt(r,0),bt(r,0),bt(r,0),bt(r,0),bt(r,9===r.level?2:r.strategy>=et||r.level<2?4:0),bt(r,3),r.status=dt);else{let e=st+(r.w_bits-8<<4)<<8,i=-1;i=r.strategy>=et||r.level<2?0:r.level<6?1:6===r.level?2:3,e|=i<<6,0!==r.strstart&&(e|=32),e+=31-e%31,r.status=dt,mt(r,e),0!==r.strstart&&(mt(r,t.adler>>>16),mt(r,65535&t.adler)),t.adler=1}if(69===r.status)if(r.gzhead.extra){for(i=r.pending;r.gzindex<(65535&r.gzhead.extra.length)&&(r.pending!==r.pending_buf_size||(r.gzhead.hcrc&&r.pending>i&&(t.adler=N(t.adler,r.pending_buf,r.pending-i,i)),wt(t),i=r.pending,r.pending!==r.pending_buf_size));)bt(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(t.adler=N(t.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=73)}else r.status=73;if(73===r.status)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(t.adler=N(t.adler,r.pending_buf,r.pending-i,i)),wt(t),i=r.pending,r.pending===r.pending_buf_size)){n=1;break}n=r.gzindex<r.gzhead.name.length?255&r.gzhead.name.charCodeAt(r.gzindex++):0,bt(r,n)}while(0!==n);r.gzhead.hcrc&&r.pending>i&&(t.adler=N(t.adler,r.pending_buf,r.pending-i,i)),0===n&&(r.gzindex=0,r.status=91)}else r.status=91;if(91===r.status)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(t.adler=N(t.adler,r.pending_buf,r.pending-i,i)),wt(t),i=r.pending,r.pending===r.pending_buf_size)){n=1;break}n=r.gzindex<r.gzhead.comment.length?255&r.gzhead.comment.charCodeAt(r.gzindex++):0,bt(r,n)}while(0!==n);r.gzhead.hcrc&&r.pending>i&&(t.adler=N(t.adler,r.pending_buf,r.pending-i,i)),0===n&&(r.status=lt)}else r.status=lt;if(r.status===lt&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&wt(t),r.pending+2<=r.pending_buf_size&&(bt(r,255&t.adler),bt(r,t.adler>>8&255),t.adler=0,r.status=dt)):r.status=dt),0!==r.pending){if(wt(t),0===t.avail_out)return r.last_flush=-1,X}else if(0===t.avail_in&&ut(e)<=ut(a)&&e!==G)return ft(t,J);if(r.status===ct&&0!==t.avail_in)return ft(t,J);if(0!==t.avail_in||0!==r.lookahead||e!==H&&r.status!==ct){let i=r.strategy===et?((t,e)=>{let i;for(;;){if(0===t.lookahead&&(vt(t),0===t.lookahead)){if(e===H)return 1;break}if(t.match_length=0,i=M(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,i&&(gt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===G?(gt(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(gt(t,!1),0===t.strm.avail_out)?1:2})(r,e):r.strategy===it?((t,e)=>{let i,n,r,a;const s=t.window;for(;;){if(t.lookahead<=ot){if(vt(t),t.lookahead<=ot&&e===H)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(r=t.strstart-1,n=s[r],n===s[++r]&&n===s[++r]&&n===s[++r])){a=t.strstart+ot;do{}while(n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&r<a);t.match_length=ot-(a-r),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(i=M(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(i=M(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),i&&(gt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===G?(gt(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(gt(t,!1),0===t.strm.avail_out)?1:2})(r,e):Et[r.level].func(r,e);if(3!==i&&4!==i||(r.status=ct),1===i||3===i)return 0===t.avail_out&&(r.last_flush=-1),X;if(2===i&&(e===P?V(r):e!==K&&(O(r,0,0,!1),e===j&&(_t(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),wt(t),0===t.avail_out))return r.last_flush=-1,X}return e!==G?X:r.wrap<=0?Y:(2===r.wrap?(bt(r,255&t.adler),bt(r,t.adler>>8&255),bt(r,t.adler>>16&255),bt(r,t.adler>>24&255),bt(r,255&t.total_in),bt(r,t.total_in>>8&255),bt(r,t.total_in>>16&255),bt(r,t.total_in>>24&255)):(mt(r,t.adler>>>16),mt(r,65535&t.adler)),wt(t),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?X:Y)},deflateEnd:t=>{if(!t||!t.state)return q;const e=t.state.status;return 42!==e&&69!==e&&73!==e&&91!==e&&e!==lt&&e!==dt&&e!==ct?ft(t,q):(t.state=null,e===dt?ft(t,W):X)},deflateSetDictionary:(t,e)=>{let i=e.length;if(!t||!t.state)return q;const n=t.state,r=n.wrap;if(2===r||1===r&&42!==n.status||n.lookahead)return q;if(1===r&&(t.adler=F(t.adler,e,i,0)),n.wrap=0,i>=n.w_size){0===r&&(_t(n.head),n.strstart=0,n.block_start=0,n.insert=0);let t=new Uint8Array(n.w_size);t.set(e.subarray(i-n.w_size,i),0),e=t,i=n.w_size}const a=t.avail_in,s=t.next_in,o=t.input;for(t.avail_in=i,t.next_in=0,t.input=e,vt(n);n.lookahead>=3;){let t=n.strstart,e=n.lookahead-2;do{n.ins_h=pt(n,n.ins_h,n.window[t+3-1]),n.prev[t&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=t,t++}while(--e);n.strstart=t,n.lookahead=2,vt(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=2,n.match_available=0,t.next_in=s,t.input=o,t.avail_in=a,n.wrap=r,X},deflateInfo:"pako deflate (from Nodeca project)"};const Rt=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var Ft={assign:function(t){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const i=e.shift();if(i){if("object"!=typeof i)throw new TypeError(i+"must be non-object");for(const e in i)Rt(i,e)&&(t[e]=i[e])}}return t},flattenChunks:t=>{let e=0;for(let i=0,n=t.length;i<n;i++)e+=t[i].length;const i=new Uint8Array(e);for(let e=0,n=0,r=t.length;e<r;e++){let r=t[e];i.set(r,n),n+=r.length}return i}};let Bt=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){Bt=!1}const Nt=new Uint8Array(256);for(let t=0;t<256;t++)Nt[t]=t>=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;Nt[254]=Nt[254]=1;var Dt={string2buf:t=>{let e,i,n,r,a,s=t.length,o=0;for(r=0;r<s;r++)i=t.charCodeAt(r),55296==(64512&i)&&r+1<s&&(n=t.charCodeAt(r+1),56320==(64512&n)&&(i=65536+(i-55296<<10)+(n-56320),r++)),o+=i<128?1:i<2048?2:i<65536?3:4;for(e=new Uint8Array(o),a=0,r=0;a<o;r++)i=t.charCodeAt(r),55296==(64512&i)&&r+1<s&&(n=t.charCodeAt(r+1),56320==(64512&n)&&(i=65536+(i-55296<<10)+(n-56320),r++)),i<128?e[a++]=i:i<2048?(e[a++]=192|i>>>6,e[a++]=128|63&i):i<65536?(e[a++]=224|i>>>12,e[a++]=128|i>>>6&63,e[a++]=128|63&i):(e[a++]=240|i>>>18,e[a++]=128|i>>>12&63,e[a++]=128|i>>>6&63,e[a++]=128|63&i);return e},buf2string:(t,e)=>{let i,n;const r=e||t.length,a=new Array(2*r);for(n=0,i=0;i<r;){let e=t[i++];if(e<128){a[n++]=e;continue}let s=Nt[e];if(s>4)a[n++]=65533,i+=s-1;else{for(e&=2===s?31:3===s?15:7;s>1&&i<r;)e=e<<6|63&t[i++],s--;s>1?a[n++]=65533:e<65536?a[n++]=e:(e-=65536,a[n++]=55296|e>>10&1023,a[n++]=56320|1023&e)}}return((t,e)=>{if(e<65534&&t.subarray&&Bt)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));let i="";for(let n=0;n<e;n++)i+=String.fromCharCode(t[n]);return i})(a,n)},utf8border:(t,e)=>{(e=e||t.length)>t.length&&(e=t.length);let i=e-1;for(;i>=0&&128==(192&t[i]);)i--;return i<0||0===i?e:i+Nt[t[i]]>e?i:e}},Zt=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Lt=Object.prototype.toString,{Z_NO_FLUSH:Ot,Z_SYNC_FLUSH:$t,Z_FULL_FLUSH:Mt,Z_FINISH:Vt,Z_OK:Ht,Z_STREAM_END:Pt,Z_DEFAULT_COMPRESSION:jt,Z_DEFAULT_STRATEGY:Gt,Z_DEFLATED:Kt}=Z;function Xt(t){this.options=Ft.assign({level:jt,method:Kt,chunkSize:16384,windowBits:15,memLevel:8,strategy:Gt},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Zt,this.strm.avail_out=0;let i=Tt.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(i!==Ht)throw new Error(D[i]);if(e.header&&Tt.deflateSetHeader(this.strm,e.header),e.dictionary){let t;if(t="string"==typeof e.dictionary?Dt.string2buf(e.dictionary):"[object ArrayBuffer]"===Lt.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,i=Tt.deflateSetDictionary(this.strm,t),i!==Ht)throw new Error(D[i]);this._dict_set=!0}}function Yt(t,e){const i=new Xt(e);if(i.push(t,!0),i.err)throw i.msg||D[i.err];return i.result}Xt.prototype.push=function(t,e){const i=this.strm,n=this.options.chunkSize;let r,a;if(this.ended)return!1;for(a=e===~~e?e:!0===e?Vt:Ot,"string"==typeof t?i.input=Dt.string2buf(t):"[object ArrayBuffer]"===Lt.call(t)?i.input=new Uint8Array(t):i.input=t,i.next_in=0,i.avail_in=i.input.length;;)if(0===i.avail_out&&(i.output=new Uint8Array(n),i.next_out=0,i.avail_out=n),(a===$t||a===Mt)&&i.avail_out<=6)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else{if(r=Tt.deflate(i,a),r===Pt)return i.next_out>0&&this.onData(i.output.subarray(0,i.next_out)),r=Tt.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===Ht;if(0!==i.avail_out){if(a>0&&i.next_out>0)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else if(0===i.avail_in)break}else this.onData(i.output)}return!0},Xt.prototype.onData=function(t){this.chunks.push(t)},Xt.prototype.onEnd=function(t){t===Ht&&(this.result=Ft.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var qt={Deflate:Xt,deflate:Yt,deflateRaw:function(t,e){return(e=e||{}).raw=!0,Yt(t,e)},gzip:function(t,e){return(e=e||{}).gzip=!0,Yt(t,e)},constants:Z},Wt=function(t,e){let i,n,r,a,s,o,h,l,d,c,f,u,_,p,w,g,b,m,y,k,v,A,x,U;const E=t.state;i=t.next_in,x=t.input,n=i+(t.avail_in-5),r=t.next_out,U=t.output,a=r-(e-t.avail_out),s=r+(t.avail_out-257),o=E.dmax,h=E.wsize,l=E.whave,d=E.wnext,c=E.window,f=E.hold,u=E.bits,_=E.lencode,p=E.distcode,w=(1<<E.lenbits)-1,g=(1<<E.distbits)-1;t:do{u<15&&(f+=x[i++]<<u,u+=8,f+=x[i++]<<u,u+=8),b=_[f&w];e:for(;;){if(m=b>>>24,f>>>=m,u-=m,m=b>>>16&255,0===m)U[r++]=65535&b;else{if(!(16&m)){if(0==(64&m)){b=_[(65535&b)+(f&(1<<m)-1)];continue e}if(32&m){E.mode=12;break t}t.msg="invalid literal/length code",E.mode=30;break t}y=65535&b,m&=15,m&&(u<m&&(f+=x[i++]<<u,u+=8),y+=f&(1<<m)-1,f>>>=m,u-=m),u<15&&(f+=x[i++]<<u,u+=8,f+=x[i++]<<u,u+=8),b=p[f&g];i:for(;;){if(m=b>>>24,f>>>=m,u-=m,m=b>>>16&255,!(16&m)){if(0==(64&m)){b=p[(65535&b)+(f&(1<<m)-1)];continue i}t.msg="invalid distance code",E.mode=30;break t}if(k=65535&b,m&=15,u<m&&(f+=x[i++]<<u,u+=8,u<m&&(f+=x[i++]<<u,u+=8)),k+=f&(1<<m)-1,k>o){t.msg="invalid distance too far back",E.mode=30;break t}if(f>>>=m,u-=m,m=r-a,k>m){if(m=k-m,m>l&&E.sane){t.msg="invalid distance too far back",E.mode=30;break t}if(v=0,A=c,0===d){if(v+=h-m,m<y){y-=m;do{U[r++]=c[v++]}while(--m);v=r-k,A=U}}else if(d<m){if(v+=h+d-m,m-=d,m<y){y-=m;do{U[r++]=c[v++]}while(--m);if(v=0,d<y){m=d,y-=m;do{U[r++]=c[v++]}while(--m);v=r-k,A=U}}}else if(v+=d-m,m<y){y-=m;do{U[r++]=c[v++]}while(--m);v=r-k,A=U}for(;y>2;)U[r++]=A[v++],U[r++]=A[v++],U[r++]=A[v++],y-=3;y&&(U[r++]=A[v++],y>1&&(U[r++]=A[v++]))}else{v=r-k;do{U[r++]=U[v++],U[r++]=U[v++],U[r++]=U[v++],y-=3}while(y>2);y&&(U[r++]=U[v++],y>1&&(U[r++]=U[v++]))}break}}break}}while(i<n&&r<s);y=u>>3,i-=y,u-=y<<3,f&=(1<<u)-1,t.next_in=i,t.next_out=r,t.avail_in=i<n?n-i+5:5-(i-n),t.avail_out=r<s?s-r+257:257-(r-s),E.hold=f,E.bits=u};const Jt=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),Qt=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),te=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),ee=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var ie=(t,e,i,n,r,a,s,o)=>{const h=o.bits;let l,d,c,f,u,_,p=0,w=0,g=0,b=0,m=0,y=0,k=0,v=0,A=0,x=0,U=null,E=0;const I=new Uint16Array(16),z=new Uint16Array(16);let S,C,T,R=null,F=0;for(p=0;p<=15;p++)I[p]=0;for(w=0;w<n;w++)I[e[i+w]]++;for(m=h,b=15;b>=1&&0===I[b];b--);if(m>b&&(m=b),0===b)return r[a++]=20971520,r[a++]=20971520,o.bits=1,0;for(g=1;g<b&&0===I[g];g++);for(m<g&&(m=g),v=1,p=1;p<=15;p++)if(v<<=1,v-=I[p],v<0)return-1;if(v>0&&(0===t||1!==b))return-1;for(z[1]=0,p=1;p<15;p++)z[p+1]=z[p]+I[p];for(w=0;w<n;w++)0!==e[i+w]&&(s[z[e[i+w]]++]=w);if(0===t?(U=R=s,_=19):1===t?(U=Jt,E-=257,R=Qt,F-=257,_=256):(U=te,R=ee,_=-1),x=0,w=0,p=g,u=a,y=m,k=0,c=-1,A=1<<m,f=A-1,1===t&&A>852||2===t&&A>592)return 1;for(;;){S=p-k,s[w]<_?(C=0,T=s[w]):s[w]>_?(C=R[F+s[w]],T=U[E+s[w]]):(C=96,T=0),l=1<<p-k,d=1<<y,g=d;do{d-=l,r[u+(x>>k)+d]=S<<24|C<<16|T|0}while(0!==d);for(l=1<<p-1;x&l;)l>>=1;if(0!==l?(x&=l-1,x+=l):x=0,w++,0==--I[p]){if(p===b)break;p=e[i+s[w]]}if(p>m&&(x&f)!==c){for(0===k&&(k=m),u+=g,y=p-k,v=1<<y;y+k<b&&(v-=I[y+k],!(v<=0));)y++,v<<=1;if(A+=1<<y,1===t&&A>852||2===t&&A>592)return 1;c=x&f,r[c]=m<<24|y<<16|u-a|0}}return 0!==x&&(r[u+x]=p-k<<24|64<<16|0),o.bits=m,0};const{Z_FINISH:ne,Z_BLOCK:re,Z_TREES:ae,Z_OK:se,Z_STREAM_END:oe,Z_NEED_DICT:he,Z_STREAM_ERROR:le,Z_DATA_ERROR:de,Z_MEM_ERROR:ce,Z_BUF_ERROR:fe,Z_DEFLATED:ue}=Z,_e=12,pe=30,we=t=>(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24);function ge(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const be=t=>{if(!t||!t.state)return le;const e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,se},me=t=>{if(!t||!t.state)return le;const e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,be(t)},ye=(t,e)=>{let i;if(!t||!t.state)return le;const n=t.state;return e<0?(i=0,e=-e):(i=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?le:(null!==n.window&&n.wbits!==e&&(n.window=null),n.wrap=i,n.wbits=e,me(t))},ke=(t,e)=>{if(!t)return le;const i=new ge;t.state=i,i.window=null;const n=ye(t,e);return n!==se&&(t.state=null),n};let ve,Ae,xe=!0;const Ue=t=>{if(xe){ve=new Int32Array(512),Ae=new Int32Array(32);let e=0;for(;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(ie(1,t.lens,0,288,ve,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;ie(2,t.lens,0,32,Ae,0,t.work,{bits:5}),xe=!1}t.lencode=ve,t.lenbits=9,t.distcode=Ae,t.distbits=5},Ee=(t,e,i,n)=>{let r;const a=t.state;return null===a.window&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),n>=a.wsize?(a.window.set(e.subarray(i-a.wsize,i),0),a.wnext=0,a.whave=a.wsize):(r=a.wsize-a.wnext,r>n&&(r=n),a.window.set(e.subarray(i-n,i-n+r),a.wnext),(n-=r)?(a.window.set(e.subarray(i-n,i),0),a.wnext=n,a.whave=a.wsize):(a.wnext+=r,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=r))),0};var Ie={inflateReset:me,inflateReset2:ye,inflateResetKeep:be,inflateInit:t=>ke(t,15),inflateInit2:ke,inflate:(t,e)=>{let i,n,r,a,s,o,h,l,d,c,f,u,_,p,w,g,b,m,y,k,v,A,x=0;const U=new Uint8Array(4);let E,I;const z=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!t||!t.state||!t.output||!t.input&&0!==t.avail_in)return le;i=t.state,i.mode===_e&&(i.mode=13),s=t.next_out,r=t.output,h=t.avail_out,a=t.next_in,n=t.input,o=t.avail_in,l=i.hold,d=i.bits,c=o,f=h,A=se;t:for(;;)switch(i.mode){case 1:if(0===i.wrap){i.mode=13;break}for(;d<16;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}if(2&i.wrap&&35615===l){i.check=0,U[0]=255&l,U[1]=l>>>8&255,i.check=N(i.check,U,2,0),l=0,d=0,i.mode=2;break}if(i.flags=0,i.head&&(i.head.done=!1),!(1&i.wrap)||(((255&l)<<8)+(l>>8))%31){t.msg="incorrect header check",i.mode=pe;break}if((15&l)!==ue){t.msg="unknown compression method",i.mode=pe;break}if(l>>>=4,d-=4,v=8+(15&l),0===i.wbits)i.wbits=v;else if(v>i.wbits){t.msg="invalid window size",i.mode=pe;break}i.dmax=1<<i.wbits,t.adler=i.check=1,i.mode=512&l?10:_e,l=0,d=0;break;case 2:for(;d<16;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}if(i.flags=l,(255&i.flags)!==ue){t.msg="unknown compression method",i.mode=pe;break}if(57344&i.flags){t.msg="unknown header flags set",i.mode=pe;break}i.head&&(i.head.text=l>>8&1),512&i.flags&&(U[0]=255&l,U[1]=l>>>8&255,i.check=N(i.check,U,2,0)),l=0,d=0,i.mode=3;case 3:for(;d<32;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}i.head&&(i.head.time=l),512&i.flags&&(U[0]=255&l,U[1]=l>>>8&255,U[2]=l>>>16&255,U[3]=l>>>24&255,i.check=N(i.check,U,4,0)),l=0,d=0,i.mode=4;case 4:for(;d<16;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}i.head&&(i.head.xflags=255&l,i.head.os=l>>8),512&i.flags&&(U[0]=255&l,U[1]=l>>>8&255,i.check=N(i.check,U,2,0)),l=0,d=0,i.mode=5;case 5:if(1024&i.flags){for(;d<16;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}i.length=l,i.head&&(i.head.extra_len=l),512&i.flags&&(U[0]=255&l,U[1]=l>>>8&255,i.check=N(i.check,U,2,0)),l=0,d=0}else i.head&&(i.head.extra=null);i.mode=6;case 6:if(1024&i.flags&&(u=i.length,u>o&&(u=o),u&&(i.head&&(v=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Uint8Array(i.head.extra_len)),i.head.extra.set(n.subarray(a,a+u),v)),512&i.flags&&(i.check=N(i.check,n,u,a)),o-=u,a+=u,i.length-=u),i.length))break t;i.length=0,i.mode=7;case 7:if(2048&i.flags){if(0===o)break t;u=0;do{v=n[a+u++],i.head&&v&&i.length<65536&&(i.head.name+=String.fromCharCode(v))}while(v&&u<o);if(512&i.flags&&(i.check=N(i.check,n,u,a)),o-=u,a+=u,v)break t}else i.head&&(i.head.name=null);i.length=0,i.mode=8;case 8:if(4096&i.flags){if(0===o)break t;u=0;do{v=n[a+u++],i.head&&v&&i.length<65536&&(i.head.comment+=String.fromCharCode(v))}while(v&&u<o);if(512&i.flags&&(i.check=N(i.check,n,u,a)),o-=u,a+=u,v)break t}else i.head&&(i.head.comment=null);i.mode=9;case 9:if(512&i.flags){for(;d<16;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}if(l!==(65535&i.check)){t.msg="header crc mismatch",i.mode=pe;break}l=0,d=0}i.head&&(i.head.hcrc=i.flags>>9&1,i.head.done=!0),t.adler=i.check=0,i.mode=_e;break;case 10:for(;d<32;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}t.adler=i.check=we(l),l=0,d=0,i.mode=11;case 11:if(0===i.havedict)return t.next_out=s,t.avail_out=h,t.next_in=a,t.avail_in=o,i.hold=l,i.bits=d,he;t.adler=i.check=1,i.mode=_e;case _e:if(e===re||e===ae)break t;case 13:if(i.last){l>>>=7&d,d-=7&d,i.mode=27;break}for(;d<3;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}switch(i.last=1&l,l>>>=1,d-=1,3&l){case 0:i.mode=14;break;case 1:if(Ue(i),i.mode=20,e===ae){l>>>=2,d-=2;break t}break;case 2:i.mode=17;break;case 3:t.msg="invalid block type",i.mode=pe}l>>>=2,d-=2;break;case 14:for(l>>>=7&d,d-=7&d;d<32;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}if((65535&l)!=(l>>>16^65535)){t.msg="invalid stored block lengths",i.mode=pe;break}if(i.length=65535&l,l=0,d=0,i.mode=15,e===ae)break t;case 15:i.mode=16;case 16:if(u=i.length,u){if(u>o&&(u=o),u>h&&(u=h),0===u)break t;r.set(n.subarray(a,a+u),s),o-=u,a+=u,h-=u,s+=u,i.length-=u;break}i.mode=_e;break;case 17:for(;d<14;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}if(i.nlen=257+(31&l),l>>>=5,d-=5,i.ndist=1+(31&l),l>>>=5,d-=5,i.ncode=4+(15&l),l>>>=4,d-=4,i.nlen>286||i.ndist>30){t.msg="too many length or distance symbols",i.mode=pe;break}i.have=0,i.mode=18;case 18:for(;i.have<i.ncode;){for(;d<3;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}i.lens[z[i.have++]]=7&l,l>>>=3,d-=3}for(;i.have<19;)i.lens[z[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,E={bits:i.lenbits},A=ie(0,i.lens,0,19,i.lencode,0,i.work,E),i.lenbits=E.bits,A){t.msg="invalid code lengths set",i.mode=pe;break}i.have=0,i.mode=19;case 19:for(;i.have<i.nlen+i.ndist;){for(;x=i.lencode[l&(1<<i.lenbits)-1],w=x>>>24,g=x>>>16&255,b=65535&x,!(w<=d);){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}if(b<16)l>>>=w,d-=w,i.lens[i.have++]=b;else{if(16===b){for(I=w+2;d<I;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}if(l>>>=w,d-=w,0===i.have){t.msg="invalid bit length repeat",i.mode=pe;break}v=i.lens[i.have-1],u=3+(3&l),l>>>=2,d-=2}else if(17===b){for(I=w+3;d<I;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}l>>>=w,d-=w,v=0,u=3+(7&l),l>>>=3,d-=3}else{for(I=w+7;d<I;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}l>>>=w,d-=w,v=0,u=11+(127&l),l>>>=7,d-=7}if(i.have+u>i.nlen+i.ndist){t.msg="invalid bit length repeat",i.mode=pe;break}for(;u--;)i.lens[i.have++]=v}}if(i.mode===pe)break;if(0===i.lens[256]){t.msg="invalid code -- missing end-of-block",i.mode=pe;break}if(i.lenbits=9,E={bits:i.lenbits},A=ie(1,i.lens,0,i.nlen,i.lencode,0,i.work,E),i.lenbits=E.bits,A){t.msg="invalid literal/lengths set",i.mode=pe;break}if(i.distbits=6,i.distcode=i.distdyn,E={bits:i.distbits},A=ie(2,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,E),i.distbits=E.bits,A){t.msg="invalid distances set",i.mode=pe;break}if(i.mode=20,e===ae)break t;case 20:i.mode=21;case 21:if(o>=6&&h>=258){t.next_out=s,t.avail_out=h,t.next_in=a,t.avail_in=o,i.hold=l,i.bits=d,Wt(t,f),s=t.next_out,r=t.output,h=t.avail_out,a=t.next_in,n=t.input,o=t.avail_in,l=i.hold,d=i.bits,i.mode===_e&&(i.back=-1);break}for(i.back=0;x=i.lencode[l&(1<<i.lenbits)-1],w=x>>>24,g=x>>>16&255,b=65535&x,!(w<=d);){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}if(g&&0==(240&g)){for(m=w,y=g,k=b;x=i.lencode[k+((l&(1<<m+y)-1)>>m)],w=x>>>24,g=x>>>16&255,b=65535&x,!(m+w<=d);){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}l>>>=m,d-=m,i.back+=m}if(l>>>=w,d-=w,i.back+=w,i.length=b,0===g){i.mode=26;break}if(32&g){i.back=-1,i.mode=_e;break}if(64&g){t.msg="invalid literal/length code",i.mode=pe;break}i.extra=15&g,i.mode=22;case 22:if(i.extra){for(I=i.extra;d<I;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}i.length+=l&(1<<i.extra)-1,l>>>=i.extra,d-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=23;case 23:for(;x=i.distcode[l&(1<<i.distbits)-1],w=x>>>24,g=x>>>16&255,b=65535&x,!(w<=d);){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}if(0==(240&g)){for(m=w,y=g,k=b;x=i.distcode[k+((l&(1<<m+y)-1)>>m)],w=x>>>24,g=x>>>16&255,b=65535&x,!(m+w<=d);){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}l>>>=m,d-=m,i.back+=m}if(l>>>=w,d-=w,i.back+=w,64&g){t.msg="invalid distance code",i.mode=pe;break}i.offset=b,i.extra=15&g,i.mode=24;case 24:if(i.extra){for(I=i.extra;d<I;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}i.offset+=l&(1<<i.extra)-1,l>>>=i.extra,d-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){t.msg="invalid distance too far back",i.mode=pe;break}i.mode=25;case 25:if(0===h)break t;if(u=f-h,i.offset>u){if(u=i.offset-u,u>i.whave&&i.sane){t.msg="invalid distance too far back",i.mode=pe;break}u>i.wnext?(u-=i.wnext,_=i.wsize-u):_=i.wnext-u,u>i.length&&(u=i.length),p=i.window}else p=r,_=s-i.offset,u=i.length;u>h&&(u=h),h-=u,i.length-=u;do{r[s++]=p[_++]}while(--u);0===i.length&&(i.mode=21);break;case 26:if(0===h)break t;r[s++]=i.length,h--,i.mode=21;break;case 27:if(i.wrap){for(;d<32;){if(0===o)break t;o--,l|=n[a++]<<d,d+=8}if(f-=h,t.total_out+=f,i.total+=f,f&&(t.adler=i.check=i.flags?N(i.check,r,f,s-f):F(i.check,r,f,s-f)),f=h,(i.flags?l:we(l))!==i.check){t.msg="incorrect data check",i.mode=pe;break}l=0,d=0}i.mode=28;case 28:if(i.wrap&&i.flags){for(;d<32;){if(0===o)break t;o--,l+=n[a++]<<d,d+=8}if(l!==(4294967295&i.total)){t.msg="incorrect length check",i.mode=pe;break}l=0,d=0}i.mode=29;case 29:A=oe;break t;case pe:A=de;break t;case 31:return ce;default:return le}return t.next_out=s,t.avail_out=h,t.next_in=a,t.avail_in=o,i.hold=l,i.bits=d,(i.wsize||f!==t.avail_out&&i.mode<pe&&(i.mode<27||e!==ne))&&Ee(t,t.output,t.next_out,f-t.avail_out),c-=t.avail_in,f-=t.avail_out,t.total_in+=c,t.total_out+=f,i.total+=f,i.wrap&&f&&(t.adler=i.check=i.flags?N(i.check,r,f,t.next_out-f):F(i.check,r,f,t.next_out-f)),t.data_type=i.bits+(i.last?64:0)+(i.mode===_e?128:0)+(20===i.mode||15===i.mode?256:0),(0===c&&0===f||e===ne)&&A===se&&(A=fe),A},inflateEnd:t=>{if(!t||!t.state)return le;let e=t.state;return e.window&&(e.window=null),t.state=null,se},inflateGetHeader:(t,e)=>{if(!t||!t.state)return le;const i=t.state;return 0==(2&i.wrap)?le:(i.head=e,e.done=!1,se)},inflateSetDictionary:(t,e)=>{const i=e.length;let n,r,a;return t&&t.state?(n=t.state,0!==n.wrap&&11!==n.mode?le:11===n.mode&&(r=1,r=F(r,e,i,0),r!==n.check)?de:(a=Ee(t,e,i,i),a?(n.mode=31,ce):(n.havedict=1,se))):le},inflateInfo:"pako inflate (from Nodeca project)"},ze=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const Se=Object.prototype.toString,{Z_NO_FLUSH:Ce,Z_FINISH:Te,Z_OK:Re,Z_STREAM_END:Fe,Z_NEED_DICT:Be,Z_STREAM_ERROR:Ne,Z_DATA_ERROR:De,Z_MEM_ERROR:Ze}=Z;function Le(t){this.options=Ft.assign({chunkSize:65536,windowBits:15,to:""},t||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Zt,this.strm.avail_out=0;let i=Ie.inflateInit2(this.strm,e.windowBits);if(i!==Re)throw new Error(D[i]);if(this.header=new ze,Ie.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=Dt.string2buf(e.dictionary):"[object ArrayBuffer]"===Se.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(i=Ie.inflateSetDictionary(this.strm,e.dictionary),i!==Re)))throw new Error(D[i])}function Oe(t,e){const i=new Le(e);if(i.push(t),i.err)throw i.msg||D[i.err];return i.result}Le.prototype.push=function(t,e){const i=this.strm,n=this.options.chunkSize,r=this.options.dictionary;let a,s,o;if(this.ended)return!1;for(s=e===~~e?e:!0===e?Te:Ce,"[object ArrayBuffer]"===Se.call(t)?i.input=new Uint8Array(t):i.input=t,i.next_in=0,i.avail_in=i.input.length;;){for(0===i.avail_out&&(i.output=new Uint8Array(n),i.next_out=0,i.avail_out=n),a=Ie.inflate(i,s),a===Be&&r&&(a=Ie.inflateSetDictionary(i,r),a===Re?a=Ie.inflate(i,s):a===De&&(a=Be));i.avail_in>0&&a===Fe&&i.state.wrap>0&&0!==t[i.next_in];)Ie.inflateReset(i),a=Ie.inflate(i,s);switch(a){case Ne:case De:case Be:case Ze:return this.onEnd(a),this.ended=!0,!1}if(o=i.avail_out,i.next_out&&(0===i.avail_out||a===Fe))if("string"===this.options.to){let t=Dt.utf8border(i.output,i.next_out),e=i.next_out-t,r=Dt.buf2string(i.output,t);i.next_out=e,i.avail_out=n-e,e&&i.output.set(i.output.subarray(t,t+e),0),this.onData(r)}else this.onData(i.output.length===i.next_out?i.output:i.output.subarray(0,i.next_out));if(a!==Re||0!==o){if(a===Fe)return a=Ie.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(0===i.avail_in)break}}return!0},Le.prototype.onData=function(t){this.chunks.push(t)},Le.prototype.onEnd=function(t){t===Re&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Ft.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var $e={Inflate:Le,inflate:Oe,inflateRaw:function(t,e){return(e=e||{}).raw=!0,Oe(t,e)},ungzip:Oe,constants:Z};const{Deflate:Me,deflate:Ve,deflateRaw:He,gzip:Pe}=qt,{Inflate:je,inflate:Ge,inflateRaw:Ke,ungzip:Xe}=$e;var Ye={Deflate:Me,deflate:Ve,deflateRaw:He,gzip:Pe,Inflate:je,inflate:Ge,inflateRaw:Ke,ungzip:Xe,constants:Z};function qe(t,e){const i=t.length;if(i!==e.length)return!1;for(let n=0;n<i;n++)if(t[n]!==e[n])return!1;return!0}class We{appendDescriptionOf(t){throw new Error("Not Implemented")}appendList(t,e,i,n){throw new Error("Not Implemented")}appendText(t){throw new Error("Not Implemented")}appendValue(t){throw new Error("Not Implemented")}appendValueList(t,e,i,n){throw new Error("Not Implemented")}}class Je{describeTo(t){throw new Error("Not Implemented")}}class Qe extends Je{value;constructor(t){super(),this.value=t}describeTo(t){t.appendValue(this.value)}}class ti{#t;constructor(t){this.#t=t}*[Symbol.iterator](){for(const t of this.#t)yield new Qe(t)}}class ei extends We{appendDescriptionOf(t){return t.describeTo(this),this}#e(t){this.appendText('"'),this.appendText(t),this.appendText('"')}appendValue(t){return null==t?this.appendText("null"):void 0===t?this.appendText("undefined"):"string"==typeof t?this.#e(t):"number"==typeof t?this.appendText(function(t){return String(t)}(t)):Array.isArray(t)?this.appendValueList("[",", ","]",t):(this.appendText("<"),this.appendText(function(t){try{return String(t)}catch(t){return"VALUE@0"}}(t)),this.appendText(">")),this}appendValueList(t,e,i,n){return this.appendList(t,e,i,new ti(n)),this}appendList(t,e,i,n){let r=!1;this.appendText(t);const a=n[Symbol.iterator]();for(let t=a.next();!0!==t.done;t=a.next())r&&this.appendText(e),this.appendDescriptionOf(t.value),r=!0;return this.appendText(i),this}}class ii extends ei{value="";appendText(t){return this.value+=t,this}}function ni(t,e){if(!t)throw new Error(e||"AssertionError")}function ri(t,e,i="value"){if(-1===e.indexOf(t))throw new Error(`${i} must be one of [${e.join(", ")}], instead was '${t}'`)}const ai=["string","boolean","number","object","undefined","function","symbol"];ni.enum=function(t,e,i="value"){for(let i in e)if(e[i]===t)return;throw new Error(`${i}(=${t}) is not a valid enumerable value, valid values are: [${Object.values(e).join(", ")}]`)},ni.notEqual=function(t,e,i){ni(t!==e,i)},ni.notOk=function(t,e){ni(!t,e)},ni.equal=function(t,e,i){if(t!==e){const n=`${t} !== ${e}`;throw new Error(void 0!==i&&""!==i?`${i}. ${n}`:n)}},ni.logicalyEqual=function(t,e,i){},ni.ok=ni,ni.greaterThan=function(t,e,i){if(!(t>e)){let n="";throw void 0!==i&&(n+=i+". "),n+=`Expected ${t} > ${e}.`,new Error(n)}},ni.greaterThanOrEqual=function(t,e,i){if(!(t>=e)){let n="";throw void 0!==i&&(n+=i+". "),n+=`Expected ${t} >= ${e}.`,new Error(n)}},ni.lessThan=function(t,e,i){if(!(t<e)){let n="";throw void 0!==i&&(n+=i+". "),n+=`Expected ${t} < ${e}.`,new Error(n)}},ni.lessThanOrEqual=function(t,e,i){if(!(t<=e)){let n="";throw void 0!==i&&(n+=i+". "),n+=`Expected ${t} <= ${e}.`,new Error(n)}},ni.typeOf=function(t,e,i="value"){ri(typeof t,ai);const n=typeof t;if(n!==e)throw new Error(`expected ${i} to be ${e}, instead was '${n}'(=${t})`)},ni.arrayHas=function(t,e,i="Array does not contain the item"){},ni.arrayHasNo=function(t,e,i="Array contains the item"){},ni.arrayEqual=function(t,e,i="Arrays are not equal"){if(!qe(t,e))throw new Error(i)},ni.isOneOf=ri,ni.isInstanceOf=function(t,e,i="value",n=e.name){},ni.isNumber=function(t,e="value"){const i=typeof t;if("number"!==i)throw new Error(`expected ${e} to be a number, instead was '${i}'(=${t})`)},ni.isString=function(t,e="value"){const i=typeof t;if("string"!==i)throw new Error(`expected ${e} to be a string, instead was '${i}'(=${t})`)},ni.isBoolean=function(t,e="value"){const i=typeof t;if("boolean"!==i)throw new Error(`expected ${e} to be a boolean, instead was '${i}'(=${t})`)},ni.isFunction=function(t,e="value"){const i=typeof t;if("function"!==i)throw new Error(`expected ${e} to be a function, instead was '${i}'(=${t})`)},ni.isObject=function(t,e="value"){const i=typeof t;if("object"!==i)throw new Error(`expected ${e} to be an object, instead was '${i}'(=${t})`)},ni.isInteger=function(t,e="value"){if(!Number.isInteger(t))throw new Error(`${e} must be an integer, instead was ${t}`)},ni.isNonNegativeInteger=function(t,e="value"){if(t<0)throw new Error(`${e} must be >= 0, instead was ${t}`)},ni.isArray=function(t,e="value"){if(!Array.isArray(t))throw new Error(`expected ${e} to be an array, instead was something else (typeof ='${typeof t}')`)},ni.isArrayLike=function(t,e="value"){if(!function(t){if(Array.isArray(t))return!0;if("object"!=typeof t)return!1;if(null===t)return!1;if(function(t){if("object"!=typeof t)return!1;if(null===t)return!1;const e=t.constructor;return e===Uint8Array||e===Uint16Array||e===Uint32Array||e===Int8Array||e===Int16Array||e===Int32Array||e===Float32Array||e===Float64Array||e===BigUint64Array||e===BigInt64Array}(t))return!0;const e=t.length;return!("number"!=typeof e&&!Number.isInteger(e)||e<0)}(t))throw new Error(`expected ${e} to be an array-like structure, instead was something else (typeof ='${typeof t}')`)},ni.defined=function(t,e="value"){if(void 0===t)throw new Error(`${e} is undefined`)},ni.undefined=function(t,e="value"){if(void 0!==t)throw new Error(`${e} is not undefined`)},ni.isNull=function(t,e){if(null!==t)throw new Error(`${e} is NOT null`)},ni.notNull=function(t,e="value"){if(null===t)throw new Error(`${e} is null`)},ni.notNaN=function(t,e="value"){if(Number.isNaN(t))throw new Error(`${e} must be a valid number, instead was NaN`)},ni.isFinite=function(t,e="value"){if(!Number.isFinite(t))throw new Error(`${e} must be a finite number, instead was ${t}`)},ni.isFiniteNumber=ni.isFinite,ni.that=function(t,e,i){if(i.matches(t))return;const n=new ii;throw n.appendText(`Expected ${e} to be `),i.describeTo(n),n.appendText(" instead "),i.describeMismatch(t,n),new Error(n.value)};const si=!1,oi=!0,hi=new Float32Array(1),li=new Int32Array(hi.buffer);class di{endianness=oi;position=0;get length(){throw new Error("Deprecated, use 'capacity' instead")}set length(t){throw new Error("Deprecated, use 'capacity' instead")}capacity=1024;data=new ArrayBuffer(1024);dataView=new DataView(this.data);__data_uint8=new Uint8Array(this.data);__growFactor=1.1;get raw_bytes(){return this.__data_uint8}fromArrayBuffer(t){this.data=t,this.dataView=new DataView(t),this.__data_uint8=new Uint8Array(t),this.capacity=t.byteLength,this.position=0}trim(){return this.setCapacity(this.position),this}skip(t){this.position+=t}setCapacity(t){if(t<this.position)throw new Error(`Attempting to set capacity(=${t}) below current position(=${this.position})`);if(this.capacity===t)return;const e=this.__data_uint8,i=new Uint8Array(t);!function(t,e,i,n,r){let a,s;const o=function(t,e,i){const n=0|i;return 0==(3&n)?4:0==(1&n)?2:1}(0,0,r);4===o?(a=new Uint32Array(t,0,r>>>2),s=new Uint32Array(i,0,r>>>2)):2===o?(a=new Uint16Array(t,0,r>>>1),s=new Uint16Array(i,0,r>>>1)):(a=new Uint8Array(t,0,r),s=new Uint8Array(i,0,r)),s.set(a)}(e.buffer,0,i.buffer,0,Math.min(e.buffer.byteLength,i.buffer.byteLength)),this.data=i.buffer,this.__data_uint8=i,this.dataView=new DataView(this.data),this.capacity=t}ensureCapacity(t){const e=this.capacity;if(e>=t)return;const i=Math.ceil(Math.max(t,e*this.__growFactor,e+1024))+3>>2<<2;this.setCapacity(i)}readFloat16(){return function(t){let e=0;const i=(31744&t)>>10,n=1023&t;let r=1;return t>>15!=0&&(r=-1),e=0!==i?31===i?0!==n?NaN:Infinity:r*Math.pow(2,i-15)*(1+n/1024):r*(n/1024*6103515625e-14),e}(this.readUint16())}readFloat32(){const t=this.dataView.getFloat32(this.position,this.endianness);return this.position+=4,t}readFloat64(){const t=this.dataView.getFloat64(this.position,this.endianness);return this.position+=8,t}readInt8(){const t=this.dataView.getInt8(this.position);return this.position+=1,t}readInt16(){const t=this.dataView.getInt16(this.position,this.endianness);return this.position+=2,t}readInt32(){const t=this.dataView.getInt32(this.position,this.endianness);return this.position+=4,t}readUint8(){const t=this.dataView.getUint8(this.position);return this.position+=1,t}readUint16(){const t=this.dataView.getUint16(this.position,this.endianness);return this.position+=2,t}readUint16LE(){const t=this.dataView.getUint16(this.position,oi);return this.position+=2,t}readUint16BE(){const t=this.dataView.getUint16(this.position,si);return this.position+=2,t}readUint24(){return this.endianness===si?this.readUint24BE():this.readUint24LE()}readUint24LE(){const t=this.dataView.getUint8(this.position),e=this.dataView.getUint8(this.position+1),i=this.dataView.getUint8(this.position+2);return this.position+=3,t|e<<8|i<<16}readUint24BE(){const t=this.dataView.getUint8(this.position),e=this.dataView.getUint8(this.position+1),i=this.dataView.getUint8(this.position+2);return this.position+=3,i|e<<8|t<<16}readUint32(){const t=this.dataView.getUint32(this.position,this.endianness);return this.position+=4,t}readUint32LE(){const t=this.dataView.getUint32(this.position,oi);return this.position+=4,t}readUint32BE(){const t=this.dataView.getUint32(this.position,si);return this.position+=4,t}readUint8Array(t,e,i){for(let n=0;n<i;n++)t[n+e]=this.readUint8()}readUint16Array(t,e,i){for(let n=0;n<i;n++)t[n+e]=this.readUint16()}readUint32Array(t,e,i){for(let n=0;n<i;n++)t[n+e]=this.readUint32()}readInt8Array(t,e,i){for(let n=0;n<i;n++)t[n+e]=this.readInt8()}readInt16Array(t,e,i){for(let n=0;n<i;n++)t[n+e]=this.readInt16()}readInt32Array(t,e,i){for(let n=0;n<i;n++)t[n+e]=this.readInt32()}readFloat32Array(t,e,i){for(let n=0;n<i;n++)t[n+e]=this.readFloat32()}readFloat64Array(t,e,i){for(let n=0;n<i;n++)t[n+e]=this.readFloat64()}writeFloat32Array(t,e,i){for(let n=0;n<i;n++)this.writeFloat32(t[n+e])}writeFloat16(t){const e=function(t){let e=t;e>65504&&(e=65504),hi[0]=e;const i=li[0];let n=i>>16&32768,r=i>>12&2047;const a=i>>23&255;return a<103?n:a>142?(n|=31744,n|=(255===a?0:1)&&8388607&i,n):a<113?(r|=2048,n|=(r>>114-a)+(r>>113-a&1),n):(n|=a-112<<10|r>>1,n+=1&r,n)}(t);this.writeUint16(e)}writeFloat32(t){const e=this.position+4;this.ensureCapacity(e),this.dataView.setFloat32(this.position,t,this.endianness),this.position=e}writeFloat64(t){const e=this.position+8;this.ensureCapacity(e),this.dataView.setFloat64(this.position,t,this.endianness),this.position=e}writeInt8(t){const e=this.position+1;this.ensureCapacity(e),this.dataView.setInt8(this.position,t),this.position=e}writeInt16(t){const e=this.position+2;this.ensureCapacity(e),this.dataView.setInt16(this.position,t,this.endianness),this.position=e}writeInt32(t){const e=this.position+4;this.ensureCapacity(e),this.dataView.setInt32(this.position,t,this.endianness),this.position=e}writeInt8Array(t,e,i){this.ensureCapacity(this.position+i);for(let n=0;n<i;n++)this.writeInt8(t[e+n])}writeInt16Array(t,e,i){this.ensureCapacity(this.position+2*i);for(let n=0;n<i;n++)this.writeInt16(t[e+n])}writeInt32Array(t,e,i){this.ensureCapacity(this.position+4*i);for(let n=0;n<i;n++)this.writeInt32(t[e+n])}writeUint8(t){const e=this.position+1;this.ensureCapacity(e),this.dataView.setUint8(this.position,t),this.position=e}writeUint8Array(t,e,i){for(let n=0;n<i;n++)this.writeUint8(t[e+n])}writeUint16(t){const e=this.position+2;this.ensureCapacity(e),this.dataView.setUint16(this.position,t,this.endianness),this.position=e}writeUint16BE(t){const e=this.position+2;this.ensureCapacity(e),this.dataView.setUint16(this.position,t,si),this.position=e}writeUint16LE(t){const e=this.position+2;this.ensureCapacity(e),this.dataView.setUint16(this.position,t,oi),this.position=e}writeUint16Array(t,e,i){for(let n=0;n<i;n++)this.writeUint16(t[e+n])}writeUint24(t){this.endianness===si?this.writeUint24BE(t):this.writeUint24LE(t)}writeUint24BE(t){const e=this.position+3;this.ensureCapacity(e);const i=255&t,n=t>>8&255,r=t>>16&255;this.dataView.setUint8(this.position,r),this.dataView.setUint8(this.position+1,n),this.dataView.setUint8(this.position+2,i),this.position=e}writeUint24LE(t){const e=this.position+3;this.ensureCapacity(e);const i=255&t,n=t>>8&255,r=t>>16&255;this.dataView.setUint8(this.position,i),this.dataView.setUint8(this.position+1,n),this.dataView.setUint8(this.position+2,r),this.position=e}writeUintVar(t){let e=!0,i=t;for(;e||0!==i;){e=!1;let t=127&i;i>>=7,i>0&&(t|=128),this.writeUint8(t)}}readUintVar(){let t=!0,e=0,i=0;for(;t;){let n=this.readUint8();t=0!=(128&n),e|=(127&n)<<i,i+=7}return e}writeUint32(t){const e=this.position+4;this.ensureCapacity(e),this.dataView.setUint32(this.position,t,this.endianness),this.position=e}writeUint32BE(t){const e=this.position+4;this.ensureCapacity(e),this.dataView.setUint32(this.position,t,si),this.position=e}writeUint32LE(t){const e=this.position+4;this.ensureCapacity(e),this.dataView.setUint32(this.position,t,oi),this.position=e}writeUint32Array(t,e,i){this.ensureCapacity(this.position+4*i);for(let n=0;n<i;n++)this.writeUint32(t[e+n])}writeBytes(t,e,i){const n=e+i,r=this.position,a=r+i;if(this.ensureCapacity(a),0===e&&t.length===i)this.__data_uint8.set(t,r);else if("function"==typeof t.subarray)this.__data_uint8.set(t.subarray(e,n),r);else for(let n=0;n<i;n++)this.__data_uint8[r+n]=t[e+n];this.position=a}readBytes(t,e,i){const n=this.position,r=n+i,a=this.__data_uint8;i<128?function(t,e,i,n,r){let a,s,o;for(o=0;o<r;o++)a=e+o,s=n+o,i[s]=t[a]}(a,n,t,e,i):t.set(a.subarray(n,r),e),this.position=r}writeUTF8String(t){if(null===t)return void this.writeUint32(4294967295);if(void 0===t)return void this.writeUint32(4294967294);let e=0;const i=t.length;if(i>=4294967294)throw new Error("String is too long");this.writeUint32(i);let n=this.position;const r=Math.max(32,i+(i>>1)+7);this.ensureCapacity(r+n);let a=this.__data_uint8,s=this.capacity;for(;e<i;){let r=t.charCodeAt(e++);if(r>=55296&&r<=56319){if(e<i){const i=t.charCodeAt(e);56320==(64512&i)&&(++e,r=((1023&r)<<10)+(1023&i)+65536)}if(r>=55296&&r<=56319)continue}if(n+4>s&&(this.ensureCapacity(n+4),s=this.capacity,a=this.__data_uint8),0!=(4294967168&r)){if(0==(4294965248&r))a[n++]=r>>6&31|192;else if(0==(4294901760&r))a[n++]=r>>12&15|224,a[n++]=r>>6&63|128;else{if(0!=(4292870144&r))continue;a[n++]=r>>18&7|240,a[n++]=r>>12&63|128,a[n++]=r>>6&63|128}a[n++]=63&r|128}else a[n++]=r}this.position=n}readUTF8String(){const t=this.readUint32();if(4294967295===t)return null;if(4294967294===t)return;const e=this.__data_uint8;let i="",n=this.position,r=0;for(;n<this.capacity&&r<t;){const t=e[n++];let a;if(0===t)break;0==(128&t)?a=t:192==(224&t)?a=(31&t)<<6|63&e[n++]:224==(240&t)?a=(31&t)<<12|(63&e[n++])<<6|63&e[n++]:240==(248&t)&&(a=(7&t)<<18|(63&e[n++])<<12|(63&e[n++])<<6|63&e[n++],a>65535&&(a-=65536,i+=String.fromCharCode(a>>>10&1023|55296),r++,a=56320|1023&a)),r++,i+=String.fromCharCode(a)}return this.position=n,i}writeASCIIString(t){const e=t.length,i=this.position,n=i+e;this.ensureCapacity(n);for(let n=0;n<e;n++){const e=t.charCodeAt(n);if(e>128)throw new Error(`Character ${String.fromCharCode(e)} can't be represented by a US-ASCII byte.`);this.__data_uint8[i+n]=e}this.position=n}readASCIICharacters(t,e=!1){let i="";for(let n=0;n<t;n++){const t=this.readUint8();if(e&&0===t)break;i+=String.fromCharCode(t)}return i}toString(){return`BinaryBuffer[position=${this.position}, capacity=${this.capacity}, endianness=${this.endianness}]`}toHexString(){const t=this.__data_uint8,e=Math.min(t.length,this.position);let i="";for(let n=0;n<e;n++)i+=t[n].toString(16).padStart(2,"0").toUpperCase();return i}static fromEndianness(t){const e=new di;return e.endianness=t,e}static fromArrayBuffer(t){const e=new di;return e.fromArrayBuffer(t),e}static copyUTF8String(t,e){const i=t.readUTF8String();return e.writeUTF8String(i),i}static copyUintVar(t,e){const i=t.readUintVar();return e.writeUintVar(i),i}static copyUint8(t,e){const i=t.readUint8();return e.writeUint8(i),i}static copyUint16(t,e){const i=t.readUint16();return e.writeUint16(i),i}static copyUint32(t,e){const i=t.readUint32();return e.writeUint32(i),i}static copyFloat32(t,e){const i=t.readFloat32();return e.writeFloat32(i),i}static copyFloat64(t,e){const i=t.readFloat64();return e.writeFloat64(i),i}static copyBytes(t,e,i){const n=new Uint8Array(i);return t.readBytes(n,0,i),e.writeBytes(n,0,i),n}}di.prototype.isBinaryBuffer=!0;const ci=new Uint32Array(256);for(let t=0;t<256;t++){let e=t;for(let t=0;t<8;t++)0!=(1&e)?e=3988292384^e>>>1:e>>>=1;ci[t]=e}class fi{width=0;height=0;bitDepth=0;colorType=0;compressionMethod=0;filterMethod=0;interlaceMethod=0;colors=0;alpha=!1;pixelBits=0;palette=null;pixels=null;trns=null;text={};getWidth(){return this.width}setWidth(t){this.width=t}getHeight(){return this.height}setHeight(t){this.height=t}getBitDepth(){return this.bitDepth}setBitDepth(t){if(-1===[1,2,4,8,16].indexOf(t))throw new Error("invalid bith depth "+t);this.bitDepth=t}getColorType(){return this.colorType}setColorType(t){let e=0,i=!1;switch(t){case 0:case 3:e=1;break;case 2:e=3;break;case 4:e=2,i=!0;break;case 6:e=4,i=!0;break;default:throw new Error("invalid color type")}this.colors=e,this.alpha=i,this.colorType=t}getCompressionMethod(){return this.compressionMethod}setCompressionMethod(t){if(0!==t)throw new Error("invalid compression method "+t);this.compressionMethod=t}getFilterMethod(){return this.filterMethod}setFilterMethod(t){if(0!==t)throw new Error("invalid filter method "+t);this.filterMethod=t}getInterlaceMethod(){return this.interlaceMethod}setInterlaceMethod(t){if(0!==t&&1!==t)throw new Error("invalid interlace method "+t);this.interlaceMethod=t}setTRNS(t){this.trns=t}setPalette(t){if(t.length%3!=0)throw new Error("incorrect PLTE chunk length");if(t.length>3*Math.pow(2,this.bitDepth))throw new Error("palette has more colors than 2^bitdepth");this.palette=t}getPalette(){return this.palette}getPixel(t,e,i,n){const r=this.pixels;if(!r)throw new Error("pixel data is empty");if(i>=this.width||n>=this.height)throw new Error("x,y position out of bound");const a=this.colors*this.bitDepth/8*(n*this.width+i);let s,o,h,l;switch(this.colorType){case 0:s=r[a],o=s,h=s,l=255;break;case 2:s=r[a],o=r[a+1],h=r[a+2],l=255;break;case 3:l=255,null!=this.trns&&(l=this.trns[r[a]]);const t=3*r[a],e=this.palette;s=e[t],o=e[t+1],h=e[t+2];break;case 4:s=r[a],o=s,h=s,l=r[a+1];break;case 6:s=r[a],o=r[a+1],h=r[a+2],l=r[a+3];break;default:throw new Error("Unsupported color type")}t[e+0]=s,t[e+1]=o,t[e+2]=h,t[e+3]=l}getRGBA8Array_fromRGB(t){const e=this.height,i=this.width*e,n=this.pixels;for(let e=0;e<i;e++){const i=3*e,r=i+e;t[r]=n[i],t[r+1]=n[i+1],t[r+2]=n[i+2],t[r+3]=255}}getRGBA8Array_generic(t){const e=this.height,i=this.width;for(let n=0;n<e;n++){const e=n*i;for(let r=0;r<i;r++){const i=4*(e+r);this.getPixel(t,i,r,n)}}}getRGBA8Array(){if(6===this.colorType)return this.pixels;const t=this.height,e=this.width,i=new Uint8Array(e*t*4);return 2===this.colorType?this.getRGBA8Array_fromRGB(i):this.getRGBA8Array_generic(i),i}getUint8Data_case3(){const t=this.width*this.height;let e;const i=this.trns;e=null!==i?4:3;const n=new Uint8Array(t*e),r=this.pixels,a=this.palette,s=this.colors*Math.ceil(this.bitDepth/8);for(let i=0;i<t;i++){const t=i*e,o=3*r[i*s];n[t]=a[o],n[t+1]=a[o+1],n[t+2]=a[o+2]}if(null!==i){const e=i.length;for(let a=0;a<t;a++){const t=r[a*s];n[4*a+3]=t>=e?255:i[t]}}return{data:n,itemSize:e}}getUint8Data(){let t,e=0;switch(this.colorType){case 0:t=this.pixels,e=1;break;case 2:t=this.pixels,e=3;break;case 3:const i=this.getUint8Data_case3();t=i.data,e=i.itemSize;break;case 4:t=this.pixels,e=2;break;case 6:t=this.pixels,e=4;break;default:throw new Error("Unsupported color type")}return{data:t,itemSize:e}}}const ui=[137,80,78,71,13,10,26,10];function _i(t){const e=new Ye.Inflate;if(e.push(t),e.err)throw new Error(e.err);return e.result.buffer}function pi(t,e){return t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3]}function wi(t,e){return t[e]}function gi(t){this.i=0,this.bytes=new Uint8Array(t),this.png=new fi,this.dataChunks=[],this.buffer=new di,this.buffer.endianness=si,this.buffer.fromArrayBuffer(t),this.crc_enabled=!1,this.header=new Uint8Array(8)}gi.prototype.readBytes=function(t){const e=new Uint8Array(t);return this.buffer.readBytes(e,0,t),e},gi.prototype.decodeHeader=function(){if(0!==this.i)throw new Error("file pointer should be at 0 to read the header");const t=this.buffer,e=this.header;if(t.readBytes(e,0,8),!qe(e,ui))throw new Error("invalid PNGReader file (bad signature)")},gi.prototype.decodeChunk=function(){const t=this.buffer,e=t.readUint32();if(e<0)throw new Error("Bad chunk length "+(4294967295&e));const i=t.position,n=t.readASCIICharacters(4),r=this.readBytes(e);switch(t.readUint32(),this.crc_enabled&&function(t,e=0,i=t.length){!function(t,e,i,n){let r=4294967295;const a=i+n;for(let t=i;t<a;t++){const i=e[t];r=ci[255&(r^i)]^r>>>8}}(0,t,e,i)}(t.raw_bytes,i,e+4),n){case"IHDR":this.decodeIHDR(r);break;case"PLTE":this.decodePLTE(r);break;case"IDAT":this.decodeIDAT(r);break;case"tRNS":this.decodeTRNS(r);break;case"IEND":this.decodeIEND(r);break;case"sRGB":this.decodesRGB(r);break;case"tIME":this.decodetIME(r);break;case"zTXt":this.decodezTXt(r);break;case"iTXt":this.decodeiTXt(r)}return n},gi.prototype.decodesRGB=function(t){wi(t,0)},gi.prototype.decodetIME=function(t){wi(t,0),wi(t,1),wi(t,2),wi(t,3),wi(t,4),wi(t,5),wi(t,6)},gi.prototype.decodeiTXt=function(t){const e=di.fromArrayBuffer(t.buffer),i=e.readASCIICharacters(79,!0),n=e.readUint8();e.readUint8();const r=e.readASCIICharacters(Infinity,!0),a=e.readASCIICharacters(Infinity,!0),s=e.data.length-e.position;let o;if(0===n)o=e.readASCIICharacters(s);else{if(1!==n)throw new Error(`Invalid compression flag value '${n}'`);{const t=_i(new Uint8Array(e.data,e.position,s));e.fromArrayBuffer(t),o=e.readASCIICharacters(t.byteLength)}}return{keyword:i,language_tag:r,translated_keyword:a,text:o}},gi.prototype.decodezTXt=function(t){const e=di.fromArrayBuffer(t.buffer),i=e.readASCIICharacters(79,!0),n=e.readUint8();let r;if(0!==n)throw new Error(`Unsupported compression method '${n}'`);{const i=_i(new Uint8Array(t.buffer,e.position));e.fromArrayBuffer(i),r=e.readASCIICharacters(i.length)}return{keyword:i,text:r}},gi.prototype.decodetEXt=function(t){const e=di.fromArrayBuffer(t.buffer),i=e.readASCIICharacters(Number.POSITIVE_INFINITY,!0),n=e.readASCIICharacters(i.length-1,!1);this.png.text[i]=n},gi.prototype.decodeiEXt=function(t){const e=di.fromArrayBuffer(t.buffer),i=e.readASCIICharacters(Number.POSITIVE_INFINITY,!0);if(e.readUint8(),e.readUint8(),e.readASCIICharacters(Number.POSITIVE_INFINITY,!0),e.readUTF8String(),0!==e.readUint8())throw new Error("Expected Null Separator after Translated keyword");const n=e.readUTF8String();this.png.text[i]=n},gi.prototype.decodeIHDR=function(t){const e=this.png;e.setWidth(pi(t,0)),e.setHeight(pi(t,4)),e.setBitDepth(wi(t,8)),e.setColorType(wi(t,9)),e.setCompressionMethod(wi(t,10)),e.setFilterMethod(wi(t,11)),e.setInterlaceMethod(wi(t,12))},gi.prototype.decodePLTE=function(t){this.png.setPalette(t)},gi.prototype.decodeIDAT=function(t){this.dataChunks.push(t)},gi.prototype.decodeTRNS=function(t){this.png.setTRNS(t)},gi.prototype.decodeIEND=function(){},gi.prototype.decodePixels=function(){const t=this.png,e=new Ye.Inflate,i=this.dataChunks,n=i.length;for(let t=0;t<n;t++)if(e.push(i[t]),e.err)throw new Error(e.err);const r=e.result;0===t.getInterlaceMethod()?this.interlaceNone(r):this.interlaceAdam7(r)},gi.prototype.interlaceNone=function(t){const e=this.png,i=e.bitDepth,n=e.colors*i/8,r=e.width,a=e.height,s=Math.ceil(n*r),o=Math.ceil(n)*r,h=new Uint8Array(o*a);let l=0;const d=t.length;for(let e=0;e<d;e+=s+1){const r=e+1,a=wi(t,e);switch(a){case 0:if(1===i)for(let e=0;e<o;e++){const i=t[(e>>>4)+r]>>>(7&e)&1;h[l+e]=i}else if(2===i)for(let e=0;e<o;e++){const i=t[(e>>>2)+r]>>>((3&~e)<<1)&3;h[l+e]=i}else if(4===i)for(let e=0;e<o;e++){const i=t[(e>>>1)+r]>>>((1&~e)<<2)&15;h[l+e]=i}else{if(8!==i)throw new Error(`unsupported bit depth ${i}`);for(let e=0;e<o;e++)h[l+e]=t[e+r]}break;case 1:this.unFilterSub(t,r,h,n,l,s);break;case 2:this.unFilterUp(t,r,h,n,l,s);break;case 3:this.unFilterAverage(t,r,h,n,l,s);break;case 4:this.unFilterPaeth(t,r,h,n,l,s);break;default:throw new Error(`unknown filtered scanline type '${a}'`)}l+=o}e.pixels=h},gi.prototype.interlaceAdam7=function(t){throw new Error("Adam7 interlacing is not implemented yet")},gi.prototype.unFilterSub=function(t,e,i,n,r,a){let s=0;for(;s<n;s++)i[r+s]=t[s+e];for(;s<a;s++){const a=r+s;i[a]=t[s+e]+i[a-n]&255}},gi.prototype.unFilterUp=function(t,e,i,n,r,a){let s,o,h=0;if(r-a<0)for(;h<a;h++)i[r+h]=t[h+e];else for(;h<a;h++)s=t[h+e],o=i[r+h-a],i[r+h]=s+o&255},gi.prototype.unFilterAverage=function(t,e,i,n,r,a){let s,o,h,l=0;if(r-a<0){for(;l<n;l++)i[r+l]=t[l+e];for(;l<a;l++){const a=r+l;i[a]=t[l+e]+(i[a-n]>>1)&255}}else{for(;l<n;l++){const n=r+l;i[n]=t[l+e]+(i[n-a]>>1)&255}for(;l<a;l++){s=t[l+e];const d=r+l;o=i[d-n],h=i[d-a],i[d]=s+(o+h>>1)&255}}},gi.prototype.unFilterPaeth=function(t,e,i,n,r,a){let s,o,h,l,d,c,f,u,_,p=0;if(r-a<0){for(;p<n;p++)i[r+p]=t[p+e];for(;p<a;p++)i[r+p]=t[p+e]+i[r+p-n]&255}else{const w=r-a;for(;p<n;p++)i[r+p]=t[p+e]+i[w+p]&255;for(;p<a;p++){s=t[p+e];const w=r+p;l=i[w-a-n],h=i[w-a],o=i[w-n],d=o+h-l,c=Math.abs(d-o),f=Math.abs(d-h),u=Math.abs(d-l),_=c<=f&&c<=u?o:f<=u?h:l,i[w]=s+_&255}}},gi.prototype.parse=function(){for(this.decodeHeader();"IEND"!==this.decodeChunk(););return this.decodePixels(),this.png},self.Lib={decode:async function(t,e="png"){if(!(t instanceof ArrayBuffer))throw new Error(".data argument must be an ArrayBuffer, instead was something else");if("png"===e.toLowerCase())return await async function(t){return new Promise(((e,i)=>{const n=new gi(t).parse(),r=n.getUint8Data(),a=n.getWidth(),s=n.getHeight();e({data:r.data.buffer,width:a,height:s,itemSize:r.itemSize,bitDepth:8})}))}(t);throw new Error("Unsupported type")}};
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"description": "Pure JavaScript game engine. Fully featured and production ready.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"author": "Alexander Goldring",
|
|
8
|
-
"version": "2.126.
|
|
8
|
+
"version": "2.126.48",
|
|
9
9
|
"main": "build/meep.module.js",
|
|
10
10
|
"module": "build/meep.module.js",
|
|
11
11
|
"exports": {
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Utility for reading/writing binary data.
|
|
3
3
|
* Mostly useful for serialization/deserialization tasks.
|
|
4
4
|
* The buffer is dynamically resized, so you do not need to manage the size manually.
|
|
5
|
+
* It is useful to think of this structure as a "stream".
|
|
5
6
|
*
|
|
6
7
|
* @example
|
|
7
8
|
* const buffer = new BinaryBuffer();
|
|
@@ -88,7 +89,7 @@ export class BinaryBuffer {
|
|
|
88
89
|
static copyBytes(source: BinaryBuffer, target: BinaryBuffer, length: number): Uint8Array;
|
|
89
90
|
/**
|
|
90
91
|
* Default is little-endian as most platforms operate in little-endian
|
|
91
|
-
* The reason this is fixed is to ensure cross-platform compatibility
|
|
92
|
+
* The reason this is fixed is to ensure cross-platform compatibility as endianness in JavaScript is platform-dependent.
|
|
92
93
|
* @see https://en.wikipedia.org/wiki/Endianness
|
|
93
94
|
* @type {EndianType|boolean}
|
|
94
95
|
*/
|
|
@@ -114,19 +115,21 @@ export class BinaryBuffer {
|
|
|
114
115
|
*/
|
|
115
116
|
capacity: number;
|
|
116
117
|
/**
|
|
117
|
-
*
|
|
118
|
+
* Raw underlying bytes attached to the buffer, note that this is managed by the `BinaryBuffer` and can grow/shrink as needed.
|
|
119
|
+
* @see setCapacity
|
|
120
|
+
* @see trim
|
|
118
121
|
* @type {ArrayBuffer}
|
|
119
122
|
* @private
|
|
120
123
|
*/
|
|
121
124
|
private data;
|
|
122
125
|
/**
|
|
123
|
-
*
|
|
126
|
+
* Bound to the {@link data} buffer, do not modify directly.
|
|
124
127
|
* @type {DataView}
|
|
125
128
|
* @private
|
|
126
129
|
*/
|
|
127
130
|
private dataView;
|
|
128
131
|
/**
|
|
129
|
-
*
|
|
132
|
+
* Bound to the {@link data} buffer, do not modify directly.
|
|
130
133
|
* @type {Uint8Array}
|
|
131
134
|
* @private
|
|
132
135
|
*/
|
|
@@ -143,17 +146,33 @@ export class BinaryBuffer {
|
|
|
143
146
|
*/
|
|
144
147
|
get raw_bytes(): Uint8Array;
|
|
145
148
|
/**
|
|
149
|
+
* Sets {@link capacity} to the size of the input data.
|
|
150
|
+
* Sets {@link position} to 0.
|
|
151
|
+
*
|
|
152
|
+
* Note: if you write to the buffer past the size of the input data {@link ArrayBuffer} - bound data will be re-allocated.
|
|
146
153
|
* @param {ArrayBuffer} data
|
|
147
154
|
*/
|
|
148
155
|
fromArrayBuffer(data: ArrayBuffer): void;
|
|
149
156
|
/**
|
|
150
|
-
* Set capacity to contain data only up to current position
|
|
157
|
+
* Set capacity to contain data only up to the current `position`.
|
|
158
|
+
* This will re-allocate the `data` buffer if necessary.
|
|
151
159
|
* @returns {BinaryBuffer}
|
|
152
160
|
*/
|
|
153
161
|
trim(): BinaryBuffer;
|
|
154
162
|
/**
|
|
163
|
+
* Advance `position`(read/write cursor) a certain number of bytes forward.
|
|
164
|
+
*
|
|
165
|
+
* @param {number} byte_count
|
|
166
|
+
*/
|
|
167
|
+
skip(byte_count: number): void;
|
|
168
|
+
/**
|
|
169
|
+
* This will re-allocate {@link data} buffer if necessary.
|
|
170
|
+
* Note that all data is retained.
|
|
171
|
+
* Cannot shink past the current `position`.
|
|
155
172
|
*
|
|
156
173
|
* @param {number} capacity
|
|
174
|
+
* @throws {Error} if requested capacity is less than current `position`
|
|
175
|
+
*
|
|
157
176
|
*/
|
|
158
177
|
setCapacity(capacity: number): void;
|
|
159
178
|
/**
|
|
@@ -409,7 +428,7 @@ export class BinaryBuffer {
|
|
|
409
428
|
* Compact encoding scheme, if the value is 127 or less - only one byte will be used, if the value is 16383 or less - two bytes will be used, etc.
|
|
410
429
|
* NOTE: uses 7-bit encoding with 1 bit used for carry-over flag.
|
|
411
430
|
* NOTE: explicitly a little-endian format, {@link endianness} is ignored.
|
|
412
|
-
* @param {number} value
|
|
431
|
+
* @param {number} value must be an unsigned integer
|
|
413
432
|
*/
|
|
414
433
|
writeUintVar(value: number): void;
|
|
415
434
|
/**
|
|
@@ -479,7 +498,7 @@ export class BinaryBuffer {
|
|
|
479
498
|
*
|
|
480
499
|
* @see https://en.wikipedia.org/wiki/ASCII
|
|
481
500
|
*
|
|
482
|
-
* @param {number} length maximum number of
|
|
501
|
+
* @param {number} length maximum number of characters to read. If `null_terminated` flag is on, resulting string might be shorter than `length`
|
|
483
502
|
* @param {boolean} [null_terminated] if true will stop reading when encountering 0 byte value character (NULL)
|
|
484
503
|
* @returns {string}
|
|
485
504
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BinaryBuffer.d.ts","sourceRoot":"","sources":["../../../../src/core/binary/BinaryBuffer.js"],"names":[],"mappings":"AA+BA
|
|
1
|
+
{"version":3,"file":"BinaryBuffer.d.ts","sourceRoot":"","sources":["../../../../src/core/binary/BinaryBuffer.js"],"names":[],"mappings":"AA+BA;;;;;;;;;;;;;;;;;;GAkBG;AACH;IA0pCI;;;;OAIG;IACH,4BAHW,UAAU,GACT,YAAY,CAUvB;IAED;;;;OAIG;IACH,0BAHW,WAAW,GACV,YAAY,CAQvB;IAED;;;;;OAKG;IACH,8BAJW,YAAY,UACZ,YAAY,GACV,MAAM,CAQlB;IAED;;;;;OAKG;IACH,2BAJW,YAAY,UACZ,YAAY,GACV,MAAM,CAQlB;IAED;;;;;OAKG;IACH,yBAJW,YAAY,UACZ,YAAY,GACV,MAAM,CAQlB;IAED;;;;;OAKG;IACH,0BAJW,YAAY,UACZ,YAAY,GACV,MAAM,CAQlB;IAED;;;;;OAKG;IACH,0BAJW,YAAY,UACZ,YAAY,GACV,MAAM,CAQlB;IAED;;;;;OAKG;IACH,2BAJW,YAAY,UACZ,YAAY,GACV,MAAM,CAQlB;IAED;;;;;OAKG;IACH,2BAJW,YAAY,UACZ,YAAY,GACV,MAAM,CAQlB;IAED;;;;;;OAMG;IACH,yBALW,YAAY,UACZ,YAAY,UACZ,MAAM,GACJ,UAAU,CAUtB;IAryCD;;;;;OAKG;IACH,YAFU,UAAU,GAAC,OAAO,CAES;IAErC;;;;;OAKG;IACH,UAFU,MAAM,CAEH;IASb;;OAEG;IACH,oBAEC;IAZD;;OAEG;IACH,mBAEC;IASD;;;OAGG;IACH,UAFU,MAAM,CAEgB;IAEhC;;;;;;OAMG;IACH,aAA6C;IAE7C;;;;OAIG;IACH,iBAAmC;IAEnC;;;;OAIG;IACH,qBAAyC;IAEzC;;;;OAIG;IACH,qBAAmB;IAEnB;;;OAGG;IACH,iBAFY,UAAU,CAIrB;IAED;;;;;;OAMG;IACH,sBAFW,WAAW,QAYrB;IAED;;;;OAIG;IACH,QAFa,YAAY,CAMxB;IAED;;;;OAIG;IACH,iBAFW,MAAM,QAMhB;IAED;;;;;;;;OAQG;IACH,sBAJW,MAAM,QA+BhB;IAED;;;OAGG;IACH,6BAFW,MAAM,QAmBhB;IAED;;;OAGG;IACH,eAFa,MAAM,CAMlB;IAED;;;OAGG;IACH,eAFa,MAAM,CAQlB;IAED;;;OAGG;IACH,eAFa,MAAM,CAQlB;IAED;;;OAGG;IACH,YAFY,MAAM,CAQjB;IAED;;;OAGG;IACH,aAFY,MAAM,CAQjB;IAED;;;OAGG;IACH,aAFa,MAAM,CAQlB;IAED;;;OAGG;IACH,aAFa,MAAM,CAQlB;IAED;;;OAGG;IACH,cAFa,MAAM,CAQlB;IAED;;;OAGG;IACH,gBAFa,MAAM,CAQlB;IAED;;;OAGG;IACH,gBAFa,MAAM,CAQlB;IAED;;;OAGG;IACH,cAFa,MAAM,CAQlB;IAED;;;OAGG;IACH,gBAFa,MAAM,CAUlB;IAED;;;OAGG;IACH,gBAFa,MAAM,CAUlB;IAED;;;OAGG;IACH,cAFa,MAAM,CAQlB;IAED;;;OAGG;IACH,gBAFa,MAAM,CAQlB;IAED;;;OAGG;IACH,gBAFa,MAAM,CAQlB;IAED;;;;;OAKG;IACH,4BAFW,UAAU,sBAFV,MAAM,UACN,MAAM,QAOhB;IAED;;;;;OAKG;IACH,6BAFW,WAAW,sBAFX,MAAM,UACN,MAAM,QAOhB;IAED;;;;;OAKG;IACH,6BAFW,WAAW,GAAC,MAAM,EAAE,GAAC,SAAS,CAAC,MAAM,CAAC,sBAFtC,MAAM,UACN,MAAM,QAOhB;IAED;;;;;OAKG;IACH,2BAFW,SAAS,sBAFT,MAAM,UACN,MAAM,QAOhB;IAED;;;;;OAKG;IACH,4BAFW,UAAU,sBAFV,MAAM,UACN,MAAM,QAOhB;IAED;;;;;OAKG;IACH,4BAFW,UAAU,sBAFV,MAAM,UACN,MAAM,QAOhB;IAED;;;;;OAKG;IACH,8BAFW,YAAY,GAAC,MAAM,EAAE,sBAFrB,MAAM,UACN,MAAM,QAOhB;IAED;;;;;OAKG;IACH,8BAFW,YAAY,sBAFZ,MAAM,UACN,MAAM,QAOhB;IAED;;;;;OAKG;IACH,0BAFW,YAAY,GAAC,MAAM,EAAE,iBAFrB,MAAM,UACN,MAAM,QAUhB;IAED;;;OAGG;IACH,oBAFW,MAAM,QAMhB;IAED;;;OAGG;IACH,oBAFW,MAAM,QAShB;IAED;;;OAGG;IACH,oBAFW,MAAM,QAShB;IAED;;;OAGG;IACH,iBAFW,MAAM,QAShB;IAED;;;OAGG;IACH,kBAFW,MAAM,QAShB;IAED;;;OAGG;IACH,kBAFW,MAAM,QAShB;IAED;;;;;OAKG;IACH,uBAJW,SAAS,GAAC,MAAM,EAAE,GAAC,SAAS,CAAC,MAAM,CAAC,iBACpC,MAAM,UACN,MAAM,QAYhB;IAED;;;;;OAKG;IACH,wBAJW,UAAU,GAAC,MAAM,EAAE,GAAC,SAAS,CAAC,MAAM,CAAC,iBACrC,MAAM,UACN,MAAM,QAYhB;IAED;;;;;OAKG;IACH,wBAJW,UAAU,GAAC,MAAM,EAAE,GAAC,SAAS,CAAC,MAAM,CAAC,iBACrC,MAAM,UACN,MAAM,QAYhB;IAED;;;OAGG;IACH,kBAFW,MAAM,QAShB;IAED;;;;;OAKG;IACH,wBAJW,UAAU,GAAC,MAAM,EAAE,iBACnB,MAAM,UACN,MAAM,QAQhB;IAED;;;OAGG;IACH,mBAFW,MAAM,QAShB;IAED;;;OAGG;IACH,qBAFW,MAAM,QAShB;IAED;;;OAGG;IACH,qBAFW,MAAM,QAShB;IAED;;;;;OAKG;IACH,yBAJW,WAAW,GAAC,MAAM,EAAE,iBACpB,MAAM,UACN,MAAM,QAQhB;IAED;;;OAGG;IACH,mBAFW,MAAM,QAQhB;IAED;;;OAGG;IACH,qBAFW,MAAM,QAgBhB;IAED;;;OAGG;IACH,qBAFW,MAAM,QAgBhB;IAED;;;;;;OAMG;IACH,oBAFW,MAAM,QAuBhB;IAED;;;OAGG;IACH,eAFa,MAAM,CAqBlB;IAED;;;OAGG;IACH,mBAFW,MAAM,QAShB;IAED;;;OAGG;IACH,qBAFW,MAAM,QAShB;IAED;;;OAGG;IACH,qBAFW,MAAM,QAShB;IAED;;;;;OAKG;IACH,yBAJW,WAAW,GAAC,MAAM,EAAE,GAAC,SAAS,CAAC,MAAM,CAAC,iBACtC,MAAM,UACN,MAAM,QAYhB;IAED;;;;;OAKG;IACH,kBAJW,UAAU,GAAC,iBAAiB,iBAC5B,MAAM,UACN,MAAM,QAgChB;IAED;;;;;OAKG;IACH,uBAJW,UAAU,sBACV,MAAM,UACN,MAAM,QAiBhB;IAED;;;OAGG;IACH,wBAFW,MAAM,QAqFhB;IAED;;;OAGG;IACH,kBAFa,MAAM,CAuElB;IAED;;;;;;;;OAQG;IACH,yBAFW,MAAM,QAuBhB;IAED;;;;;;;;;OASG;IACH,4BAJW,MAAM,oBACN,OAAO,GACL,MAAM,CAoBlB;IAED;;;;OAIG;IACH,YAFY,MAAM,CAIjB;IAED;;;;;;;;;;;OAWG;IACH,eAFY,MAAM,CAcjB;IAkJL;;;OAGG;IACH,yBAFU,OAAO,CAEoB;CANpC;2BAl1C0B,iBAAiB"}
|
|
@@ -33,6 +33,7 @@ const DEFAULT_INITIAL_SIZE = 1024;
|
|
|
33
33
|
* Utility for reading/writing binary data.
|
|
34
34
|
* Mostly useful for serialization/deserialization tasks.
|
|
35
35
|
* The buffer is dynamically resized, so you do not need to manage the size manually.
|
|
36
|
+
* It is useful to think of this structure as a "stream".
|
|
36
37
|
*
|
|
37
38
|
* @example
|
|
38
39
|
* const buffer = new BinaryBuffer();
|
|
@@ -51,7 +52,7 @@ export class BinaryBuffer {
|
|
|
51
52
|
|
|
52
53
|
/**
|
|
53
54
|
* Default is little-endian as most platforms operate in little-endian
|
|
54
|
-
* The reason this is fixed is to ensure cross-platform compatibility
|
|
55
|
+
* The reason this is fixed is to ensure cross-platform compatibility as endianness in JavaScript is platform-dependent.
|
|
55
56
|
* @see https://en.wikipedia.org/wiki/Endianness
|
|
56
57
|
* @type {EndianType|boolean}
|
|
57
58
|
*/
|
|
@@ -86,21 +87,23 @@ export class BinaryBuffer {
|
|
|
86
87
|
capacity = DEFAULT_INITIAL_SIZE;
|
|
87
88
|
|
|
88
89
|
/**
|
|
89
|
-
*
|
|
90
|
+
* Raw underlying bytes attached to the buffer, note that this is managed by the `BinaryBuffer` and can grow/shrink as needed.
|
|
91
|
+
* @see setCapacity
|
|
92
|
+
* @see trim
|
|
90
93
|
* @type {ArrayBuffer}
|
|
91
94
|
* @private
|
|
92
95
|
*/
|
|
93
96
|
data = new ArrayBuffer(DEFAULT_INITIAL_SIZE);
|
|
94
97
|
|
|
95
98
|
/**
|
|
96
|
-
*
|
|
99
|
+
* Bound to the {@link data} buffer, do not modify directly.
|
|
97
100
|
* @type {DataView}
|
|
98
101
|
* @private
|
|
99
102
|
*/
|
|
100
103
|
dataView = new DataView(this.data);
|
|
101
104
|
|
|
102
105
|
/**
|
|
103
|
-
*
|
|
106
|
+
* Bound to the {@link data} buffer, do not modify directly.
|
|
104
107
|
* @type {Uint8Array}
|
|
105
108
|
* @private
|
|
106
109
|
*/
|
|
@@ -122,6 +125,10 @@ export class BinaryBuffer {
|
|
|
122
125
|
}
|
|
123
126
|
|
|
124
127
|
/**
|
|
128
|
+
* Sets {@link capacity} to the size of the input data.
|
|
129
|
+
* Sets {@link position} to 0.
|
|
130
|
+
*
|
|
131
|
+
* Note: if you write to the buffer past the size of the input data {@link ArrayBuffer} - bound data will be re-allocated.
|
|
125
132
|
* @param {ArrayBuffer} data
|
|
126
133
|
*/
|
|
127
134
|
fromArrayBuffer(data) {
|
|
@@ -137,7 +144,8 @@ export class BinaryBuffer {
|
|
|
137
144
|
}
|
|
138
145
|
|
|
139
146
|
/**
|
|
140
|
-
* Set capacity to contain data only up to current position
|
|
147
|
+
* Set capacity to contain data only up to the current `position`.
|
|
148
|
+
* This will re-allocate the `data` buffer if necessary.
|
|
141
149
|
* @returns {BinaryBuffer}
|
|
142
150
|
*/
|
|
143
151
|
trim() {
|
|
@@ -147,8 +155,24 @@ export class BinaryBuffer {
|
|
|
147
155
|
}
|
|
148
156
|
|
|
149
157
|
/**
|
|
158
|
+
* Advance `position`(read/write cursor) a certain number of bytes forward.
|
|
159
|
+
*
|
|
160
|
+
* @param {number} byte_count
|
|
161
|
+
*/
|
|
162
|
+
skip(byte_count) {
|
|
163
|
+
assert.isNonNegativeInteger(byte_count, 'byte_count');
|
|
164
|
+
|
|
165
|
+
this.position += byte_count;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* This will re-allocate {@link data} buffer if necessary.
|
|
170
|
+
* Note that all data is retained.
|
|
171
|
+
* Cannot shink past the current `position`.
|
|
150
172
|
*
|
|
151
173
|
* @param {number} capacity
|
|
174
|
+
* @throws {Error} if requested capacity is less than current `position`
|
|
175
|
+
*
|
|
152
176
|
*/
|
|
153
177
|
setCapacity(capacity) {
|
|
154
178
|
assert.isNonNegativeInteger(capacity, 'capacity');
|
|
@@ -157,6 +181,11 @@ export class BinaryBuffer {
|
|
|
157
181
|
throw new Error(`Attempting to set capacity(=${capacity}) below current position(=${this.position})`);
|
|
158
182
|
}
|
|
159
183
|
|
|
184
|
+
if (this.capacity === capacity) {
|
|
185
|
+
// already the right capacity
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
|
|
160
189
|
const oldData = this.__data_uint8;
|
|
161
190
|
const newData = new Uint8Array(capacity);
|
|
162
191
|
|
|
@@ -768,22 +797,23 @@ export class BinaryBuffer {
|
|
|
768
797
|
* Compact encoding scheme, if the value is 127 or less - only one byte will be used, if the value is 16383 or less - two bytes will be used, etc.
|
|
769
798
|
* NOTE: uses 7-bit encoding with 1 bit used for carry-over flag.
|
|
770
799
|
* NOTE: explicitly a little-endian format, {@link endianness} is ignored.
|
|
771
|
-
* @param {number} value
|
|
800
|
+
* @param {number} value must be an unsigned integer
|
|
772
801
|
*/
|
|
773
802
|
writeUintVar(value) {
|
|
774
803
|
assert.isNonNegativeInteger(value, 'value');
|
|
775
804
|
assert.ok(value <= MAX_SAFE_UINT_VAR, `value=[${value}] exceeds maximum safe limit[=${MAX_SAFE_UINT_VAR}]`);
|
|
776
805
|
|
|
777
806
|
let first = true;
|
|
807
|
+
let _v = value;
|
|
778
808
|
|
|
779
|
-
while (first ||
|
|
809
|
+
while (first || _v !== 0) {
|
|
780
810
|
first = false;
|
|
781
811
|
|
|
782
|
-
let lower7bits = (
|
|
812
|
+
let lower7bits = (_v & 0x7f);
|
|
783
813
|
|
|
784
|
-
|
|
814
|
+
_v >>= 7;
|
|
785
815
|
|
|
786
|
-
if (
|
|
816
|
+
if (_v > 0) {
|
|
787
817
|
//write carry-over flag
|
|
788
818
|
lower7bits |= 128;
|
|
789
819
|
}
|
|
@@ -940,8 +970,8 @@ export class BinaryBuffer {
|
|
|
940
970
|
* @param {string} string
|
|
941
971
|
*/
|
|
942
972
|
writeUTF8String(string) {
|
|
943
|
-
|
|
944
|
-
|
|
973
|
+
// Adapted from https://github.com/samthor/fast-text-encoding/blob/master/text.js
|
|
974
|
+
// Original license is Apache 2.0
|
|
945
975
|
|
|
946
976
|
if (string === null) {
|
|
947
977
|
//mark NULL
|
|
@@ -1014,7 +1044,7 @@ export class BinaryBuffer {
|
|
|
1014
1044
|
target[cursor++] = ((value >> 12) & 0x3f) | 0x80;
|
|
1015
1045
|
target[cursor++] = ((value >> 6) & 0x3f) | 0x80;
|
|
1016
1046
|
} else {
|
|
1017
|
-
// FIXME: do we care
|
|
1047
|
+
// FIXME: do we care?
|
|
1018
1048
|
continue;
|
|
1019
1049
|
}
|
|
1020
1050
|
|
|
@@ -1137,7 +1167,7 @@ export class BinaryBuffer {
|
|
|
1137
1167
|
*
|
|
1138
1168
|
* @see https://en.wikipedia.org/wiki/ASCII
|
|
1139
1169
|
*
|
|
1140
|
-
* @param {number} length maximum number of
|
|
1170
|
+
* @param {number} length maximum number of characters to read. If `null_terminated` flag is on, resulting string might be shorter than `length`
|
|
1141
1171
|
* @param {boolean} [null_terminated] if true will stop reading when encountering 0 byte value character (NULL)
|
|
1142
1172
|
* @returns {string}
|
|
1143
1173
|
*/
|
|
@@ -1151,6 +1181,7 @@ export class BinaryBuffer {
|
|
|
1151
1181
|
const code = this.readUint8();
|
|
1152
1182
|
|
|
1153
1183
|
if (null_terminated && code === 0) {
|
|
1184
|
+
// null-termination
|
|
1154
1185
|
break;
|
|
1155
1186
|
}
|
|
1156
1187
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"m4_multiply.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/mat4/m4_multiply.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"m4_multiply.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/mat4/m4_multiply.js"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,iCAJW,MAAM,EAAE,GAAC,SAAS,CAAC,MAAM,CAAC,GAAC,YAAY,KACvC,MAAM,EAAE,GAAC,SAAS,CAAC,MAAM,CAAC,GAAC,YAAY,KACvC,MAAM,EAAE,GAAC,SAAS,CAAC,MAAM,CAAC,GAAC,YAAY,QAwEjD"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { assert } from "../../../assert.js";
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Multiplies two 4x4 matrices
|
|
3
5
|
*
|
|
@@ -6,6 +8,14 @@
|
|
|
6
8
|
* @param {number[]|ArrayLike<number>|Float32Array} b the second operand
|
|
7
9
|
*/
|
|
8
10
|
export function m4_multiply(out, a, b) {
|
|
11
|
+
assert.isArrayLike(out, 'out');
|
|
12
|
+
|
|
13
|
+
assert.isArrayLike(a, 'a');
|
|
14
|
+
assert.greaterThanOrEqual(a.length, 16, 'a.length');
|
|
15
|
+
|
|
16
|
+
assert.isArrayLike(b, 'b');
|
|
17
|
+
assert.greaterThanOrEqual(b.length, 16, 'b.length');
|
|
18
|
+
|
|
9
19
|
// Adapted from gl-matrix
|
|
10
20
|
|
|
11
21
|
const a00 = a[0],
|
|
@@ -65,4 +75,6 @@ export function m4_multiply(out, a, b) {
|
|
|
65
75
|
out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;
|
|
66
76
|
out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;
|
|
67
77
|
out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;
|
|
78
|
+
|
|
79
|
+
assert.greaterThanOrEqual(out.length, 16, 'out.length'); // check at the end to avoid having to explicitly deal with the `Array` type
|
|
68
80
|
}
|