@woosh/meep-engine 2.117.7 → 2.117.9
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/build/bundle-worker-terrain.js +1 -1
- package/build/meep.cjs +54 -16
- package/build/meep.min.js +1 -1
- package/build/meep.module.js +54 -16
- package/package.json +1 -1
- package/src/core/collection/array/typed/array_buffer_copy.d.ts.map +1 -1
- package/src/core/collection/array/typed/array_buffer_copy.js +7 -7
- package/src/core/collection/array/typed/isTypedArray.d.ts +1 -1
- package/src/core/collection/array/typed/isTypedArray.d.ts.map +1 -1
- package/src/core/collection/array/typed/isTypedArray.js +27 -10
- package/src/core/collection/array/typed/is_array_buffer_equals.d.ts +11 -0
- package/src/core/collection/array/typed/is_array_buffer_equals.d.ts.map +1 -0
- package/src/core/collection/array/typed/is_array_buffer_equals.js +45 -0
- package/src/core/collection/array/typed/is_typed_array_equals.d.ts.map +1 -1
- package/src/core/collection/array/typed/is_typed_array_equals.js +5 -6
- package/src/core/collection/array/typed/largest_common_alignment_uint32.d.ts +9 -0
- package/src/core/collection/array/typed/largest_common_alignment_uint32.d.ts.map +1 -0
- package/src/core/collection/array/typed/largest_common_alignment_uint32.js +29 -0
- package/src/engine/graphics/render/frame_graph/RenderPass.d.ts +7 -3
- package/src/engine/graphics/render/frame_graph/RenderPass.d.ts.map +1 -1
- package/src/engine/graphics/render/frame_graph/RenderPass.js +5 -1
- package/src/engine/graphics/render/frame_graph/sample/deferred/CopyPass.d.ts +1 -1
- package/src/engine/graphics/render/frame_graph/sample/deferred/CopyPass.d.ts.map +1 -1
- package/src/engine/graphics/render/frame_graph/sample/deferred/GBufferDrawPass.d.ts +1 -1
- package/src/engine/graphics/render/frame_graph/sample/deferred/GBufferDrawPass.d.ts.map +1 -1
- package/src/engine/graphics/render/frame_graph/sample/deferred/LightingPass.d.ts +1 -1
- package/src/engine/graphics/render/frame_graph/sample/deferred/LightingPass.d.ts.map +1 -1
- package/src/engine/graphics/render/frame_graph/sample/meep-v1/ColorDepthPass.d.ts +4 -3
- package/src/engine/graphics/render/frame_graph/sample/meep-v1/ColorDepthPass.d.ts.map +1 -1
- package/src/engine/graphics/render/frame_graph/sample/meep-v1/ColorDepthPass.js +3 -0
- package/src/engine/graphics/render/frame_graph/sample/meep-v1/OutlinePass.d.ts +1 -1
- package/src/engine/graphics/render/frame_graph/sample/meep-v1/OutlinePass.d.ts.map +1 -1
- package/src/engine/graphics/render/frame_graph/sample/meep-v1/SSAOPass.d.ts +1 -1
- package/src/engine/graphics/render/frame_graph/sample/meep-v1/SSAOPass.d.ts.map +1 -1
|
@@ -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]),a=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),r=new Array(576);t(r);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,a){this.static_tree=t,this.extra_bits=e,this.extra_base=i,this.elems=n,this.max_length=a,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 a,r,s=0;for(a=1;a<=15;a++)n[a]=s=s+i[a-1]<<1;for(r=0;r<=e;r++){let e=t[2*r+1];0!==e&&(t[2*r]=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},x=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},A=(t,e,i,n)=>{const a=2*e,r=2*i;return t[a]<t[r]||t[a]===t[r]&&n[e]<=n[i]},U=(t,e,i)=>{const n=t.heap[i];let a=i<<1;for(;a<=t.heap_len&&(a<t.heap_len&&A(e,t.heap[a+1],t.heap[a],t.depth)&&a++,!A(e,n,t.heap[a],t.depth));)t.heap[i]=t.heap[a],i=a,a<<=1;t.heap[i]=n},E=(t,n,a)=>{let r,s,o,c,f=0;if(0!==t.last_lit)do{r=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===r?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)),r--,o=w(r),m(t,o,a),c=i[o],0!==c&&(r-=d[o],b(t,r,c)))}while(f<t.last_lit);m(t,256,n)},I=(t,e)=>{const i=e.dyn_tree,n=e.stat_desc.static_tree,a=e.stat_desc.has_stree,r=e.stat_desc.elems;let s,o,h,l=-1;for(t.heap_len=0,t.heap_max=573,s=0;s<r;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--,a&&(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=r;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,a=e.stat_desc.static_tree,r=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),r&&(t.static_len+=_*(a[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,a,r=-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++)a=s,s=e[2*(n+1)+1],++o<h&&a===s||(o<l?t.bl_tree[2*a]+=o:0!==a?(a!==r&&t.bl_tree[2*a]++,t.bl_tree[32]++):o<=10?t.bl_tree[34]++:t.bl_tree[36]++,o=0,r=a,0===s?(h=138,l=3):a===s?(h=6,l=3):(h=7,l=4))},S=(t,e,i)=>{let n,a,r=-1,s=e[1],o=0,h=7,l=4;for(0===s&&(h=138,l=3),n=0;n<=i;n++)if(a=s,s=e[2*(n+1)+1],!(++o<h&&a===s)){if(o<l)do{m(t,a,t.bl_tree)}while(0!=--o);else 0!==a?(a!==r&&(m(t,a,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,r=a,0===s?(h=138,l=3):a===s?(h=6,l=3):(h=7,l=4)}};let T=!1;const C=(t,e,i,n)=>{b(t,0+(n?1:0),3),((t,e,i,n)=>{x(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=>{T||((()=>{let t,a,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(a=0;a<=15;a++)b[a]=0;for(t=0;t<=143;)r[2*t+1]=8,t++,b[8]++;for(;t<=255;)r[2*t+1]=9,t++,b[9]++;for(;t<=279;)r[2*t+1]=7,t++,b[7]++;for(;t<=287;)r[2*t+1]=8,t++,b[8]++;for(k(r,287,b),t=0;t<30;t++)s[2*t+1]=5,s[2*t]=y(t,5);f=new c(r,e,257,286,15),u=new c(s,i,0,30,15),_=new c(new Array(0),n,0,19,7)})(),T=!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:C,_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*a[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?C(t,e,i,n):4===t.strategy||h===o?(b(t,2+(n?1:0),3),E(t,r,s)):(b(t,4+(n?1:0),3),((t,e,i,n)=>{let r;for(b(t,e-257,5),b(t,i-1,5),b(t,n-4,4),r=0;r<n;r++)b(t,t.bl_tree[2*a[r]+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&&x(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,r),(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 a=65535&t|0,r=t>>>16&65535|0,s=0;for(;0!==i;){s=i>2e3?2e3:i,i-=s;do{a=a+e[n++]|0,r=r+a|0}while(--s);a%=65521,r%=65521}return a|r<<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 a=B,r=n+i;t^=-1;for(let i=n;i<r;i++)t=t>>>8^a[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:V,_tr_tally:M,_tr_align:$}=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:at,Z_UNKNOWN:rt,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)=>{V(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 a=t.avail_in;return a>n&&(a=n),0===a?0:(t.avail_in-=a,e.set(t.input.subarray(t.next_in,t.next_in+a),i),1===t.state.wrap?t.adler=F(t.adler,e,a,i):2===t.state.wrap&&(t.adler=N(t.adler,e,a,i)),t.next_in+=a,t.total_in+=a,a)},kt=(t,e)=>{let i,n,a=t.max_chain_length,r=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[r+s-1],_=l[r+s];t.prev_length>=t.good_match&&(a>>=2),o>t.lookahead&&(o=t.lookahead);do{if(i=e,l[i+s]===_&&l[i+s-1]===u&&l[i]===l[r]&&l[++i]===l[r+1]){r+=2,i++;do{}while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<f);if(n=ot-(f-r),r=f-ot,n>s){if(t.match_start=e,s=n,n>=o)break;u=l[r+s-1],_=l[r+s]}}}while((e=c[e&d])>h&&0!=--a);return s<=t.lookahead?s:t.lookahead},vt=t=>{const e=t.w_size;let i,n,a,r,s;do{if(r=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{a=t.head[--i],t.head[i]=a>=e?a-e:0}while(--n);n=e,i=n;do{a=t.prev[--i],t.prev[i]=a>=e?a-e:0}while(--n);r+=e}if(0===t.strm.avail_in)break;if(n=yt(t.strm,t.window,t.strstart+t.lookahead,r),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)},xt=(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},At=(t,e)=>{let i,n,a;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){a=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<=a&&(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,a){this.good_length=t,this.max_lazy=e,this.nice_length=i,this.max_chain=n,this.func=a}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,xt),new Ut(4,5,16,8,xt),new Ut(4,6,32,32,xt),new Ut(4,4,16,16,At),new Ut(8,16,32,32,At),new Ut(8,16,128,128,At),new Ut(8,32,128,256,At),new Ut(32,128,258,1024,At),new Ut(32,258,258,4096,At)];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=rt;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},Tt=(t,e,i,n,a,r)=>{if(!t)return q;let s=1;if(e===Q&&(e=6),n<0?(s=0,n=-n):n>15&&(s=2,n-=16),a<1||a>9||i!==st||n<8||n>15||e<0||e>9||r<0||r>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=a+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<<a+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=r,o.method=i,St(t)};var Ct={deflateInit:(t,e)=>Tt(t,e,st,15,8,at),deflateInit2:Tt,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 a=t.state;if(!t.output||!t.input&&0!==t.avail_in||a.status===ct&&e!==G)return ft(t,0===t.avail_out?J:q);a.strm=t;const r=a.last_flush;if(a.last_flush=e,42===a.status)if(2===a.wrap)t.adler=0,bt(a,31),bt(a,139),bt(a,8),a.gzhead?(bt(a,(a.gzhead.text?1:0)+(a.gzhead.hcrc?2:0)+(a.gzhead.extra?4:0)+(a.gzhead.name?8:0)+(a.gzhead.comment?16:0)),bt(a,255&a.gzhead.time),bt(a,a.gzhead.time>>8&255),bt(a,a.gzhead.time>>16&255),bt(a,a.gzhead.time>>24&255),bt(a,9===a.level?2:a.strategy>=et||a.level<2?4:0),bt(a,255&a.gzhead.os),a.gzhead.extra&&a.gzhead.extra.length&&(bt(a,255&a.gzhead.extra.length),bt(a,a.gzhead.extra.length>>8&255)),a.gzhead.hcrc&&(t.adler=N(t.adler,a.pending_buf,a.pending,0)),a.gzindex=0,a.status=69):(bt(a,0),bt(a,0),bt(a,0),bt(a,0),bt(a,0),bt(a,9===a.level?2:a.strategy>=et||a.level<2?4:0),bt(a,3),a.status=dt);else{let e=st+(a.w_bits-8<<4)<<8,i=-1;i=a.strategy>=et||a.level<2?0:a.level<6?1:6===a.level?2:3,e|=i<<6,0!==a.strstart&&(e|=32),e+=31-e%31,a.status=dt,mt(a,e),0!==a.strstart&&(mt(a,t.adler>>>16),mt(a,65535&t.adler)),t.adler=1}if(69===a.status)if(a.gzhead.extra){for(i=a.pending;a.gzindex<(65535&a.gzhead.extra.length)&&(a.pending!==a.pending_buf_size||(a.gzhead.hcrc&&a.pending>i&&(t.adler=N(t.adler,a.pending_buf,a.pending-i,i)),wt(t),i=a.pending,a.pending!==a.pending_buf_size));)bt(a,255&a.gzhead.extra[a.gzindex]),a.gzindex++;a.gzhead.hcrc&&a.pending>i&&(t.adler=N(t.adler,a.pending_buf,a.pending-i,i)),a.gzindex===a.gzhead.extra.length&&(a.gzindex=0,a.status=73)}else a.status=73;if(73===a.status)if(a.gzhead.name){i=a.pending;do{if(a.pending===a.pending_buf_size&&(a.gzhead.hcrc&&a.pending>i&&(t.adler=N(t.adler,a.pending_buf,a.pending-i,i)),wt(t),i=a.pending,a.pending===a.pending_buf_size)){n=1;break}n=a.gzindex<a.gzhead.name.length?255&a.gzhead.name.charCodeAt(a.gzindex++):0,bt(a,n)}while(0!==n);a.gzhead.hcrc&&a.pending>i&&(t.adler=N(t.adler,a.pending_buf,a.pending-i,i)),0===n&&(a.gzindex=0,a.status=91)}else a.status=91;if(91===a.status)if(a.gzhead.comment){i=a.pending;do{if(a.pending===a.pending_buf_size&&(a.gzhead.hcrc&&a.pending>i&&(t.adler=N(t.adler,a.pending_buf,a.pending-i,i)),wt(t),i=a.pending,a.pending===a.pending_buf_size)){n=1;break}n=a.gzindex<a.gzhead.comment.length?255&a.gzhead.comment.charCodeAt(a.gzindex++):0,bt(a,n)}while(0!==n);a.gzhead.hcrc&&a.pending>i&&(t.adler=N(t.adler,a.pending_buf,a.pending-i,i)),0===n&&(a.status=lt)}else a.status=lt;if(a.status===lt&&(a.gzhead.hcrc?(a.pending+2>a.pending_buf_size&&wt(t),a.pending+2<=a.pending_buf_size&&(bt(a,255&t.adler),bt(a,t.adler>>8&255),t.adler=0,a.status=dt)):a.status=dt),0!==a.pending){if(wt(t),0===t.avail_out)return a.last_flush=-1,X}else if(0===t.avail_in&&ut(e)<=ut(r)&&e!==G)return ft(t,J);if(a.status===ct&&0!==t.avail_in)return ft(t,J);if(0!==t.avail_in||0!==a.lookahead||e!==H&&a.status!==ct){let i=a.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})(a,e):a.strategy===it?((t,e)=>{let i,n,a,r;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&&(a=t.strstart-1,n=s[a],n===s[++a]&&n===s[++a]&&n===s[++a])){r=t.strstart+ot;do{}while(n===s[++a]&&n===s[++a]&&n===s[++a]&&n===s[++a]&&n===s[++a]&&n===s[++a]&&n===s[++a]&&n===s[++a]&&a<r);t.match_length=ot-(r-a),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})(a,e):Et[a.level].func(a,e);if(3!==i&&4!==i||(a.status=ct),1===i||3===i)return 0===t.avail_out&&(a.last_flush=-1),X;if(2===i&&(e===P?$(a):e!==K&&(O(a,0,0,!1),e===j&&(_t(a.head),0===a.lookahead&&(a.strstart=0,a.block_start=0,a.insert=0))),wt(t),0===t.avail_out))return a.last_flush=-1,X}return e!==G?X:a.wrap<=0?Y:(2===a.wrap?(bt(a,255&t.adler),bt(a,t.adler>>8&255),bt(a,t.adler>>16&255),bt(a,t.adler>>24&255),bt(a,255&t.total_in),bt(a,t.total_in>>8&255),bt(a,t.total_in>>16&255),bt(a,t.total_in>>24&255)):(mt(a,t.adler>>>16),mt(a,65535&t.adler)),wt(t),a.wrap>0&&(a.wrap=-a.wrap),0!==a.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,a=n.wrap;if(2===a||1===a&&42!==n.status||n.lookahead)return q;if(1===a&&(t.adler=F(t.adler,e,i,0)),n.wrap=0,i>=n.w_size){0===a&&(_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 r=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=r,n.wrap=a,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,a=t.length;e<a;e++){let a=t[e];i.set(a,n),n+=a.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,a,r,s=t.length,o=0;for(a=0;a<s;a++)i=t.charCodeAt(a),55296==(64512&i)&&a+1<s&&(n=t.charCodeAt(a+1),56320==(64512&n)&&(i=65536+(i-55296<<10)+(n-56320),a++)),o+=i<128?1:i<2048?2:i<65536?3:4;for(e=new Uint8Array(o),r=0,a=0;r<o;a++)i=t.charCodeAt(a),55296==(64512&i)&&a+1<s&&(n=t.charCodeAt(a+1),56320==(64512&n)&&(i=65536+(i-55296<<10)+(n-56320),a++)),i<128?e[r++]=i:i<2048?(e[r++]=192|i>>>6,e[r++]=128|63&i):i<65536?(e[r++]=224|i>>>12,e[r++]=128|i>>>6&63,e[r++]=128|63&i):(e[r++]=240|i>>>18,e[r++]=128|i>>>12&63,e[r++]=128|i>>>6&63,e[r++]=128|63&i);return e},buf2string:(t,e)=>{let i,n;const a=e||t.length,r=new Array(2*a);for(n=0,i=0;i<a;){let e=t[i++];if(e<128){r[n++]=e;continue}let s=Nt[e];if(s>4)r[n++]=65533,i+=s-1;else{for(e&=2===s?31:3===s?15:7;s>1&&i<a;)e=e<<6|63&t[i++],s--;s>1?r[n++]=65533:e<65536?r[n++]=e:(e-=65536,r[n++]=55296|e>>10&1023,r[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})(r,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:Vt,Z_FULL_FLUSH:Mt,Z_FINISH:$t,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=Ct.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(i!==Ht)throw new Error(D[i]);if(e.header&&Ct.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=Ct.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 a,r;if(this.ended)return!1;for(r=e===~~e?e:!0===e?$t: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),(r===Vt||r===Mt)&&i.avail_out<=6)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else{if(a=Ct.deflate(i,r),a===Pt)return i.next_out>0&&this.onData(i.output.subarray(0,i.next_out)),a=Ct.deflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===Ht;if(0!==i.avail_out){if(r>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,a,r,s,o,h,l,d,c,f,u,_,p,w,g,b,m,y,k,v,x,A,U;const E=t.state;i=t.next_in,A=t.input,n=i+(t.avail_in-5),a=t.next_out,U=t.output,r=a-(e-t.avail_out),s=a+(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+=A[i++]<<u,u+=8,f+=A[i++]<<u,u+=8),b=_[f&w];e:for(;;){if(m=b>>>24,f>>>=m,u-=m,m=b>>>16&255,0===m)U[a++]=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+=A[i++]<<u,u+=8),y+=f&(1<<m)-1,f>>>=m,u-=m),u<15&&(f+=A[i++]<<u,u+=8,f+=A[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+=A[i++]<<u,u+=8,u<m&&(f+=A[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=a-r,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,x=c,0===d){if(v+=h-m,m<y){y-=m;do{U[a++]=c[v++]}while(--m);v=a-k,x=U}}else if(d<m){if(v+=h+d-m,m-=d,m<y){y-=m;do{U[a++]=c[v++]}while(--m);if(v=0,d<y){m=d,y-=m;do{U[a++]=c[v++]}while(--m);v=a-k,x=U}}}else if(v+=d-m,m<y){y-=m;do{U[a++]=c[v++]}while(--m);v=a-k,x=U}for(;y>2;)U[a++]=x[v++],U[a++]=x[v++],U[a++]=x[v++],y-=3;y&&(U[a++]=x[v++],y>1&&(U[a++]=x[v++]))}else{v=a-k;do{U[a++]=U[v++],U[a++]=U[v++],U[a++]=U[v++],y-=3}while(y>2);y&&(U[a++]=U[v++],y>1&&(U[a++]=U[v++]))}break}}break}}while(i<n&&a<s);y=u>>3,i-=y,u-=y<<3,f&=(1<<u)-1,t.next_in=i,t.next_out=a,t.avail_in=i<n?n-i+5:5-(i-n),t.avail_out=a<s?s-a+257:257-(a-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,a,r,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,x=0,A=0,U=null,E=0;const I=new Uint16Array(16),z=new Uint16Array(16);let S,T,C,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 a[r++]=20971520,a[r++]=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),A=0,w=0,p=g,u=r,y=m,k=0,c=-1,x=1<<m,f=x-1,1===t&&x>852||2===t&&x>592)return 1;for(;;){S=p-k,s[w]<_?(T=0,C=s[w]):s[w]>_?(T=R[F+s[w]],C=U[E+s[w]]):(T=96,C=0),l=1<<p-k,d=1<<y,g=d;do{d-=l,a[u+(A>>k)+d]=S<<24|T<<16|C|0}while(0!==d);for(l=1<<p-1;A&l;)l>>=1;if(0!==l?(A&=l-1,A+=l):A=0,w++,0==--I[p]){if(p===b)break;p=e[i+s[w]]}if(p>m&&(A&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(x+=1<<y,1===t&&x>852||2===t&&x>592)return 1;c=A&f,a[c]=m<<24|y<<16|u-r|0}}return 0!==A&&(a[u+A]=p-k<<24|64<<16|0),o.bits=m,0};const{Z_FINISH:ne,Z_BLOCK:ae,Z_TREES:re,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,xe,Ae=!0;const Ue=t=>{if(Ae){ve=new Int32Array(512),xe=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,xe,0,t.work,{bits:5}),Ae=!1}t.lencode=ve,t.lenbits=9,t.distcode=xe,t.distbits=5},Ee=(t,e,i,n)=>{let a;const r=t.state;return null===r.window&&(r.wsize=1<<r.wbits,r.wnext=0,r.whave=0,r.window=new Uint8Array(r.wsize)),n>=r.wsize?(r.window.set(e.subarray(i-r.wsize,i),0),r.wnext=0,r.whave=r.wsize):(a=r.wsize-r.wnext,a>n&&(a=n),r.window.set(e.subarray(i-n,i-n+a),r.wnext),(n-=a)?(r.window.set(e.subarray(i-n,i),0),r.wnext=n,r.whave=r.wsize):(r.wnext+=a,r.wnext===r.wsize&&(r.wnext=0),r.whave<r.wsize&&(r.whave+=a))),0};var Ie={inflateReset:me,inflateReset2:ye,inflateResetKeep:be,inflateInit:t=>ke(t,15),inflateInit2:ke,inflate:(t,e)=>{let i,n,a,r,s,o,h,l,d,c,f,u,_,p,w,g,b,m,y,k,v,x,A=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,a=t.output,h=t.avail_out,r=t.next_in,n=t.input,o=t.avail_in,l=i.hold,d=i.bits,c=o,f=h,x=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[r++]<<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[r++]<<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[r++]<<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[r++]<<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[r++]<<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(r,r+u),v)),512&i.flags&&(i.check=N(i.check,n,u,r)),o-=u,r+=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[r+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,r)),o-=u,r+=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[r+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,r)),o-=u,r+=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[r++]<<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[r++]<<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=r,t.avail_in=o,i.hold=l,i.bits=d,he;t.adler=i.check=1,i.mode=_e;case _e:if(e===ae||e===re)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[r++]<<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===re){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[r++]<<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===re)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;a.set(n.subarray(r,r+u),s),o-=u,r+=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[r++]<<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[r++]<<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},x=ie(0,i.lens,0,19,i.lencode,0,i.work,E),i.lenbits=E.bits,x){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(;A=i.lencode[l&(1<<i.lenbits)-1],w=A>>>24,g=A>>>16&255,b=65535&A,!(w<=d);){if(0===o)break t;o--,l+=n[r++]<<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[r++]<<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[r++]<<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[r++]<<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},x=ie(1,i.lens,0,i.nlen,i.lencode,0,i.work,E),i.lenbits=E.bits,x){t.msg="invalid literal/lengths set",i.mode=pe;break}if(i.distbits=6,i.distcode=i.distdyn,E={bits:i.distbits},x=ie(2,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,E),i.distbits=E.bits,x){t.msg="invalid distances set",i.mode=pe;break}if(i.mode=20,e===re)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=r,t.avail_in=o,i.hold=l,i.bits=d,Wt(t,f),s=t.next_out,a=t.output,h=t.avail_out,r=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;A=i.lencode[l&(1<<i.lenbits)-1],w=A>>>24,g=A>>>16&255,b=65535&A,!(w<=d);){if(0===o)break t;o--,l+=n[r++]<<d,d+=8}if(g&&0==(240&g)){for(m=w,y=g,k=b;A=i.lencode[k+((l&(1<<m+y)-1)>>m)],w=A>>>24,g=A>>>16&255,b=65535&A,!(m+w<=d);){if(0===o)break t;o--,l+=n[r++]<<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[r++]<<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(;A=i.distcode[l&(1<<i.distbits)-1],w=A>>>24,g=A>>>16&255,b=65535&A,!(w<=d);){if(0===o)break t;o--,l+=n[r++]<<d,d+=8}if(0==(240&g)){for(m=w,y=g,k=b;A=i.distcode[k+((l&(1<<m+y)-1)>>m)],w=A>>>24,g=A>>>16&255,b=65535&A,!(m+w<=d);){if(0===o)break t;o--,l+=n[r++]<<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[r++]<<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=a,_=s-i.offset,u=i.length;u>h&&(u=h),h-=u,i.length-=u;do{a[s++]=p[_++]}while(--u);0===i.length&&(i.mode=21);break;case 26:if(0===h)break t;a[s++]=i.length,h--,i.mode=21;break;case 27:if(i.wrap){for(;d<32;){if(0===o)break t;o--,l|=n[r++]<<d,d+=8}if(f-=h,t.total_out+=f,i.total+=f,f&&(t.adler=i.check=i.flags?N(i.check,a,f,s-f):F(i.check,a,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[r++]<<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:x=oe;break t;case pe:x=de;break t;case 31:return ce;default:return le}return t.next_out=s,t.avail_out=h,t.next_in=r,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,a,f,t.next_out-f):F(i.check,a,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)&&x===se&&(x=fe),x},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,a,r;return t&&t.state?(n=t.state,0!==n.wrap&&11!==n.mode?le:11===n.mode&&(a=1,a=F(a,e,i,0),a!==n.check)?de:(r=Ee(t,e,i,i),r?(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:Te,Z_FINISH:Ce,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,a=this.options.dictionary;let r,s,o;if(this.ended)return!1;for(s=e===~~e?e:!0===e?Ce:Te,"[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),r=Ie.inflate(i,s),r===Be&&a&&(r=Ie.inflateSetDictionary(i,a),r===Re?r=Ie.inflate(i,s):r===De&&(r=Be));i.avail_in>0&&r===Fe&&i.state.wrap>0&&0!==t[i.next_in];)Ie.inflateReset(i),r=Ie.inflate(i,s);switch(r){case Ne:case De:case Be:case Ze:return this.onEnd(r),this.ended=!0,!1}if(o=i.avail_out,i.next_out&&(0===i.avail_out||r===Fe))if("string"===this.options.to){let t=Dt.utf8border(i.output,i.next_out),e=i.next_out-t,a=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(a)}else this.onData(i.output.length===i.next_out?i.output:i.output.subarray(0,i.next_out));if(r!==Re||0!==o){if(r===Fe)return r=Ie.inflateEnd(this.strm),this.onEnd(r),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 Ve={Inflate:Le,inflate:Oe,inflateRaw:function(t,e){return(e=e||{}).raw=!0,Oe(t,e)},ungzip:Oe,constants:Z};const{Deflate:Me,deflate:$e,deflateRaw:He,gzip:Pe}=qt,{Inflate:je,inflate:Ge,inflateRaw:Ke,ungzip:Xe}=Ve;var Ye={Deflate:Me,deflate:$e,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 a=!1;this.appendText(t);const r=n[Symbol.iterator]();for(let t=r.next();!0!==t.done;t=r.next())a&&this.appendText(e),this.appendDescriptionOf(t.value),a=!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")}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"){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.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(!(Array.isArray(t)||(i=t,i instanceof Int8Array||i instanceof Uint8Array||i instanceof Uint8ClampedArray||i instanceof Int16Array||i instanceof Uint16Array||i instanceof Int32Array||i instanceof Uint32Array||i instanceof Float32Array||i instanceof Float64Array)))throw new Error(`expected ${e} to be an array-like structure, instead was something else (typeof ='${typeof t}')`);var i},ni.defined=function(t,e="value"){if(void 0===t)throw new Error(`${e} is 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.isFiniteNumber=function(t,e="value"){if(!Number.isFinite(t))throw new Error(`${e} must be a finite number, instead was ${t}`)},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 ai=!1,ri=!0;class si{endianness=ri;position=0;length=0;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.length=this.capacity,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,a){let r,s;0==(3&a)?(r=new Uint32Array(t,0,a>>>2),s=new Uint32Array(i,0,a>>>2)):0==(1&a)?(r=new Uint16Array(t,0,a>>>1),s=new Uint16Array(i,0,a>>>1)):(r=new Uint8Array(t,0,a),s=new Uint8Array(i,0,a)),s.set(r)}(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)}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,ri);return this.position+=2,t}readUint16BE(){const t=this.dataView.getUint16(this.position,ai);return this.position+=2,t}readUint24(){return this.endianness===ai?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,ri);return this.position+=4,t}readUint32BE(){const t=this.dataView.getUint32(this.position,ai);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])}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}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,ai),this.position=e}writeUint16LE(t){const e=this.position+2;this.ensureCapacity(e),this.dataView.setUint16(this.position,t,ri),this.position=e}writeUint16Array(t,e,i){for(let n=0;n<i;n++)this.writeUint16(t[e+n])}writeUint24(t){this.endianness===ai?this.writeUint24BE(t):this.writeUint24LE(t)}writeUint24BE(t){const e=this.position+3;this.ensureCapacity(e);const i=255&t,n=t>>8&255,a=t>>16&255;this.dataView.setUint8(this.position,a),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,a=t>>16&255;this.dataView.setUint8(this.position,i),this.dataView.setUint8(this.position+1,n),this.dataView.setUint8(this.position+2,a),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,ai),this.position=e}writeUint32LE(t){const e=this.position+4;this.ensureCapacity(e),this.dataView.setUint32(this.position,t,ri),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,a=this.position,r=a+i;if(this.ensureCapacity(r),0===e&&t.length===i)this.__data_uint8.set(t,a);else if("function"==typeof t.subarray)this.__data_uint8.set(t.subarray(e,n),a);else for(let n=0;n<i;n++)this.__data_uint8[a+n]=t[e+n];this.position=r}readBytes(t,e,i){const n=this.position,a=n+i,r=this.__data_uint8;i<128?function(t,e,i,n,a){let r,s,o;for(o=0;o<a;o++)r=e+o,s=n+o,i[s]=t[r]}(r,n,t,e,i):t.set(r.subarray(n,a),e),this.position=a}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 a=Math.max(32,i+(i>>1)+7);this.ensureCapacity(a+n);let r=this.__data_uint8,s=this.capacity;for(;e<i;){let a=t.charCodeAt(e++);if(a>=55296&&a<=56319){if(e<i){const i=t.charCodeAt(e);56320==(64512&i)&&(++e,a=((1023&a)<<10)+(1023&i)+65536)}if(a>=55296&&a<=56319)continue}if(n+4>s&&(this.ensureCapacity(n+4),s=this.capacity,r=this.__data_uint8),0!=(4294967168&a)){if(0==(4294965248&a))r[n++]=a>>6&31|192;else if(0==(4294901760&a))r[n++]=a>>12&15|224,r[n++]=a>>6&63|128;else{if(0!=(4292870144&a))continue;r[n++]=a>>18&7|240,r[n++]=a>>12&63|128,r[n++]=a>>6&63|128}r[n++]=63&a|128}else r[n++]=a}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,a=0;for(;n<this.capacity&&a<t;){const t=e[n++];let r;if(0===t)break;0==(128&t)?r=t:192==(224&t)?r=(31&t)<<6|63&e[n++]:224==(240&t)?r=(31&t)<<12|(63&e[n++])<<6|63&e[n++]:240==(248&t)&&(r=(7&t)<<18|(63&e[n++])<<12|(63&e[n++])<<6|63&e[n++],r>65535&&(r-=65536,i+=String.fromCharCode(r>>>10&1023|55296),a++,r=56320|1023&r)),a++,i+=String.fromCharCode(r)}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>255)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}static fromEndianness(t){const e=new si;return e.endianness=t,e}static fromArrayBuffer(t){const e=new si;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}}si.prototype.isBinaryBuffer=!0;const oi=new Uint32Array(256);for(let t=0;t<256;t++){let e=t;for(let t=0;t<8;t++)1&e?e=3988292384^e>>>1:e>>>=1;oi[t]=e}class hi{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 a=this.pixels;if(!a)throw new Error("pixel data is empty");if(i>=this.width||n>=this.height)throw new Error("x,y position out of bound");const r=this.colors*this.bitDepth/8*(n*this.width+i);let s,o,h,l;switch(this.colorType){case 0:s=a[r],o=s,h=s,l=255;break;case 2:s=a[r],o=a[r+1],h=a[r+2],l=255;break;case 3:l=255,null!=this.trns&&(l=this.trns[a[r]]);const t=3*a[r],e=this.palette;s=e[t],o=e[t+1],h=e[t+2];break;case 4:s=a[r],o=s,h=s,l=a[r+1];break;case 6:s=a[r],o=a[r+1],h=a[r+2],l=a[r+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,a=i+e;t[a]=n[i],t[a+1]=n[i+1],t[a+2]=n[i+2],t[a+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 a=0;a<i;a++){const i=4*(e+a);this.getPixel(t,i,a,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),a=this.pixels,r=this.palette,s=this.colors*Math.ceil(this.bitDepth/8);for(let i=0;i<t;i++){const t=i*e,o=3*a[i*s];n[t]=r[o],n[t+1]=r[o+1],n[t+2]=r[o+2]}if(null!==i){const e=i.length;for(let r=0;r<t;r++){const t=a[r*s];n[4*r+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 li=[137,80,78,71,13,10,26,10];function di(t){const e=new Ye.Inflate;if(e.push(t),e.err)throw new Error(e.err);return e.result.buffer}function ci(t,e){return t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3]}function fi(t,e){return t[e]}function ui(t){this.i=0,this.bytes=new Uint8Array(t),this.png=new hi,this.dataChunks=[],this.buffer=new si,this.buffer.fromArrayBuffer(t),this.crc_enabled=!1,this.header=new Uint8Array(8)}ui.prototype.readBytes=function(t){const e=new Uint8Array(t);return this.buffer.readBytes(e,0,t),e},ui.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,li))throw new Error("invalid PNGReader file (bad signature)")},ui.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),a=this.readBytes(e);switch(t.readUint32(),this.crc_enabled&&function(t,e,i,n){let a=4294967295;const r=i+n;for(let t=i;t<r;t++){const i=255&(a^e[t]);a=oi[i]^a>>>8}}(0,t.raw_bytes,i,e+4),n){case"IHDR":this.decodeIHDR(a);break;case"PLTE":this.decodePLTE(a);break;case"IDAT":this.decodeIDAT(a);break;case"tRNS":this.decodeTRNS(a);break;case"IEND":this.decodeIEND(a);break;case"sRGB":this.decodesRGB(a);break;case"tIME":this.decodetIME(a);break;case"zTXt":this.decodezTXt(a);break;case"iTXt":this.decodeiTXt(a)}return n},ui.prototype.decodesRGB=function(t){fi(t,0)},ui.prototype.decodetIME=function(t){fi(t,0),fi(t,1),fi(t,2),fi(t,3),fi(t,4),fi(t,5),fi(t,6)},ui.prototype.decodeiTXt=function(t){const e=si.fromArrayBuffer(t.buffer),i=e.readASCIICharacters(79,!0),n=e.readUint8();e.readUint8();const a=e.readASCIICharacters(Infinity,!0),r=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=di(new Uint8Array(e.data,e.position,s));e.fromArrayBuffer(t),o=e.readASCIICharacters(t.byteLength)}}return{keyword:i,language_tag:a,translated_keyword:r,text:o}},ui.prototype.decodezTXt=function(t){const e=si.fromArrayBuffer(t.buffer),i=e.readASCIICharacters(79,!0),n=e.readUint8();let a;if(0!==n)throw new Error(`Unsupported compression method '${n}'`);{const i=di(new Uint8Array(t.buffer,e.position));e.fromArrayBuffer(i),a=e.readASCIICharacters(i.length)}return{keyword:i,text:a}},ui.prototype.decodetEXt=function(t){const e=si.fromArrayBuffer(t.buffer),i=e.readASCIICharacters(Number.POSITIVE_INFINITY,!0),n=e.readASCIICharacters(i.length-1,!1);this.png.text[i]=n},ui.prototype.decodeiEXt=function(t){const e=si.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},ui.prototype.decodeIHDR=function(t){const e=this.png;e.setWidth(ci(t,0)),e.setHeight(ci(t,4)),e.setBitDepth(fi(t,8)),e.setColorType(fi(t,9)),e.setCompressionMethod(fi(t,10)),e.setFilterMethod(fi(t,11)),e.setInterlaceMethod(fi(t,12))},ui.prototype.decodePLTE=function(t){this.png.setPalette(t)},ui.prototype.decodeIDAT=function(t){this.dataChunks.push(t)},ui.prototype.decodeTRNS=function(t){this.png.setTRNS(t)},ui.prototype.decodeIEND=function(){},ui.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 a=e.result;0===t.getInterlaceMethod()?this.interlaceNone(a):this.interlaceAdam7(a)},ui.prototype.interlaceNone=function(t){const e=this.png,i=e.bitDepth,n=e.colors*i/8,a=e.width,r=e.height,s=Math.ceil(n*a),o=Math.ceil(n)*a,h=new Uint8Array(o*r);let l=0;const d=t.length;for(let e=0;e<d;e+=s+1){const a=e+1,r=fi(t,e);switch(r){case 0:if(1===i)for(let e=0;e<o;e++){const i=t[(e>>>4)+a]>>>(7&e)&1;h[l+e]=i}else if(2===i)for(let e=0;e<o;e++){const i=t[(e>>>2)+a]>>>((3&~e)<<1)&3;h[l+e]=i}else if(4===i)for(let e=0;e<o;e++){const i=t[(e>>>1)+a]>>>((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+a]}break;case 1:this.unFilterSub(t,a,h,n,l,s);break;case 2:this.unFilterUp(t,a,h,n,l,s);break;case 3:this.unFilterAverage(t,a,h,n,l,s);break;case 4:this.unFilterPaeth(t,a,h,n,l,s);break;default:throw new Error(`unknown filtered scanline type '${r}'`)}l+=o}e.pixels=h},ui.prototype.interlaceAdam7=function(t){throw new Error("Adam7 interlacing is not implemented yet")},ui.prototype.unFilterSub=function(t,e,i,n,a,r){let s=0;for(;s<n;s++)i[a+s]=t[s+e];for(;s<r;s++){const r=a+s;i[r]=t[s+e]+i[r-n]&255}},ui.prototype.unFilterUp=function(t,e,i,n,a,r){let s,o,h=0;if(a-r<0)for(;h<r;h++)i[a+h]=t[h+e];else for(;h<r;h++)s=t[h+e],o=i[a+h-r],i[a+h]=s+o&255},ui.prototype.unFilterAverage=function(t,e,i,n,a,r){let s,o,h,l=0;if(a-r<0){for(;l<n;l++)i[a+l]=t[l+e];for(;l<r;l++){const r=a+l;i[r]=t[l+e]+(i[r-n]>>1)&255}}else{for(;l<n;l++){const n=a+l;i[n]=t[l+e]+(i[n-r]>>1)&255}for(;l<r;l++){s=t[l+e];const d=a+l;o=i[d-n],h=i[d-r],i[d]=s+(o+h>>1)&255}}},ui.prototype.unFilterPaeth=function(t,e,i,n,a,r){let s,o,h,l,d,c,f,u,_,p=0;if(a-r<0){for(;p<n;p++)i[a+p]=t[p+e];for(;p<r;p++)i[a+p]=t[p+e]+i[a+p-n]&255}else{const w=a-r;for(;p<n;p++)i[a+p]=t[p+e]+i[w+p]&255;for(;p<r;p++){s=t[p+e];const w=a+p;l=i[w-r-n],h=i[w-r],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}}},ui.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 ui(t).parse(),a=n.getUint8Data(),r=n.getWidth(),s=n.getHeight();e({data:a.data.buffer,width:r,height:s,itemSize:a.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},x=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},A=(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&&A(e,t.heap[r+1],t.heap[r],t.depth)&&r++,!A(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 T=!1;const C=(t,e,i,n)=>{b(t,0+(n?1:0),3),((t,e,i,n)=>{x(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=>{T||((()=>{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)})(),T=!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:C,_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?C(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&&x(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:V,_tr_tally:M,_tr_align:$}=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)=>{V(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)},xt=(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},At=(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,xt),new Ut(4,5,16,8,xt),new Ut(4,6,32,32,xt),new Ut(4,4,16,16,At),new Ut(8,16,32,32,At),new Ut(8,16,128,128,At),new Ut(8,32,128,256,At),new Ut(32,128,258,1024,At),new Ut(32,258,258,4096,At)];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},Tt=(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 Ct={deflateInit:(t,e)=>Tt(t,e,st,15,8,rt),deflateInit2:Tt,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?$(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:Vt,Z_FULL_FLUSH:Mt,Z_FINISH:$t,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=Ct.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(i!==Ht)throw new Error(D[i]);if(e.header&&Ct.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=Ct.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?$t: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===Vt||a===Mt)&&i.avail_out<=6)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else{if(r=Ct.deflate(i,a),r===Pt)return i.next_out>0&&this.onData(i.output.subarray(0,i.next_out)),r=Ct.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,x,A,U;const E=t.state;i=t.next_in,A=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+=A[i++]<<u,u+=8,f+=A[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+=A[i++]<<u,u+=8),y+=f&(1<<m)-1,f>>>=m,u-=m),u<15&&(f+=A[i++]<<u,u+=8,f+=A[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+=A[i++]<<u,u+=8,u<m&&(f+=A[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,x=c,0===d){if(v+=h-m,m<y){y-=m;do{U[r++]=c[v++]}while(--m);v=r-k,x=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,x=U}}}else if(v+=d-m,m<y){y-=m;do{U[r++]=c[v++]}while(--m);v=r-k,x=U}for(;y>2;)U[r++]=x[v++],U[r++]=x[v++],U[r++]=x[v++],y-=3;y&&(U[r++]=x[v++],y>1&&(U[r++]=x[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,x=0,A=0,U=null,E=0;const I=new Uint16Array(16),z=new Uint16Array(16);let S,T,C,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),A=0,w=0,p=g,u=a,y=m,k=0,c=-1,x=1<<m,f=x-1,1===t&&x>852||2===t&&x>592)return 1;for(;;){S=p-k,s[w]<_?(T=0,C=s[w]):s[w]>_?(T=R[F+s[w]],C=U[E+s[w]]):(T=96,C=0),l=1<<p-k,d=1<<y,g=d;do{d-=l,r[u+(A>>k)+d]=S<<24|T<<16|C|0}while(0!==d);for(l=1<<p-1;A&l;)l>>=1;if(0!==l?(A&=l-1,A+=l):A=0,w++,0==--I[p]){if(p===b)break;p=e[i+s[w]]}if(p>m&&(A&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(x+=1<<y,1===t&&x>852||2===t&&x>592)return 1;c=A&f,r[c]=m<<24|y<<16|u-a|0}}return 0!==A&&(r[u+A]=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,xe,Ae=!0;const Ue=t=>{if(Ae){ve=new Int32Array(512),xe=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,xe,0,t.work,{bits:5}),Ae=!1}t.lencode=ve,t.lenbits=9,t.distcode=xe,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,x,A=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,x=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},x=ie(0,i.lens,0,19,i.lencode,0,i.work,E),i.lenbits=E.bits,x){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(;A=i.lencode[l&(1<<i.lenbits)-1],w=A>>>24,g=A>>>16&255,b=65535&A,!(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},x=ie(1,i.lens,0,i.nlen,i.lencode,0,i.work,E),i.lenbits=E.bits,x){t.msg="invalid literal/lengths set",i.mode=pe;break}if(i.distbits=6,i.distcode=i.distdyn,E={bits:i.distbits},x=ie(2,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,E),i.distbits=E.bits,x){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;A=i.lencode[l&(1<<i.lenbits)-1],w=A>>>24,g=A>>>16&255,b=65535&A,!(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;A=i.lencode[k+((l&(1<<m+y)-1)>>m)],w=A>>>24,g=A>>>16&255,b=65535&A,!(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(;A=i.distcode[l&(1<<i.distbits)-1],w=A>>>24,g=A>>>16&255,b=65535&A,!(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;A=i.distcode[k+((l&(1<<m+y)-1)>>m)],w=A>>>24,g=A>>>16&255,b=65535&A,!(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:x=oe;break t;case pe:x=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)&&x===se&&(x=fe),x},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:Te,Z_FINISH:Ce,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?Ce:Te,"[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 Ve={Inflate:Le,inflate:Oe,inflateRaw:function(t,e){return(e=e||{}).raw=!0,Oe(t,e)},ungzip:Oe,constants:Z};const{Deflate:Me,deflate:$e,deflateRaw:He,gzip:Pe}=qt,{Inflate:je,inflate:Ge,inflateRaw:Ke,ungzip:Xe}=Ve;var Ye={Deflate:Me,deflate:$e,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")}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"){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.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(!Array.isArray(t)&&!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))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.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.isFiniteNumber=function(t,e="value"){if(!Number.isFinite(t))throw new Error(`${e} must be a finite number, instead was ${t}`)},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 ri=!1,ai=!0;class si{endianness=ai;position=0;length=0;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.length=this.capacity,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)}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,ai);return this.position+=2,t}readUint16BE(){const t=this.dataView.getUint16(this.position,ri);return this.position+=2,t}readUint24(){return this.endianness===ri?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,ai);return this.position+=4,t}readUint32BE(){const t=this.dataView.getUint32(this.position,ri);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])}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}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,ri),this.position=e}writeUint16LE(t){const e=this.position+2;this.ensureCapacity(e),this.dataView.setUint16(this.position,t,ai),this.position=e}writeUint16Array(t,e,i){for(let n=0;n<i;n++)this.writeUint16(t[e+n])}writeUint24(t){this.endianness===ri?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,ri),this.position=e}writeUint32LE(t){const e=this.position+4;this.ensureCapacity(e),this.dataView.setUint32(this.position,t,ai),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>255)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}static fromEndianness(t){const e=new si;return e.endianness=t,e}static fromArrayBuffer(t){const e=new si;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}}si.prototype.isBinaryBuffer=!0;const oi=new Uint32Array(256);for(let t=0;t<256;t++){let e=t;for(let t=0;t<8;t++)1&e?e=3988292384^e>>>1:e>>>=1;oi[t]=e}class hi{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 li=[137,80,78,71,13,10,26,10];function di(t){const e=new Ye.Inflate;if(e.push(t),e.err)throw new Error(e.err);return e.result.buffer}function ci(t,e){return t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3]}function fi(t,e){return t[e]}function ui(t){this.i=0,this.bytes=new Uint8Array(t),this.png=new hi,this.dataChunks=[],this.buffer=new si,this.buffer.fromArrayBuffer(t),this.crc_enabled=!1,this.header=new Uint8Array(8)}ui.prototype.readBytes=function(t){const e=new Uint8Array(t);return this.buffer.readBytes(e,0,t),e},ui.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,li))throw new Error("invalid PNGReader file (bad signature)")},ui.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,i,n){let r=4294967295;const a=i+n;for(let t=i;t<a;t++){const i=255&(r^e[t]);r=oi[i]^r>>>8}}(0,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},ui.prototype.decodesRGB=function(t){fi(t,0)},ui.prototype.decodetIME=function(t){fi(t,0),fi(t,1),fi(t,2),fi(t,3),fi(t,4),fi(t,5),fi(t,6)},ui.prototype.decodeiTXt=function(t){const e=si.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=di(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}},ui.prototype.decodezTXt=function(t){const e=si.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=di(new Uint8Array(t.buffer,e.position));e.fromArrayBuffer(i),r=e.readASCIICharacters(i.length)}return{keyword:i,text:r}},ui.prototype.decodetEXt=function(t){const e=si.fromArrayBuffer(t.buffer),i=e.readASCIICharacters(Number.POSITIVE_INFINITY,!0),n=e.readASCIICharacters(i.length-1,!1);this.png.text[i]=n},ui.prototype.decodeiEXt=function(t){const e=si.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},ui.prototype.decodeIHDR=function(t){const e=this.png;e.setWidth(ci(t,0)),e.setHeight(ci(t,4)),e.setBitDepth(fi(t,8)),e.setColorType(fi(t,9)),e.setCompressionMethod(fi(t,10)),e.setFilterMethod(fi(t,11)),e.setInterlaceMethod(fi(t,12))},ui.prototype.decodePLTE=function(t){this.png.setPalette(t)},ui.prototype.decodeIDAT=function(t){this.dataChunks.push(t)},ui.prototype.decodeTRNS=function(t){this.png.setTRNS(t)},ui.prototype.decodeIEND=function(){},ui.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)},ui.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=fi(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},ui.prototype.interlaceAdam7=function(t){throw new Error("Adam7 interlacing is not implemented yet")},ui.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}},ui.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},ui.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}}},ui.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}}},ui.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 ui(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 +1 @@
|
|
|
1
|
-
function t(t,e){const n=t.length;if(n!==e.length)return!1;for(let i=0;i<n;i++)if(t[i]!==e[i])return!1;return!0}class e{appendDescriptionOf(t){throw new Error("Not Implemented")}appendList(t,e,n,i){throw new Error("Not Implemented")}appendText(t){throw new Error("Not Implemented")}appendValue(t){throw new Error("Not Implemented")}appendValueList(t,e,n,i){throw new Error("Not Implemented")}}class n{describeTo(t){throw new Error("Not Implemented")}}class i extends n{value;constructor(t){super(),this.value=t}describeTo(t){t.appendValue(this.value)}}class r{#t;constructor(t){this.#t=t}*[Symbol.iterator](){for(const t of this.#t)yield new i(t)}}class s extends e{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,n,i){return this.appendList(t,e,n,new r(i)),this}appendList(t,e,n,i){let r=!1;this.appendText(t);const s=i[Symbol.iterator]();for(let t=s.next();!0!==t.done;t=s.next())r&&this.appendText(e),this.appendDescriptionOf(t.value),r=!0;return this.appendText(n),this}}class o extends s{value="";appendText(t){return this.value+=t,this}}function a(t,e){if(!t)throw new Error(e||"AssertionError")}function h(t,e,n,i,r){let s,o,a;for(a=0;a<r;a++)s=e+a,o=i+a,n[o]=t[s]}a.enum=function(t,e,n="value"){for(let n in e)if(e[n]===t)return;throw new Error(`${n}(=${t}) is not a valid enumerable value, valid values are: [${Object.values(e).join(", ")}]`)},a.notEqual=function(t,e,n){a(t!==e,n)},a.notOk=function(t,e){a(!t,e)},a.equal=function(t,e,n){if(t!==e){const i=`${t} !== ${e}`;throw new Error(void 0!==n&&""!==n?`${n}. ${i}`:i)}},a.logicalyEqual=function(t,e,n){},a.ok=a,a.greaterThan=function(t,e,n){if(!(t>e)){let i="";throw void 0!==n&&(i+=n+". "),i+=`Expected ${t} > ${e}.`,new Error(i)}},a.greaterThanOrEqual=function(t,e,n){if(!(t>=e)){let i="";throw void 0!==n&&(i+=n+". "),i+=`Expected ${t} >= ${e}.`,new Error(i)}},a.lessThan=function(t,e,n){if(!(t<e)){let i="";throw void 0!==n&&(i+=n+". "),i+=`Expected ${t} < ${e}.`,new Error(i)}},a.lessThanOrEqual=function(t,e,n){if(!(t<=e)){let i="";throw void 0!==n&&(i+=n+". "),i+=`Expected ${t} <= ${e}.`,new Error(i)}},a.typeOf=function(t,e,n="value"){const i=typeof t;if(i!==e)throw new Error(`expected ${n} to be ${e}, instead was '${i}'(=${t})`)},a.arrayHas=function(t,e,n="Array does not contain the item"){},a.arrayHasNo=function(t,e,n="Array contains the item"){},a.arrayEqual=function(e,n,i="Arrays are not equal"){if(!t(e,n))throw new Error(i)},a.isInstanceOf=function(t,e,n="value",i=e.name){},a.isNumber=function(t,e="value"){const n=typeof t;if("number"!==n)throw new Error(`expected ${e} to be a number, instead was '${n}'(=${t})`)},a.isString=function(t,e="value"){const n=typeof t;if("string"!==n)throw new Error(`expected ${e} to be a string, instead was '${n}'(=${t})`)},a.isBoolean=function(t,e="value"){const n=typeof t;if("boolean"!==n)throw new Error(`expected ${e} to be a boolean, instead was '${n}'(=${t})`)},a.isFunction=function(t,e="value"){const n=typeof t;if("function"!==n)throw new Error(`expected ${e} to be a function, instead was '${n}'(=${t})`)},a.isObject=function(t,e="value"){const n=typeof t;if("object"!==n)throw new Error(`expected ${e} to be an object, instead was '${n}'(=${t})`)},a.isInteger=function(t,e="value"){if(!Number.isInteger(t))throw new Error(`${e} must be an integer, instead was ${t}`)},a.isNonNegativeInteger=function(t,e="value"){if(t<0)throw new Error(`${e} must be >= 0, instead was ${t}`)},a.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}')`)},a.isArrayLike=function(t,e="value"){if(!(Array.isArray(t)||(n=t,n instanceof Int8Array||n instanceof Uint8Array||n instanceof Uint8ClampedArray||n instanceof Int16Array||n instanceof Uint16Array||n instanceof Int32Array||n instanceof Uint32Array||n instanceof Float32Array||n instanceof Float64Array)))throw new Error(`expected ${e} to be an array-like structure, instead was something else (typeof ='${typeof t}')`);var n},a.defined=function(t,e="value"){if(void 0===t)throw new Error(`${e} is undefined`)},a.isNull=function(t,e){if(null!==t)throw new Error(`${e} is NOT null`)},a.notNull=function(t,e="value"){if(null===t)throw new Error(`${e} is null`)},a.notNaN=function(t,e="value"){if(Number.isNaN(t))throw new Error(`${e} must be a valid number, instead was NaN`)},a.isFiniteNumber=function(t,e="value"){if(!Number.isFinite(t))throw new Error(`${e} must be a finite number, instead was ${t}`)},a.that=function(t,e,n){if(n.matches(t))return;const i=new o;throw i.appendText(`Expected ${e} to be `),n.describeTo(i),i.appendText(" instead "),n.describeMismatch(t,i),new Error(i.value)};const c=new Uint32Array(781250);function d(t,e){return t<e?e:t}function u(t,e){return t<e?t:e}function l(t,e,n,i,r,s){const o=n[i+0],a=n[i+1],h=n[i+2],c=n[i+3],l=n[i+4],f=n[i+5],g=r[s+0],_=r[s+1],p=r[s+2],m=r[s+3],y=r[s+4],w=r[s+5],v=u(o,g),x=u(a,_),b=u(h,p),A=d(c,m),E=d(l,y),$=d(f,w);t[e+0]=v,t[e+1]=x,t[e+2]=b,t[e+3]=A,t[e+4]=E,t[e+5]=$}function f(t,e,n,i,r,s,o,a){t[e]=n,t[e+1]=i,t[e+2]=r,t[e+3]=s,t[e+4]=o,t[e+5]=a}function g(t,e,n,i,r,s){const o=i-t,a=s-n;return(r-e)*(o+a)+a*o}function _(t){let e=t;return e=50331903&(e|e<<16),e=50393103&(e|e<<8),e=51130563&(e|e<<4),e=153391689&(e|e<<2),e}function p(t,e,n){let i=t;return i<e&&(i=e),i<n&&(i=n),i}function m(t,e,n){let i=t;return i>e&&(i=e),i>n&&(i=n),i}function y(t,e,n){const i=t[n],r=t[n+1],s=t[n+2];f(t,e,i,r,s,i,r,s)}function w(t,e,n){const i=t[e],r=t[e+1],s=t[e+2];return function(t,e,n,i){const r=i[0],s=i[1],o=i[2],a=1023*(t-r)/(i[3]-r),h=1023*(e-s)/(i[4]-s),c=1023*(n-o)/(i[5]-o);return function(t,e,n){return _(t)|_(e)<<1|_(n)<<2}(Math.round(a),Math.round(h),Math.round(c))}(.5*(i+t[e+3]),.5*(r+t[e+4]),.5*(s+t[e+5]),n)}c.pointer=0;const v=c;class x{__data_buffer;__data_float32;__data_uint32;__node_count_binary=0;__node_count_leaf=0;constructor(){this.data=new ArrayBuffer(320)}estimateByteSize(){return this.data.byteLength+248}getTotalBoxCount(){return this.__node_count_binary+this.__node_count_leaf}get binary_node_count(){return this.__node_count_binary}get leaf_node_count(){return this.__node_count_leaf}getLeafBlockAddress(){return 6*this.__node_count_binary}get float32(){return this.__data_float32}get uint32(){return this.__data_uint32}set data(t){this.__data_buffer=t,this.__data_float32=new Float32Array(this.__data_buffer),this.__data_uint32=new Uint32Array(this.__data_buffer)}get data(){return this.__data_buffer}getNodeAddress(t){const e=this.__node_count_binary,n=t-e;return n<0?6*t:6*e+7*n}initialize_structure(){const t=4*(6*this.__node_count_binary+7*this.__node_count_leaf);this.__data_buffer.byteLength<t&&(this.data=new ArrayBuffer(t))}setLeafCount(t){this.__node_count_leaf=t;const e=function(t){let e=t-1;return e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e++,e}(t);this.__node_count_binary=t<=1?e:e-1}getLeafAddress(t){return 7*t+6*this.__node_count_binary}setLeafData(t,e,n,i,r,s,o,a){const h=this.getLeafAddress(t);f(this.__data_float32,h,n,i,r,s,o,a),this.__data_uint32[h+6]=e}readBounds(t,e,n){h(this.__data_float32,t,e,n,6)}readLeafPayload(t){const e=this.getLeafBlockAddress()+7*t+6;return this.__data_uint32[e]}compute_total_surface_area(){let t=0;const e=new Float32Array(6);for(let n=0;n<this.getTotalBoxCount();n++){let i;i=n<this.__node_count_binary?6*n:7*(n-this.__node_count_binary)+this.getLeafBlockAddress(),this.readBounds(i,e,0),t+=g(e[0],e[1],e[2],e[3],e[4],e[5])}return t}__compute_bounds_area_of_3_boxes(t,e,n){const i=this.__data_float32;return g(m(i[t+0],i[e+0],i[n+0]),m(i[t+1],i[e+1],i[n+1]),m(i[t+2],i[e+2],i[n+2]),p(i[t+3],i[e+3],i[n+3]),p(i[t+4],i[e+4],i[n+4]),p(i[t+5],i[e+5],i[n+5]))}__fitness_function_should_swap_leaves_sah(t,e){const n=d(t-1,0),i=u(t+1,this.__node_count_leaf-1),r=this.getLeafBlockAddress(),s=7*t+r,o=7*n+r,a=7*i+r,h=7*e+r,c=7*d(e-1,0)+r,l=7*u(e+1,this.__node_count_leaf-1)+r;return this.__compute_bounds_area_of_3_boxes(o,s,a)+this.__compute_bounds_area_of_3_boxes(c,h,l)-(this.__compute_bounds_area_of_3_boxes(o,h,a)+this.__compute_bounds_area_of_3_boxes(c,s,l))}sort_bubble_sah(){const t=this.__node_count_leaf;for(let e=0;e<t;e++)for(let n=e+1;n<t;n++)this.__fitness_function_should_swap_leaves_sah(e,n)>0&&this.__swap_leaves(e,n)}sort_morton(t){const e=6*this.__node_count_binary;if(this.__node_count_leaf<2)return;let n,i,r=2;v[0]=0,v[1]=this.__node_count_leaf-1;const s=this.__data_float32;for(;r>0;){r-=2;const o=v[r+1],a=v[r];n=a,i=o;const h=w(s,7*(a+o>>1)+e,t);for(;n<=i;){for(;w(s,7*n+e,t)<h;)n++;for(;w(s,7*i+e,t)>h;)i--;n<=i&&(n!==i&&this.__swap_leaves(n,i),n++,i--)}a<i&&(v[r++]=a,v[r++]=i),n<o&&(v[r++]=n,v[r++]=o)}}__swap_leaves(t,e){const n=this.getLeafBlockAddress(),i=7*t+n,r=7*e+n;!function(t,e,n,i,r){for(let r=0;r<7;r++){const s=e+r,o=i+r,a=n[o];n[o]=t[s],t[s]=a}}(this.__data_float32,i,this.__data_float32,r)}build(){const t=this.__node_count_binary,e=6*t;let n,i,r,s,o=Math.floor(Math.log(t)/Math.log(2));r=Math.pow(2,o),i=6*(r-1);const a=this.__node_count_leaf,c=this.__data_float32;for(n=0;n<r;n++){const t=n<<1,r=t+1,s=e+7*t;r<a?l(c,i,c,s,c,e+7*r):t<a?h(c,s,c,i,6):y(this.__data_float32,i,i-6),i+=6}for(o--;o>=0;o--)for(r=1<<o,s=r-1,n=0;n<r;n++){const t=6*(1+(s<<1));l(c,6*s,c,t,c,t+6),s++}}}function b(t,e,n,i,r,s){const o=t.getLeafAddress(e);!function(t,e,n,i,r,s){const o=3*i,a=3*r,h=3*s,c=n[o],d=n[o+1],u=n[o+2],l=n[a],f=n[a+1],g=n[a+2],_=n[h],y=n[h+1],w=n[h+2];t[e]=m(c,l,_),t[e+1]=m(d,f,y),t[e+2]=m(u,g,w),t[e+3]=p(c,l,_),t[e+4]=p(d,f,y),t[e+5]=p(u,g,w)}(t.__data_float32,o,n,i,r,s),t.__data_uint32[o+6]=e}function A(t){return 1===t.faces.length}function E(t,e){return t.v0===e?t.v1:t.v1===e?t.v0:null}var $,S="undefined"!=typeof Float32Array?Float32Array:Array;function F(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function U(t,e){return-1===t.indexOf(e)&&(t.push(e),!0)}function z(){}function C(t,e=","){return t.toString().replace(/\B(?=(\d{3})+(?!\d))/g,e)}function B(t,e){t.__edges.delete(e)}function V(t,e,n=0,i=t.length){const r=n+i;for(let i=n;i<r;i++)if(t[i]===e)return t.splice(i,1),!0;return!1}function L(t,e){return t.v0===e||t.v1===e}function M(t,e,n){const i=t.v0,r=t.v1;return!(i!==e&&i!==n||r!==e&&r!==n)}Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)}),$=new S(3),S!=Float32Array&&($[0]=0,$[1]=0,$[2]=0);let q=0;class T{index=q++;v0=null;v1=null;faces=[];lengthSqr=-1;get byteSize(){return 128+8*this.faces.length+10}getVertexByIndex(t){if(0===t)return this.v0;if(1===t)return this.v1;throw new Error("Index out of bounds")}copy(t){this.v0=t.v0,this.v1=t.v1,this.lengthSqr=t.lengthSqr,this.faces=t.faces.slice()}clone(){const t=new T;return t.copy(this),t}validate(t){let e=!0;const n=this.faces,i=n.length;for(let r=0;r<i;r++)n[r].containsEdge(this)||(t(`Missing back-link from face[${r}]`),e=!1);return this.v0.containsEdge(this)||(t("Missing back-link from vertex v0"),e=!1),this.v1.containsEdge(this)||(t("Missing back-link from vertex v1"),e=!1),e}isLinked(){return this.v0.containsEdge(this)}unlink(){const t=this.v0,e=this.v1;t.removeEdge(this),t!==e&&e.removeEdge(this);const n=this.faces,i=n.length;for(let t=0;t<i;t++)n[t].removeEdge(this)}isDegenerateEdge(){return this.v0===this.v1}isTopologyBorder(){return A(this)}get length(){return this.lengthSqr<0&&this.computeSquaredLength(),Math.sqrt(this.lengthSqr)}computeSquaredLength(){const t=this.v0,e=this.v1,n=t.x,i=t.y,r=t.z,s=n-e.x,o=i-e.y,a=r-e.z;this.lengthSqr=s*s+o*o+a*a}replaceVertex(t,e){t===this.v0&&(this.v0=e),t===this.v1&&(this.v1=e)}merge(t){const e=t.faces,n=this.faces,i=e.length;for(let r=0;r<i;r++){const i=e[r];i.removeEdge(t),-1===n.indexOf(i)&&(n.push(i),i.addUniqueEdge(this))}t.v0.removeEdge(t),t.v1.removeEdge(t)}containsFace(t){return-1!==this.faces.indexOf(t)}addFace(t){this.faces.push(t)}addUniqueFace(t){U(this.faces,t)}removeFace(t){V(this.faces,t)}getOtherVertex(t){return E(this,t)}containsVertex(t){return L(this,t)}containsBothVertices(t,e){return M(this,t,e)}containsSameVerticesAs(t){return M(this,t.v0,t.v1)}}function I(t,e,n){const i=t.length;for(let r=0;r<i;r++)t[r]===e&&(t[r]=n);return t}function N(t,e,n,i,r,s,o,a,h,c,d){const u=h-s,l=c-o,f=d-a,g=n-s,_=i-o,p=r-a,m=l*p-f*_,y=f*g-u*p,w=u*_-l*g,v=function(t,e,n){return t*t+e*e+n*n}(m,y,w);if(0===v)return t[e]=0,t[e+1]=1,void(t[e+2]=0);const x=1/Math.sqrt(v),b=m*x,A=y*x,E=w*x;t[e]=b,t[e+1]=A,t[e+2]=E}T.prototype.isTopoEdge=!0;let k=0;class O{index=k++;vertices=[];edges=[];normal=[0,0,0];get byteSize(){return 100+8*this.vertices.length+10+8*this.edges.length+10+24+10}copy(t){this.index=t.index,this.vertices=t.vertices.slice(),this.edges=t.edges.slice(),F(this.normal,t.normal)}clone(){const t=new O;return t.copy(this),t}validate(t){let e=!0;const n=this.vertices,i=n.length;3!==i&&(t(`Expected number of vertices is 3, instead got ${i}`),e=!1);for(let r=0;r<i;r++)n[r].containsFace(this)||(t(`Missing back-link from vertex[${r}]`),e=!1);const r=this.edges,s=r.length;3!==s&&(t(`Expected number of edges is 3, instead got ${s}`),e=!1);for(let n=0;n<s;n++)r[n].containsFace(this)||(t(`Missing back-link from edge[${n}]`),e=!1);return e}isLinked(){return this.vertices[0].containsFace(this)}replaceEdge(t,e){I(this.edges,t,e)}replaceVertex(t,e){I(this.vertices,t,e)}isDegenerateTopology(){const t=this.vertices,e=t[0],n=t[1],i=t[2];return e===n||e===i||n===i}unlink(){const t=this.vertices,e=t.length;for(let n=0;n<e;n++)t[n].removeFace(this);const n=this.edges,i=n.length;for(let t=0;t<i;t++)n[t].removeFace(this)}addEdge(t){this.edges.push(t)}addUniqueEdge(t){return U(this.edges,t)}removeEdge(t){V(this.edges,t)}containsEdge(t){return-1!==this.edges.indexOf(t)}computeNormal(){const t=this.vertices,e=t[0],n=t[1],i=t[2];!function(t,e,n,i){N(t,0,e[0],e[1],e[2],n[0],n[1],n[2],i[0],i[1],i[2])}(this.normal,e,n,i)}setVertexAt(t,e){this.vertices[t]=e}containsVertex(t){return-1!==this.vertices.indexOf(t)}getEdgeNeighbours(t,e){let n=0;const i=this.edges,r=i.length;for(let s=0;s<r;s++){const r=i[s].faces,o=r.length;for(let i=0;i<o;i++){const s=r[i];s!==this&&(t[e+n]=s,n++)}}return n}}function j(t,e,n){return Math.sqrt(t*t+e*e+n*n)}O.prototype.isTopoFace=!0;class D{index=0;edges=[];faces=[];x=0;y=0;z=0;get 0(){return this.x}get 1(){return this.y}get 2(){return this.z}get byteSize(){return 112+8*this.edges.length+10+8*this.faces.length+10}copy(t){this.x=t.x,this.y=t.y,this.z=t.z,this.index=t.index,this.faces=t.faces.slice(),this.edges=t.edges.slice()}clone(){const t=new D;return t.copy(this),t}validate(t){let e=!0;const n=this.faces,i=n.length;for(let r=0;r<i;r++)n[r].containsVertex(this)||(t(`Missing back-link from face[${r}]`),e=!1);const r=this.edges,s=r.length;for(let n=0;n<s;n++)L(r[n],this)||(t(`Missing back-link from edge[${n}]`),e=!1);return e}distanceTo(t){return e=this.x,n=this.y,i=this.z,j(t.x-e,t.y-n,t.z-i);var e,n,i}addFace(t){this.faces.push(t)}addUniqueFace(t){return U(this.faces,t)}containsFace(t){return-1!==this.faces.indexOf(t)}removeFace(t){V(this.faces,t)}addEdge(t){this.edges.push(t)}addUniqueEdge(t){return U(this.edges,t)}replaceEdge(t,e){const n=this.edges,i=n.indexOf(t);n[i]=e}containsEdge(t){return-1!==this.edges.indexOf(t)}removeEdge(t){return V(this.edges,t)}replaceAnotherVertex(t){throw new Error('deprecated, use "tm_vert_splice" instead')}computeNeighbourVertices(t,e){let n=0;const i=this.edges,r=i.length;for(let s=0;s<r;s++){const r=i[s].getOtherVertex(this);t[e+n]=r,n++}return n}}D.prototype.isTopoVertex=!0;class R{vertices=[];__edges=new Set;__faces=new Set;get byteSize(){let t=0;for(let e=0;e<this.vertices.length;e++)t+=this.vertices[e].byteSize;for(const e of this.__edges)t+=e.byteSize;for(const e of this.__faces)t+=e.byteSize;return t}getEdges(){return this.__edges}getFaces(){return this.__faces}getFaceByIndex(t){for(const e of this.__faces)if(e.index===t)return e}validate(t=z){let e=!0,n="",i=0;function r(r){t(`${n}[${i}]: ${r}`),e=!1}n="Edge",i=0;const s=this.getEdges();for(let t of s){t.validate(r),this.containsVertex(t.v0)||r("Link to off-mesh vertex v0"),this.containsVertex(t.v1)||r("Link to off-mesh vertex v1");const e=t.faces,n=e.length;for(let t=0;t<n;t++){const n=e[t];this.containsFace(n)||r(`Link to off-mesh face[${t}]`)}i++}const o=this.getFaces();n="Face",i=0;for(let t of o){t.validate(r);const e=t.edges,n=e.length;for(let t=0;t<n;t++){const n=e[t];this.containsEdge(n)||r(`Link to off-mesh edge[${t}]`)}const s=t.vertices,o=s.length;for(let t=0;t<o;t++){const e=s[t];this.containsVertex(e)||r(`Link to off-mesh vertex[${t}]`)}i++}const a=this.vertices,h=a.length;n="Vertex";for(let t=0;t<h;t++){i=t;const e=a[t];e.validate(r);const n=e.edges,s=n.length;for(let t=0;t<s;t++){const e=n[t];this.containsEdge(e)||r(`Link to off-mesh edge[${t}]`)}const o=e.faces,h=o.length;for(let t=0;t<h;t++){const e=o[t];this.containsFace(e)||r(`Link to off-mesh face[${t}]`)}}return e}clone(){const t=new R;return t.add(this),t}buildVertexMapping(){const t=new Map,e=this.vertices,n=e.length;for(let i=0;i<n;i++){const n=e[i];t.set(n.index,n)}return t}_addWithVertexMap(t,e){const n=t.getFaces();for(let t of n)this.addFaceCopy(t,e)}addFaceCopy(t,e){const n=new O;F(n.normal,t.normal);const i=t.vertices;for(let t=0;t<3;t++){const r=i[t];let s=e.get(r.index);void 0===s&&(s=new D,s.index=r.index,s.x=r.x,s.y=r.y,s.z=r.z,e.set(r.index,s),this.addVertex(s)),n.setVertexAt(t,s),s.addUniqueFace(n)}this.addFace(n),this.patchFaceEdges(n)}patchFaceEdges(t){const e=t.vertices,n=e[0],i=e[1],r=e[2],s=this.ensureEdge(n,i),o=this.ensureEdge(i,r),a=this.ensureEdge(r,n);s.addUniqueFace(t),o.addUniqueFace(t),a.addUniqueFace(t),t.addUniqueEdge(s),t.addUniqueEdge(o),t.addUniqueEdge(a)}add(t){const e=this.buildVertexMapping();this._addWithVertexMap(t,e)}addVertex(t){this.vertices.push(t)}addUniqueVertex(t){U(this.vertices,t)}removeVertex(t){var e;e=t,V(this.vertices,e)}containsVertex(t){return-1!==this.vertices.indexOf(t)}addEdge(t){this.__edges.add(t)}addUniqueEdge(t){this.__edges.add(t)}removeEdge(t){B(this,t)}containsEdge(t){return this.__edges.has(t)}addFace(t){this.__faces.add(t)}injectManyFaces(t){for(let e of t)this.injectFace(e)}injectFace(t){this.addFace(t);const e=t.edges,n=e.length;for(let t=0;t<n;t++){const n=e[t];this.addUniqueEdge(n)}const i=t.vertices,r=i.length;for(let t=0;t<r;t++){const e=i[t];this.addUniqueVertex(e)}}removeFace(t){var e;e=t,this.__faces.delete(e)}containsFace(t){return this.__faces.has(t)}ensureEdge(t,e){const n=t.edges,i=n.length;for(let r=0;r<i;r++){const i=n[r];if(E(i,t)===e)return i}const r=new T;return r.v0=t,r.v1=e,t.edges.push(r),e.edges.push(r),this.__edges.add(r),r}mergeEdges(){const t=this.getEdges();for(let e of t){const n=e.v0,i=e.v1;for(let r of t){if(e===r)continue;const t=r.v0,s=r.v1;if(n===t){if(i!==s)continue}else{if(n!==s)continue;if(i!==t)continue}B(this,r),e.merge(r)}}}computeEdgeSquaredLengths(){const t=this.getEdges();for(let e of t)e.computeSquaredLength()}build(t,e){const n=e.length,i=t.length/3,r=this.vertices;for(let e=0;e<i;e++){const n=3*e,i=new D;i.index=e,i.x=t[n],i.y=t[n+1],i.z=t[n+2],r[e]=i}const s=n/3,o=this.getFaces();for(let t=0;t<s;t++){const n=3*t,i=e[n],s=e[n+1],a=e[n+2],h=r[i],c=r[s],d=r[a],u=new O;u.index=t;const l=this.ensureEdge(h,c),f=this.ensureEdge(c,d),g=this.ensureEdge(d,h);l.faces.push(u),f.faces.push(u),g.faces.push(u),u.vertices.push(h,c,d),u.edges.push(l,f,g),h.faces.push(u),c.faces.push(u),d.faces.push(u),o.add(u)}}toString(){return`TopoMesh{ vertices: ${C(this.vertices.length)}, edges: ${C(this.getEdges().size)}, faces: ${C(this.getFaces().size)} }`}}R.prototype.isTopoMesh=!0;const J=[],P=[],H="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(let t=0,e=64;t<e;++t)J[t]=H[t],P[H.charCodeAt(t)]=t;function W(t,e,n){const i=[];for(let s=e;s<n;s+=3){const e=(t[s]<<16&16711680)+(t[s+1]<<8&65280)+(255&t[s+2]);i.push(J[(r=e)>>18&63]+J[r>>12&63]+J[r>>6&63]+J[63&r])}var r;return i.join("")}P["-".charCodeAt(0)]=62,P["_".charCodeAt(0)]=63;const G=16383;class Y{static encode(t){return function(t){const e=t.length,n=e%3,i=[],r=e-n;for(let e=0;e<r;e+=G){const n=W(t,e,e+G>r?r:e+G);i.push(n)}if(1===n){const n=t[e-1];i.push(J[n>>2]+J[n<<4&63]+"==")}else if(2===n){const n=(t[e-2]<<8)+t[e-1];i.push(J[n>>10]+J[n>>4&63]+J[n<<2&63]+"=")}return i.join("")}(new Uint8Array(t))}static decode(t){return function(t){let e;const n=function(t){const e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");let n=t.indexOf("=");return-1===n&&(n=e),[n,n===e?0:4-n%4]}(t),i=n[0],r=n[1],s=new Uint8Array(function(t,e){return 3*(t+e)/4-e}(i,r));let o=0;const a=r>0?i-4:i;let h=0;for(;h<a;h+=4){const n=t.charCodeAt(h),i=t.charCodeAt(h+1),r=t.charCodeAt(h+2),a=t.charCodeAt(h+3);e=P[n]<<18|P[i]<<12|P[r]<<6|P[a],s[o++]=e>>16&255,s[o++]=e>>8&255,s[o++]=255&e}if(2===r){const n=t.charCodeAt(h),i=t.charCodeAt(h+1);e=P[n]<<2|P[i]>>4,s[o++]=255&e}if(1===r){const n=t.charCodeAt(h),i=t.charCodeAt(h+1),r=t.charCodeAt(h+2);e=P[n]<<10|P[i]<<4|P[r]>>2,s[o++]=e>>8&255,s[o++]=255&e}return s}(t).buffer}}const K="uint8",Q="uint16",X="uint32",Z="int8",tt="int16",et="int32",nt="float32",it="float64",rt={[K]:Uint8Array,[Q]:Uint16Array,[X]:Uint32Array,[Z]:Int8Array,[tt]:Int16Array,[et]:Int32Array,float16:Uint16Array,[nt]:Float32Array,[it]:Float64Array};function st(t){const e=Object.getPrototypeOf(t).constructor;switch(e){case Uint8Array:case Uint8ClampedArray:return K;case Uint16Array:return Q;case Uint32Array:return X;case Int8Array:return Z;case Int16Array:return tt;case Int32Array:return et;case Float32Array:return nt;case Float64Array:return it;default:throw new Error(`unsupported constructor type ${e.name}`)}}function ot(t,e,n){return t<e?e:t>n?n:t}function at(t,e,n){return(e-t)*n+t}function ht(t,e,n,i,r){return.5*(i-e+(2*e-5*n+4*i-r+(3*(n-i)+r-e)*t)*t)*t+n}class ct{constructor(t=[],e=1,n=0,i=0){if(!Number.isInteger(e)||e<0)throw new Error(`itemSize must be a non-negative integer, instead was ${e}`);if(!Number.isInteger(n)||n<0)throw new Error(`width must be a non-negative integer, instead was ${n}`);if(!Number.isInteger(i)||n<0)throw new Error(`height must be a non-negative integer, instead was ${i}`);if(void 0===t)throw new Error("data was undefined");if(t.length<n*i*e)throw new Error(`Buffer underflow, data.length(=${t.length}) is too small. Expected at least ${n*i*e}`);this.width=n,this.height=i,this.itemSize=e,this.data=t,this.version=0}get(t,e,n){throw new Error("Deprecated method, use sampleBilinear instead")}sampleCatmullRomUV(t,e,n){const i=this.itemSize;for(let r=0;r<i;r++)n[r]=this.sampleChannelCatmullRomUV(t,e,r)}sampleChannelCatmullRomUV(t,e,n){const i=t*this.width-.5,r=e*this.height-.5;return this.sampleChannelCatmullRom(i,r,n)}sampleChannelCatmullRom(t,e,n){const i=Math.floor(t),r=Math.floor(e),s=t-i,o=e-r,a=s*(s*(1-.5*s)-.5),h=o*(o*(1-.5*o)-.5),c=s*(.5+s*(2-1.5*s)),d=o*(.5+o*(2-1.5*o)),u=s*s*(.5*s-.5),l=o*o*(.5*o-.5),f=1+s*s*(1.5*s-2.5)+c,g=1+o*o*(1.5*o-2.5)+d,_=i-1,p=r-1,m=i+2,y=r+2,w=i+c/f,v=r+d/g;let x=0;return x+=this.sampleChannelBilinear(_,p,n)*a*h,x+=this.sampleChannelBilinear(w,p,n)*f*h,x+=this.sampleChannelBilinear(m,p,n)*u*h,x+=this.sampleChannelBilinear(_,v,n)*a*g,x+=this.sampleChannelBilinear(w,v,n)*f*g,x+=this.sampleChannelBilinear(m,v,n)*u*g,x+=this.sampleChannelBilinear(_,y,n)*a*l,x+=this.sampleChannelBilinear(w,y,n)*f*l,x+=this.sampleChannelBilinear(m,y,n)*u*l,x}sampleBicubicUV(t,e,n){const i=this.itemSize;for(let r=0;r<i;r++)n[r]=this.sampleChannelBicubicUV(t,e,r)}sampleBicubic(t,e,n,i){const r=this.itemSize;for(let s=0;s<r;s++)n[s+i]=this.sampleChannelBicubic(t,e,s)}sampleChannelBicubicUV(t,e,n){const i=t*this.width,r=e*this.height;return this.sampleChannelBicubic(i-.5,r-.5,n)}sampleChannelBicubic(t,e,n){const i=this.itemSize,r=this.width,s=this.height,o=this.data,a=r*i,h=r-1,c=s-1,l=ot(t,0,h),f=ot(e,0,c),g=0|l,_=0|f,p=l-g,m=f-_,y=d(0,g-1),w=d(0,_-1),v=u(h,g+1),x=u(c,_+1),b=u(h,v+1),A=w*a+n,E=_*a+n,$=x*a+n,S=u(c,x+1)*a+n,F=y*i,U=g*i,z=v*i,C=b*i,B=o[A+F],V=o[A+U],L=o[A+z],M=o[A+C],q=o[E+F],T=o[E+U],I=o[E+z],N=o[E+C],k=o[$+F],O=o[$+U],j=o[$+z],D=o[$+C],R=o[S+F],J=o[S+U],P=o[S+z],H=o[S+C],W=ht(p,B,V,L,M),G=ht(p,q,T,I,N),Y=ht(p,k,O,j,D),K=ht(p,R,J,P,H);return ht(m,W,G,Y,K)}sampleBilinearUV(t,e,n,i=0){const r=this.itemSize;for(let s=0;s<r;s++)n[s+i]=this.sampleChannelBilinearUV(t,e,s)}sampleBilinear(t,e,n,i=0){const r=this.itemSize;for(let s=0;s<r;s++)n[s+i]=this.sampleChannelBilinear(t,e,s)}sampleChannelBilinearUV(t,e,n){const i=t*this.width-.5,r=e*this.height-.5;return this.sampleChannelBilinear(i,r,n)}sampleChannelBilinear(t,e,n){const i=this.itemSize,r=this.width,s=r*i,o=this.height-1,a=ot(t,0,r-1),h=ot(e,0,o),c=a>>>0,d=h>>>0,u=d*s,l=c*i+n,f=u+l;let g,_;g=a===c?c:c+1,_=h===d?d:d+1;const p=this.data,m=p[f];if(c===g&&d===_)return m;const y=a-c,w=h-d,v=g*i+n,x=_*s,b=x+l,A=x+v,E=p[u+v],$=p[b],S=p[A],F=at(m,E,y),U=at($,S,y);return at(F,U,w)}sampleNearestUV(t,e,n){const i=this.width,r=this.height,s=Math.round(t*i-.5),o=Math.round(e*r-.5);this.read(ot(s,0,i-1),ot(o,0,r-1),n)}readChannel(t,e,n){const i=(e*this.width+t)*this.itemSize+n;return this.data[i]}read(t,e,n){const i=this.width,r=this.itemSize,s=(e*i+t)*r;for(let t=0;t<r;t++)n[t]=this.data[s+t]}write(t,e,n){const i=this.width,r=this.itemSize,s=(e*i+t)*r;for(let t=0;t<r;t++)this.data[s+t]=n[t]}sample(t,e,n){const i=[];return this.sampleBilinear(t*(this.width-1),e*(this.height-1),i,0),n.readFromArray(i),i[0]}point2index(t,e){return t+e*this.width}index2point(t,e){const n=this.width,i=t%n,r=t/n|0;e.set(i,r)}copy(t,e,n,i,r,s,o){const a=Math.min(s,t.width-e,this.width-i),h=Math.min(o,t.height-n,this.height-r),c=this.itemSize,d=t.itemSize,u=Math.min(c,d),l=c*this.width,f=d*t.width,g=t.data,_=this.data;let p,m,y;for(m=0;m<h;m++){const t=(m+r)*l,s=(m+n)*f;for(p=0;p<a;p++){const n=t+(p+i)*c,r=s+(p+e)*d;for(y=0;y<u;y++)_[n+y]=g[r+y]}}this.version++}zeroFill(t,e,n,i){const r=ot(t,0,this.width),s=ot(e,0,this.height),o=ot(t+n,0,this.width),a=ot(e+i,0,this.height),h=this.data,c=this.itemSize,d=c*this.width,u=r*c,l=o*c;let f;for(f=s;f<a;f++){const t=f*d;h.fill(0,t+u,t+l)}this.version++}channelFill(t,e){const n=this.itemSize,i=this.data,r=i.length;for(let s=t;s<r;s+=n)i[s]=e;this.version++}fill(t,e,n,i,r){const s=this.width,o=this.height,a=ot(t,0,s),h=ot(e,0,o),c=ot(t+n,0,s),d=ot(e+i,0,o),u=this.data,l=this.itemSize,f=l*s;let g,_,p;for(g=h;g<d;g++){const t=g*f;for(_=a;_<c;_++){const e=t+_*l;for(p=0;p<l;p++)u[e+p]=r[p]}}this.version++}writeChannel(t,e,n,i){const r=(e*this.width+t)*this.itemSize+n;this.data[r]=i,this.version++}set(t,e,n){const i=this.data,r=this.itemSize,s=r*this.width*e+t*r;for(let t=0;t<r;t++)i[s+t]=n[t];this.version++}traverseCircle(t,e,n,i){let r,s;const o=0|t,a=0|e,h=n*n,c=Math.ceil(n);for(s=-c;s<=c;s++){const t=s*s;for(r=-c;r<=c;r++)r*r+t<=h&&i(o+r,a+s,this)}}resize(t,e,n=!0){const i=this.width,r=this.height;if(i===t&&r===e)return;const s=this.itemSize,o=t*e*s,a=this.data,h=new(function(t){if(t instanceof Int8Array)return Int8Array;if(t instanceof Int16Array)return Int16Array;if(t instanceof Int32Array)return Int32Array;if(t instanceof Uint8Array)return Uint8Array;if(t instanceof Uint8ClampedArray)return Uint8ClampedArray;if(t instanceof Uint16Array)return Uint16Array;if(t instanceof Uint32Array)return Uint32Array;if(t instanceof Float32Array)return Float32Array;if(t instanceof Float64Array)return Float64Array;if(Array.isArray(t))return Array;throw new TypeError("Unsupported array type")}(a))(o);if(n)if(t===i)h.set(a.subarray(0,Math.min(a.length,o)));else{const n=u(e,r),o=u(t,i);for(let e=0;e<n;e++)for(let n=0;n<o;n++){const r=(e*t+n)*s,o=(e*i+n)*s;for(let t=0;t<s;t++)h[r+t]=a[o+t]}}this.width=t,this.height=e,this.data=h,this.version++}computeByteSize(){let t;return t=Array.isArray(this.data)?8*this.data.length:this.data.buffer.byteLength,t+280}equals(e){return this.width===e.width&&this.height===e.height&&this.itemSize===e.itemSize&&function(e,n){if(e===n)return!0;const i=e.length;if(i!==n.length)return!1;const r=e.constructor;if(r!==n.constructor)return!1;if(0===i)return!0;if(i<128)return t(e,n);const s=e.byteLength;if(s!==n.byteLength)return!1;const o=e.buffer,a=n.buffer,h=e.byteOffset,c=n.byteOffset;if(o===a&&h===c)return!0;let d=e,u=n;const l=r.BYTES_PER_ELEMENT;return l<4&&s%4==0&&h%4==0&&c%4==0?(d=new Uint32Array(o,h,s>>>2),u=new Uint32Array(a,c,s>>>2)):l<2&&s%2==0&&h%2==0&&c%2==0&&(d=new Uint16Array(o,h,s>>>1),u=new Uint16Array(a,c,s>>>1)),t(d,u)}(this.data,e.data)}hash(){let t=((65535&this.width)<<16|65535&this.height)^this.itemSize;const e=this.data.length,n=Math.max(1,Math.ceil(e/509));return t^=function(t,e,n,i){let r=n;for(let e=0;e<n;e+=i)r=(r<<5)-r+(t[e]>>>0);return r>>>0}(this.data,0,e,n),t}clone(){let t;return t=Array.isArray(this.data)?this.data.slice():new(0,this.data.constructor)(this.data),new ct(t,this.itemSize,this.width,this.height)}toJSON(){const t=Y.encode(this.data.buffer);return{height:this.height,width:this.width,itemSize:this.itemSize,type:st(this.data),data:t}}fromJSON({height:t,width:e,itemSize:n,type:i,data:r}){const s=function(t){const e=rt[t];if(void 0===e)throw new Error(`Unsupported data type '${t}'`);return e}(i);if("string"==typeof r){const t=Y.decode(r);this.data=new s(t)}else{if(!Array.isArray(r))throw new Error("Unsupported data format");this.data=new s(r)}this.height=t,this.width=e,this.itemSize=n}static uint8clamped(t,e,n){const i=new Uint8ClampedArray(e*n*t);return new ct(i,t,e,n)}static uint8(t,e,n){const i=new Uint8Array(e*n*t);return new ct(i,t,e,n)}static uint16(t,e,n){const i=new Uint16Array(e*n*t);return new ct(i,t,e,n)}static uint32(t,e,n){const i=new Uint32Array(e*n*t);return new ct(i,t,e,n)}static int8(t,e,n){const i=new Int8Array(e*n*t);return new ct(i,t,e,n)}static int16(t,e,n){const i=new Int16Array(e*n*t);return new ct(i,t,e,n)}static int32(t,e,n){const i=new Int32Array(e*n*t);return new ct(i,t,e,n)}static float32(t,e,n){const i=new Float32Array(e*n*t);return new ct(i,t,e,n)}static float64(t,e,n){const i=new Float64Array(e*n*t);return new ct(i,t,e,n)}}function dt(t,e,n,i){const r=n[i],s=n[i+1],o=n[i+2];t[e]+=r,t[e+1]+=s,t[e+2]+=o}function ut(t,e,n,i,r,s){const o=3*n,a=3*i,h=3*r;N(t,e,s[o],s[o+1],s[o+2],s[a],s[a+1],s[a+2],s[h],s[h+1],s[h+2])}function lt(t,e,n,i){const r=n[i],s=n[i+1],o=n[i+2],a=1/j(r,s,o);t[e]=r*a,t[e+1]=s*a,t[e+2]=o*a}ct.prototype.isSampler2D=!0,ct.typeName="Sampler2D";const ft=new Float64Array(3),gt={build:function(t,e,n,i,r,s){const o=n.x*s,a=n.y*s,h=o-1,c=a-1;let d=0,u=0;const l=o*a,f=new Float32Array(3*l),g=new Float32Array(3*l),_=new Float32Array(2*l);let p,m;const y=n.y/r.y/c,w=n.x/r.x/h,v=e.y/r.y,x=e.x/r.x,b=r.x*i.x,A=r.y*i.y;let E,$,S;for(p=0;p<a;p++){const e=p*y+v;for(S=e*A,m=0;m<o;m++){const n=m*w+x;E=n*b,$=t.sampleChannelBicubicUV(n,e,0),f[d]=E,f[d+1]=$,f[d+2]=S,_[u]=n,_[u+1]=e,d+=3,u+=2}}d=0;const F=new(f.length/3>65535?Uint32Array:Uint16Array)(h*c*6);for(p=0;p<c;p++)for(m=0;m<h;m++){const t=m+o*p,e=m+o*(p+1),n=m+1+o*(p+1),i=m+1+o*p;F[d]=t,F[d+1]=e,F[d+2]=i,F[d+3]=e,F[d+4]=n,F[d+5]=i,d+=6}return function(t,e,n){const i=n.length;for(let r=0;r<i;r+=3){const i=n[r],s=n[r+1],o=n[r+2];ut(ft,0,i,s,o,t),dt(e,3*i,ft,0),dt(e,3*s,ft,0),dt(e,3*o,ft,0)}!function(t,e=0,n=t.length-e){const i=e+n;for(let n=e;n<i;n+=3)lt(t,n,t,n)}(e)}(f,g,F),{indices:F,vertices:f,normals:g,uvs:_}}};self.Lib={build_bvh(t,e){const n=new x;return function(t,e,n){const i=n.length/3;t.setLeafCount(i),t.initialize_structure();for(let r=0;r<i;r++){const i=3*r;b(t,r,e,n[i],n[i+1],n[i+2])}t.build()}(n,t,e),n},Sampler2D:ct,BufferedGeometryArraysBuilder:gt,tensionOptimizeUV:function(t,e,n,i=3){const r=new R;r.build(t,n),r.computeEdgeSquaredLengths();const s=t.length/3;for(let t=0;t<i;t++)t:for(let t=0;t<s;t++){const n=r.vertices[t],i=n.edges,s=i.length;if(0===s)continue;let o=0,a=0,h=0;for(let t=0;t<s;t++){const r=i[t];if(A(r))continue t;const s=2*E(r,n).index,c=e[s],d=e[s+1],u=1/r.lengthSqr;o+=c*u,a+=d*u,h+=u}const c=o/h,d=a/h,u=2*n.index;e[u]=c,e[u+1]=d}},sampler2d_channel_compute_min:function(t,e=0){const n=t.itemSize,i=t.data,r=i.length;if(0===r)return;let s=i[e],o=e;for(let t=e+n;t<r;t+=n){const e=i[t];s>e&&(s=e,o=t)}const a=t.width,h=o/n|0;return{index:o,value:s,x:h%a,y:h/a|0}},sampler2d_channel_compute_max:function(t,e=0){const n=t.itemSize,i=t.data,r=i.length;if(0===r)return;let s=i[e],o=e;for(let t=e+n;t<r;t+=n){const e=i[t];s<e&&(s=e,o=t)}const a=t.width,h=o/n|0;return{index:o,value:s,x:h%a,y:h/a|0}}};
|
|
1
|
+
function t(t,e){const n=t.length;if(n!==e.length)return!1;for(let r=0;r<n;r++)if(t[r]!==e[r])return!1;return!0}class e{appendDescriptionOf(t){throw new Error("Not Implemented")}appendList(t,e,n,r){throw new Error("Not Implemented")}appendText(t){throw new Error("Not Implemented")}appendValue(t){throw new Error("Not Implemented")}appendValueList(t,e,n,r){throw new Error("Not Implemented")}}class n{describeTo(t){throw new Error("Not Implemented")}}class r extends n{value;constructor(t){super(),this.value=t}describeTo(t){t.appendValue(this.value)}}class i{#t;constructor(t){this.#t=t}*[Symbol.iterator](){for(const t of this.#t)yield new r(t)}}class s extends e{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,n,r){return this.appendList(t,e,n,new i(r)),this}appendList(t,e,n,r){let i=!1;this.appendText(t);const s=r[Symbol.iterator]();for(let t=s.next();!0!==t.done;t=s.next())i&&this.appendText(e),this.appendDescriptionOf(t.value),i=!0;return this.appendText(n),this}}class o extends s{value="";appendText(t){return this.value+=t,this}}function a(t,e){if(!t)throw new Error(e||"AssertionError")}function h(t,e,n,r,i){let s,o,a;for(a=0;a<i;a++)s=e+a,o=r+a,n[o]=t[s]}a.enum=function(t,e,n="value"){for(let n in e)if(e[n]===t)return;throw new Error(`${n}(=${t}) is not a valid enumerable value, valid values are: [${Object.values(e).join(", ")}]`)},a.notEqual=function(t,e,n){a(t!==e,n)},a.notOk=function(t,e){a(!t,e)},a.equal=function(t,e,n){if(t!==e){const r=`${t} !== ${e}`;throw new Error(void 0!==n&&""!==n?`${n}. ${r}`:r)}},a.logicalyEqual=function(t,e,n){},a.ok=a,a.greaterThan=function(t,e,n){if(!(t>e)){let r="";throw void 0!==n&&(r+=n+". "),r+=`Expected ${t} > ${e}.`,new Error(r)}},a.greaterThanOrEqual=function(t,e,n){if(!(t>=e)){let r="";throw void 0!==n&&(r+=n+". "),r+=`Expected ${t} >= ${e}.`,new Error(r)}},a.lessThan=function(t,e,n){if(!(t<e)){let r="";throw void 0!==n&&(r+=n+". "),r+=`Expected ${t} < ${e}.`,new Error(r)}},a.lessThanOrEqual=function(t,e,n){if(!(t<=e)){let r="";throw void 0!==n&&(r+=n+". "),r+=`Expected ${t} <= ${e}.`,new Error(r)}},a.typeOf=function(t,e,n="value"){const r=typeof t;if(r!==e)throw new Error(`expected ${n} to be ${e}, instead was '${r}'(=${t})`)},a.arrayHas=function(t,e,n="Array does not contain the item"){},a.arrayHasNo=function(t,e,n="Array contains the item"){},a.arrayEqual=function(e,n,r="Arrays are not equal"){if(!t(e,n))throw new Error(r)},a.isInstanceOf=function(t,e,n="value",r=e.name){},a.isNumber=function(t,e="value"){const n=typeof t;if("number"!==n)throw new Error(`expected ${e} to be a number, instead was '${n}'(=${t})`)},a.isString=function(t,e="value"){const n=typeof t;if("string"!==n)throw new Error(`expected ${e} to be a string, instead was '${n}'(=${t})`)},a.isBoolean=function(t,e="value"){const n=typeof t;if("boolean"!==n)throw new Error(`expected ${e} to be a boolean, instead was '${n}'(=${t})`)},a.isFunction=function(t,e="value"){const n=typeof t;if("function"!==n)throw new Error(`expected ${e} to be a function, instead was '${n}'(=${t})`)},a.isObject=function(t,e="value"){const n=typeof t;if("object"!==n)throw new Error(`expected ${e} to be an object, instead was '${n}'(=${t})`)},a.isInteger=function(t,e="value"){if(!Number.isInteger(t))throw new Error(`${e} must be an integer, instead was ${t}`)},a.isNonNegativeInteger=function(t,e="value"){if(t<0)throw new Error(`${e} must be >= 0, instead was ${t}`)},a.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}')`)},a.isArrayLike=function(t,e="value"){if(!Array.isArray(t)&&!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))throw new Error(`expected ${e} to be an array-like structure, instead was something else (typeof ='${typeof t}')`)},a.defined=function(t,e="value"){if(void 0===t)throw new Error(`${e} is undefined`)},a.isNull=function(t,e){if(null!==t)throw new Error(`${e} is NOT null`)},a.notNull=function(t,e="value"){if(null===t)throw new Error(`${e} is null`)},a.notNaN=function(t,e="value"){if(Number.isNaN(t))throw new Error(`${e} must be a valid number, instead was NaN`)},a.isFiniteNumber=function(t,e="value"){if(!Number.isFinite(t))throw new Error(`${e} must be a finite number, instead was ${t}`)},a.that=function(t,e,n){if(n.matches(t))return;const r=new o;throw r.appendText(`Expected ${e} to be `),n.describeTo(r),r.appendText(" instead "),n.describeMismatch(t,r),new Error(r.value)};const c=new Uint32Array(781250);function u(t,e){return t<e?e:t}function d(t,e){return t<e?t:e}function l(t,e,n,r,i,s){const o=n[r+0],a=n[r+1],h=n[r+2],c=n[r+3],l=n[r+4],f=n[r+5],g=i[s+0],_=i[s+1],p=i[s+2],y=i[s+3],m=i[s+4],w=i[s+5],v=d(o,g),x=d(a,_),b=d(h,p),A=u(c,y),E=u(l,m),$=u(f,w);t[e+0]=v,t[e+1]=x,t[e+2]=b,t[e+3]=A,t[e+4]=E,t[e+5]=$}function f(t,e,n,r,i,s,o,a){t[e]=n,t[e+1]=r,t[e+2]=i,t[e+3]=s,t[e+4]=o,t[e+5]=a}function g(t,e,n,r,i,s){const o=r-t,a=s-n;return(i-e)*(o+a)+a*o}function _(t){let e=t;return e=50331903&(e|e<<16),e=50393103&(e|e<<8),e=51130563&(e|e<<4),e=153391689&(e|e<<2),e}function p(t,e,n){let r=t;return r<e&&(r=e),r<n&&(r=n),r}function y(t,e,n){let r=t;return r>e&&(r=e),r>n&&(r=n),r}function m(t,e,n){const r=t[n],i=t[n+1],s=t[n+2];f(t,e,r,i,s,r,i,s)}function w(t,e,n){const r=t[e],i=t[e+1],s=t[e+2];return function(t,e,n,r){const i=r[0],s=r[1],o=r[2],a=1023*(t-i)/(r[3]-i),h=1023*(e-s)/(r[4]-s),c=1023*(n-o)/(r[5]-o);return function(t,e,n){return _(t)|_(e)<<1|_(n)<<2}(Math.round(a),Math.round(h),Math.round(c))}(.5*(r+t[e+3]),.5*(i+t[e+4]),.5*(s+t[e+5]),n)}c.pointer=0;const v=c;class x{__data_buffer;__data_float32;__data_uint32;__node_count_binary=0;__node_count_leaf=0;constructor(){this.data=new ArrayBuffer(320)}estimateByteSize(){return this.data.byteLength+248}getTotalBoxCount(){return this.__node_count_binary+this.__node_count_leaf}get binary_node_count(){return this.__node_count_binary}get leaf_node_count(){return this.__node_count_leaf}getLeafBlockAddress(){return 6*this.__node_count_binary}get float32(){return this.__data_float32}get uint32(){return this.__data_uint32}set data(t){this.__data_buffer=t,this.__data_float32=new Float32Array(this.__data_buffer),this.__data_uint32=new Uint32Array(this.__data_buffer)}get data(){return this.__data_buffer}getNodeAddress(t){const e=this.__node_count_binary,n=t-e;return n<0?6*t:6*e+7*n}initialize_structure(){const t=4*(6*this.__node_count_binary+7*this.__node_count_leaf);this.__data_buffer.byteLength<t&&(this.data=new ArrayBuffer(t))}setLeafCount(t){this.__node_count_leaf=t;const e=function(t){let e=t-1;return e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e++,e}(t);this.__node_count_binary=t<=1?e:e-1}getLeafAddress(t){return 7*t+6*this.__node_count_binary}setLeafData(t,e,n,r,i,s,o,a){const h=this.getLeafAddress(t);f(this.__data_float32,h,n,r,i,s,o,a),this.__data_uint32[h+6]=e}readBounds(t,e,n){h(this.__data_float32,t,e,n,6)}readLeafPayload(t){const e=this.getLeafBlockAddress()+7*t+6;return this.__data_uint32[e]}compute_total_surface_area(){let t=0;const e=new Float32Array(6);for(let n=0;n<this.getTotalBoxCount();n++){let r;r=n<this.__node_count_binary?6*n:7*(n-this.__node_count_binary)+this.getLeafBlockAddress(),this.readBounds(r,e,0),t+=g(e[0],e[1],e[2],e[3],e[4],e[5])}return t}__compute_bounds_area_of_3_boxes(t,e,n){const r=this.__data_float32;return g(y(r[t+0],r[e+0],r[n+0]),y(r[t+1],r[e+1],r[n+1]),y(r[t+2],r[e+2],r[n+2]),p(r[t+3],r[e+3],r[n+3]),p(r[t+4],r[e+4],r[n+4]),p(r[t+5],r[e+5],r[n+5]))}__fitness_function_should_swap_leaves_sah(t,e){const n=u(t-1,0),r=d(t+1,this.__node_count_leaf-1),i=this.getLeafBlockAddress(),s=7*t+i,o=7*n+i,a=7*r+i,h=7*e+i,c=7*u(e-1,0)+i,l=7*d(e+1,this.__node_count_leaf-1)+i;return this.__compute_bounds_area_of_3_boxes(o,s,a)+this.__compute_bounds_area_of_3_boxes(c,h,l)-(this.__compute_bounds_area_of_3_boxes(o,h,a)+this.__compute_bounds_area_of_3_boxes(c,s,l))}sort_bubble_sah(){const t=this.__node_count_leaf;for(let e=0;e<t;e++)for(let n=e+1;n<t;n++)this.__fitness_function_should_swap_leaves_sah(e,n)>0&&this.__swap_leaves(e,n)}sort_morton(t){const e=6*this.__node_count_binary;if(this.__node_count_leaf<2)return;let n,r,i=2;v[0]=0,v[1]=this.__node_count_leaf-1;const s=this.__data_float32;for(;i>0;){i-=2;const o=v[i+1],a=v[i];n=a,r=o;const h=w(s,7*(a+o>>1)+e,t);for(;n<=r;){for(;w(s,7*n+e,t)<h;)n++;for(;w(s,7*r+e,t)>h;)r--;n<=r&&(n!==r&&this.__swap_leaves(n,r),n++,r--)}a<r&&(v[i++]=a,v[i++]=r),n<o&&(v[i++]=n,v[i++]=o)}}__swap_leaves(t,e){const n=this.getLeafBlockAddress(),r=7*t+n,i=7*e+n;!function(t,e,n,r,i){for(let i=0;i<7;i++){const s=e+i,o=r+i,a=n[o];n[o]=t[s],t[s]=a}}(this.__data_float32,r,this.__data_float32,i)}build(){const t=this.__node_count_binary,e=6*t;let n,r,i,s,o=Math.floor(Math.log(t)/Math.log(2));i=Math.pow(2,o),r=6*(i-1);const a=this.__node_count_leaf,c=this.__data_float32;for(n=0;n<i;n++){const t=n<<1,i=t+1,s=e+7*t;i<a?l(c,r,c,s,c,e+7*i):t<a?h(c,s,c,r,6):m(this.__data_float32,r,r-6),r+=6}for(o--;o>=0;o--)for(i=1<<o,s=i-1,n=0;n<i;n++){const t=6*(1+(s<<1));l(c,6*s,c,t,c,t+6),s++}}}function b(t,e,n,r,i,s){const o=t.getLeafAddress(e);!function(t,e,n,r,i,s){const o=3*r,a=3*i,h=3*s,c=n[o],u=n[o+1],d=n[o+2],l=n[a],f=n[a+1],g=n[a+2],_=n[h],m=n[h+1],w=n[h+2];t[e]=y(c,l,_),t[e+1]=y(u,f,m),t[e+2]=y(d,g,w),t[e+3]=p(c,l,_),t[e+4]=p(u,f,m),t[e+5]=p(d,g,w)}(t.__data_float32,o,n,r,i,s),t.__data_uint32[o+6]=e}function A(t){return 1===t.faces.length}function E(t,e){return t.v0===e?t.v1:t.v1===e?t.v0:null}var $,S="undefined"!=typeof Float32Array?Float32Array:Array;function F(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function U(t,e){return-1===t.indexOf(e)&&(t.push(e),!0)}function z(){}function C(t,e=","){return t.toString().replace(/\B(?=(\d{3})+(?!\d))/g,e)}function B(t,e){t.__edges.delete(e)}function V(t,e,n=0,r=t.length){const i=n+r;for(let r=n;r<i;r++)if(t[r]===e)return t.splice(r,1),!0;return!1}function L(t,e){return t.v0===e||t.v1===e}function M(t,e,n){const r=t.v0,i=t.v1;return!(r!==e&&r!==n||i!==e&&i!==n)}Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)}),$=new S(3),S!=Float32Array&&($[0]=0,$[1]=0,$[2]=0);let q=0;class T{index=q++;v0=null;v1=null;faces=[];lengthSqr=-1;get byteSize(){return 128+8*this.faces.length+10}getVertexByIndex(t){if(0===t)return this.v0;if(1===t)return this.v1;throw new Error("Index out of bounds")}copy(t){this.v0=t.v0,this.v1=t.v1,this.lengthSqr=t.lengthSqr,this.faces=t.faces.slice()}clone(){const t=new T;return t.copy(this),t}validate(t){let e=!0;const n=this.faces,r=n.length;for(let i=0;i<r;i++)n[i].containsEdge(this)||(t(`Missing back-link from face[${i}]`),e=!1);return this.v0.containsEdge(this)||(t("Missing back-link from vertex v0"),e=!1),this.v1.containsEdge(this)||(t("Missing back-link from vertex v1"),e=!1),e}isLinked(){return this.v0.containsEdge(this)}unlink(){const t=this.v0,e=this.v1;t.removeEdge(this),t!==e&&e.removeEdge(this);const n=this.faces,r=n.length;for(let t=0;t<r;t++)n[t].removeEdge(this)}isDegenerateEdge(){return this.v0===this.v1}isTopologyBorder(){return A(this)}get length(){return this.lengthSqr<0&&this.computeSquaredLength(),Math.sqrt(this.lengthSqr)}computeSquaredLength(){const t=this.v0,e=this.v1,n=t.x,r=t.y,i=t.z,s=n-e.x,o=r-e.y,a=i-e.z;this.lengthSqr=s*s+o*o+a*a}replaceVertex(t,e){t===this.v0&&(this.v0=e),t===this.v1&&(this.v1=e)}merge(t){const e=t.faces,n=this.faces,r=e.length;for(let i=0;i<r;i++){const r=e[i];r.removeEdge(t),-1===n.indexOf(r)&&(n.push(r),r.addUniqueEdge(this))}t.v0.removeEdge(t),t.v1.removeEdge(t)}containsFace(t){return-1!==this.faces.indexOf(t)}addFace(t){this.faces.push(t)}addUniqueFace(t){U(this.faces,t)}removeFace(t){V(this.faces,t)}getOtherVertex(t){return E(this,t)}containsVertex(t){return L(this,t)}containsBothVertices(t,e){return M(this,t,e)}containsSameVerticesAs(t){return M(this,t.v0,t.v1)}}function I(t,e,n){const r=t.length;for(let i=0;i<r;i++)t[i]===e&&(t[i]=n);return t}function N(t,e,n,r,i,s,o,a,h,c,u){const d=h-s,l=c-o,f=u-a,g=n-s,_=r-o,p=i-a,y=l*p-f*_,m=f*g-d*p,w=d*_-l*g,v=function(t,e,n){return t*t+e*e+n*n}(y,m,w);if(0===v)return t[e]=0,t[e+1]=1,void(t[e+2]=0);const x=1/Math.sqrt(v),b=y*x,A=m*x,E=w*x;t[e]=b,t[e+1]=A,t[e+2]=E}T.prototype.isTopoEdge=!0;let k=0;class O{index=k++;vertices=[];edges=[];normal=[0,0,0];get byteSize(){return 100+8*this.vertices.length+10+8*this.edges.length+10+24+10}copy(t){this.index=t.index,this.vertices=t.vertices.slice(),this.edges=t.edges.slice(),F(this.normal,t.normal)}clone(){const t=new O;return t.copy(this),t}validate(t){let e=!0;const n=this.vertices,r=n.length;3!==r&&(t(`Expected number of vertices is 3, instead got ${r}`),e=!1);for(let i=0;i<r;i++)n[i].containsFace(this)||(t(`Missing back-link from vertex[${i}]`),e=!1);const i=this.edges,s=i.length;3!==s&&(t(`Expected number of edges is 3, instead got ${s}`),e=!1);for(let n=0;n<s;n++)i[n].containsFace(this)||(t(`Missing back-link from edge[${n}]`),e=!1);return e}isLinked(){return this.vertices[0].containsFace(this)}replaceEdge(t,e){I(this.edges,t,e)}replaceVertex(t,e){I(this.vertices,t,e)}isDegenerateTopology(){const t=this.vertices,e=t[0],n=t[1],r=t[2];return e===n||e===r||n===r}unlink(){const t=this.vertices,e=t.length;for(let n=0;n<e;n++)t[n].removeFace(this);const n=this.edges,r=n.length;for(let t=0;t<r;t++)n[t].removeFace(this)}addEdge(t){this.edges.push(t)}addUniqueEdge(t){return U(this.edges,t)}removeEdge(t){V(this.edges,t)}containsEdge(t){return-1!==this.edges.indexOf(t)}computeNormal(){const t=this.vertices,e=t[0],n=t[1],r=t[2];!function(t,e,n,r){N(t,0,e[0],e[1],e[2],n[0],n[1],n[2],r[0],r[1],r[2])}(this.normal,e,n,r)}setVertexAt(t,e){this.vertices[t]=e}containsVertex(t){return-1!==this.vertices.indexOf(t)}getEdgeNeighbours(t,e){let n=0;const r=this.edges,i=r.length;for(let s=0;s<i;s++){const i=r[s].faces,o=i.length;for(let r=0;r<o;r++){const s=i[r];s!==this&&(t[e+n]=s,n++)}}return n}}function j(t,e,n){return Math.sqrt(t*t+e*e+n*n)}O.prototype.isTopoFace=!0;class D{index=0;edges=[];faces=[];x=0;y=0;z=0;get 0(){return this.x}get 1(){return this.y}get 2(){return this.z}get byteSize(){return 112+8*this.edges.length+10+8*this.faces.length+10}copy(t){this.x=t.x,this.y=t.y,this.z=t.z,this.index=t.index,this.faces=t.faces.slice(),this.edges=t.edges.slice()}clone(){const t=new D;return t.copy(this),t}validate(t){let e=!0;const n=this.faces,r=n.length;for(let i=0;i<r;i++)n[i].containsVertex(this)||(t(`Missing back-link from face[${i}]`),e=!1);const i=this.edges,s=i.length;for(let n=0;n<s;n++)L(i[n],this)||(t(`Missing back-link from edge[${n}]`),e=!1);return e}distanceTo(t){return e=this.x,n=this.y,r=this.z,j(t.x-e,t.y-n,t.z-r);var e,n,r}addFace(t){this.faces.push(t)}addUniqueFace(t){return U(this.faces,t)}containsFace(t){return-1!==this.faces.indexOf(t)}removeFace(t){V(this.faces,t)}addEdge(t){this.edges.push(t)}addUniqueEdge(t){return U(this.edges,t)}replaceEdge(t,e){const n=this.edges,r=n.indexOf(t);n[r]=e}containsEdge(t){return-1!==this.edges.indexOf(t)}removeEdge(t){return V(this.edges,t)}replaceAnotherVertex(t){throw new Error('deprecated, use "tm_vert_splice" instead')}computeNeighbourVertices(t,e){let n=0;const r=this.edges,i=r.length;for(let s=0;s<i;s++){const i=r[s].getOtherVertex(this);t[e+n]=i,n++}return n}}D.prototype.isTopoVertex=!0;class R{vertices=[];__edges=new Set;__faces=new Set;get byteSize(){let t=0;for(let e=0;e<this.vertices.length;e++)t+=this.vertices[e].byteSize;for(const e of this.__edges)t+=e.byteSize;for(const e of this.__faces)t+=e.byteSize;return t}getEdges(){return this.__edges}getFaces(){return this.__faces}getFaceByIndex(t){for(const e of this.__faces)if(e.index===t)return e}validate(t=z){let e=!0,n="",r=0;function i(i){t(`${n}[${r}]: ${i}`),e=!1}n="Edge",r=0;const s=this.getEdges();for(let t of s){t.validate(i),this.containsVertex(t.v0)||i("Link to off-mesh vertex v0"),this.containsVertex(t.v1)||i("Link to off-mesh vertex v1");const e=t.faces,n=e.length;for(let t=0;t<n;t++){const n=e[t];this.containsFace(n)||i(`Link to off-mesh face[${t}]`)}r++}const o=this.getFaces();n="Face",r=0;for(let t of o){t.validate(i);const e=t.edges,n=e.length;for(let t=0;t<n;t++){const n=e[t];this.containsEdge(n)||i(`Link to off-mesh edge[${t}]`)}const s=t.vertices,o=s.length;for(let t=0;t<o;t++){const e=s[t];this.containsVertex(e)||i(`Link to off-mesh vertex[${t}]`)}r++}const a=this.vertices,h=a.length;n="Vertex";for(let t=0;t<h;t++){r=t;const e=a[t];e.validate(i);const n=e.edges,s=n.length;for(let t=0;t<s;t++){const e=n[t];this.containsEdge(e)||i(`Link to off-mesh edge[${t}]`)}const o=e.faces,h=o.length;for(let t=0;t<h;t++){const e=o[t];this.containsFace(e)||i(`Link to off-mesh face[${t}]`)}}return e}clone(){const t=new R;return t.add(this),t}buildVertexMapping(){const t=new Map,e=this.vertices,n=e.length;for(let r=0;r<n;r++){const n=e[r];t.set(n.index,n)}return t}_addWithVertexMap(t,e){const n=t.getFaces();for(let t of n)this.addFaceCopy(t,e)}addFaceCopy(t,e){const n=new O;F(n.normal,t.normal);const r=t.vertices;for(let t=0;t<3;t++){const i=r[t];let s=e.get(i.index);void 0===s&&(s=new D,s.index=i.index,s.x=i.x,s.y=i.y,s.z=i.z,e.set(i.index,s),this.addVertex(s)),n.setVertexAt(t,s),s.addUniqueFace(n)}this.addFace(n),this.patchFaceEdges(n)}patchFaceEdges(t){const e=t.vertices,n=e[0],r=e[1],i=e[2],s=this.ensureEdge(n,r),o=this.ensureEdge(r,i),a=this.ensureEdge(i,n);s.addUniqueFace(t),o.addUniqueFace(t),a.addUniqueFace(t),t.addUniqueEdge(s),t.addUniqueEdge(o),t.addUniqueEdge(a)}add(t){const e=this.buildVertexMapping();this._addWithVertexMap(t,e)}addVertex(t){this.vertices.push(t)}addUniqueVertex(t){U(this.vertices,t)}removeVertex(t){var e;e=t,V(this.vertices,e)}containsVertex(t){return-1!==this.vertices.indexOf(t)}addEdge(t){this.__edges.add(t)}addUniqueEdge(t){this.__edges.add(t)}removeEdge(t){B(this,t)}containsEdge(t){return this.__edges.has(t)}addFace(t){this.__faces.add(t)}injectManyFaces(t){for(let e of t)this.injectFace(e)}injectFace(t){this.addFace(t);const e=t.edges,n=e.length;for(let t=0;t<n;t++){const n=e[t];this.addUniqueEdge(n)}const r=t.vertices,i=r.length;for(let t=0;t<i;t++){const e=r[t];this.addUniqueVertex(e)}}removeFace(t){var e;e=t,this.__faces.delete(e)}containsFace(t){return this.__faces.has(t)}ensureEdge(t,e){const n=t.edges,r=n.length;for(let i=0;i<r;i++){const r=n[i];if(E(r,t)===e)return r}const i=new T;return i.v0=t,i.v1=e,t.edges.push(i),e.edges.push(i),this.__edges.add(i),i}mergeEdges(){const t=this.getEdges();for(let e of t){const n=e.v0,r=e.v1;for(let i of t){if(e===i)continue;const t=i.v0,s=i.v1;if(n===t){if(r!==s)continue}else{if(n!==s)continue;if(r!==t)continue}B(this,i),e.merge(i)}}}computeEdgeSquaredLengths(){const t=this.getEdges();for(let e of t)e.computeSquaredLength()}build(t,e){const n=e.length,r=t.length/3,i=this.vertices;for(let e=0;e<r;e++){const n=3*e,r=new D;r.index=e,r.x=t[n],r.y=t[n+1],r.z=t[n+2],i[e]=r}const s=n/3,o=this.getFaces();for(let t=0;t<s;t++){const n=3*t,r=e[n],s=e[n+1],a=e[n+2],h=i[r],c=i[s],u=i[a],d=new O;d.index=t;const l=this.ensureEdge(h,c),f=this.ensureEdge(c,u),g=this.ensureEdge(u,h);l.faces.push(d),f.faces.push(d),g.faces.push(d),d.vertices.push(h,c,u),d.edges.push(l,f,g),h.faces.push(d),c.faces.push(d),u.faces.push(d),o.add(d)}}toString(){return`TopoMesh{ vertices: ${C(this.vertices.length)}, edges: ${C(this.getEdges().size)}, faces: ${C(this.getFaces().size)} }`}}R.prototype.isTopoMesh=!0;const J=[],P=[],H="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(let t=0,e=64;t<e;++t)J[t]=H[t],P[H.charCodeAt(t)]=t;function W(t,e,n){const r=[];for(let s=e;s<n;s+=3){const e=(t[s]<<16&16711680)+(t[s+1]<<8&65280)+(255&t[s+2]);r.push(J[(i=e)>>18&63]+J[i>>12&63]+J[i>>6&63]+J[63&i])}var i;return r.join("")}P["-".charCodeAt(0)]=62,P["_".charCodeAt(0)]=63;const G=16383;class Y{static encode(t){return function(t){const e=t.length,n=e%3,r=[],i=e-n;for(let e=0;e<i;e+=G){const n=W(t,e,e+G>i?i:e+G);r.push(n)}if(1===n){const n=t[e-1];r.push(J[n>>2]+J[n<<4&63]+"==")}else if(2===n){const n=(t[e-2]<<8)+t[e-1];r.push(J[n>>10]+J[n>>4&63]+J[n<<2&63]+"=")}return r.join("")}(new Uint8Array(t))}static decode(t){return function(t){let e;const n=function(t){const e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");let n=t.indexOf("=");return-1===n&&(n=e),[n,n===e?0:4-n%4]}(t),r=n[0],i=n[1],s=new Uint8Array(function(t,e){return 3*(t+e)/4-e}(r,i));let o=0;const a=i>0?r-4:r;let h=0;for(;h<a;h+=4){const n=t.charCodeAt(h),r=t.charCodeAt(h+1),i=t.charCodeAt(h+2),a=t.charCodeAt(h+3);e=P[n]<<18|P[r]<<12|P[i]<<6|P[a],s[o++]=e>>16&255,s[o++]=e>>8&255,s[o++]=255&e}if(2===i){const n=t.charCodeAt(h),r=t.charCodeAt(h+1);e=P[n]<<2|P[r]>>4,s[o++]=255&e}if(1===i){const n=t.charCodeAt(h),r=t.charCodeAt(h+1),i=t.charCodeAt(h+2);e=P[n]<<10|P[r]<<4|P[i]>>2,s[o++]=e>>8&255,s[o++]=255&e}return s}(t).buffer}}const K="uint8",Q="uint16",X="uint32",Z="int8",tt="int16",et="int32",nt="float32",rt="float64",it={[K]:Uint8Array,[Q]:Uint16Array,[X]:Uint32Array,[Z]:Int8Array,[tt]:Int16Array,[et]:Int32Array,float16:Uint16Array,[nt]:Float32Array,[rt]:Float64Array};function st(t){const e=Object.getPrototypeOf(t).constructor;switch(e){case Uint8Array:case Uint8ClampedArray:return K;case Uint16Array:return Q;case Uint32Array:return X;case Int8Array:return Z;case Int16Array:return tt;case Int32Array:return et;case Float32Array:return nt;case Float64Array:return rt;default:throw new Error(`unsupported constructor type ${e.name}`)}}function ot(t,e,n){return t<e?e:t>n?n:t}function at(t,e,n){return(e-t)*n+t}function ht(t,e,n,r,i){return.5*(r-e+(2*e-5*n+4*r-i+(3*(n-r)+i-e)*t)*t)*t+n}class ct{constructor(t=[],e=1,n=0,r=0){if(!Number.isInteger(e)||e<0)throw new Error(`itemSize must be a non-negative integer, instead was ${e}`);if(!Number.isInteger(n)||n<0)throw new Error(`width must be a non-negative integer, instead was ${n}`);if(!Number.isInteger(r)||n<0)throw new Error(`height must be a non-negative integer, instead was ${r}`);if(void 0===t)throw new Error("data was undefined");if(t.length<n*r*e)throw new Error(`Buffer underflow, data.length(=${t.length}) is too small. Expected at least ${n*r*e}`);this.width=n,this.height=r,this.itemSize=e,this.data=t,this.version=0}get(t,e,n){throw new Error("Deprecated method, use sampleBilinear instead")}sampleCatmullRomUV(t,e,n){const r=this.itemSize;for(let i=0;i<r;i++)n[i]=this.sampleChannelCatmullRomUV(t,e,i)}sampleChannelCatmullRomUV(t,e,n){const r=t*this.width-.5,i=e*this.height-.5;return this.sampleChannelCatmullRom(r,i,n)}sampleChannelCatmullRom(t,e,n){const r=Math.floor(t),i=Math.floor(e),s=t-r,o=e-i,a=s*(s*(1-.5*s)-.5),h=o*(o*(1-.5*o)-.5),c=s*(.5+s*(2-1.5*s)),u=o*(.5+o*(2-1.5*o)),d=s*s*(.5*s-.5),l=o*o*(.5*o-.5),f=1+s*s*(1.5*s-2.5)+c,g=1+o*o*(1.5*o-2.5)+u,_=r-1,p=i-1,y=r+2,m=i+2,w=r+c/f,v=i+u/g;let x=0;return x+=this.sampleChannelBilinear(_,p,n)*a*h,x+=this.sampleChannelBilinear(w,p,n)*f*h,x+=this.sampleChannelBilinear(y,p,n)*d*h,x+=this.sampleChannelBilinear(_,v,n)*a*g,x+=this.sampleChannelBilinear(w,v,n)*f*g,x+=this.sampleChannelBilinear(y,v,n)*d*g,x+=this.sampleChannelBilinear(_,m,n)*a*l,x+=this.sampleChannelBilinear(w,m,n)*f*l,x+=this.sampleChannelBilinear(y,m,n)*d*l,x}sampleBicubicUV(t,e,n){const r=this.itemSize;for(let i=0;i<r;i++)n[i]=this.sampleChannelBicubicUV(t,e,i)}sampleBicubic(t,e,n,r){const i=this.itemSize;for(let s=0;s<i;s++)n[s+r]=this.sampleChannelBicubic(t,e,s)}sampleChannelBicubicUV(t,e,n){const r=t*this.width,i=e*this.height;return this.sampleChannelBicubic(r-.5,i-.5,n)}sampleChannelBicubic(t,e,n){const r=this.itemSize,i=this.width,s=this.height,o=this.data,a=i*r,h=i-1,c=s-1,l=ot(t,0,h),f=ot(e,0,c),g=0|l,_=0|f,p=l-g,y=f-_,m=u(0,g-1),w=u(0,_-1),v=d(h,g+1),x=d(c,_+1),b=d(h,v+1),A=w*a+n,E=_*a+n,$=x*a+n,S=d(c,x+1)*a+n,F=m*r,U=g*r,z=v*r,C=b*r,B=o[A+F],V=o[A+U],L=o[A+z],M=o[A+C],q=o[E+F],T=o[E+U],I=o[E+z],N=o[E+C],k=o[$+F],O=o[$+U],j=o[$+z],D=o[$+C],R=o[S+F],J=o[S+U],P=o[S+z],H=o[S+C],W=ht(p,B,V,L,M),G=ht(p,q,T,I,N),Y=ht(p,k,O,j,D),K=ht(p,R,J,P,H);return ht(y,W,G,Y,K)}sampleBilinearUV(t,e,n,r=0){const i=this.itemSize;for(let s=0;s<i;s++)n[s+r]=this.sampleChannelBilinearUV(t,e,s)}sampleBilinear(t,e,n,r=0){const i=this.itemSize;for(let s=0;s<i;s++)n[s+r]=this.sampleChannelBilinear(t,e,s)}sampleChannelBilinearUV(t,e,n){const r=t*this.width-.5,i=e*this.height-.5;return this.sampleChannelBilinear(r,i,n)}sampleChannelBilinear(t,e,n){const r=this.itemSize,i=this.width,s=i*r,o=this.height-1,a=ot(t,0,i-1),h=ot(e,0,o),c=a>>>0,u=h>>>0,d=u*s,l=c*r+n,f=d+l;let g,_;g=a===c?c:c+1,_=h===u?u:u+1;const p=this.data,y=p[f];if(c===g&&u===_)return y;const m=a-c,w=h-u,v=g*r+n,x=_*s,b=x+l,A=x+v,E=p[d+v],$=p[b],S=p[A],F=at(y,E,m),U=at($,S,m);return at(F,U,w)}sampleNearestUV(t,e,n){const r=this.width,i=this.height,s=Math.round(t*r-.5),o=Math.round(e*i-.5);this.read(ot(s,0,r-1),ot(o,0,i-1),n)}readChannel(t,e,n){const r=(e*this.width+t)*this.itemSize+n;return this.data[r]}read(t,e,n){const r=this.width,i=this.itemSize,s=(e*r+t)*i;for(let t=0;t<i;t++)n[t]=this.data[s+t]}write(t,e,n){const r=this.width,i=this.itemSize,s=(e*r+t)*i;for(let t=0;t<i;t++)this.data[s+t]=n[t]}sample(t,e,n){const r=[];return this.sampleBilinear(t*(this.width-1),e*(this.height-1),r,0),n.readFromArray(r),r[0]}point2index(t,e){return t+e*this.width}index2point(t,e){const n=this.width,r=t%n,i=t/n|0;e.set(r,i)}copy(t,e,n,r,i,s,o){const a=Math.min(s,t.width-e,this.width-r),h=Math.min(o,t.height-n,this.height-i),c=this.itemSize,u=t.itemSize,d=Math.min(c,u),l=c*this.width,f=u*t.width,g=t.data,_=this.data;let p,y,m;for(y=0;y<h;y++){const t=(y+i)*l,s=(y+n)*f;for(p=0;p<a;p++){const n=t+(p+r)*c,i=s+(p+e)*u;for(m=0;m<d;m++)_[n+m]=g[i+m]}}this.version++}zeroFill(t,e,n,r){const i=ot(t,0,this.width),s=ot(e,0,this.height),o=ot(t+n,0,this.width),a=ot(e+r,0,this.height),h=this.data,c=this.itemSize,u=c*this.width,d=i*c,l=o*c;let f;for(f=s;f<a;f++){const t=f*u;h.fill(0,t+d,t+l)}this.version++}channelFill(t,e){const n=this.itemSize,r=this.data,i=r.length;for(let s=t;s<i;s+=n)r[s]=e;this.version++}fill(t,e,n,r,i){const s=this.width,o=this.height,a=ot(t,0,s),h=ot(e,0,o),c=ot(t+n,0,s),u=ot(e+r,0,o),d=this.data,l=this.itemSize,f=l*s;let g,_,p;for(g=h;g<u;g++){const t=g*f;for(_=a;_<c;_++){const e=t+_*l;for(p=0;p<l;p++)d[e+p]=i[p]}}this.version++}writeChannel(t,e,n,r){const i=(e*this.width+t)*this.itemSize+n;this.data[i]=r,this.version++}set(t,e,n){const r=this.data,i=this.itemSize,s=i*this.width*e+t*i;for(let t=0;t<i;t++)r[s+t]=n[t];this.version++}traverseCircle(t,e,n,r){let i,s;const o=0|t,a=0|e,h=n*n,c=Math.ceil(n);for(s=-c;s<=c;s++){const t=s*s;for(i=-c;i<=c;i++)i*i+t<=h&&r(o+i,a+s,this)}}resize(t,e,n=!0){const r=this.width,i=this.height;if(r===t&&i===e)return;const s=this.itemSize,o=t*e*s,a=this.data,h=new(function(t){if(t instanceof Int8Array)return Int8Array;if(t instanceof Int16Array)return Int16Array;if(t instanceof Int32Array)return Int32Array;if(t instanceof Uint8Array)return Uint8Array;if(t instanceof Uint8ClampedArray)return Uint8ClampedArray;if(t instanceof Uint16Array)return Uint16Array;if(t instanceof Uint32Array)return Uint32Array;if(t instanceof Float32Array)return Float32Array;if(t instanceof Float64Array)return Float64Array;if(Array.isArray(t))return Array;throw new TypeError("Unsupported array type")}(a))(o);if(n)if(t===r)h.set(a.subarray(0,Math.min(a.length,o)));else{const n=d(e,i),o=d(t,r);for(let e=0;e<n;e++)for(let n=0;n<o;n++){const i=(e*t+n)*s,o=(e*r+n)*s;for(let t=0;t<s;t++)h[i+t]=a[o+t]}}this.width=t,this.height=e,this.data=h,this.version++}computeByteSize(){let t;return t=Array.isArray(this.data)?8*this.data.length:this.data.buffer.byteLength,t+280}equals(e){return this.width===e.width&&this.height===e.height&&this.itemSize===e.itemSize&&function(e,n){if(e===n)return!0;const r=e.length;if(r!==n.length)return!1;const i=e.constructor;if(i!==n.constructor)return!1;if(0===r)return!0;if(r<128)return t(e,n);const s=e.byteLength;if(s!==n.byteLength)return!1;const o=e.buffer,a=n.buffer,h=e.byteOffset,c=n.byteOffset;if(o===a&&h===c)return!0;let u=e,d=n;const l=i.BYTES_PER_ELEMENT,f=function(t,e,n){const r=t|e|n;return 0==(3&r)?4:0==(1&r)?2:1}(h,c,s);return l<4&&4===f?(u=new Uint32Array(o,h,s>>>2),d=new Uint32Array(a,c,s>>>2)):l<2&&2===f&&(u=new Uint16Array(o,h,s>>>1),d=new Uint16Array(a,c,s>>>1)),t(u,d)}(this.data,e.data)}hash(){let t=((65535&this.width)<<16|65535&this.height)^this.itemSize;const e=this.data.length,n=Math.max(1,Math.ceil(e/509));return t^=function(t,e,n,r){let i=n;for(let e=0;e<n;e+=r)i=(i<<5)-i+(t[e]>>>0);return i>>>0}(this.data,0,e,n),t}clone(){let t;return t=Array.isArray(this.data)?this.data.slice():new(0,this.data.constructor)(this.data),new ct(t,this.itemSize,this.width,this.height)}toJSON(){const t=Y.encode(this.data.buffer);return{height:this.height,width:this.width,itemSize:this.itemSize,type:st(this.data),data:t}}fromJSON({height:t,width:e,itemSize:n,type:r,data:i}){const s=function(t){const e=it[t];if(void 0===e)throw new Error(`Unsupported data type '${t}'`);return e}(r);if("string"==typeof i){const t=Y.decode(i);this.data=new s(t)}else{if(!Array.isArray(i))throw new Error("Unsupported data format");this.data=new s(i)}this.height=t,this.width=e,this.itemSize=n}static uint8clamped(t,e,n){const r=new Uint8ClampedArray(e*n*t);return new ct(r,t,e,n)}static uint8(t,e,n){const r=new Uint8Array(e*n*t);return new ct(r,t,e,n)}static uint16(t,e,n){const r=new Uint16Array(e*n*t);return new ct(r,t,e,n)}static uint32(t,e,n){const r=new Uint32Array(e*n*t);return new ct(r,t,e,n)}static int8(t,e,n){const r=new Int8Array(e*n*t);return new ct(r,t,e,n)}static int16(t,e,n){const r=new Int16Array(e*n*t);return new ct(r,t,e,n)}static int32(t,e,n){const r=new Int32Array(e*n*t);return new ct(r,t,e,n)}static float32(t,e,n){const r=new Float32Array(e*n*t);return new ct(r,t,e,n)}static float64(t,e,n){const r=new Float64Array(e*n*t);return new ct(r,t,e,n)}}function ut(t,e,n,r){const i=n[r],s=n[r+1],o=n[r+2];t[e]+=i,t[e+1]+=s,t[e+2]+=o}function dt(t,e,n,r,i,s){const o=3*n,a=3*r,h=3*i;N(t,e,s[o],s[o+1],s[o+2],s[a],s[a+1],s[a+2],s[h],s[h+1],s[h+2])}function lt(t,e,n,r){const i=n[r],s=n[r+1],o=n[r+2],a=1/j(i,s,o);t[e]=i*a,t[e+1]=s*a,t[e+2]=o*a}ct.prototype.isSampler2D=!0,ct.typeName="Sampler2D";const ft=new Float64Array(3),gt={build:function(t,e,n,r,i,s){const o=n.x*s,a=n.y*s,h=o-1,c=a-1;let u=0,d=0;const l=o*a,f=new Float32Array(3*l),g=new Float32Array(3*l),_=new Float32Array(2*l);let p,y;const m=n.y/i.y/c,w=n.x/i.x/h,v=e.y/i.y,x=e.x/i.x,b=i.x*r.x,A=i.y*r.y;let E,$,S;for(p=0;p<a;p++){const e=p*m+v;for(S=e*A,y=0;y<o;y++){const n=y*w+x;E=n*b,$=t.sampleChannelBicubicUV(n,e,0),f[u]=E,f[u+1]=$,f[u+2]=S,_[d]=n,_[d+1]=e,u+=3,d+=2}}u=0;const F=new(f.length/3>65535?Uint32Array:Uint16Array)(h*c*6);for(p=0;p<c;p++)for(y=0;y<h;y++){const t=y+o*p,e=y+o*(p+1),n=y+1+o*(p+1),r=y+1+o*p;F[u]=t,F[u+1]=e,F[u+2]=r,F[u+3]=e,F[u+4]=n,F[u+5]=r,u+=6}return function(t,e,n){const r=n.length;for(let i=0;i<r;i+=3){const r=n[i],s=n[i+1],o=n[i+2];dt(ft,0,r,s,o,t),ut(e,3*r,ft,0),ut(e,3*s,ft,0),ut(e,3*o,ft,0)}!function(t,e=0,n=t.length-e){const r=e+n;for(let n=e;n<r;n+=3)lt(t,n,t,n)}(e)}(f,g,F),{indices:F,vertices:f,normals:g,uvs:_}}};self.Lib={build_bvh(t,e){const n=new x;return function(t,e,n){const r=n.length/3;t.setLeafCount(r),t.initialize_structure();for(let i=0;i<r;i++){const r=3*i;b(t,i,e,n[r],n[r+1],n[r+2])}t.build()}(n,t,e),n},Sampler2D:ct,BufferedGeometryArraysBuilder:gt,tensionOptimizeUV:function(t,e,n,r=3){const i=new R;i.build(t,n),i.computeEdgeSquaredLengths();const s=t.length/3;for(let t=0;t<r;t++)t:for(let t=0;t<s;t++){const n=i.vertices[t],r=n.edges,s=r.length;if(0===s)continue;let o=0,a=0,h=0;for(let t=0;t<s;t++){const i=r[t];if(A(i))continue t;const s=2*E(i,n).index,c=e[s],u=e[s+1],d=1/i.lengthSqr;o+=c*d,a+=u*d,h+=d}const c=o/h,u=a/h,d=2*n.index;e[d]=c,e[d+1]=u}},sampler2d_channel_compute_min:function(t,e=0){const n=t.itemSize,r=t.data,i=r.length;if(0===i)return;let s=r[e],o=e;for(let t=e+n;t<i;t+=n){const e=r[t];s>e&&(s=e,o=t)}const a=t.width,h=o/n|0;return{index:o,value:s,x:h%a,y:h/a|0}},sampler2d_channel_compute_max:function(t,e=0){const n=t.itemSize,r=t.data,i=r.length;if(0===i)return;let s=r[e],o=e;for(let t=e+n;t<i;t+=n){const e=r[t];s<e&&(s=e,o=t)}const a=t.width,h=o/n|0;return{index:o,value:s,x:h%a,y:h/a|0}}};
|