bimatter-viewer-react 0.10.1 → 0.11.0

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/README.md CHANGED
@@ -8,6 +8,8 @@ All about us you can see on our website [Bimatter](https://bimatter.ru/)
8
8
 
9
9
  [GitHub](https://github.com/rkaeplive/bimatter-viewer-react)
10
10
 
11
+ [Bmt converter](https://www.npmjs.com/package/bimatter-converter)
12
+
11
13
  [Documentation](https://rkaeplive.github.io/bimatter-viewer-react/api)
12
14
 
13
15
  Vanila js viewer core: [bimatter-viewer](https://www.npmjs.com/package/bimatter-viewer?activeTab=code)
@@ -93,7 +93,6 @@ export declare class BmtConverter {
93
93
  private isObjectVisible;
94
94
  private isIfcSpaceObject;
95
95
  private getObjectModelID;
96
- private hasMeshMatrices;
97
96
  private getIndexType;
98
97
  private colorToByte;
99
98
  private deflateTypedArray;
@@ -5,6 +5,7 @@ import { type ViewerPropertiesApi } from "./ViewerPropertiesApi";
5
5
  import type { ViewerClippingApi } from "../utils/ClippingUtils";
6
6
  import type { ViewerColorConfigByModel, ViewerModelColorConfig } from "../utils/ColorsUtils/useElementColors";
7
7
  import type { ViewerDimensionsApi } from "../utils/DimentionsUtils";
8
+ import type { ViewerNotesApi } from "../utils/NotesUtils";
8
9
  import type { ViewerCameraGetIntersection } from "../Camera/useCameraUtils";
9
10
  import type { BmtConversionResult, BmtConverterOptions, BmtConverterSource } from "../Loaders/BmtConverter";
10
11
  import { FilteredElementsCollector } from "../Selector/FilteredElementsCollector";
@@ -14,6 +15,7 @@ import { type ViewerPlansApi, type ViewerPlansContainerFactory, type ViewerPlans
14
15
  export type { ViewerClippingApi, ViewerClippingVector3Input, } from "../utils/ClippingUtils";
15
16
  export type { ViewerColorConfigByModel, ViewerModelColorConfig, } from "../utils/ColorsUtils/useElementColors";
16
17
  export type { ViewerDimensionsApi } from "../utils/DimentionsUtils";
18
+ export type { ViewerNotesApi, ViewerNoteSettings, ViewerNoteVector3Input, } from "../utils/NotesUtils";
17
19
  export type { ViewerCameraGetIntersection } from "../Camera/useCameraUtils";
18
20
  export type { ViewerCameraProjection, ViewerFirstPersonControlSettings, } from "../types";
19
21
  export type { ViewerPlanHandle, ViewerPlansApi, ViewerPlanVector3Input, } from "./ViewerPlansApi";
@@ -158,6 +160,7 @@ export type ViewerApi = {
158
160
  dimensions: ViewerDimensionsApi;
159
161
  geometryUtils: ViewerGeometryUtilsApi;
160
162
  models: ViewerModelsApi;
163
+ notes: ViewerNotesApi;
161
164
  plans: ViewerPlansApi;
162
165
  postproduction: ViewerPostproductionApi;
163
166
  properties: ViewerPropertiesApi;
@@ -171,6 +174,7 @@ export type ViewerSceneApi = {
171
174
  converter: ViewerConverterApi;
172
175
  dimensions: ViewerDimensionsApi;
173
176
  geometryUtils: ViewerGeometryUtilsApi;
177
+ notes: ViewerNotesApi;
174
178
  plans: ViewerPlansSceneApi;
175
179
  selector: ViewerSceneSelectorApi;
176
180
  };
@@ -1 +1 @@
1
- (function(){function e(e){let t=e.length;for(;--t>=0;)e[t]=0}let t=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]),n=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]),r=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),i=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),a=Array(288*2);e(a);let o=Array(60);e(o);let s=Array(512);e(s);let c=Array(256);e(c);let l=Array(29);e(l);let u=Array(30);e(u);function d(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}let f,p,m;function h(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}let g=e=>e<256?s[e]:s[256+(e>>>7)],_=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},v=(e,t,n)=>{e.bi_valid>16-n?(e.bi_buf|=t<<e.bi_valid&65535,_(e,e.bi_buf),e.bi_buf=t>>16-e.bi_valid,e.bi_valid+=n-16):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},y=(e,t,n)=>{v(e,n[t*2],n[t*2+1])},b=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},x=e=>{e.bi_valid===16?(_(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},S=(e,t)=>{let n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,c=t.stat_desc.max_length,l,u,d,f,p,m,h=0;for(f=0;f<=15;f++)e.bl_count[f]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<573;l++)u=e.heap[l],f=n[n[u*2+1]*2+1]+1,f>c&&(f=c,h++),n[u*2+1]=f,!(u>r)&&(e.bl_count[f]++,p=0,u>=s&&(p=o[u-s]),m=n[u*2],e.opt_len+=m*(f+p),a&&(e.static_len+=m*(i[u*2+1]+p)));if(h!==0){do{for(f=c-1;e.bl_count[f]===0;)f--;e.bl_count[f]--,e.bl_count[f+1]+=2,e.bl_count[c]--,h-=2}while(h>0);for(f=c;f!==0;f--)for(u=e.bl_count[f];u!==0;)d=e.heap[--l],!(d>r)&&(n[d*2+1]!==f&&(e.opt_len+=(f-n[d*2+1])*n[d*2],n[d*2+1]=f),u--)}},C=(e,t,n)=>{let r=Array(16),i=0,a,o;for(a=1;a<=15;a++)i=i+n[a-1]<<1,r[a]=i;for(o=0;o<=t;o++){let t=e[o*2+1];t!==0&&(e[o*2]=b(r[t]++,t))}},w=()=>{let e,i,h,g,_,v=Array(16);for(h=0,g=0;g<28;g++)for(l[g]=h,e=0;e<1<<t[g];e++)c[h++]=g;for(c[h-1]=g,_=0,g=0;g<16;g++)for(u[g]=_,e=0;e<1<<n[g];e++)s[_++]=g;for(_>>=7;g<30;g++)for(u[g]=_<<7,e=0;e<1<<n[g]-7;e++)s[256+ _++]=g;for(i=0;i<=15;i++)v[i]=0;for(e=0;e<=143;)a[e*2+1]=8,e++,v[8]++;for(;e<=255;)a[e*2+1]=9,e++,v[9]++;for(;e<=279;)a[e*2+1]=7,e++,v[7]++;for(;e<=287;)a[e*2+1]=8,e++,v[8]++;for(C(a,287,v),e=0;e<30;e++)o[e*2+1]=5,o[e*2]=b(e,5);f=new d(a,t,257,286,15),p=new d(o,n,0,30,15),m=new d([],r,0,19,7)},T=e=>{let t;for(t=0;t<286;t++)e.dyn_ltree[t*2]=0;for(t=0;t<30;t++)e.dyn_dtree[t*2]=0;for(t=0;t<19;t++)e.bl_tree[t*2]=0;e.dyn_ltree[256*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},E=e=>{e.bi_valid>8?_(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},D=(e,t,n,r)=>{let i=t*2,a=n*2;return e[i]<e[a]||e[i]===e[a]&&r[t]<=r[n]},O=(e,t,n)=>{let r=e.heap[n],i=n<<1;for(;i<=e.heap_len&&(i<e.heap_len&&D(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!D(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r},ee=(e,r,i)=>{let a,o,s=0,d,f;if(e.sym_next!==0)do a=e.pending_buf[e.sym_buf+ s++]&255,a+=(e.pending_buf[e.sym_buf+ s++]&255)<<8,o=e.pending_buf[e.sym_buf+ s++],a===0?y(e,o,r):(d=c[o],y(e,d+256+1,r),f=t[d],f!==0&&(o-=l[d],v(e,o,f)),a--,d=g(a),y(e,d,i),f=n[d],f!==0&&(a-=u[d],v(e,a,f)));while(s<e.sym_next);y(e,256,r)},k=(e,t)=>{let n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems,o,s,c=-1,l;for(e.heap_len=0,e.heap_max=573,o=0;o<a;o++)n[o*2]===0?n[o*2+1]=0:(e.heap[++e.heap_len]=c=o,e.depth[o]=0);for(;e.heap_len<2;)l=e.heap[++e.heap_len]=c<2?++c:0,n[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=r[l*2+1]);for(t.max_code=c,o=e.heap_len>>1;o>=1;o--)O(e,n,o);l=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],O(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,n[l*2]=n[o*2]+n[s*2],e.depth[l]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,n[o*2+1]=n[s*2+1]=l,e.heap[1]=l++,O(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],S(e,t),C(n,c,e.bl_count)},A=(e,t,n)=>{let r,i=-1,a,o=t[1],s=0,c=7,l=4;for(o===0&&(c=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=t[(r+1)*2+1],!(++s<c&&a===o)&&(s<l?e.bl_tree[a*2]+=s:a===0?s<=10?e.bl_tree[34]++:e.bl_tree[36]++:(a!==i&&e.bl_tree[a*2]++,e.bl_tree[32]++),s=0,i=a,o===0?(c=138,l=3):a===o?(c=6,l=3):(c=7,l=4))},te=(e,t,n)=>{let r,i=-1,a,o=t[1],s=0,c=7,l=4;for(o===0&&(c=138,l=3),r=0;r<=n;r++)if(a=o,o=t[(r+1)*2+1],!(++s<c&&a===o)){if(s<l)do y(e,a,e.bl_tree);while(--s!==0);else a===0?s<=10?(y(e,17,e.bl_tree),v(e,s-3,3)):(y(e,18,e.bl_tree),v(e,s-11,7)):(a!==i&&(y(e,a,e.bl_tree),s--),y(e,16,e.bl_tree),v(e,s-3,2));s=0,i=a,o===0?(c=138,l=3):a===o?(c=6,l=3):(c=7,l=4)}},ne=e=>{let t;for(A(e,e.dyn_ltree,e.l_desc.max_code),A(e,e.dyn_dtree,e.d_desc.max_code),k(e,e.bl_desc),t=18;t>=3&&e.bl_tree[i[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},re=(e,t,n,r)=>{let a;for(v(e,t-257,5),v(e,n-1,5),v(e,r-4,4),a=0;a<r;a++)v(e,e.bl_tree[i[a]*2+1],3);te(e,e.dyn_ltree,t-1),te(e,e.dyn_dtree,n-1)},ie=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return 0;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return 1;for(n=32;n<256;n++)if(e.dyn_ltree[n*2]!==0)return 1;return 0},ae=!1,oe=e=>{ae||=(w(),!0),e.l_desc=new h(e.dyn_ltree,f),e.d_desc=new h(e.dyn_dtree,p),e.bl_desc=new h(e.bl_tree,m),e.bi_buf=0,e.bi_valid=0,T(e)},se=(e,t,n,r)=>{v(e,0+ +!!r,3),E(e),_(e,n),_(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n};var ce={_tr_init:oe,_tr_stored_block:se,_tr_flush_block:(e,t,n,r)=>{let i,s,c=0;e.level>0?(e.strm.data_type===2&&(e.strm.data_type=ie(e)),k(e,e.l_desc),k(e,e.d_desc),c=ne(e),i=e.opt_len+3+7>>>3,s=e.static_len+3+7>>>3,s<=i&&(i=s)):i=s=n+5,n+4<=i&&t!==-1?se(e,t,n,r):e.strategy===4||s===i?(v(e,2+ +!!r,3),ee(e,a,o)):(v(e,4+ +!!r,3),re(e,e.l_desc.max_code+1,e.d_desc.max_code+1,c+1),ee(e,e.dyn_ltree,e.dyn_dtree)),T(e),r&&E(e)},_tr_tally:(e,t,n)=>(e.pending_buf[e.sym_buf+ e.sym_next++]=t,e.pending_buf[e.sym_buf+ e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+ e.sym_next++]=n,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(c[n]+256+1)*2]++,e.dyn_dtree[g(t)*2]++),e.sym_next===e.sym_end),_tr_align:e=>{v(e,2,3),y(e,256,a),x(e)}},le=(e,t,n,r)=>{let i=e&65535|0,a=e>>>16&65535|0,o=0;for(;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+t[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0};let ue=new Uint32Array((()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t})());var j=(e,t,n,r)=>{let i=ue,a=r+n;e^=-1;for(let n=r;n<a;n++)e=e>>>8^i[(e^t[n])&255];return e^-1},M={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`},N={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};let{_tr_init:de,_tr_stored_block:fe,_tr_flush_block:pe,_tr_tally:P,_tr_align:me}=ce,{Z_NO_FLUSH:F,Z_PARTIAL_FLUSH:he,Z_FULL_FLUSH:ge,Z_FINISH:I,Z_BLOCK:_e,Z_OK:L,Z_STREAM_END:ve,Z_STREAM_ERROR:R,Z_DATA_ERROR:ye,Z_BUF_ERROR:be,Z_DEFAULT_COMPRESSION:xe,Z_FILTERED:Se,Z_HUFFMAN_ONLY:Ce,Z_RLE:we,Z_FIXED:Te,Z_DEFAULT_STRATEGY:Ee,Z_UNKNOWN:De,Z_DEFLATED:Oe}=N,z=(e,t)=>(e.msg=M[t],t),ke=e=>e*2-(e>4?9:0),B=e=>{let t=e.length;for(;--t>=0;)e[t]=0},Ae=e=>{let t,n,r,i=e.w_size;t=e.hash_size,r=t;do n=e.head[--r],e.head[r]=n>=i?n-i:0;while(--t);t=i,r=t;do n=e.prev[--r],e.prev[r]=n>=i?n-i:0;while(--t)},V=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask,H=e=>{let t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))},U=(e,t)=>{pe(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,H(e.strm)},W=(e,t)=>{e.pending_buf[e.pending++]=t},je=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},Me=(e,t,n,r)=>{let i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,t.set(e.input.subarray(e.next_in,e.next_in+i),n),e.state.wrap===1?e.adler=le(e.adler,t,i,n):e.state.wrap===2&&(e.adler=j(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)},Ne=(e,t)=>{let n=e.max_chain_length,r=e.strstart,i,a,o=e.prev_length,s=e.nice_match,c=e.strstart>e.w_size-262?e.strstart-(e.w_size-262):0,l=e.window,u=e.w_mask,d=e.prev,f=e.strstart+258,p=l[r+o-1],m=l[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do{if(i=t,l[i+o]!==m||l[i+o-1]!==p||l[i]!==l[r]||l[++i]!==l[r+1])continue;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(a=258-(f-r),r=f-258,a>o){if(e.match_start=t,o=a,a>=s)break;p=l[r+o-1],m=l[r+o]}}while((t=d[t&u])>c&&--n!==0);return o<=e.lookahead?o:e.lookahead},G=e=>{let t=e.w_size,n,r,i;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-262)&&(e.window.set(e.window.subarray(t,t+t-r),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),Ae(e),r+=t),e.strm.avail_in===0)break;if(n=Me(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,e.lookahead+e.insert>=3)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=V(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=V(e,e.ins_h,e.window[i+3-1]),e.prev[i&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=i,i++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<262&&e.strm.avail_in!==0)},Pe=(e,t)=>{let n=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,r,i,a,o=0,s=e.strm.avail_in;do{if(r=65535,a=e.bi_valid+42>>3,e.strm.avail_out<a||(a=e.strm.avail_out-a,i=e.strstart-e.block_start,r>i+e.strm.avail_in&&(r=i+e.strm.avail_in),r>a&&(r=a),r<n&&(r===0&&t!==I||t===F||r!==i+e.strm.avail_in)))break;o=+(t===I&&r===i+e.strm.avail_in),fe(e,0,0,o),e.pending_buf[e.pending-4]=r,e.pending_buf[e.pending-3]=r>>8,e.pending_buf[e.pending-2]=~r,e.pending_buf[e.pending-1]=~r>>8,H(e.strm),i&&(i>r&&(i=r),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+i),e.strm.next_out),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i,e.block_start+=i,r-=i),r&&(Me(e.strm,e.strm.output,e.strm.next_out,r),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r)}while(o===0);return s-=e.strm.avail_in,s&&(s>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=s&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-s,e.strm.next_in),e.strstart),e.strstart+=s,e.insert+=s>e.w_size-e.insert?e.w_size-e.insert:s),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),o?4:t!==F&&t!==I&&e.strm.avail_in===0&&e.strstart===e.block_start?2:(a=e.window_size-e.strstart,e.strm.avail_in>a&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,a+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),a>e.strm.avail_in&&(a=e.strm.avail_in),a&&(Me(e.strm,e.window,e.strstart,a),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.high_water<e.strstart&&(e.high_water=e.strstart),a=e.bi_valid+42>>3,a=e.pending_buf_size-a>65535?65535:e.pending_buf_size-a,n=a>e.w_size?e.w_size:a,i=e.strstart-e.block_start,(i>=n||(i||t===I)&&t!==F&&e.strm.avail_in===0&&i<=a)&&(r=i>a?a:i,o=+(t===I&&e.strm.avail_in===0&&r===i),fe(e,e.block_start,r,o),e.block_start+=r,H(e.strm)),o?3:1)},Fe=(e,t)=>{let n,r;for(;;){if(e.lookahead<262){if(G(e),e.lookahead<262&&t===F)return 1;if(e.lookahead===0)break}if(n=0,e.lookahead>=3&&(e.ins_h=V(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-262&&(e.match_length=Ne(e,n)),e.match_length>=3)if(r=P(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do e.strstart++,e.ins_h=V(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=V(e,e.ins_h,e.window[e.strstart+1]);else r=P(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(U(e,!1),e.strm.avail_out===0))return 1}return e.insert=e.strstart<2?e.strstart:2,t===I?(U(e,!0),e.strm.avail_out===0?3:4):e.sym_next&&(U(e,!1),e.strm.avail_out===0)?1:2},K=(e,t)=>{let n,r,i;for(;;){if(e.lookahead<262){if(G(e),e.lookahead<262&&t===F)return 1;if(e.lookahead===0)break}if(n=0,e.lookahead>=3&&(e.ins_h=V(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-262&&(e.match_length=Ne(e,n),e.match_length<=5&&(e.strategy===Se||e.match_length===3&&e.strstart-e.match_start>4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-3,r=P(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=V(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=2,e.strstart++,r&&(U(e,!1),e.strm.avail_out===0))return 1}else if(e.match_available){if(r=P(e,0,e.window[e.strstart-1]),r&&U(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&=(r=P(e,0,e.window[e.strstart-1]),0),e.insert=e.strstart<2?e.strstart:2,t===I?(U(e,!0),e.strm.avail_out===0?3:4):e.sym_next&&(U(e,!1),e.strm.avail_out===0)?1:2},Ie=(e,t)=>{let n,r,i,a,o=e.window;for(;;){if(e.lookahead<=258){if(G(e),e.lookahead<=258&&t===F)return 1;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(i=e.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=e.strstart+258;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);e.match_length=258-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(n=P(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=P(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(U(e,!1),e.strm.avail_out===0))return 1}return e.insert=0,t===I?(U(e,!0),e.strm.avail_out===0?3:4):e.sym_next&&(U(e,!1),e.strm.avail_out===0)?1:2},Le=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(G(e),e.lookahead===0)){if(t===F)return 1;break}if(e.match_length=0,n=P(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(U(e,!1),e.strm.avail_out===0))return 1}return e.insert=0,t===I?(U(e,!0),e.strm.avail_out===0?3:4):e.sym_next&&(U(e,!1),e.strm.avail_out===0)?1:2};function q(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}let Re=[new q(0,0,0,0,Pe),new q(4,4,8,4,Fe),new q(4,5,16,8,Fe),new q(4,6,32,32,Fe),new q(4,4,16,16,K),new q(8,16,32,32,K),new q(8,16,128,128,K),new q(8,32,128,256,K),new q(32,128,258,1024,K),new q(32,258,258,4096,K)],ze=e=>{e.window_size=2*e.w_size,B(e.head),e.max_lazy_match=Re[e.level].max_lazy,e.good_match=Re[e.level].good_length,e.nice_match=Re[e.level].nice_length,e.max_chain_length=Re[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=2,e.match_available=0,e.ins_h=0};function Be(){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=Oe,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(573*2),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),B(this.dyn_ltree),B(this.dyn_dtree),B(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),B(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),B(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}let Ve=e=>{if(!e)return 1;let t=e.state;return+(!t||t.strm!==e||t.status!==42&&t.status!==57&&t.status!==69&&t.status!==73&&t.status!==91&&t.status!==103&&t.status!==113&&t.status!==666)},He=e=>{if(Ve(e))return z(e,R);e.total_in=e.total_out=0,e.data_type=De;let t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?57:t.wrap?42:113,e.adler=t.wrap===2?0:1,t.last_flush=-2,de(t),L},Ue=e=>{let t=He(e);return t===L&&ze(e.state),t},We=(e,t)=>Ve(e)||e.state.wrap!==2?R:(e.state.gzhead=t,L),Ge=(e,t,n,r,i,a)=>{if(!e)return R;let o=1;if(t===xe&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>9||n!==Oe||r<8||r>15||t<0||t>9||a<0||a>Te||r===8&&o!==1)return z(e,R);r===8&&(r=9);let s=new Be;return e.state=s,s.strm=e,s.status=42,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+3-1)/3),s.window=new Uint8Array(s.w_size*2),s.head=new Uint16Array(s.hash_size),s.prev=new Uint16Array(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new Uint8Array(s.pending_buf_size),s.sym_buf=s.lit_bufsize,s.sym_end=(s.lit_bufsize-1)*3,s.level=t,s.strategy=a,s.method=n,Ue(e)};var Ke={deflateInit:(e,t)=>Ge(e,t,Oe,15,8,Ee),deflateInit2:Ge,deflateReset:Ue,deflateResetKeep:He,deflateSetHeader:We,deflate:(e,t)=>{if(Ve(e)||t>_e||t<0)return e?z(e,R):R;let n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===666&&t!==I)return z(e,e.avail_out===0?be:R);let r=n.last_flush;if(n.last_flush=t,n.pending!==0){if(H(e),e.avail_out===0)return n.last_flush=-1,L}else if(e.avail_in===0&&ke(t)<=ke(r)&&t!==I)return z(e,be);if(n.status===666&&e.avail_in!==0)return z(e,be);if(n.status===42&&n.wrap===0&&(n.status=113),n.status===42){let t=Oe+(n.w_bits-8<<4)<<8,r=-1;if(r=n.strategy>=Ce||n.level<2?0:n.level<6?1:n.level===6?2:3,t|=r<<6,n.strstart!==0&&(t|=32),t+=31-t%31,je(n,t),n.strstart!==0&&(je(n,e.adler>>>16),je(n,e.adler&65535)),e.adler=1,n.status=113,H(e),n.pending!==0)return n.last_flush=-1,L}if(n.status===57){if(e.adler=0,W(n,31),W(n,139),W(n,8),n.gzhead)W(n,+!!n.gzhead.text+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),W(n,n.gzhead.time&255),W(n,n.gzhead.time>>8&255),W(n,n.gzhead.time>>16&255),W(n,n.gzhead.time>>24&255),W(n,n.level===9?2:n.strategy>=Ce||n.level<2?4:0),W(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(W(n,n.gzhead.extra.length&255),W(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=j(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69;else if(W(n,0),W(n,0),W(n,0),W(n,0),W(n,0),W(n,n.level===9?2:n.strategy>=Ce||n.level<2?4:0),W(n,3),n.status=113,H(e),n.pending!==0)return n.last_flush=-1,L}if(n.status===69){if(n.gzhead.extra){let t=n.pending,r=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+r>n.pending_buf_size;){let i=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+i),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>t&&(e.adler=j(e.adler,n.pending_buf,n.pending-t,t)),n.gzindex+=i,H(e),n.pending!==0)return n.last_flush=-1,L;t=0,r-=i}let i=new Uint8Array(n.gzhead.extra);n.pending_buf.set(i.subarray(n.gzindex,n.gzindex+r),n.pending),n.pending+=r,n.gzhead.hcrc&&n.pending>t&&(e.adler=j(e.adler,n.pending_buf,n.pending-t,t)),n.gzindex=0}n.status=73}if(n.status===73){if(n.gzhead.name){let t=n.pending,r;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>t&&(e.adler=j(e.adler,n.pending_buf,n.pending-t,t)),H(e),n.pending!==0)return n.last_flush=-1,L;t=0}r=n.gzindex<n.gzhead.name.length?n.gzhead.name.charCodeAt(n.gzindex++)&255:0,W(n,r)}while(r!==0);n.gzhead.hcrc&&n.pending>t&&(e.adler=j(e.adler,n.pending_buf,n.pending-t,t)),n.gzindex=0}n.status=91}if(n.status===91){if(n.gzhead.comment){let t=n.pending,r;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>t&&(e.adler=j(e.adler,n.pending_buf,n.pending-t,t)),H(e),n.pending!==0)return n.last_flush=-1,L;t=0}r=n.gzindex<n.gzhead.comment.length?n.gzhead.comment.charCodeAt(n.gzindex++)&255:0,W(n,r)}while(r!==0);n.gzhead.hcrc&&n.pending>t&&(e.adler=j(e.adler,n.pending_buf,n.pending-t,t))}n.status=103}if(n.status===103){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(H(e),n.pending!==0))return n.last_flush=-1,L;W(n,e.adler&255),W(n,e.adler>>8&255),e.adler=0}if(n.status=113,H(e),n.pending!==0)return n.last_flush=-1,L}if(e.avail_in!==0||n.lookahead!==0||t!==F&&n.status!==666){let r=n.level===0?Pe(n,t):n.strategy===Ce?Le(n,t):n.strategy===we?Ie(n,t):Re[n.level].func(n,t);if((r===3||r===4)&&(n.status=666),r===1||r===3)return e.avail_out===0&&(n.last_flush=-1),L;if(r===2&&(t===he?me(n):t!==_e&&(fe(n,0,0,!1),t===ge&&(B(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),H(e),e.avail_out===0))return n.last_flush=-1,L}return t===I?n.wrap<=0?ve:(n.wrap===2?(W(n,e.adler&255),W(n,e.adler>>8&255),W(n,e.adler>>16&255),W(n,e.adler>>24&255),W(n,e.total_in&255),W(n,e.total_in>>8&255),W(n,e.total_in>>16&255),W(n,e.total_in>>24&255)):(je(n,e.adler>>>16),je(n,e.adler&65535)),H(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending===0?ve:L):L},deflateEnd:e=>{if(Ve(e))return R;let t=e.state.status;return e.state=null,t===113?z(e,ye):L},deflateSetDictionary:(e,t)=>{let n=t.length;if(Ve(e))return R;let r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==42||r.lookahead)return R;if(i===1&&(e.adler=le(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){i===0&&(B(r.head),r.strstart=0,r.block_start=0,r.insert=0);let e=new Uint8Array(r.w_size);e.set(t.subarray(n-r.w_size,n),0),t=e,n=r.w_size}let a=e.avail_in,o=e.next_in,s=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,G(r);r.lookahead>=3;){let e=r.strstart,t=r.lookahead-2;do r.ins_h=V(r,r.ins_h,r.window[e+3-1]),r.prev[e&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=e,e++;while(--t);r.strstart=e,r.lookahead=2,G(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=2,r.match_available=0,e.next_in=o,e.input=s,e.avail_in=a,r.wrap=i,L},deflateInfo:`pako deflate (from Nodeca project)`};let qe=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var Je={assign:function(e){let t=Array.prototype.slice.call(arguments,1);for(;t.length;){let n=t.shift();if(n){if(typeof n!=`object`)throw TypeError(n+`must be non-object`);for(let t in n)qe(n,t)&&(e[t]=n[t])}}return e},flattenChunks:e=>{let t=0;for(let n=0,r=e.length;n<r;n++)t+=e[n].length;let n=new Uint8Array(t);for(let t=0,r=0,i=e.length;t<i;t++){let i=e[t];n.set(i,r),r+=i.length}return n}};let Ye=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Ye=!1}let Xe=new Uint8Array(256);for(let e=0;e<256;e++)Xe[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;Xe[254]=Xe[254]=1;var Ze=e=>{if(typeof TextEncoder==`function`&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,n,r,i,a,o=e.length,s=0;for(i=0;i<o;i++)n=e.charCodeAt(i),(n&64512)==55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)==56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Uint8Array(s),a=0,i=0;a<s;i++)n=e.charCodeAt(i),(n&64512)==55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)==56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[a++]=n:n<2048?(t[a++]=192|n>>>6,t[a++]=128|n&63):n<65536?(t[a++]=224|n>>>12,t[a++]=128|n>>>6&63,t[a++]=128|n&63):(t[a++]=240|n>>>18,t[a++]=128|n>>>12&63,t[a++]=128|n>>>6&63,t[a++]=128|n&63);return t};let Qe=(e,t)=>{if(t<65534&&e.subarray&&Ye)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let n=``;for(let r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n};var $e={string2buf:Ze,buf2string:(e,t)=>{let n=t||e.length;if(typeof TextDecoder==`function`&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let r,i,a=Array(n*2);for(i=0,r=0;r<n;){let t=e[r++];if(t<128){a[i++]=t;continue}let o=Xe[t];if(o>4){a[i++]=65533,r+=o-1;continue}for(t&=o===2?31:o===3?15:7;o>1&&r<n;)t=t<<6|e[r++]&63,o--;if(o>1){a[i++]=65533;continue}t<65536?a[i++]=t:(t-=65536,a[i++]=55296|t>>10&1023,a[i++]=56320|t&1023)}return Qe(a,i)},utf8border:(e,t)=>{t||=e.length,t>e.length&&(t=e.length);let n=t-1;for(;n>=0&&(e[n]&192)==128;)n--;return n<0||n===0?t:n+Xe[e[n]]>t?n:t}};function et(){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}var tt=et;let nt=Object.prototype.toString,{Z_NO_FLUSH:rt,Z_SYNC_FLUSH:it,Z_FULL_FLUSH:at,Z_FINISH:ot,Z_OK:st,Z_STREAM_END:ct,Z_DEFAULT_COMPRESSION:lt,Z_DEFAULT_STRATEGY:ut,Z_DEFLATED:dt}=N;function ft(e){this.options=Je.assign({level:lt,method:dt,chunkSize:16384,windowBits:15,memLevel:8,strategy:ut},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg=``,this.ended=!1,this.chunks=[],this.strm=new tt,this.strm.avail_out=0;let n=Ke.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==st)throw Error(M[n]);if(t.header&&Ke.deflateSetHeader(this.strm,t.header),t.dictionary){let e;if(e=typeof t.dictionary==`string`?$e.string2buf(t.dictionary):nt.call(t.dictionary)===`[object ArrayBuffer]`?new Uint8Array(t.dictionary):t.dictionary,n=Ke.deflateSetDictionary(this.strm,e),n!==st)throw Error(M[n]);this._dict_set=!0}}ft.prototype.push=function(e,t){let n=this.strm,r=this.options.chunkSize,i,a;if(this.ended)return!1;for(a=t===~~t?t:t===!0?ot:rt,typeof e==`string`?n.input=$e.string2buf(e):nt.call(e)===`[object ArrayBuffer]`?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(a===it||a===at)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=Ke.deflate(n,a),i===ct)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=Ke.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===st;if(n.avail_out===0){this.onData(n.output);continue}if(a>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0},ft.prototype.onData=function(e){this.chunks.push(e)},ft.prototype.onEnd=function(e){e===st&&(this.result=Je.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function pt(e,t){let n=new ft(t);if(n.push(e,!0),n.err)throw n.msg||M[n.err];return n.result}function mt(e,t){return t||={},t.raw=!0,pt(e,t)}function ht(e,t){return t||={},t.gzip=!0,pt(e,t)}var gt={Deflate:ft,deflate:pt,deflateRaw:mt,gzip:ht,constants:N};let _t=16209;var vt=function(e,t){let n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E=e.state;n=e.next_in,w=e.input,r=n+(e.avail_in-5),i=e.next_out,T=e.output,a=i-(t-e.avail_out),o=i+(e.avail_out-257),s=E.dmax,c=E.wsize,l=E.whave,u=E.wnext,d=E.window,f=E.hold,p=E.bits,m=E.lencode,h=E.distcode,g=(1<<E.lenbits)-1,_=(1<<E.distbits)-1;top:do{p<15&&(f+=w[n++]<<p,p+=8,f+=w[n++]<<p,p+=8),v=m[f&g];dolen:for(;;){if(y=v>>>24,f>>>=y,p-=y,y=v>>>16&255,y===0)T[i++]=v&65535;else if(y&16){b=v&65535,y&=15,y&&(p<y&&(f+=w[n++]<<p,p+=8),b+=f&(1<<y)-1,f>>>=y,p-=y),p<15&&(f+=w[n++]<<p,p+=8,f+=w[n++]<<p,p+=8),v=h[f&_];dodist:for(;;){if(y=v>>>24,f>>>=y,p-=y,y=v>>>16&255,y&16){if(x=v&65535,y&=15,p<y&&(f+=w[n++]<<p,p+=8,p<y&&(f+=w[n++]<<p,p+=8)),x+=f&(1<<y)-1,x>s){e.msg=`invalid distance too far back`,E.mode=_t;break top}if(f>>>=y,p-=y,y=i-a,x>y){if(y=x-y,y>l&&E.sane){e.msg=`invalid distance too far back`,E.mode=_t;break top}if(S=0,C=d,u===0){if(S+=c-y,y<b){b-=y;do T[i++]=d[S++];while(--y);S=i-x,C=T}}else if(u<y){if(S+=c+u-y,y-=u,y<b){b-=y;do T[i++]=d[S++];while(--y);if(S=0,u<b){y=u,b-=y;do T[i++]=d[S++];while(--y);S=i-x,C=T}}}else if(S+=u-y,y<b){b-=y;do T[i++]=d[S++];while(--y);S=i-x,C=T}for(;b>2;)T[i++]=C[S++],T[i++]=C[S++],T[i++]=C[S++],b-=3;b&&(T[i++]=C[S++],b>1&&(T[i++]=C[S++]))}else{S=i-x;do T[i++]=T[S++],T[i++]=T[S++],T[i++]=T[S++],b-=3;while(b>2);b&&(T[i++]=T[S++],b>1&&(T[i++]=T[S++]))}}else if(y&64){e.msg=`invalid distance code`,E.mode=_t;break top}else{v=h[(v&65535)+(f&(1<<y)-1)];continue dodist}break}}else if(!(y&64)){v=m[(v&65535)+(f&(1<<y)-1)];continue dolen}else if(y&32){E.mode=16191;break top}else{e.msg=`invalid literal/length code`,E.mode=_t;break top}break}}while(n<r&&i<o);b=p>>3,n-=b,p-=b<<3,f&=(1<<p)-1,e.next_in=n,e.next_out=i,e.avail_in=n<r?5+(r-n):5-(n-r),e.avail_out=i<o?257+(o-i):257-(i-o),E.hold=f,E.bits=p};let yt=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]),bt=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]),xt=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]),St=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 Ct=(e,t,n,r,i,a,o,s)=>{let c=s.bits,l=0,u=0,d=0,f=0,p=0,m=0,h=0,g=0,_=0,v=0,y,b,x,S,C,w=null,T,E=new Uint16Array(16),D=new Uint16Array(16),O=null,ee,k,A;for(l=0;l<=15;l++)E[l]=0;for(u=0;u<r;u++)E[t[n+u]]++;for(p=c,f=15;f>=1&&E[f]===0;f--);if(p>f&&(p=f),f===0)return i[a++]=20971520,i[a++]=20971520,s.bits=1,0;for(d=1;d<f&&E[d]===0;d++);for(p<d&&(p=d),g=1,l=1;l<=15;l++)if(g<<=1,g-=E[l],g<0)return-1;if(g>0&&(e===0||f!==1))return-1;for(D[1]=0,l=1;l<15;l++)D[l+1]=D[l]+E[l];for(u=0;u<r;u++)t[n+u]!==0&&(o[D[t[n+u]]++]=u);if(e===0?(w=O=o,T=20):e===1?(w=yt,O=bt,T=257):(w=xt,O=St,T=0),v=0,u=0,l=d,C=a,m=p,h=0,x=-1,_=1<<p,S=_-1,e===1&&_>852||e===2&&_>592)return 1;for(;;){ee=l-h,o[u]+1<T?(k=0,A=o[u]):o[u]>=T?(k=O[o[u]-T],A=w[o[u]-T]):(k=96,A=0),y=1<<l-h,b=1<<m,d=b;do b-=y,i[C+(v>>h)+b]=ee<<24|k<<16|A|0;while(b!==0);for(y=1<<l-1;v&y;)y>>=1;if(y===0?v=0:(v&=y-1,v+=y),u++,--E[l]===0){if(l===f)break;l=t[n+o[u]]}if(l>p&&(v&S)!==x){for(h===0&&(h=p),C+=d,m=l-h,g=1<<m;m+h<f&&(g-=E[m+h],!(g<=0));)m++,g<<=1;if(_+=1<<m,e===1&&_>852||e===2&&_>592)return 1;x=v&S,i[x]=p<<24|m<<16|C-a|0}}return v!==0&&(i[C+v]=l-h<<24|4194304),s.bits=p,0};let{Z_FINISH:wt,Z_BLOCK:Tt,Z_TREES:Et,Z_OK:J,Z_STREAM_END:Dt,Z_NEED_DICT:Ot,Z_STREAM_ERROR:Y,Z_DATA_ERROR:kt,Z_MEM_ERROR:At,Z_BUF_ERROR:jt,Z_DEFLATED:Mt}=N,Nt=16180,Pt=16181,Ft=16182,It=16183,Lt=16184,Rt=16185,zt=16186,Bt=16187,Vt=16188,Ht=16189,Ut=16190,X=16191,Wt=16192,Gt=16193,Kt=16194,qt=16195,Jt=16196,Yt=16197,Xt=16198,Zt=16199,Qt=16200,$t=16201,en=16202,tn=16203,nn=16204,rn=16205,an=16206,on=16207,sn=16208,Z=16209,cn=16210,ln=16211,un=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function dn(){this.strm=null,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}let Q=e=>{if(!e)return 1;let t=e.state;return+(!t||t.strm!==e||t.mode<Nt||t.mode>ln)},fn=e=>{if(Q(e))return Y;let t=e.state;return e.total_in=e.total_out=t.total=0,e.msg=``,t.wrap&&(e.adler=t.wrap&1),t.mode=Nt,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,J},pn=e=>{if(Q(e))return Y;let t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,fn(e)},mn=(e,t)=>{let n;if(Q(e))return Y;let r=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?Y:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,pn(e))},hn=(e,t)=>{if(!e)return Y;let n=new dn;e.state=n,n.strm=e,n.window=null,n.mode=Nt;let r=mn(e,t);return r!==J&&(e.state=null),r},gn=e=>hn(e,15),_n=!0,vn,yn,bn=e=>{if(_n){vn=new Int32Array(512),yn=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Ct(1,e.lens,0,288,vn,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Ct(2,e.lens,0,32,yn,0,e.work,{bits:5}),_n=!1}e.lencode=vn,e.lenbits=9,e.distcode=yn,e.distbits=5},xn=(e,t,n,r)=>{let i,a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),r>=a.wsize?(a.window.set(t.subarray(n-a.wsize,n),0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),a.window.set(t.subarray(n-r,n-r+i),a.wnext),r-=i,r?(a.window.set(t.subarray(n-r,n),0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0};var $={inflateReset:pn,inflateReset2:mn,inflateResetKeep:fn,inflateInit:gn,inflateInit2:hn,inflate:(e,t)=>{let n,r,i,a,o,s,c,l,u,d,f,p,m,h,g=0,_,v,y,b,x,S,C,w,T=new Uint8Array(4),E,D,O=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Q(e)||!e.output||!e.input&&e.avail_in!==0)return Y;n=e.state,n.mode===X&&(n.mode=Wt),o=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,u=n.bits,d=s,f=c,w=J;inf_leave:for(;;)switch(n.mode){case Nt:if(n.wrap===0){n.mode=Wt;break}for(;u<16;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(n.wrap&2&&l===35615){n.wbits===0&&(n.wbits=15),n.check=0,T[0]=l&255,T[1]=l>>>8&255,n.check=j(n.check,T,2,0),l=0,u=0,n.mode=Pt;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg=`incorrect header check`,n.mode=Z;break}if((l&15)!==Mt){e.msg=`unknown compression method`,n.mode=Z;break}if(l>>>=4,u-=4,C=(l&15)+8,n.wbits===0&&(n.wbits=C),C>15||C>n.wbits){e.msg=`invalid window size`,n.mode=Z;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=l&512?Ht:X,l=0,u=0;break;case Pt:for(;u<16;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(n.flags=l,(n.flags&255)!==Mt){e.msg=`unknown compression method`,n.mode=Z;break}if(n.flags&57344){e.msg=`unknown header flags set`,n.mode=Z;break}n.head&&(n.head.text=l>>8&1),n.flags&512&&n.wrap&4&&(T[0]=l&255,T[1]=l>>>8&255,n.check=j(n.check,T,2,0)),l=0,u=0,n.mode=Ft;case Ft:for(;u<32;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.head&&(n.head.time=l),n.flags&512&&n.wrap&4&&(T[0]=l&255,T[1]=l>>>8&255,T[2]=l>>>16&255,T[3]=l>>>24&255,n.check=j(n.check,T,4,0)),l=0,u=0,n.mode=It;case It:for(;u<16;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&n.wrap&4&&(T[0]=l&255,T[1]=l>>>8&255,n.check=j(n.check,T,2,0)),l=0,u=0,n.mode=Lt;case Lt:if(n.flags&1024){for(;u<16;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&n.wrap&4&&(T[0]=l&255,T[1]=l>>>8&255,n.check=j(n.check,T,2,0)),l=0,u=0}else n.head&&(n.head.extra=null);n.mode=Rt;case Rt:if(n.flags&1024&&(p=n.length,p>s&&(p=s),p&&(n.head&&(C=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(a,a+p),C)),n.flags&512&&n.wrap&4&&(n.check=j(n.check,r,p,a)),s-=p,a+=p,n.length-=p),n.length))break inf_leave;n.length=0,n.mode=zt;case zt:if(n.flags&2048){if(s===0)break inf_leave;p=0;do C=r[a+ p++],n.head&&C&&n.length<65536&&(n.head.name+=String.fromCharCode(C));while(C&&p<s);if(n.flags&512&&n.wrap&4&&(n.check=j(n.check,r,p,a)),s-=p,a+=p,C)break inf_leave}else n.head&&(n.head.name=null);n.length=0,n.mode=Bt;case Bt:if(n.flags&4096){if(s===0)break inf_leave;p=0;do C=r[a+ p++],n.head&&C&&n.length<65536&&(n.head.comment+=String.fromCharCode(C));while(C&&p<s);if(n.flags&512&&n.wrap&4&&(n.check=j(n.check,r,p,a)),s-=p,a+=p,C)break inf_leave}else n.head&&(n.head.comment=null);n.mode=Vt;case Vt:if(n.flags&512){for(;u<16;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(n.wrap&4&&l!==(n.check&65535)){e.msg=`header crc mismatch`,n.mode=Z;break}l=0,u=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=X;break;case Ht:for(;u<32;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}e.adler=n.check=un(l),l=0,u=0,n.mode=Ut;case Ut:if(n.havedict===0)return e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=u,Ot;e.adler=n.check=1,n.mode=X;case X:if(t===Tt||t===Et)break inf_leave;case Wt:if(n.last){l>>>=u&7,u-=u&7,n.mode=an;break}for(;u<3;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}switch(n.last=l&1,l>>>=1,--u,l&3){case 0:n.mode=Gt;break;case 1:if(bn(n),n.mode=Zt,t===Et){l>>>=2,u-=2;break inf_leave}break;case 2:n.mode=Jt;break;case 3:e.msg=`invalid block type`,n.mode=Z}l>>>=2,u-=2;break;case Gt:for(l>>>=u&7,u-=u&7;u<32;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if((l&65535)!=(l>>>16^65535)){e.msg=`invalid stored block lengths`,n.mode=Z;break}if(n.length=l&65535,l=0,u=0,n.mode=Kt,t===Et)break inf_leave;case Kt:n.mode=qt;case qt:if(p=n.length,p){if(p>s&&(p=s),p>c&&(p=c),p===0)break inf_leave;i.set(r.subarray(a,a+p),o),s-=p,a+=p,c-=p,o+=p,n.length-=p;break}n.mode=X;break;case Jt:for(;u<14;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(n.nlen=(l&31)+257,l>>>=5,u-=5,n.ndist=(l&31)+1,l>>>=5,u-=5,n.ncode=(l&15)+4,l>>>=4,u-=4,n.nlen>286||n.ndist>30){e.msg=`too many length or distance symbols`,n.mode=Z;break}n.have=0,n.mode=Yt;case Yt:for(;n.have<n.ncode;){for(;u<3;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.lens[O[n.have++]]=l&7,l>>>=3,u-=3}for(;n.have<19;)n.lens[O[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,E={bits:n.lenbits},w=Ct(0,n.lens,0,19,n.lencode,0,n.work,E),n.lenbits=E.bits,w){e.msg=`invalid code lengths set`,n.mode=Z;break}n.have=0,n.mode=Xt;case Xt:for(;n.have<n.nlen+n.ndist;){for(;g=n.lencode[l&(1<<n.lenbits)-1],_=g>>>24,v=g>>>16&255,y=g&65535,!(_<=u);){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(y<16)l>>>=_,u-=_,n.lens[n.have++]=y;else{if(y===16){for(D=_+2;u<D;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(l>>>=_,u-=_,n.have===0){e.msg=`invalid bit length repeat`,n.mode=Z;break}C=n.lens[n.have-1],p=3+(l&3),l>>>=2,u-=2}else if(y===17){for(D=_+3;u<D;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}l>>>=_,u-=_,C=0,p=3+(l&7),l>>>=3,u-=3}else{for(D=_+7;u<D;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}l>>>=_,u-=_,C=0,p=11+(l&127),l>>>=7,u-=7}if(n.have+p>n.nlen+n.ndist){e.msg=`invalid bit length repeat`,n.mode=Z;break}for(;p--;)n.lens[n.have++]=C}}if(n.mode===Z)break;if(n.lens[256]===0){e.msg=`invalid code -- missing end-of-block`,n.mode=Z;break}if(n.lenbits=9,E={bits:n.lenbits},w=Ct(1,n.lens,0,n.nlen,n.lencode,0,n.work,E),n.lenbits=E.bits,w){e.msg=`invalid literal/lengths set`,n.mode=Z;break}if(n.distbits=6,n.distcode=n.distdyn,E={bits:n.distbits},w=Ct(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,E),n.distbits=E.bits,w){e.msg=`invalid distances set`,n.mode=Z;break}if(n.mode=Zt,t===Et)break inf_leave;case Zt:n.mode=Qt;case Qt:if(s>=6&&c>=258){e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=u,vt(e,f),o=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,u=n.bits,n.mode===X&&(n.back=-1);break}for(n.back=0;g=n.lencode[l&(1<<n.lenbits)-1],_=g>>>24,v=g>>>16&255,y=g&65535,!(_<=u);){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(v&&!(v&240)){for(b=_,x=v,S=y;g=n.lencode[S+((l&(1<<b+x)-1)>>b)],_=g>>>24,v=g>>>16&255,y=g&65535,!(b+_<=u);){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}l>>>=b,u-=b,n.back+=b}if(l>>>=_,u-=_,n.back+=_,n.length=y,v===0){n.mode=rn;break}if(v&32){n.back=-1,n.mode=X;break}if(v&64){e.msg=`invalid literal/length code`,n.mode=Z;break}n.extra=v&15,n.mode=$t;case $t:if(n.extra){for(D=n.extra;u<D;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=en;case en:for(;g=n.distcode[l&(1<<n.distbits)-1],_=g>>>24,v=g>>>16&255,y=g&65535,!(_<=u);){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(!(v&240)){for(b=_,x=v,S=y;g=n.distcode[S+((l&(1<<b+x)-1)>>b)],_=g>>>24,v=g>>>16&255,y=g&65535,!(b+_<=u);){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}l>>>=b,u-=b,n.back+=b}if(l>>>=_,u-=_,n.back+=_,v&64){e.msg=`invalid distance code`,n.mode=Z;break}n.offset=y,n.extra=v&15,n.mode=tn;case tn:if(n.extra){for(D=n.extra;u<D;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg=`invalid distance too far back`,n.mode=Z;break}n.mode=nn;case nn:if(c===0)break inf_leave;if(p=f-c,n.offset>p){if(p=n.offset-p,p>n.whave&&n.sane){e.msg=`invalid distance too far back`,n.mode=Z;break}p>n.wnext?(p-=n.wnext,m=n.wsize-p):m=n.wnext-p,p>n.length&&(p=n.length),h=n.window}else h=i,m=o-n.offset,p=n.length;p>c&&(p=c),c-=p,n.length-=p;do i[o++]=h[m++];while(--p);n.length===0&&(n.mode=Qt);break;case rn:if(c===0)break inf_leave;i[o++]=n.length,c--,n.mode=Qt;break;case an:if(n.wrap){for(;u<32;){if(s===0)break inf_leave;s--,l|=r[a++]<<u,u+=8}if(f-=c,e.total_out+=f,n.total+=f,n.wrap&4&&f&&(e.adler=n.check=n.flags?j(n.check,i,f,o-f):le(n.check,i,f,o-f)),f=c,n.wrap&4&&(n.flags?l:un(l))!==n.check){e.msg=`incorrect data check`,n.mode=Z;break}l=0,u=0}n.mode=on;case on:if(n.wrap&&n.flags){for(;u<32;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(n.wrap&4&&l!==(n.total&4294967295)){e.msg=`incorrect length check`,n.mode=Z;break}l=0,u=0}n.mode=sn;case sn:w=Dt;break inf_leave;case Z:w=kt;break inf_leave;case cn:return At;case ln:default:return Y}return e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=u,(n.wsize||f!==e.avail_out&&n.mode<Z&&(n.mode<an||t!==wt))&&xn(e,e.output,e.next_out,f-e.avail_out),d-=e.avail_in,f-=e.avail_out,e.total_in+=d,e.total_out+=f,n.total+=f,n.wrap&4&&f&&(e.adler=n.check=n.flags?j(n.check,i,f,e.next_out-f):le(n.check,i,f,e.next_out-f)),e.data_type=n.bits+(n.last?64:0)+(n.mode===X?128:0)+(n.mode===Zt||n.mode===Kt?256:0),(d===0&&f===0||t===wt)&&w===J&&(w=jt),w},inflateEnd:e=>{if(Q(e))return Y;let t=e.state;return t.window&&=null,e.state=null,J},inflateGetHeader:(e,t)=>{if(Q(e))return Y;let n=e.state;return n.wrap&2?(n.head=t,t.done=!1,J):Y},inflateSetDictionary:(e,t)=>{let n=t.length,r,i,a;return Q(e)||(r=e.state,r.wrap!==0&&r.mode!==Ut)?Y:r.mode===Ut&&(i=1,i=le(i,t,n,0),i!==r.check)?kt:(a=xn(e,t,n,n),a?(r.mode=cn,At):(r.havedict=1,J))},inflateInfo:`pako inflate (from Nodeca project)`};function Sn(){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}var Cn=Sn;let wn=Object.prototype.toString,{Z_NO_FLUSH:Tn,Z_FINISH:En,Z_OK:Dn,Z_STREAM_END:On,Z_NEED_DICT:kn,Z_STREAM_ERROR:An,Z_DATA_ERROR:jn,Z_MEM_ERROR:Mn}=N;function Nn(e){this.options=Je.assign({chunkSize:1024*64,windowBits:15,to:``},e||{});let t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15||(t.windowBits|=15)),this.err=0,this.msg=``,this.ended=!1,this.chunks=[],this.strm=new tt,this.strm.avail_out=0;let n=$.inflateInit2(this.strm,t.windowBits);if(n!==Dn||(this.header=new Cn,$.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary==`string`?t.dictionary=$e.string2buf(t.dictionary):wn.call(t.dictionary)===`[object ArrayBuffer]`&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=$.inflateSetDictionary(this.strm,t.dictionary),n!==Dn))))throw Error(M[n])}Nn.prototype.push=function(e,t){let n=this.strm,r=this.options.chunkSize,i=this.options.dictionary,a,o,s;if(this.ended)return!1;for(o=t===~~t?t:t===!0?En:Tn,wn.call(e)===`[object ArrayBuffer]`?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),a=$.inflate(n,o),a===kn&&i&&(a=$.inflateSetDictionary(n,i),a===Dn?a=$.inflate(n,o):a===jn&&(a=kn));n.avail_in>0&&a===On&&n.state.wrap>0&&e[n.next_in]!==0;)$.inflateReset(n),a=$.inflate(n,o);switch(a){case An:case jn:case kn:case Mn:return this.onEnd(a),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(n.avail_out===0||a===On))if(this.options.to===`string`){let e=$e.utf8border(n.output,n.next_out),t=n.next_out-e,i=$e.buf2string(n.output,e);n.next_out=t,n.avail_out=r-t,t&&n.output.set(n.output.subarray(e,e+t),0),this.onData(i)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(a===Dn&&s===0)){if(a===On)return a=$.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(n.avail_in===0)break}}return!0},Nn.prototype.onData=function(e){this.chunks.push(e)},Nn.prototype.onEnd=function(e){e===Dn&&(this.options.to===`string`?this.result=this.chunks.join(``):this.result=Je.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Pn(e,t){let n=new Nn(t);if(n.push(e),n.err)throw n.msg||M[n.err];return n.result}function Fn(e,t){return t||={},t.raw=!0,Pn(e,t)}var In={Inflate:Nn,inflate:Pn,inflateRaw:Fn,ungzip:Pn,constants:N};let{Deflate:Ln,deflate:Rn,deflateRaw:zn,gzip:Bn}=gt,{Inflate:Vn,inflate:Hn,inflateRaw:Un,ungzip:Wn}=In;var Gn={Deflate:Ln,deflate:Rn,deflateRaw:zn,gzip:Bn,Inflate:Vn,inflate:Hn,inflateRaw:Un,ungzip:Wn,constants:N},Kn=class{view;offset=0;constructor(e){this.view=new DataView(e)}readUint8(){return this.view.getUint8(this.offset++)}readUint32(){let e=this.view.getUint32(this.offset,!0);return this.offset+=4,e}readBytes(e){let t=new Uint8Array(this.view.buffer,this.offset,e);return this.offset+=e,t}eof(){return this.offset>=this.view.byteLength}},qn=class{decodeBuffer(e){return this.textDecoder.decode(Gn.inflate(e))}decoder=Gn;textDecoder=new TextDecoder(`utf-8`);ChunkType={PROP:1,MESH:2,STRUCTURE:3,GRIDS:4,MATRIX:5,MESHSPACE:6,NORTHANGLE:7};parseMesh(e){let t=new DataView(e.buffer,e.byteOffset),n=0,r=()=>{let r=t.getUint32(n,!0);n+=4;let i=new Uint8Array(e.buffer,e.byteOffset+n,r);return n+=r,i};return{pos:r(),ids:r(),ind:(()=>{let r=t.getUint32(n,!0);n+=4;let i=t.getUint32(n,!0);n+=4;let a=new Uint8Array(e.buffer,e.byteOffset+n,r);return n+=r,{data:a,type:i}})(),colorId:(()=>{let e=t.getUint8(n++)/255,r=t.getUint8(n++)/255,i=t.getUint8(n++)/255,a=t.getUint8(n++)/255,o=t.getUint32(n,!0);return n+=4,{r:e,g:r,b:i,opacity:a,name:o}})()}}getExternalMetadataPath(e){let t=e.match(/[?#].*$/)?.[0]??``,n=t?e.slice(0,-t.length):e;return/\.min\.bmt$/i.test(n)?n.replace(/\.min\.bmt$/i,`_props.json`)+t:null}async loadExternalMetadata(e){let t=this.getExternalMetadataPath(e);if(!t)return null;try{let e=await fetch(t);return e.ok?await e.json():null}catch(e){return console.warn(`BMT metadata loading error: ${t}`,e),null}}getModelNameFromPath(e){return(e.split(/[?#]/)[0].split(/[\\/]/).pop()||`model`).replace(/\.min\.bmt$/i,``).replace(/\.[^.]+$/i,``).trim()||`model`}async loadModel(e,t){let n=await fetch(e);console.log(`Parsing BMT model`);let r=await n.arrayBuffer(),i=this.parseBinaryFile(r,t);i.name??=this.getModelNameFromPath(e);let a=await this.loadExternalMetadata(e);return a?.props&&(i.props=a.props),a?.grids&&(i.grids=a.grids),a?.coordinationMatrix&&(i.coordinationMatrix=a.coordinationMatrix),a?.structure!==void 0&&(i.structure=a.structure),typeof a?.trueNorthAngle==`number`&&(i.trueNorthAngle=a.trueNorthAngle),i}parseBinaryFile(e,t={}){let n=new Kn(e);if(new TextDecoder().decode(n.readBytes(3))!==`BMT`)throw Error(`Invalid file`);let r=n.readUint8();console.log(`model version: ${r}`);let i={},a={},o,s={},c=e=>this.decoder.inflate(e),l=``,u,d,f=0,p=n.view.byteLength;for(;!n.eof();){let e=n.readUint8(),r=n.readUint32(),m=n.readBytes(r);switch(e){case this.ChunkType.MESH:case this.ChunkType.MESHSPACE:{let r=this.parseMesh(m),a=c(r.pos),o=c(r.ids),s=c(r.ind.data),u=r.colorId,d=new Float32Array(a.buffer),h=new Uint32Array(o.buffer),g;if(s&&s.length)g=r.ind.type===0?new Uint16Array(s.buffer,s.byteOffset,s.byteLength/2):new Uint32Array(s.buffer,s.byteOffset,s.byteLength/4);else{g=new Uint32Array(a.length);for(let e=0;e<a.length;e++)g[e]=e}let _={pos:d,ids:h,ind:g,isIfcSpace:e===this.ChunkType.MESHSPACE,mat:u,matrix:l};t.streamGeometryChunks?(t.onGeometryChunk?.({chunkIndex:f,geometry:_,geometryID:u.name,isIfcSpace:e===this.ChunkType.MESHSPACE,loadedBytes:n.offset,totalBytes:p}),f++):i[u.name]=_;break}case this.ChunkType.PROP:{let e=JSON.parse(this.decodeBuffer(m));e?.id===void 0?e&&typeof e==`object`&&Object.assign(a,e):a[e.id]=e}break;case this.ChunkType.STRUCTURE:s=JSON.parse(this.decodeBuffer(m));break;case this.ChunkType.GRIDS:o=JSON.parse(this.decodeBuffer(m));break;case this.ChunkType.MATRIX:r&&(l=this.decodeBuffer(m),u??=l);break;case this.ChunkType.NORTHANGLE:{let e=Number(this.decodeBuffer(m));Number.isFinite(e)&&(d=e);break}default:break}t.onProgress?.({emittedChunks:f,loadedBytes:n.offset,totalBytes:p})}return{coordinationMatrix:u,data:i,grids:o,props:a,structure:s,trueNorthAngle:d}}},Jn=class{emit;taskId;totalModels;constructor(e){this.emit=e.emit,this.taskId=e.taskId,this.totalModels=Math.max(e.totalModels,1)}emitModelProgress(e,t,n,r,i={}){let a=this.clampProgress(r),o=this.clampProgress((e+a)/this.totalModels);this.emit({...i,modelIndex:e,modelName:t,phase:n,progress:o,taskId:this.taskId,totalModels:this.totalModels})}emitError(e){this.emit({message:e,modelIndex:-1,phase:`error`,progress:1,taskId:this.taskId,totalModels:this.totalModels})}clampProgress(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):0}};let Yn=globalThis;function Xn(e){return e.name?e.name:e.kind===`url`?Zn(e.url):e.kind===`file`?e.file.name:`model.bmt`}function Zn(e){return e.split(/[?#]/)[0].split(/[\\/]/).pop()||`model.bmt`}function Qn(e){return Xn(e).replace(/\.min\.bmt$/i,``).replace(/\.[^.]+$/i,``).trim()}function $n(e){return e instanceof Error?{message:e.message,stack:e.stack}:{message:String(e)}}function er(e,t){let n=new Uint8Array(t),r=0;return e.forEach(e=>{n.set(e,r),r+=e.byteLength}),n.buffer}async function tr(e,t,n,r){let i=e.size,a=e.stream().getReader(),o=[],s=0;for(;;){let{done:e,value:c}=await a.read();if(e)break;o.push(c),s+=c.byteLength,t.emitModelProgress(n,r,`reading`,i>0?s/i*.35:.1,{loaded:s,total:i})}return er(o,s)}async function nr(e,t,n,r){let i=await fetch(e);if(!i.ok)throw Error(`BMT fetch error: ${i.status} ${e}`);let a=i.headers.get(`content-length`),o=a?Number(a):0,s=i.body?.getReader();if(!s){let e=await i.arrayBuffer();return t.emitModelProgress(n,r,`fetching`,.35,{loaded:e.byteLength,total:e.byteLength}),e}let c=[],l=0;for(;;){let{done:e,value:i}=await s.read();if(e)break;c.push(i),l+=i.byteLength,t.emitModelProgress(n,r,`fetching`,o>0?l/o*.35:.1,{loaded:l,total:o||void 0})}return er(c,l)}async function rr(e,t,n){let r=Xn(e);return e.kind===`buffer`?(t.emitModelProgress(n,r,`reading`,.35,{loaded:e.buffer.byteLength,total:e.buffer.byteLength}),e.buffer):e.kind===`file`?tr(e.file,t,n,r):nr(e.url,t,n,r)}function ir(e){let t=e.split(/[?#]/)[0];return/\.min\.bmt$/i.test(t)?new URL(t.replace(/\.min\.bmt$/i,`_props.json`),e).href:null}async function ar(e,t){if(t.kind!==`url`)return e;let n=ir(t.url);if(!n)return e;try{let t=await fetch(n);if(!t.ok)return e;let r=await t.json();r.props&&(e.props=r.props),r.grids&&(e.grids=r.grids),r.coordinationMatrix&&(e.coordinationMatrix=r.coordinationMatrix),typeof r.trueNorthAngle==`number`&&(e.trueNorthAngle=r.trueNorthAngle),r.structure!==void 0&&(e.structure=r.structure)}catch(e){console.warn(`BMT metadata loading error: ${n}`,e)}return e}function or(e){let t=new Set;return[e.pos,e.norm,e.ind,e.ids].forEach(e=>{let n=e?.buffer;n instanceof ArrayBuffer&&t.add(n)}),Array.from(t)}function sr(e){let t=new Set;return Object.values(e).forEach(e=>{Object.values(e.data).forEach(e=>{or(e).forEach(e=>t.add(e))})}),Array.from(t)}async function cr(e){let t=e.options??{},n=new qn,r=new Jn({emit:t=>{Yn.postMessage({progress:t,taskId:e.taskId,type:`progress`})},taskId:e.taskId,totalModels:e.sources.length}),i={};r.emitModelProgress(0,void 0,`queued`,0);for(let a=0;a<e.sources.length;a++){let o=e.sources[a],s=Xn(o),c=await rr(o,r,a),l=!!t.streamGeometryChunks;r.emitModelProgress(a,s,`parsing`,.35);let u=n.parseBinaryFile(c,{onGeometryChunk:l?t=>{let n={chunkIndex:t.chunkIndex,geometry:t.geometry,geometryID:t.geometryID,isIfcSpace:t.isIfcSpace,modelIndex:a,modelName:s};Yn.postMessage({chunk:n,taskId:e.taskId,type:`chunk`},or(t.geometry))}:void 0,onProgress:e=>{r.emitModelProgress(a,s,`parsing`,.35+e.loadedBytes/e.totalBytes*.6,{loaded:e.loadedBytes,total:e.totalBytes})},streamGeometryChunks:l});u.name??=Qn(o),await ar(u,o),i[a]=u,r.emitModelProgress(a,s,`complete`,1)}return i}Yn.onmessage=e=>{let t=e.data;t.type===`load-bmt-model`&&cr(t).then(e=>{Yn.postMessage({models:e,taskId:t.taskId,type:`complete`},sr(e))}).catch(e=>{Yn.postMessage({error:$n(e),taskId:t.taskId,type:`error`})})}})();
1
+ (function(){function e(e){let t=e.length;for(;--t>=0;)e[t]=0}let t=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]),n=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]),r=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),i=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),a=Array(288*2);e(a);let o=Array(60);e(o);let s=Array(512);e(s);let c=Array(256);e(c);let l=Array(29);e(l);let u=Array(30);e(u);function d(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}let f,p,m;function h(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}let g=e=>e<256?s[e]:s[256+(e>>>7)],_=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},v=(e,t,n)=>{e.bi_valid>16-n?(e.bi_buf|=t<<e.bi_valid&65535,_(e,e.bi_buf),e.bi_buf=t>>16-e.bi_valid,e.bi_valid+=n-16):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},y=(e,t,n)=>{v(e,n[t*2],n[t*2+1])},b=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},x=e=>{e.bi_valid===16?(_(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},S=(e,t)=>{let n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,c=t.stat_desc.max_length,l,u,d,f,p,m,h=0;for(f=0;f<=15;f++)e.bl_count[f]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<573;l++)u=e.heap[l],f=n[n[u*2+1]*2+1]+1,f>c&&(f=c,h++),n[u*2+1]=f,!(u>r)&&(e.bl_count[f]++,p=0,u>=s&&(p=o[u-s]),m=n[u*2],e.opt_len+=m*(f+p),a&&(e.static_len+=m*(i[u*2+1]+p)));if(h!==0){do{for(f=c-1;e.bl_count[f]===0;)f--;e.bl_count[f]--,e.bl_count[f+1]+=2,e.bl_count[c]--,h-=2}while(h>0);for(f=c;f!==0;f--)for(u=e.bl_count[f];u!==0;)d=e.heap[--l],!(d>r)&&(n[d*2+1]!==f&&(e.opt_len+=(f-n[d*2+1])*n[d*2],n[d*2+1]=f),u--)}},C=(e,t,n)=>{let r=Array(16),i=0,a,o;for(a=1;a<=15;a++)i=i+n[a-1]<<1,r[a]=i;for(o=0;o<=t;o++){let t=e[o*2+1];t!==0&&(e[o*2]=b(r[t]++,t))}},w=()=>{let e,i,h,g,_,v=Array(16);for(h=0,g=0;g<28;g++)for(l[g]=h,e=0;e<1<<t[g];e++)c[h++]=g;for(c[h-1]=g,_=0,g=0;g<16;g++)for(u[g]=_,e=0;e<1<<n[g];e++)s[_++]=g;for(_>>=7;g<30;g++)for(u[g]=_<<7,e=0;e<1<<n[g]-7;e++)s[256+ _++]=g;for(i=0;i<=15;i++)v[i]=0;for(e=0;e<=143;)a[e*2+1]=8,e++,v[8]++;for(;e<=255;)a[e*2+1]=9,e++,v[9]++;for(;e<=279;)a[e*2+1]=7,e++,v[7]++;for(;e<=287;)a[e*2+1]=8,e++,v[8]++;for(C(a,287,v),e=0;e<30;e++)o[e*2+1]=5,o[e*2]=b(e,5);f=new d(a,t,257,286,15),p=new d(o,n,0,30,15),m=new d([],r,0,19,7)},T=e=>{let t;for(t=0;t<286;t++)e.dyn_ltree[t*2]=0;for(t=0;t<30;t++)e.dyn_dtree[t*2]=0;for(t=0;t<19;t++)e.bl_tree[t*2]=0;e.dyn_ltree[256*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},E=e=>{e.bi_valid>8?_(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},D=(e,t,n,r)=>{let i=t*2,a=n*2;return e[i]<e[a]||e[i]===e[a]&&r[t]<=r[n]},O=(e,t,n)=>{let r=e.heap[n],i=n<<1;for(;i<=e.heap_len&&(i<e.heap_len&&D(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!D(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r},ee=(e,r,i)=>{let a,o,s=0,d,f;if(e.sym_next!==0)do a=e.pending_buf[e.sym_buf+ s++]&255,a+=(e.pending_buf[e.sym_buf+ s++]&255)<<8,o=e.pending_buf[e.sym_buf+ s++],a===0?y(e,o,r):(d=c[o],y(e,d+256+1,r),f=t[d],f!==0&&(o-=l[d],v(e,o,f)),a--,d=g(a),y(e,d,i),f=n[d],f!==0&&(a-=u[d],v(e,a,f)));while(s<e.sym_next);y(e,256,r)},k=(e,t)=>{let n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems,o,s,c=-1,l;for(e.heap_len=0,e.heap_max=573,o=0;o<a;o++)n[o*2]===0?n[o*2+1]=0:(e.heap[++e.heap_len]=c=o,e.depth[o]=0);for(;e.heap_len<2;)l=e.heap[++e.heap_len]=c<2?++c:0,n[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=r[l*2+1]);for(t.max_code=c,o=e.heap_len>>1;o>=1;o--)O(e,n,o);l=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],O(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,n[l*2]=n[o*2]+n[s*2],e.depth[l]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,n[o*2+1]=n[s*2+1]=l,e.heap[1]=l++,O(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],S(e,t),C(n,c,e.bl_count)},A=(e,t,n)=>{let r,i=-1,a,o=t[1],s=0,c=7,l=4;for(o===0&&(c=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=t[(r+1)*2+1],!(++s<c&&a===o)&&(s<l?e.bl_tree[a*2]+=s:a===0?s<=10?e.bl_tree[34]++:e.bl_tree[36]++:(a!==i&&e.bl_tree[a*2]++,e.bl_tree[32]++),s=0,i=a,o===0?(c=138,l=3):a===o?(c=6,l=3):(c=7,l=4))},te=(e,t,n)=>{let r,i=-1,a,o=t[1],s=0,c=7,l=4;for(o===0&&(c=138,l=3),r=0;r<=n;r++)if(a=o,o=t[(r+1)*2+1],!(++s<c&&a===o)){if(s<l)do y(e,a,e.bl_tree);while(--s!==0);else a===0?s<=10?(y(e,17,e.bl_tree),v(e,s-3,3)):(y(e,18,e.bl_tree),v(e,s-11,7)):(a!==i&&(y(e,a,e.bl_tree),s--),y(e,16,e.bl_tree),v(e,s-3,2));s=0,i=a,o===0?(c=138,l=3):a===o?(c=6,l=3):(c=7,l=4)}},ne=e=>{let t;for(A(e,e.dyn_ltree,e.l_desc.max_code),A(e,e.dyn_dtree,e.d_desc.max_code),k(e,e.bl_desc),t=18;t>=3&&e.bl_tree[i[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},re=(e,t,n,r)=>{let a;for(v(e,t-257,5),v(e,n-1,5),v(e,r-4,4),a=0;a<r;a++)v(e,e.bl_tree[i[a]*2+1],3);te(e,e.dyn_ltree,t-1),te(e,e.dyn_dtree,n-1)},ie=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return 0;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return 1;for(n=32;n<256;n++)if(e.dyn_ltree[n*2]!==0)return 1;return 0},ae=!1,oe=e=>{ae||=(w(),!0),e.l_desc=new h(e.dyn_ltree,f),e.d_desc=new h(e.dyn_dtree,p),e.bl_desc=new h(e.bl_tree,m),e.bi_buf=0,e.bi_valid=0,T(e)},se=(e,t,n,r)=>{v(e,0+ +!!r,3),E(e),_(e,n),_(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n};var ce={_tr_init:oe,_tr_stored_block:se,_tr_flush_block:(e,t,n,r)=>{let i,s,c=0;e.level>0?(e.strm.data_type===2&&(e.strm.data_type=ie(e)),k(e,e.l_desc),k(e,e.d_desc),c=ne(e),i=e.opt_len+3+7>>>3,s=e.static_len+3+7>>>3,s<=i&&(i=s)):i=s=n+5,n+4<=i&&t!==-1?se(e,t,n,r):e.strategy===4||s===i?(v(e,2+ +!!r,3),ee(e,a,o)):(v(e,4+ +!!r,3),re(e,e.l_desc.max_code+1,e.d_desc.max_code+1,c+1),ee(e,e.dyn_ltree,e.dyn_dtree)),T(e),r&&E(e)},_tr_tally:(e,t,n)=>(e.pending_buf[e.sym_buf+ e.sym_next++]=t,e.pending_buf[e.sym_buf+ e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+ e.sym_next++]=n,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(c[n]+256+1)*2]++,e.dyn_dtree[g(t)*2]++),e.sym_next===e.sym_end),_tr_align:e=>{v(e,2,3),y(e,256,a),x(e)}},le=(e,t,n,r)=>{let i=e&65535|0,a=e>>>16&65535|0,o=0;for(;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+t[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0};let ue=new Uint32Array((()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t})());var j=(e,t,n,r)=>{let i=ue,a=r+n;e^=-1;for(let n=r;n<a;n++)e=e>>>8^i[(e^t[n])&255];return e^-1},M={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`},N={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};let{_tr_init:de,_tr_stored_block:fe,_tr_flush_block:pe,_tr_tally:P,_tr_align:me}=ce,{Z_NO_FLUSH:F,Z_PARTIAL_FLUSH:he,Z_FULL_FLUSH:ge,Z_FINISH:I,Z_BLOCK:_e,Z_OK:L,Z_STREAM_END:ve,Z_STREAM_ERROR:R,Z_DATA_ERROR:ye,Z_BUF_ERROR:be,Z_DEFAULT_COMPRESSION:xe,Z_FILTERED:Se,Z_HUFFMAN_ONLY:Ce,Z_RLE:we,Z_FIXED:Te,Z_DEFAULT_STRATEGY:Ee,Z_UNKNOWN:De,Z_DEFLATED:Oe}=N,z=(e,t)=>(e.msg=M[t],t),ke=e=>e*2-(e>4?9:0),B=e=>{let t=e.length;for(;--t>=0;)e[t]=0},Ae=e=>{let t,n,r,i=e.w_size;t=e.hash_size,r=t;do n=e.head[--r],e.head[r]=n>=i?n-i:0;while(--t);t=i,r=t;do n=e.prev[--r],e.prev[r]=n>=i?n-i:0;while(--t)},V=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask,H=e=>{let t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))},U=(e,t)=>{pe(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,H(e.strm)},W=(e,t)=>{e.pending_buf[e.pending++]=t},je=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},Me=(e,t,n,r)=>{let i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,t.set(e.input.subarray(e.next_in,e.next_in+i),n),e.state.wrap===1?e.adler=le(e.adler,t,i,n):e.state.wrap===2&&(e.adler=j(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)},Ne=(e,t)=>{let n=e.max_chain_length,r=e.strstart,i,a,o=e.prev_length,s=e.nice_match,c=e.strstart>e.w_size-262?e.strstart-(e.w_size-262):0,l=e.window,u=e.w_mask,d=e.prev,f=e.strstart+258,p=l[r+o-1],m=l[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do{if(i=t,l[i+o]!==m||l[i+o-1]!==p||l[i]!==l[r]||l[++i]!==l[r+1])continue;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(a=258-(f-r),r=f-258,a>o){if(e.match_start=t,o=a,a>=s)break;p=l[r+o-1],m=l[r+o]}}while((t=d[t&u])>c&&--n!==0);return o<=e.lookahead?o:e.lookahead},G=e=>{let t=e.w_size,n,r,i;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-262)&&(e.window.set(e.window.subarray(t,t+t-r),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),Ae(e),r+=t),e.strm.avail_in===0)break;if(n=Me(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,e.lookahead+e.insert>=3)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=V(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=V(e,e.ins_h,e.window[i+3-1]),e.prev[i&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=i,i++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<262&&e.strm.avail_in!==0)},Pe=(e,t)=>{let n=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,r,i,a,o=0,s=e.strm.avail_in;do{if(r=65535,a=e.bi_valid+42>>3,e.strm.avail_out<a||(a=e.strm.avail_out-a,i=e.strstart-e.block_start,r>i+e.strm.avail_in&&(r=i+e.strm.avail_in),r>a&&(r=a),r<n&&(r===0&&t!==I||t===F||r!==i+e.strm.avail_in)))break;o=+(t===I&&r===i+e.strm.avail_in),fe(e,0,0,o),e.pending_buf[e.pending-4]=r,e.pending_buf[e.pending-3]=r>>8,e.pending_buf[e.pending-2]=~r,e.pending_buf[e.pending-1]=~r>>8,H(e.strm),i&&(i>r&&(i=r),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+i),e.strm.next_out),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i,e.block_start+=i,r-=i),r&&(Me(e.strm,e.strm.output,e.strm.next_out,r),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r)}while(o===0);return s-=e.strm.avail_in,s&&(s>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=s&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-s,e.strm.next_in),e.strstart),e.strstart+=s,e.insert+=s>e.w_size-e.insert?e.w_size-e.insert:s),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),o?4:t!==F&&t!==I&&e.strm.avail_in===0&&e.strstart===e.block_start?2:(a=e.window_size-e.strstart,e.strm.avail_in>a&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,a+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),a>e.strm.avail_in&&(a=e.strm.avail_in),a&&(Me(e.strm,e.window,e.strstart,a),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.high_water<e.strstart&&(e.high_water=e.strstart),a=e.bi_valid+42>>3,a=e.pending_buf_size-a>65535?65535:e.pending_buf_size-a,n=a>e.w_size?e.w_size:a,i=e.strstart-e.block_start,(i>=n||(i||t===I)&&t!==F&&e.strm.avail_in===0&&i<=a)&&(r=i>a?a:i,o=+(t===I&&e.strm.avail_in===0&&r===i),fe(e,e.block_start,r,o),e.block_start+=r,H(e.strm)),o?3:1)},Fe=(e,t)=>{let n,r;for(;;){if(e.lookahead<262){if(G(e),e.lookahead<262&&t===F)return 1;if(e.lookahead===0)break}if(n=0,e.lookahead>=3&&(e.ins_h=V(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-262&&(e.match_length=Ne(e,n)),e.match_length>=3)if(r=P(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do e.strstart++,e.ins_h=V(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=V(e,e.ins_h,e.window[e.strstart+1]);else r=P(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(U(e,!1),e.strm.avail_out===0))return 1}return e.insert=e.strstart<2?e.strstart:2,t===I?(U(e,!0),e.strm.avail_out===0?3:4):e.sym_next&&(U(e,!1),e.strm.avail_out===0)?1:2},K=(e,t)=>{let n,r,i;for(;;){if(e.lookahead<262){if(G(e),e.lookahead<262&&t===F)return 1;if(e.lookahead===0)break}if(n=0,e.lookahead>=3&&(e.ins_h=V(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-262&&(e.match_length=Ne(e,n),e.match_length<=5&&(e.strategy===Se||e.match_length===3&&e.strstart-e.match_start>4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-3,r=P(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=V(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=2,e.strstart++,r&&(U(e,!1),e.strm.avail_out===0))return 1}else if(e.match_available){if(r=P(e,0,e.window[e.strstart-1]),r&&U(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&=(r=P(e,0,e.window[e.strstart-1]),0),e.insert=e.strstart<2?e.strstart:2,t===I?(U(e,!0),e.strm.avail_out===0?3:4):e.sym_next&&(U(e,!1),e.strm.avail_out===0)?1:2},Ie=(e,t)=>{let n,r,i,a,o=e.window;for(;;){if(e.lookahead<=258){if(G(e),e.lookahead<=258&&t===F)return 1;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(i=e.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=e.strstart+258;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);e.match_length=258-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(n=P(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=P(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(U(e,!1),e.strm.avail_out===0))return 1}return e.insert=0,t===I?(U(e,!0),e.strm.avail_out===0?3:4):e.sym_next&&(U(e,!1),e.strm.avail_out===0)?1:2},Le=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(G(e),e.lookahead===0)){if(t===F)return 1;break}if(e.match_length=0,n=P(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(U(e,!1),e.strm.avail_out===0))return 1}return e.insert=0,t===I?(U(e,!0),e.strm.avail_out===0?3:4):e.sym_next&&(U(e,!1),e.strm.avail_out===0)?1:2};function q(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}let Re=[new q(0,0,0,0,Pe),new q(4,4,8,4,Fe),new q(4,5,16,8,Fe),new q(4,6,32,32,Fe),new q(4,4,16,16,K),new q(8,16,32,32,K),new q(8,16,128,128,K),new q(8,32,128,256,K),new q(32,128,258,1024,K),new q(32,258,258,4096,K)],ze=e=>{e.window_size=2*e.w_size,B(e.head),e.max_lazy_match=Re[e.level].max_lazy,e.good_match=Re[e.level].good_length,e.nice_match=Re[e.level].nice_length,e.max_chain_length=Re[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=2,e.match_available=0,e.ins_h=0};function Be(){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=Oe,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(573*2),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),B(this.dyn_ltree),B(this.dyn_dtree),B(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),B(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),B(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}let Ve=e=>{if(!e)return 1;let t=e.state;return+(!t||t.strm!==e||t.status!==42&&t.status!==57&&t.status!==69&&t.status!==73&&t.status!==91&&t.status!==103&&t.status!==113&&t.status!==666)},He=e=>{if(Ve(e))return z(e,R);e.total_in=e.total_out=0,e.data_type=De;let t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?57:t.wrap?42:113,e.adler=t.wrap===2?0:1,t.last_flush=-2,de(t),L},Ue=e=>{let t=He(e);return t===L&&ze(e.state),t},We=(e,t)=>Ve(e)||e.state.wrap!==2?R:(e.state.gzhead=t,L),Ge=(e,t,n,r,i,a)=>{if(!e)return R;let o=1;if(t===xe&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>9||n!==Oe||r<8||r>15||t<0||t>9||a<0||a>Te||r===8&&o!==1)return z(e,R);r===8&&(r=9);let s=new Be;return e.state=s,s.strm=e,s.status=42,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+3-1)/3),s.window=new Uint8Array(s.w_size*2),s.head=new Uint16Array(s.hash_size),s.prev=new Uint16Array(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new Uint8Array(s.pending_buf_size),s.sym_buf=s.lit_bufsize,s.sym_end=(s.lit_bufsize-1)*3,s.level=t,s.strategy=a,s.method=n,Ue(e)};var Ke={deflateInit:(e,t)=>Ge(e,t,Oe,15,8,Ee),deflateInit2:Ge,deflateReset:Ue,deflateResetKeep:He,deflateSetHeader:We,deflate:(e,t)=>{if(Ve(e)||t>_e||t<0)return e?z(e,R):R;let n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===666&&t!==I)return z(e,e.avail_out===0?be:R);let r=n.last_flush;if(n.last_flush=t,n.pending!==0){if(H(e),e.avail_out===0)return n.last_flush=-1,L}else if(e.avail_in===0&&ke(t)<=ke(r)&&t!==I)return z(e,be);if(n.status===666&&e.avail_in!==0)return z(e,be);if(n.status===42&&n.wrap===0&&(n.status=113),n.status===42){let t=Oe+(n.w_bits-8<<4)<<8,r=-1;if(r=n.strategy>=Ce||n.level<2?0:n.level<6?1:n.level===6?2:3,t|=r<<6,n.strstart!==0&&(t|=32),t+=31-t%31,je(n,t),n.strstart!==0&&(je(n,e.adler>>>16),je(n,e.adler&65535)),e.adler=1,n.status=113,H(e),n.pending!==0)return n.last_flush=-1,L}if(n.status===57){if(e.adler=0,W(n,31),W(n,139),W(n,8),n.gzhead)W(n,+!!n.gzhead.text+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),W(n,n.gzhead.time&255),W(n,n.gzhead.time>>8&255),W(n,n.gzhead.time>>16&255),W(n,n.gzhead.time>>24&255),W(n,n.level===9?2:n.strategy>=Ce||n.level<2?4:0),W(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(W(n,n.gzhead.extra.length&255),W(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=j(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69;else if(W(n,0),W(n,0),W(n,0),W(n,0),W(n,0),W(n,n.level===9?2:n.strategy>=Ce||n.level<2?4:0),W(n,3),n.status=113,H(e),n.pending!==0)return n.last_flush=-1,L}if(n.status===69){if(n.gzhead.extra){let t=n.pending,r=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+r>n.pending_buf_size;){let i=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+i),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>t&&(e.adler=j(e.adler,n.pending_buf,n.pending-t,t)),n.gzindex+=i,H(e),n.pending!==0)return n.last_flush=-1,L;t=0,r-=i}let i=new Uint8Array(n.gzhead.extra);n.pending_buf.set(i.subarray(n.gzindex,n.gzindex+r),n.pending),n.pending+=r,n.gzhead.hcrc&&n.pending>t&&(e.adler=j(e.adler,n.pending_buf,n.pending-t,t)),n.gzindex=0}n.status=73}if(n.status===73){if(n.gzhead.name){let t=n.pending,r;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>t&&(e.adler=j(e.adler,n.pending_buf,n.pending-t,t)),H(e),n.pending!==0)return n.last_flush=-1,L;t=0}r=n.gzindex<n.gzhead.name.length?n.gzhead.name.charCodeAt(n.gzindex++)&255:0,W(n,r)}while(r!==0);n.gzhead.hcrc&&n.pending>t&&(e.adler=j(e.adler,n.pending_buf,n.pending-t,t)),n.gzindex=0}n.status=91}if(n.status===91){if(n.gzhead.comment){let t=n.pending,r;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>t&&(e.adler=j(e.adler,n.pending_buf,n.pending-t,t)),H(e),n.pending!==0)return n.last_flush=-1,L;t=0}r=n.gzindex<n.gzhead.comment.length?n.gzhead.comment.charCodeAt(n.gzindex++)&255:0,W(n,r)}while(r!==0);n.gzhead.hcrc&&n.pending>t&&(e.adler=j(e.adler,n.pending_buf,n.pending-t,t))}n.status=103}if(n.status===103){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(H(e),n.pending!==0))return n.last_flush=-1,L;W(n,e.adler&255),W(n,e.adler>>8&255),e.adler=0}if(n.status=113,H(e),n.pending!==0)return n.last_flush=-1,L}if(e.avail_in!==0||n.lookahead!==0||t!==F&&n.status!==666){let r=n.level===0?Pe(n,t):n.strategy===Ce?Le(n,t):n.strategy===we?Ie(n,t):Re[n.level].func(n,t);if((r===3||r===4)&&(n.status=666),r===1||r===3)return e.avail_out===0&&(n.last_flush=-1),L;if(r===2&&(t===he?me(n):t!==_e&&(fe(n,0,0,!1),t===ge&&(B(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),H(e),e.avail_out===0))return n.last_flush=-1,L}return t===I?n.wrap<=0?ve:(n.wrap===2?(W(n,e.adler&255),W(n,e.adler>>8&255),W(n,e.adler>>16&255),W(n,e.adler>>24&255),W(n,e.total_in&255),W(n,e.total_in>>8&255),W(n,e.total_in>>16&255),W(n,e.total_in>>24&255)):(je(n,e.adler>>>16),je(n,e.adler&65535)),H(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending===0?ve:L):L},deflateEnd:e=>{if(Ve(e))return R;let t=e.state.status;return e.state=null,t===113?z(e,ye):L},deflateSetDictionary:(e,t)=>{let n=t.length;if(Ve(e))return R;let r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==42||r.lookahead)return R;if(i===1&&(e.adler=le(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){i===0&&(B(r.head),r.strstart=0,r.block_start=0,r.insert=0);let e=new Uint8Array(r.w_size);e.set(t.subarray(n-r.w_size,n),0),t=e,n=r.w_size}let a=e.avail_in,o=e.next_in,s=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,G(r);r.lookahead>=3;){let e=r.strstart,t=r.lookahead-2;do r.ins_h=V(r,r.ins_h,r.window[e+3-1]),r.prev[e&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=e,e++;while(--t);r.strstart=e,r.lookahead=2,G(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=2,r.match_available=0,e.next_in=o,e.input=s,e.avail_in=a,r.wrap=i,L},deflateInfo:`pako deflate (from Nodeca project)`};let qe=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var Je={assign:function(e){let t=Array.prototype.slice.call(arguments,1);for(;t.length;){let n=t.shift();if(n){if(typeof n!=`object`)throw TypeError(n+`must be non-object`);for(let t in n)qe(n,t)&&(e[t]=n[t])}}return e},flattenChunks:e=>{let t=0;for(let n=0,r=e.length;n<r;n++)t+=e[n].length;let n=new Uint8Array(t);for(let t=0,r=0,i=e.length;t<i;t++){let i=e[t];n.set(i,r),r+=i.length}return n}};let Ye=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Ye=!1}let Xe=new Uint8Array(256);for(let e=0;e<256;e++)Xe[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;Xe[254]=Xe[254]=1;var Ze=e=>{if(typeof TextEncoder==`function`&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,n,r,i,a,o=e.length,s=0;for(i=0;i<o;i++)n=e.charCodeAt(i),(n&64512)==55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)==56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Uint8Array(s),a=0,i=0;a<s;i++)n=e.charCodeAt(i),(n&64512)==55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)==56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[a++]=n:n<2048?(t[a++]=192|n>>>6,t[a++]=128|n&63):n<65536?(t[a++]=224|n>>>12,t[a++]=128|n>>>6&63,t[a++]=128|n&63):(t[a++]=240|n>>>18,t[a++]=128|n>>>12&63,t[a++]=128|n>>>6&63,t[a++]=128|n&63);return t};let Qe=(e,t)=>{if(t<65534&&e.subarray&&Ye)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let n=``;for(let r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n};var $e={string2buf:Ze,buf2string:(e,t)=>{let n=t||e.length;if(typeof TextDecoder==`function`&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let r,i,a=Array(n*2);for(i=0,r=0;r<n;){let t=e[r++];if(t<128){a[i++]=t;continue}let o=Xe[t];if(o>4){a[i++]=65533,r+=o-1;continue}for(t&=o===2?31:o===3?15:7;o>1&&r<n;)t=t<<6|e[r++]&63,o--;if(o>1){a[i++]=65533;continue}t<65536?a[i++]=t:(t-=65536,a[i++]=55296|t>>10&1023,a[i++]=56320|t&1023)}return Qe(a,i)},utf8border:(e,t)=>{t||=e.length,t>e.length&&(t=e.length);let n=t-1;for(;n>=0&&(e[n]&192)==128;)n--;return n<0||n===0?t:n+Xe[e[n]]>t?n:t}};function et(){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}var tt=et;let nt=Object.prototype.toString,{Z_NO_FLUSH:rt,Z_SYNC_FLUSH:it,Z_FULL_FLUSH:at,Z_FINISH:ot,Z_OK:st,Z_STREAM_END:ct,Z_DEFAULT_COMPRESSION:lt,Z_DEFAULT_STRATEGY:ut,Z_DEFLATED:dt}=N;function ft(e){this.options=Je.assign({level:lt,method:dt,chunkSize:16384,windowBits:15,memLevel:8,strategy:ut},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg=``,this.ended=!1,this.chunks=[],this.strm=new tt,this.strm.avail_out=0;let n=Ke.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==st)throw Error(M[n]);if(t.header&&Ke.deflateSetHeader(this.strm,t.header),t.dictionary){let e;if(e=typeof t.dictionary==`string`?$e.string2buf(t.dictionary):nt.call(t.dictionary)===`[object ArrayBuffer]`?new Uint8Array(t.dictionary):t.dictionary,n=Ke.deflateSetDictionary(this.strm,e),n!==st)throw Error(M[n]);this._dict_set=!0}}ft.prototype.push=function(e,t){let n=this.strm,r=this.options.chunkSize,i,a;if(this.ended)return!1;for(a=t===~~t?t:t===!0?ot:rt,typeof e==`string`?n.input=$e.string2buf(e):nt.call(e)===`[object ArrayBuffer]`?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(a===it||a===at)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=Ke.deflate(n,a),i===ct)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=Ke.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===st;if(n.avail_out===0){this.onData(n.output);continue}if(a>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0},ft.prototype.onData=function(e){this.chunks.push(e)},ft.prototype.onEnd=function(e){e===st&&(this.result=Je.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function pt(e,t){let n=new ft(t);if(n.push(e,!0),n.err)throw n.msg||M[n.err];return n.result}function mt(e,t){return t||={},t.raw=!0,pt(e,t)}function ht(e,t){return t||={},t.gzip=!0,pt(e,t)}var gt={Deflate:ft,deflate:pt,deflateRaw:mt,gzip:ht,constants:N};let _t=16209;var vt=function(e,t){let n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E=e.state;n=e.next_in,w=e.input,r=n+(e.avail_in-5),i=e.next_out,T=e.output,a=i-(t-e.avail_out),o=i+(e.avail_out-257),s=E.dmax,c=E.wsize,l=E.whave,u=E.wnext,d=E.window,f=E.hold,p=E.bits,m=E.lencode,h=E.distcode,g=(1<<E.lenbits)-1,_=(1<<E.distbits)-1;top:do{p<15&&(f+=w[n++]<<p,p+=8,f+=w[n++]<<p,p+=8),v=m[f&g];dolen:for(;;){if(y=v>>>24,f>>>=y,p-=y,y=v>>>16&255,y===0)T[i++]=v&65535;else if(y&16){b=v&65535,y&=15,y&&(p<y&&(f+=w[n++]<<p,p+=8),b+=f&(1<<y)-1,f>>>=y,p-=y),p<15&&(f+=w[n++]<<p,p+=8,f+=w[n++]<<p,p+=8),v=h[f&_];dodist:for(;;){if(y=v>>>24,f>>>=y,p-=y,y=v>>>16&255,y&16){if(x=v&65535,y&=15,p<y&&(f+=w[n++]<<p,p+=8,p<y&&(f+=w[n++]<<p,p+=8)),x+=f&(1<<y)-1,x>s){e.msg=`invalid distance too far back`,E.mode=_t;break top}if(f>>>=y,p-=y,y=i-a,x>y){if(y=x-y,y>l&&E.sane){e.msg=`invalid distance too far back`,E.mode=_t;break top}if(S=0,C=d,u===0){if(S+=c-y,y<b){b-=y;do T[i++]=d[S++];while(--y);S=i-x,C=T}}else if(u<y){if(S+=c+u-y,y-=u,y<b){b-=y;do T[i++]=d[S++];while(--y);if(S=0,u<b){y=u,b-=y;do T[i++]=d[S++];while(--y);S=i-x,C=T}}}else if(S+=u-y,y<b){b-=y;do T[i++]=d[S++];while(--y);S=i-x,C=T}for(;b>2;)T[i++]=C[S++],T[i++]=C[S++],T[i++]=C[S++],b-=3;b&&(T[i++]=C[S++],b>1&&(T[i++]=C[S++]))}else{S=i-x;do T[i++]=T[S++],T[i++]=T[S++],T[i++]=T[S++],b-=3;while(b>2);b&&(T[i++]=T[S++],b>1&&(T[i++]=T[S++]))}}else if(y&64){e.msg=`invalid distance code`,E.mode=_t;break top}else{v=h[(v&65535)+(f&(1<<y)-1)];continue dodist}break}}else if(!(y&64)){v=m[(v&65535)+(f&(1<<y)-1)];continue dolen}else if(y&32){E.mode=16191;break top}else{e.msg=`invalid literal/length code`,E.mode=_t;break top}break}}while(n<r&&i<o);b=p>>3,n-=b,p-=b<<3,f&=(1<<p)-1,e.next_in=n,e.next_out=i,e.avail_in=n<r?5+(r-n):5-(n-r),e.avail_out=i<o?257+(o-i):257-(i-o),E.hold=f,E.bits=p};let yt=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]),bt=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]),xt=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]),St=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 Ct=(e,t,n,r,i,a,o,s)=>{let c=s.bits,l=0,u=0,d=0,f=0,p=0,m=0,h=0,g=0,_=0,v=0,y,b,x,S,C,w=null,T,E=new Uint16Array(16),D=new Uint16Array(16),O=null,ee,k,A;for(l=0;l<=15;l++)E[l]=0;for(u=0;u<r;u++)E[t[n+u]]++;for(p=c,f=15;f>=1&&E[f]===0;f--);if(p>f&&(p=f),f===0)return i[a++]=20971520,i[a++]=20971520,s.bits=1,0;for(d=1;d<f&&E[d]===0;d++);for(p<d&&(p=d),g=1,l=1;l<=15;l++)if(g<<=1,g-=E[l],g<0)return-1;if(g>0&&(e===0||f!==1))return-1;for(D[1]=0,l=1;l<15;l++)D[l+1]=D[l]+E[l];for(u=0;u<r;u++)t[n+u]!==0&&(o[D[t[n+u]]++]=u);if(e===0?(w=O=o,T=20):e===1?(w=yt,O=bt,T=257):(w=xt,O=St,T=0),v=0,u=0,l=d,C=a,m=p,h=0,x=-1,_=1<<p,S=_-1,e===1&&_>852||e===2&&_>592)return 1;for(;;){ee=l-h,o[u]+1<T?(k=0,A=o[u]):o[u]>=T?(k=O[o[u]-T],A=w[o[u]-T]):(k=96,A=0),y=1<<l-h,b=1<<m,d=b;do b-=y,i[C+(v>>h)+b]=ee<<24|k<<16|A|0;while(b!==0);for(y=1<<l-1;v&y;)y>>=1;if(y===0?v=0:(v&=y-1,v+=y),u++,--E[l]===0){if(l===f)break;l=t[n+o[u]]}if(l>p&&(v&S)!==x){for(h===0&&(h=p),C+=d,m=l-h,g=1<<m;m+h<f&&(g-=E[m+h],!(g<=0));)m++,g<<=1;if(_+=1<<m,e===1&&_>852||e===2&&_>592)return 1;x=v&S,i[x]=p<<24|m<<16|C-a|0}}return v!==0&&(i[C+v]=l-h<<24|4194304),s.bits=p,0};let{Z_FINISH:wt,Z_BLOCK:Tt,Z_TREES:Et,Z_OK:J,Z_STREAM_END:Dt,Z_NEED_DICT:Ot,Z_STREAM_ERROR:Y,Z_DATA_ERROR:kt,Z_MEM_ERROR:At,Z_BUF_ERROR:jt,Z_DEFLATED:Mt}=N,Nt=16180,Pt=16181,Ft=16182,It=16183,Lt=16184,Rt=16185,zt=16186,Bt=16187,Vt=16188,Ht=16189,Ut=16190,X=16191,Wt=16192,Gt=16193,Kt=16194,qt=16195,Jt=16196,Yt=16197,Xt=16198,Zt=16199,Qt=16200,$t=16201,en=16202,tn=16203,nn=16204,rn=16205,an=16206,on=16207,sn=16208,Z=16209,cn=16210,ln=16211,un=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function dn(){this.strm=null,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}let Q=e=>{if(!e)return 1;let t=e.state;return+(!t||t.strm!==e||t.mode<Nt||t.mode>ln)},fn=e=>{if(Q(e))return Y;let t=e.state;return e.total_in=e.total_out=t.total=0,e.msg=``,t.wrap&&(e.adler=t.wrap&1),t.mode=Nt,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,J},pn=e=>{if(Q(e))return Y;let t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,fn(e)},mn=(e,t)=>{let n;if(Q(e))return Y;let r=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?Y:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,pn(e))},hn=(e,t)=>{if(!e)return Y;let n=new dn;e.state=n,n.strm=e,n.window=null,n.mode=Nt;let r=mn(e,t);return r!==J&&(e.state=null),r},gn=e=>hn(e,15),_n=!0,vn,yn,bn=e=>{if(_n){vn=new Int32Array(512),yn=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Ct(1,e.lens,0,288,vn,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Ct(2,e.lens,0,32,yn,0,e.work,{bits:5}),_n=!1}e.lencode=vn,e.lenbits=9,e.distcode=yn,e.distbits=5},xn=(e,t,n,r)=>{let i,a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),r>=a.wsize?(a.window.set(t.subarray(n-a.wsize,n),0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),a.window.set(t.subarray(n-r,n-r+i),a.wnext),r-=i,r?(a.window.set(t.subarray(n-r,n),0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0};var $={inflateReset:pn,inflateReset2:mn,inflateResetKeep:fn,inflateInit:gn,inflateInit2:hn,inflate:(e,t)=>{let n,r,i,a,o,s,c,l,u,d,f,p,m,h,g=0,_,v,y,b,x,S,C,w,T=new Uint8Array(4),E,D,O=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Q(e)||!e.output||!e.input&&e.avail_in!==0)return Y;n=e.state,n.mode===X&&(n.mode=Wt),o=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,u=n.bits,d=s,f=c,w=J;inf_leave:for(;;)switch(n.mode){case Nt:if(n.wrap===0){n.mode=Wt;break}for(;u<16;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(n.wrap&2&&l===35615){n.wbits===0&&(n.wbits=15),n.check=0,T[0]=l&255,T[1]=l>>>8&255,n.check=j(n.check,T,2,0),l=0,u=0,n.mode=Pt;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg=`incorrect header check`,n.mode=Z;break}if((l&15)!==Mt){e.msg=`unknown compression method`,n.mode=Z;break}if(l>>>=4,u-=4,C=(l&15)+8,n.wbits===0&&(n.wbits=C),C>15||C>n.wbits){e.msg=`invalid window size`,n.mode=Z;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=l&512?Ht:X,l=0,u=0;break;case Pt:for(;u<16;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(n.flags=l,(n.flags&255)!==Mt){e.msg=`unknown compression method`,n.mode=Z;break}if(n.flags&57344){e.msg=`unknown header flags set`,n.mode=Z;break}n.head&&(n.head.text=l>>8&1),n.flags&512&&n.wrap&4&&(T[0]=l&255,T[1]=l>>>8&255,n.check=j(n.check,T,2,0)),l=0,u=0,n.mode=Ft;case Ft:for(;u<32;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.head&&(n.head.time=l),n.flags&512&&n.wrap&4&&(T[0]=l&255,T[1]=l>>>8&255,T[2]=l>>>16&255,T[3]=l>>>24&255,n.check=j(n.check,T,4,0)),l=0,u=0,n.mode=It;case It:for(;u<16;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&n.wrap&4&&(T[0]=l&255,T[1]=l>>>8&255,n.check=j(n.check,T,2,0)),l=0,u=0,n.mode=Lt;case Lt:if(n.flags&1024){for(;u<16;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&n.wrap&4&&(T[0]=l&255,T[1]=l>>>8&255,n.check=j(n.check,T,2,0)),l=0,u=0}else n.head&&(n.head.extra=null);n.mode=Rt;case Rt:if(n.flags&1024&&(p=n.length,p>s&&(p=s),p&&(n.head&&(C=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(a,a+p),C)),n.flags&512&&n.wrap&4&&(n.check=j(n.check,r,p,a)),s-=p,a+=p,n.length-=p),n.length))break inf_leave;n.length=0,n.mode=zt;case zt:if(n.flags&2048){if(s===0)break inf_leave;p=0;do C=r[a+ p++],n.head&&C&&n.length<65536&&(n.head.name+=String.fromCharCode(C));while(C&&p<s);if(n.flags&512&&n.wrap&4&&(n.check=j(n.check,r,p,a)),s-=p,a+=p,C)break inf_leave}else n.head&&(n.head.name=null);n.length=0,n.mode=Bt;case Bt:if(n.flags&4096){if(s===0)break inf_leave;p=0;do C=r[a+ p++],n.head&&C&&n.length<65536&&(n.head.comment+=String.fromCharCode(C));while(C&&p<s);if(n.flags&512&&n.wrap&4&&(n.check=j(n.check,r,p,a)),s-=p,a+=p,C)break inf_leave}else n.head&&(n.head.comment=null);n.mode=Vt;case Vt:if(n.flags&512){for(;u<16;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(n.wrap&4&&l!==(n.check&65535)){e.msg=`header crc mismatch`,n.mode=Z;break}l=0,u=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=X;break;case Ht:for(;u<32;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}e.adler=n.check=un(l),l=0,u=0,n.mode=Ut;case Ut:if(n.havedict===0)return e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=u,Ot;e.adler=n.check=1,n.mode=X;case X:if(t===Tt||t===Et)break inf_leave;case Wt:if(n.last){l>>>=u&7,u-=u&7,n.mode=an;break}for(;u<3;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}switch(n.last=l&1,l>>>=1,--u,l&3){case 0:n.mode=Gt;break;case 1:if(bn(n),n.mode=Zt,t===Et){l>>>=2,u-=2;break inf_leave}break;case 2:n.mode=Jt;break;case 3:e.msg=`invalid block type`,n.mode=Z}l>>>=2,u-=2;break;case Gt:for(l>>>=u&7,u-=u&7;u<32;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if((l&65535)!=(l>>>16^65535)){e.msg=`invalid stored block lengths`,n.mode=Z;break}if(n.length=l&65535,l=0,u=0,n.mode=Kt,t===Et)break inf_leave;case Kt:n.mode=qt;case qt:if(p=n.length,p){if(p>s&&(p=s),p>c&&(p=c),p===0)break inf_leave;i.set(r.subarray(a,a+p),o),s-=p,a+=p,c-=p,o+=p,n.length-=p;break}n.mode=X;break;case Jt:for(;u<14;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(n.nlen=(l&31)+257,l>>>=5,u-=5,n.ndist=(l&31)+1,l>>>=5,u-=5,n.ncode=(l&15)+4,l>>>=4,u-=4,n.nlen>286||n.ndist>30){e.msg=`too many length or distance symbols`,n.mode=Z;break}n.have=0,n.mode=Yt;case Yt:for(;n.have<n.ncode;){for(;u<3;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.lens[O[n.have++]]=l&7,l>>>=3,u-=3}for(;n.have<19;)n.lens[O[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,E={bits:n.lenbits},w=Ct(0,n.lens,0,19,n.lencode,0,n.work,E),n.lenbits=E.bits,w){e.msg=`invalid code lengths set`,n.mode=Z;break}n.have=0,n.mode=Xt;case Xt:for(;n.have<n.nlen+n.ndist;){for(;g=n.lencode[l&(1<<n.lenbits)-1],_=g>>>24,v=g>>>16&255,y=g&65535,!(_<=u);){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(y<16)l>>>=_,u-=_,n.lens[n.have++]=y;else{if(y===16){for(D=_+2;u<D;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(l>>>=_,u-=_,n.have===0){e.msg=`invalid bit length repeat`,n.mode=Z;break}C=n.lens[n.have-1],p=3+(l&3),l>>>=2,u-=2}else if(y===17){for(D=_+3;u<D;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}l>>>=_,u-=_,C=0,p=3+(l&7),l>>>=3,u-=3}else{for(D=_+7;u<D;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}l>>>=_,u-=_,C=0,p=11+(l&127),l>>>=7,u-=7}if(n.have+p>n.nlen+n.ndist){e.msg=`invalid bit length repeat`,n.mode=Z;break}for(;p--;)n.lens[n.have++]=C}}if(n.mode===Z)break;if(n.lens[256]===0){e.msg=`invalid code -- missing end-of-block`,n.mode=Z;break}if(n.lenbits=9,E={bits:n.lenbits},w=Ct(1,n.lens,0,n.nlen,n.lencode,0,n.work,E),n.lenbits=E.bits,w){e.msg=`invalid literal/lengths set`,n.mode=Z;break}if(n.distbits=6,n.distcode=n.distdyn,E={bits:n.distbits},w=Ct(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,E),n.distbits=E.bits,w){e.msg=`invalid distances set`,n.mode=Z;break}if(n.mode=Zt,t===Et)break inf_leave;case Zt:n.mode=Qt;case Qt:if(s>=6&&c>=258){e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=u,vt(e,f),o=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,u=n.bits,n.mode===X&&(n.back=-1);break}for(n.back=0;g=n.lencode[l&(1<<n.lenbits)-1],_=g>>>24,v=g>>>16&255,y=g&65535,!(_<=u);){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(v&&!(v&240)){for(b=_,x=v,S=y;g=n.lencode[S+((l&(1<<b+x)-1)>>b)],_=g>>>24,v=g>>>16&255,y=g&65535,!(b+_<=u);){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}l>>>=b,u-=b,n.back+=b}if(l>>>=_,u-=_,n.back+=_,n.length=y,v===0){n.mode=rn;break}if(v&32){n.back=-1,n.mode=X;break}if(v&64){e.msg=`invalid literal/length code`,n.mode=Z;break}n.extra=v&15,n.mode=$t;case $t:if(n.extra){for(D=n.extra;u<D;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=en;case en:for(;g=n.distcode[l&(1<<n.distbits)-1],_=g>>>24,v=g>>>16&255,y=g&65535,!(_<=u);){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(!(v&240)){for(b=_,x=v,S=y;g=n.distcode[S+((l&(1<<b+x)-1)>>b)],_=g>>>24,v=g>>>16&255,y=g&65535,!(b+_<=u);){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}l>>>=b,u-=b,n.back+=b}if(l>>>=_,u-=_,n.back+=_,v&64){e.msg=`invalid distance code`,n.mode=Z;break}n.offset=y,n.extra=v&15,n.mode=tn;case tn:if(n.extra){for(D=n.extra;u<D;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg=`invalid distance too far back`,n.mode=Z;break}n.mode=nn;case nn:if(c===0)break inf_leave;if(p=f-c,n.offset>p){if(p=n.offset-p,p>n.whave&&n.sane){e.msg=`invalid distance too far back`,n.mode=Z;break}p>n.wnext?(p-=n.wnext,m=n.wsize-p):m=n.wnext-p,p>n.length&&(p=n.length),h=n.window}else h=i,m=o-n.offset,p=n.length;p>c&&(p=c),c-=p,n.length-=p;do i[o++]=h[m++];while(--p);n.length===0&&(n.mode=Qt);break;case rn:if(c===0)break inf_leave;i[o++]=n.length,c--,n.mode=Qt;break;case an:if(n.wrap){for(;u<32;){if(s===0)break inf_leave;s--,l|=r[a++]<<u,u+=8}if(f-=c,e.total_out+=f,n.total+=f,n.wrap&4&&f&&(e.adler=n.check=n.flags?j(n.check,i,f,o-f):le(n.check,i,f,o-f)),f=c,n.wrap&4&&(n.flags?l:un(l))!==n.check){e.msg=`incorrect data check`,n.mode=Z;break}l=0,u=0}n.mode=on;case on:if(n.wrap&&n.flags){for(;u<32;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(n.wrap&4&&l!==(n.total&4294967295)){e.msg=`incorrect length check`,n.mode=Z;break}l=0,u=0}n.mode=sn;case sn:w=Dt;break inf_leave;case Z:w=kt;break inf_leave;case cn:return At;case ln:default:return Y}return e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=u,(n.wsize||f!==e.avail_out&&n.mode<Z&&(n.mode<an||t!==wt))&&xn(e,e.output,e.next_out,f-e.avail_out),d-=e.avail_in,f-=e.avail_out,e.total_in+=d,e.total_out+=f,n.total+=f,n.wrap&4&&f&&(e.adler=n.check=n.flags?j(n.check,i,f,e.next_out-f):le(n.check,i,f,e.next_out-f)),e.data_type=n.bits+(n.last?64:0)+(n.mode===X?128:0)+(n.mode===Zt||n.mode===Kt?256:0),(d===0&&f===0||t===wt)&&w===J&&(w=jt),w},inflateEnd:e=>{if(Q(e))return Y;let t=e.state;return t.window&&=null,e.state=null,J},inflateGetHeader:(e,t)=>{if(Q(e))return Y;let n=e.state;return n.wrap&2?(n.head=t,t.done=!1,J):Y},inflateSetDictionary:(e,t)=>{let n=t.length,r,i,a;return Q(e)||(r=e.state,r.wrap!==0&&r.mode!==Ut)?Y:r.mode===Ut&&(i=1,i=le(i,t,n,0),i!==r.check)?kt:(a=xn(e,t,n,n),a?(r.mode=cn,At):(r.havedict=1,J))},inflateInfo:`pako inflate (from Nodeca project)`};function Sn(){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}var Cn=Sn;let wn=Object.prototype.toString,{Z_NO_FLUSH:Tn,Z_FINISH:En,Z_OK:Dn,Z_STREAM_END:On,Z_NEED_DICT:kn,Z_STREAM_ERROR:An,Z_DATA_ERROR:jn,Z_MEM_ERROR:Mn}=N;function Nn(e){this.options=Je.assign({chunkSize:1024*64,windowBits:15,to:``},e||{});let t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15||(t.windowBits|=15)),this.err=0,this.msg=``,this.ended=!1,this.chunks=[],this.strm=new tt,this.strm.avail_out=0;let n=$.inflateInit2(this.strm,t.windowBits);if(n!==Dn||(this.header=new Cn,$.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary==`string`?t.dictionary=$e.string2buf(t.dictionary):wn.call(t.dictionary)===`[object ArrayBuffer]`&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=$.inflateSetDictionary(this.strm,t.dictionary),n!==Dn))))throw Error(M[n])}Nn.prototype.push=function(e,t){let n=this.strm,r=this.options.chunkSize,i=this.options.dictionary,a,o,s;if(this.ended)return!1;for(o=t===~~t?t:t===!0?En:Tn,wn.call(e)===`[object ArrayBuffer]`?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),a=$.inflate(n,o),a===kn&&i&&(a=$.inflateSetDictionary(n,i),a===Dn?a=$.inflate(n,o):a===jn&&(a=kn));n.avail_in>0&&a===On&&n.state.wrap>0&&e[n.next_in]!==0;)$.inflateReset(n),a=$.inflate(n,o);switch(a){case An:case jn:case kn:case Mn:return this.onEnd(a),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(n.avail_out===0||a===On))if(this.options.to===`string`){let e=$e.utf8border(n.output,n.next_out),t=n.next_out-e,i=$e.buf2string(n.output,e);n.next_out=t,n.avail_out=r-t,t&&n.output.set(n.output.subarray(e,e+t),0),this.onData(i)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(a===Dn&&s===0)){if(a===On)return a=$.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(n.avail_in===0)break}}return!0},Nn.prototype.onData=function(e){this.chunks.push(e)},Nn.prototype.onEnd=function(e){e===Dn&&(this.options.to===`string`?this.result=this.chunks.join(``):this.result=Je.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Pn(e,t){let n=new Nn(t);if(n.push(e),n.err)throw n.msg||M[n.err];return n.result}function Fn(e,t){return t||={},t.raw=!0,Pn(e,t)}var In={Inflate:Nn,inflate:Pn,inflateRaw:Fn,ungzip:Pn,constants:N};let{Deflate:Ln,deflate:Rn,deflateRaw:zn,gzip:Bn}=gt,{Inflate:Vn,inflate:Hn,inflateRaw:Un,ungzip:Wn}=In;var Gn={Deflate:Ln,deflate:Rn,deflateRaw:zn,gzip:Bn,Inflate:Vn,inflate:Hn,inflateRaw:Un,ungzip:Wn,constants:N},Kn=class{view;offset=0;constructor(e){this.view=new DataView(e)}readUint8(){return this.view.getUint8(this.offset++)}readUint32(){let e=this.view.getUint32(this.offset,!0);return this.offset+=4,e}readBytes(e){let t=new Uint8Array(this.view.buffer,this.offset,e);return this.offset+=e,t}eof(){return this.offset>=this.view.byteLength}},qn=class{decodeBuffer(e){return this.textDecoder.decode(Gn.inflate(e))}decoder=Gn;textDecoder=new TextDecoder(`utf-8`);ChunkType={PROP:1,MESH:2,STRUCTURE:3,GRIDS:4,MATRIX:5,MESHSPACE:6,NORTHANGLE:7};parseMesh(e){let t=new DataView(e.buffer,e.byteOffset),n=0,r=()=>{let r=t.getUint32(n,!0);n+=4;let i=new Uint8Array(e.buffer,e.byteOffset+n,r);return n+=r,i};return{pos:r(),ids:r(),ind:(()=>{let r=t.getUint32(n,!0);n+=4;let i=t.getUint32(n,!0);n+=4;let a=new Uint8Array(e.buffer,e.byteOffset+n,r);return n+=r,{data:a,type:i}})(),colorId:(()=>{let e=t.getUint8(n++)/255,r=t.getUint8(n++)/255,i=t.getUint8(n++)/255,a=t.getUint8(n++)/255,o=t.getUint32(n,!0);return n+=4,{r:e,g:r,b:i,opacity:a,name:o}})()}}getExternalMetadataPath(e){let t=e.match(/[?#].*$/)?.[0]??``,n=t?e.slice(0,-t.length):e;return/\.min\.bmt$/i.test(n)?n.replace(/\.min\.bmt$/i,`_props.json`)+t:null}async loadExternalMetadata(e){let t=this.getExternalMetadataPath(e);if(!t)return null;try{let e=await fetch(t);return e.ok?await e.json():null}catch(e){return console.warn(`BMT metadata loading error: ${t}`,e),null}}getModelNameFromPath(e){return(e.split(/[?#]/)[0].split(/[\\/]/).pop()||`model`).replace(/\.min\.bmt$/i,``).replace(/\.[^.]+$/i,``).trim()||`model`}async loadModel(e,t){let n=await fetch(e);console.log(`Parsing BMT model`);let r=await n.arrayBuffer(),i=this.parseBinaryFile(r,t);i.name??=this.getModelNameFromPath(e);let a=await this.loadExternalMetadata(e);return a?.props&&(i.props=a.props),a?.grids&&(i.grids=a.grids),a?.coordinationMatrix&&(i.coordinationMatrix=a.coordinationMatrix),a?.structure!==void 0&&(i.structure=a.structure),typeof a?.trueNorthAngle==`number`&&(i.trueNorthAngle=a.trueNorthAngle),i}parseBinaryFile(e,t={}){let n=new Kn(e);if(new TextDecoder().decode(n.readBytes(3))!==`BMT`)throw Error(`Invalid file`);let r=n.readUint8();console.log(`model version: ${r}`);let i={},a={},o,s={},c=e=>this.decoder.inflate(e),l=``,u,d,f,p=0,m=n.view.byteLength;for(;!n.eof();){let e=n.readUint8(),r=n.readUint32(),h=n.readBytes(r);switch(e){case this.ChunkType.MESH:case this.ChunkType.MESHSPACE:{let r=this.parseMesh(h),a=c(r.pos),o=c(r.ids),s=c(r.ind.data),u=r.colorId,f=new Float32Array(a.buffer),g=new Uint32Array(o.buffer),_;if(s&&s.length)_=r.ind.type===0?new Uint16Array(s.buffer,s.byteOffset,s.byteLength/2):new Uint32Array(s.buffer,s.byteOffset,s.byteLength/4);else{_=new Uint32Array(a.length);for(let e=0;e<a.length;e++)_[e]=e}let v={pos:f,ids:g,ind:_,isIfcSpace:e===this.ChunkType.MESHSPACE,mat:u,matrix:l||void 0};d=void 0,t.streamGeometryChunks?(t.onGeometryChunk?.({chunkIndex:p,geometry:v,geometryID:u.name,isIfcSpace:e===this.ChunkType.MESHSPACE,loadedBytes:n.offset,totalBytes:m}),p++):i[u.name]=v;break}case this.ChunkType.PROP:{let e=JSON.parse(this.decodeBuffer(h));e?.id===void 0?e&&typeof e==`object`&&Object.assign(a,e):a[e.id]=e}break;case this.ChunkType.STRUCTURE:s=JSON.parse(this.decodeBuffer(h));break;case this.ChunkType.GRIDS:o=JSON.parse(this.decodeBuffer(h));break;case this.ChunkType.MATRIX:r&&(l=this.decodeBuffer(h),u??=l,d=l);break;case this.ChunkType.NORTHANGLE:{let e=Number(this.decodeBuffer(h));Number.isFinite(e)&&(f=e);break}default:break}t.onProgress?.({emittedChunks:p,loadedBytes:n.offset,totalBytes:m})}return{coordinationMatrix:d??u,data:i,grids:o,props:a,structure:s,trueNorthAngle:f}}},Jn=class{emit;taskId;totalModels;constructor(e){this.emit=e.emit,this.taskId=e.taskId,this.totalModels=Math.max(e.totalModels,1)}emitModelProgress(e,t,n,r,i={}){let a=this.clampProgress(r),o=this.clampProgress((e+a)/this.totalModels);this.emit({...i,modelIndex:e,modelName:t,phase:n,progress:o,taskId:this.taskId,totalModels:this.totalModels})}emitError(e){this.emit({message:e,modelIndex:-1,phase:`error`,progress:1,taskId:this.taskId,totalModels:this.totalModels})}clampProgress(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):0}};let Yn=globalThis;function Xn(e){return e.name?e.name:e.kind===`url`?Zn(e.url):e.kind===`file`?e.file.name:`model.bmt`}function Zn(e){return e.split(/[?#]/)[0].split(/[\\/]/).pop()||`model.bmt`}function Qn(e){return Xn(e).replace(/\.min\.bmt$/i,``).replace(/\.[^.]+$/i,``).trim()}function $n(e){return e instanceof Error?{message:e.message,stack:e.stack}:{message:String(e)}}function er(e,t){let n=new Uint8Array(t),r=0;return e.forEach(e=>{n.set(e,r),r+=e.byteLength}),n.buffer}async function tr(e,t,n,r){let i=e.size,a=e.stream().getReader(),o=[],s=0;for(;;){let{done:e,value:c}=await a.read();if(e)break;o.push(c),s+=c.byteLength,t.emitModelProgress(n,r,`reading`,i>0?s/i*.35:.1,{loaded:s,total:i})}return er(o,s)}async function nr(e,t,n,r){let i=await fetch(e);if(!i.ok)throw Error(`BMT fetch error: ${i.status} ${e}`);let a=i.headers.get(`content-length`),o=a?Number(a):0,s=i.body?.getReader();if(!s){let e=await i.arrayBuffer();return t.emitModelProgress(n,r,`fetching`,.35,{loaded:e.byteLength,total:e.byteLength}),e}let c=[],l=0;for(;;){let{done:e,value:i}=await s.read();if(e)break;c.push(i),l+=i.byteLength,t.emitModelProgress(n,r,`fetching`,o>0?l/o*.35:.1,{loaded:l,total:o||void 0})}return er(c,l)}async function rr(e,t,n){let r=Xn(e);return e.kind===`buffer`?(t.emitModelProgress(n,r,`reading`,.35,{loaded:e.buffer.byteLength,total:e.buffer.byteLength}),e.buffer):e.kind===`file`?tr(e.file,t,n,r):nr(e.url,t,n,r)}function ir(e){let t=e.split(/[?#]/)[0];return/\.min\.bmt$/i.test(t)?new URL(t.replace(/\.min\.bmt$/i,`_props.json`),e).href:null}async function ar(e,t){if(t.kind!==`url`)return e;let n=ir(t.url);if(!n)return e;try{let t=await fetch(n);if(!t.ok)return e;let r=await t.json();r.props&&(e.props=r.props),r.grids&&(e.grids=r.grids),r.coordinationMatrix&&(e.coordinationMatrix=r.coordinationMatrix),typeof r.trueNorthAngle==`number`&&(e.trueNorthAngle=r.trueNorthAngle),r.structure!==void 0&&(e.structure=r.structure)}catch(e){console.warn(`BMT metadata loading error: ${n}`,e)}return e}function or(e){let t=new Set;return[e.pos,e.norm,e.ind,e.ids].forEach(e=>{let n=e?.buffer;n instanceof ArrayBuffer&&t.add(n)}),Array.from(t)}function sr(e){let t=new Set;return Object.values(e).forEach(e=>{Object.values(e.data).forEach(e=>{or(e).forEach(e=>t.add(e))})}),Array.from(t)}async function cr(e){let t=e.options??{},n=new qn,r=new Jn({emit:t=>{Yn.postMessage({progress:t,taskId:e.taskId,type:`progress`})},taskId:e.taskId,totalModels:e.sources.length}),i={};r.emitModelProgress(0,void 0,`queued`,0);for(let a=0;a<e.sources.length;a++){let o=e.sources[a],s=Xn(o),c=await rr(o,r,a),l=!!t.streamGeometryChunks;r.emitModelProgress(a,s,`parsing`,.35);let u=n.parseBinaryFile(c,{onGeometryChunk:l?t=>{let n={chunkIndex:t.chunkIndex,geometry:t.geometry,geometryID:t.geometryID,isIfcSpace:t.isIfcSpace,modelIndex:a,modelName:s};Yn.postMessage({chunk:n,taskId:e.taskId,type:`chunk`},or(t.geometry))}:void 0,onProgress:e=>{r.emitModelProgress(a,s,`parsing`,.35+e.loadedBytes/e.totalBytes*.6,{loaded:e.loadedBytes,total:e.totalBytes})},streamGeometryChunks:l});u.name??=Qn(o),await ar(u,o),i[a]=u,r.emitModelProgress(a,s,`complete`,1)}return i}Yn.onmessage=e=>{let t=e.data;t.type===`load-bmt-model`&&cr(t).then(e=>{Yn.postMessage({models:e,taskId:t.taskId,type:`complete`},sr(e))}).catch(e=>{Yn.postMessage({error:$n(e),taskId:t.taskId,type:`error`})})}})();