brainsmatics 1.1.44 → 1.1.46
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/dist/{deflate-6b74687c.mjs → deflate-364bde86.mjs} +1 -1
- package/dist/{deflate-e7b5c31c.js → deflate-5437f3fa.js} +1 -1
- package/dist/{index-53e7bfd9.mjs → index-e9246ba3.mjs} +3 -3
- package/dist/{index-48b0765c.js → index-fc4834e6.js} +2 -2
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{lerc-2bab883c.js → lerc-c967361e.js} +1 -1
- package/dist/{lerc-9816e2e8.mjs → lerc-d55d4b38.mjs} +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index-fc4834e6.js"),t=require("./basedecoder-0503cc54.js");require("react");require("react-dom");class d extends t.BaseDecoder{decodeBlock(e){return r.inflate_1(new Uint8Array(e)).buffer}}exports.default=d;
|
|
@@ -131791,11 +131791,11 @@ s2(6, () => {
|
|
|
131791
131791
|
throw new Error("old style JPEG compression is not supported.");
|
|
131792
131792
|
});
|
|
131793
131793
|
s2(7, () => import("./jpeg-335c778f.mjs").then((t) => t.default));
|
|
131794
|
-
s2([8, 32946], () => import("./deflate-
|
|
131794
|
+
s2([8, 32946], () => import("./deflate-364bde86.mjs").then((t) => t.default));
|
|
131795
131795
|
s2(32773, () => import("./packbits-8b95f4d7.mjs").then((t) => t.default));
|
|
131796
131796
|
s2(
|
|
131797
131797
|
34887,
|
|
131798
|
-
() => import("./lerc-
|
|
131798
|
+
() => import("./lerc-d55d4b38.mjs").then(async (t) => (await t.zstd.init(), t)).then((t) => t.default)
|
|
131799
131799
|
);
|
|
131800
131800
|
s2(50001, () => import("./webimage-affb95d1.mjs").then((t) => t.default));
|
|
131801
131801
|
function xU(t, e, n, r = 1) {
|
|
@@ -196758,7 +196758,7 @@ const J5n = () => {
|
|
|
196758
196758
|
const _e = n.filter((Te) => ee.includes(Te.id)).filter((Te) => !S.some((Pe) => Pe.id === Te.id)).map((Te) => ({
|
|
196759
196759
|
...Te,
|
|
196760
196760
|
translateX: 0,
|
|
196761
|
-
translateY: 0,
|
|
196761
|
+
translateY: ["TIFF", "NiiGZ"].includes(Te.file_type) ? -1.5 : 0,
|
|
196762
196762
|
translateZ: 0,
|
|
196763
196763
|
rotateX: 0,
|
|
196764
196764
|
rotateY: 0,
|
|
@@ -4505,7 +4505,7 @@ Coefficient`,nameTextStyle:{fontSize:12,overflow:"break",width:80,lineHeight:14}
|
|
|
4505
4505
|
y:<strong>${Mr.toFixed(8)}</strong>
|
|
4506
4506
|
`}},series:[{data:tt.data,type:"line",markLine:{symbol:"none",silent:!0,data:Nt!==-1?[{xAxis:Nt,lineStyle:{type:"solid",color:"#c23531"},label:{show:!0,formatter:"{b}"}}]:[]}},{name:"Event Catcher",type:"bar",barWidth:"100%",data:tt.data,itemStyle:{color:"transparent"},tooltip:{show:!1}}]},Pt&&ze.setOption(Pt),ze.on("click",Un=>{_t(Un.name)});let Nn={dataset:[{source:Lt}],tooltip:{position:"top",trigger:"item",formatter:function(Un){const Mr=Un&&Un.value!==void 0?Un.value:Un&&Un.data&&Un.data.value!==void 0?Un.data.value:Un&&Un.data?Un.data:null,ur=Array.isArray(Mr)?Mr:[],vi=Un&&Un.marker?Un.marker:"",lr=ur[2]??"",wr=ur[3]??"",Pr=ur[0]??"",Za=ur[1]??"";return`${vi} <strong>${lr}</strong><br/>name: ${wr}<br/>X: ${Pr}<br/>Y: ${Za}`}},visualMap:{orient:"horizontal",type:"piecewise",top:20,left:"center",dimension:Mt,pieces:mn,show:!1},grid:{left:40,top:65+20*Math.ceil(mn.length/5)},xAxis:{name:h("5000.7057")||"t-SNE 1",nameLocation:"end",nameRotate:90},yAxis:{name:h("5000.7058")||"t-SNE 2"},series:{type:"scatter",encode:{tooltip:[0,1]},symbolSize:10,itemStyle:{borderColor:"#555"},datasetIndex:0}};const Hn=dt(mn,lt.getWidth(),lt,Mt);lt.setOption({graphic:Hn}),Nn&<.setOption(Nn),nt&&(nt.style.display="none"),lt.on("click",Un=>{const Mr=Un&&Un.value!==void 0?Un.value:Un&&Un.data&&Un.data.value!==void 0?Un.data.value:Un&&Un.data?Un.data:null;Array.isArray(Mr)&&Mr[3]&&Jt(Mr[3],Un.color)})}return()=>{let Oe=Nr.current;if(Oe){let ze=nb(Oe);ze==null||ze.dispose()}if(ni.current){let ze=nb(ni.current);ze==null||ze.dispose()}}},[Yr,Qi]);const pt=(Oe,ze,lt,nt)=>{var Lt,qt;const tt=Oe.value,jt=ze.getOption(),Ot=jt.dataset&&jt.dataset[0]&&jt.dataset[0].source||[],Mt=jr.current.includes(tt)?jr.current.filter(mn=>mn!==tt):jr.current.concat(tt);if(jr.current=Mt,Se.current.traverse(mn=>{if(mn.myMeshType==="SWC"&&mn.traverse(Pt=>{Pt instanceof Ji&&Pt.material.color.set(mn.userData.initColor)}),mn.name.indexOf("swcPointGroup")!==-1)for(let Pt in mn.children){let Nt=mn.children[Pt];Nt.userData.type==="cell"&&Nt.myMeshType==="neuronSphere"&&(Nt.material.uniforms.color.value=new rr(Nt.userData.color),Nt.material.uniforms.size.value=.1)}}),jr.current.length===0){ze.setOption({series:[{data:Ot}],graphic:dt(lt,ze.getWidth(),ze,nt)});return}if(jt.series&&((Lt=jt.series)==null?void 0:Lt.length)>0){const mn=Ot.map(Pt=>{const Nt=Array.isArray(Pt)?Pt[nt]:Pt[nt]??Pt.cluster,Nn=jr.current.includes(Nt);return{value:Pt,itemStyle:{borderColor:Nn?"#ff0000":"transparent",borderWidth:Nn?2:0,opacity:Nn?1:.15}}});jt.series=[{data:mn}],jt.graphic=dt(lt,ze.getWidth(),ze,nt),ze.setOption(jt);for(let Pt=0;Pt<jr.current.length;Pt++){const Nt=jr.current[Pt],Nn=Ot.filter(Hn=>(Array.isArray(Hn)?Hn[nt]:Hn[nt]??Hn.cluster)===Nt);for(let Hn=0;Hn<Nn.length;Hn++){const Un=Nn[Hn][3],Mr=(qt=lt.find(ur=>ur.value===Nt))==null?void 0:qt.color;if(Un){const ur=n.find(vi=>vi.path.indexOf(Un)!==-1);if(ur){const vi=Se.current.getObjectByName(ur.name);Se.current.traverse(lr=>{if(lr.name===`swcPointGroup${ur.name}`)for(let wr in lr.children){let Pr=lr.children[wr];Pr.userData.type==="cell"&&Pr.myMeshType==="neuronSphere"&&(Pr.material.uniforms.color.value=new rr(Mr),Pr.material.uniforms.size.value=.5)}}),vi&&vi.traverse(lr=>{lr instanceof Ji&&("#"+lr.material.color.getHex().toString(16).padStart(6,"0")===Mr?lr.material.color.set(vi.userData.initColor):lr.material.color.set(Mr))})}}}}}};function dt(Oe,ze,lt,nt){const qt=Math.floor((ze-40)/50);return Oe.map((mn,Pt)=>{const Nt=Math.floor(Pt/qt),Hn=30+Pt%qt*50,Un=25+Nt*20;return{type:"group",left:Hn,top:Un,children:[{type:"rect",shape:{width:20,height:15},style:{fill:mn.color,stroke:jr.current.includes(mn.value)?"#ff0000":"#333"},onclick:()=>pt(mn,lt,Oe,nt),cursor:"pointer",tooltip:{show:!1}},{type:"text",left:20+2,top:3,style:{text:mn.label,fill:"#000",fontSize:14},onclick:()=>pt(mn,lt,Oe,nt),cursor:"pointer",tooltip:{show:!1}}]}})}const _t=Oe=>{const ze=document.getElementById("spinner");ze&&(ze.style.display="block");const lt=[];for(let nt=0;nt<g.length;nt++){const tt=n.find(jt=>jt.name===g[nt]);if(tt){const jt=tt.path.lastIndexOf("\\"),Ot=tt.path.lastIndexOf("."),Mt=tt.path.slice(jt+1,Ot);lt.push(Mt)}}fetch("/app-api/echarts-api/echarts_data",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({names:lt,n_clusters:Oe})}).then(nt=>{if(nt.ok)return nt.json();throw ze&&(ze.style.display="none"),La.error({title:"Error",content:"Failed to fetch data for charts."}),new Error("Network response was not ok.")}).then(nt=>{Se.current.traverse(tt=>{tt.myMeshType==="SWC"&&tt.traverse(jt=>{jt instanceof Ji&&jt.material.color.set(tt.userData.initColor)})}),ki(nt),jr.current=[]})},Jt=(Oe,ze)=>{if(Oe){const lt=n.find(nt=>nt.path.indexOf(Oe)!==-1);if(lt){Se.current.traverse(tt=>{if(tt.myMeshType==="SWC"&&tt.traverse(jt=>{jt instanceof Ji&&jt.material.color.set(tt.userData.initColor)}),tt.name.indexOf("swcPointGroup")!==-1)for(let jt in tt.children){let Ot=tt.children[jt];Ot.userData.type==="cell"&&Ot.myMeshType==="neuronSphere"&&(Ot.material.uniforms.color.value=new rr(Ot.userData.color),Ot.material.uniforms.size.value=.1)}});const nt=Se.current.getObjectByName(lt.name);nt&&(Se.current.traverse(tt=>{if(tt.name===`swcPointGroup${lt.name}`)for(let jt in tt.children){let Ot=tt.children[jt];Ot.userData.type==="cell"&&Ot.myMeshType==="neuronSphere"&&(Ot.material.uniforms.color.value=new rr(ze),Ot.material.uniforms.size.value=.3)}}),nt.traverse(tt=>{tt instanceof Ji&&("#"+tt.material.color.getHex().toString(16).padStart(6,"0")===ze?tt.material.color.set(nt.userData.initColor):tt.material.color.set(ze))}))}}};return x.createElement("div",{ref:l,style:{transition:"all ease-in 0.5s"}},s==="swc"?x.createElement(x.Fragment,null,te?x.createElement(X5,{ref:Ze,style:{width:"100%",marginBottom:8},options:Te,placeholder:h("5000.5040")||"Input the region that soma locates",onSearch:gn,onChange:Zi,value:te}):x.createElement(ux,{ref:Me,showSearch:!0,style:{width:"100%",marginBottom:8},value:te,dropdownStyle:{maxHeight:400,overflow:"hidden"},placeholder:h("5000.5040")||"Input the region that soma locates",allowClear:!0,treeDefaultExpandAll:!1,onChange:Jn,onSearch:Jn,treeData:oa(r)}),Q?x.createElement(X5,{ref:He,style:{width:"100%",marginBottom:8},options:Te,placeholder:h("5000.5041")||"Input the region that neuron projects",onSearch:gn,onChange:cn,value:Q}):x.createElement(ux,{showSearch:!0,ref:ot,style:{width:"100%"},value:Q,dropdownStyle:{maxHeight:400,overflow:"hidden",marginBottom:8},placeholder:h("5000.5041")||"Input the region that neuron projects",allowClear:!0,treeDefaultExpandAll:!1,onChange:Rn,onSearch:Rn,treeData:oa(r)}),j&&x.createElement(x.Fragment,null,x.createElement(ux,{treeData:vt,value:$e,onChange:De,treeCheckable:!0,placeholder:"Filter by data information",style:{width:"100%",marginTop:8}}),x.createElement(ls,{style:{marginTop:"5px"}},x.createElement(Fg,{onChange:Oe=>{vr(Oe.target.checked)}},h("7000.7025")||"只展示可用神经元"),x.createElement(ls,{style:{fontStyle:"italic",marginTop:"5px"}},h("7000.7026")||"点击Color按钮,修改神经元颜色;点击Ana.按钮,显示神经元投射路径分析结果;点击Path按钮,在主界面显示神经元经过的脑结构;Src按钮展示了神经元数据的来源")),x.createElement(ls,{style:{marginTop:"5px",marginBottom:5}},x.createElement(ca,{onClick:()=>{if(g.length<2){La.warning({title:"Warning",content:h("5000.7053")||"Please select at least two neurons to display the charts."});return}const Oe=document.getElementById("spinner");Oe&&(Oe.style.display="block");const ze=[];for(let lt=0;lt<g.length;lt++){const nt=n.find(tt=>tt.name===g[lt]);if(nt){const tt=nt.path.lastIndexOf("\\"),jt=nt.path.lastIndexOf("."),Ot=nt.path.slice(tt+1,jt);ze.push(Ot)}}fetch("/app-api/echarts-api/echarts_data",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({names:ze})}).then(lt=>{if(lt.ok)return lt.json();throw Oe&&(Oe.style.display="none"),La.error({title:"Error",content:"Failed to fetch data for charts."}),new Error("Network response was not ok.")}).then(lt=>{ki(lt),Di(!0);let nt=document.getElementById("leftContent");nt&&(nt.scrollTop=0,nt.style.overflow="hidden")})}},h("5000.70251")||"显示折线图和点状图"))),x.createElement("div",null,x.createElement(La,{className:"Echart",open:ut,onOk:()=>{Rt(!1)},onCancel:()=>{Rt(!1)},width:"auto",footer:null},x.createElement(T1,{activeKey:kt,onChange:Ee},x.createElement(PH,{tab:h("5000.7009")||"神经元末梢分布",key:"1"},Cn&&x.createElement(zi,null,"Isocortex"),x.createElement(lc,{ref:Kt,className:"Isocortex",Name:"Isocortex",t:h,data_change:mt,data_c:Xe.current,col:["RSPv_","FRP_","MOp_","MOs_","SSp_","SSp-n_","SSp-bfd_","SSp-ll_","SSp-m_","SSp-ul_","SSp-tr_","SSp-un_","SSs_","GU_","VISC_","AUDd_","AUDp_","AUDpo_","AUDv_","VISal_","VISam_","VISl_","VISp_","VISpl_","VISpm_","VISli_","VISpor_","ACAd_","ACAv_","PL_","ILA_","ORB_","AId_","AIp_","AIv_","RSPagl_","RSPd_","PTLp_","TEa_","PERI_","ECT_"],row:["1","2/3","5","6a","6b"]}),yn&&x.createElement(zi,null,"HPF"),x.createElement(lc,{ref:Sn[0],className:"HPF",Name:"HPF",t:h,data_change:mt,data_c:Xe.current,col:["CA1_","CA1_dd","CA1_d","CA1_i","CA1_v","CA1_vv","CA2_dd","CA2_d","CA2_i","CA2_v","CA2_vv","CA3_dd","CA3_d","CA3_i","CA3_v","CA3_vv"],row:["so","sp","slu","sr","slm"]}),x.createElement(lc,{ref:Sn[1],className:"HPF",Name:"HPF",t:h,data_change:mt,data_c:Xe.current,col:["DG_d","DG_i","DG_V"],row:["mo","sg","po"]}),x.createElement(lc,{ref:Sn[2],className:"HPF",Name:"HPF",t:h,data_change:mt,data_c:Xe.current,col:["SUBd_1","SUBv_1","SUBd_2","SUBv_2","SUBd_3","SUBv_3","SUBd_4","SUBv_4","SUBd_","SUBv_"],row:["sp","sr","m"]}),yt&&x.createElement(zi,null,"CNU"),x.createElement(lc,{ref:cr,className:"CNU",Name:"CNU",t:h,data_change:mt,data_c:Xe.current,col:["CP_","ACBv_","ACBd_","FS_","OTisl_","OTislm_","OT1","OT2","OT3","LSc","LSr_","SF","SH","AAA","BA","CEAc","CEAm","IA","MEAad","MEAav","MEApd","MEApv","GPe","GPi","SI","MA","NDB","TRS","PALc","BSTse","BAC"],row:["_"]}),pn&&x.createElement(zi,null,"OLF"),x.createElement(lc,{ref:Gn[0],className:"OLF",Name:"OLF",t:h,data_change:mt,data_c:Xe.current,col:["MOB_","AOB_","AON_","TTv_","TTd_","DP_","PIR_","NLOT_","NLOT_","COAa_","COApm_","COApl_","PAA_","TR_"],row:["gr","mi","ipl","opl","gl"]}),x.createElement(lc,{ref:Gn[1],className:"OLF",Name:"OLF",t:h,data_change:mt,data_c:Xe.current,col:["MOB_","AOB_","AON_","TTv_","TTd_","DP_","PIR_","NLOT_","NLOT_","COAa_","COApm_","COApl_","PAA_","TR_"],row:["1","2","3","4","5","6a","2/3"]}),tn&&x.createElement(zi,null,"TH"),x.createElement(lc,{ref:Xt,className:"TH",Name:"TH",t:h,data_change:mt,data_c:Xe.current,col:["VAL","VM","VPL","VPLpc","VPM","VPMpc","PoT","SPFm","SPFp","SPA","PP","MGd","MGv","MGm","LGdsh","LGdco","LGdip","LP","PO","POL","SGN","Eth","REth","AV","AMd","AMv","AD","IAM","IAD","LD","IMD","MDc","MDl","MDm","SMT","PR","PVT","PT","RE","Xi","RH","CM","PCN","CL","PF","PIL","RT","IGL","IntG","LGvl","LGvm","SubG","MH","LH","PIN"],row:["_"]}),Yn&&x.createElement(zi,null,"HY"),x.createElement(lc,{ref:an,className:"HY",Name:"HY",t:h,data_change:mt,data_c:Xe.current,col:["SO","NC","PVHam","PVHmm","PVHpmm","PVHpml","PVHap","PVHmpd","PVHpv","PVa","PVi","ARH","ADP","AHA","AVP","DMHa","DMHp","DMHv","MEPO","MPO","OV","PD","PS","PSCH","PVp","PVpo","SBPV","SCH","SFO","VMPO","VLPO","AVPV","AHNa","AHNc","AHNd","AHNp","LM","MMme","MMl","MMm","MMp","MMd","SUMm","SUMl","TMd","TMv","MPNc","MPNl","MPNm","PMd","PMv","PVHdp","PVHf","PVHlp","PVHmpv","VMHa","VMHc","VMHdm","VMHvl","PH","LHA","LPO","PST","PSTN","RCH","PeF","STN","TU","A13","FF","ZIr","ZIc","ZId","ZIv","ME"],row:["_"]}),bt&&x.createElement(zi,null,"MB"),x.createElement(lc,{ref:Dn,className:"MB",Name:"MB",t:h,data_change:mt,data_c:Xe.current,col:["SCop","SCsg","SCzo","ICc","ICd","ICe","NB","SAG","PBG","MEV","SCO","SNr","VTA","RR","MRNm","MRNmg","MRNp","SCdg","SCdw","SCiw","SCig-a","SCig-b","SCig-c","PRC","INC","ND","Su3","PAGdm","PAGl","PAGvl","PAGdl","PAGvm","APN","MPT","NOT","NPC","OP","PPT","RPF","InCo","CUN","RN","III","MA3","EW","IV","PA4","VTN","AT","LT","DT","MT","SNl","SNc","PPN","IF","IPR","IPC","IPA","IPL","IPI","IPDM","IPDL","IPRL","RL","CLI","DR"],row:["_"]}),Zn&&x.createElement(zi,null,"HB"),x.createElement(lc,{ref:on,className:"HB",Name:"HB",t:h,data_change:mt,data_c:Xe.current,col:["NLLd","NLLh","NLLv","PSV","KF","PBlc","PBld","PBle","PBls","PBlv","PBme","PBmm","PBmv","POR","SOCm","SOCl","B","DTN","LTN","PDTg","PCG","PG","PRNc","PRNv","SG","SSN","SUT","TRN","V","P5","Acs5","PC5","I5","CSl","CSm","LC","LDT","NI","PRNr","RPO","SLC","SLD","AP","CNlam","CNspg","DCO","VCO","CU","GR","ECU","NTB","NTSce","NTSco","NTSge","NTSl","NTSm","SPVC","SPVI","SPVOcdm","SPVOmdmd","SPVOmdmv","SPVOrdm","SPVOvl","Pa5","z","VI","ACVI","VII","ACVII","EV","AMBd","AMBv","DMX","ECO","GRN","ICB","IO","LRNm","LRNp","ISN","LIN","IRN","MARN","MDRNd","MDRNv","PARN","PAS","PGRNd","PGRNl","NIS","NR","PRP","PMR","PPYd","PPYs","LAV","MV","SPIV","SUV","XII","x","y","RM","RPA","RO"],row:["_"]}),Sr&&x.createElement(zi,null,"CB"),x.createElement(lc,{ref:Fn[0],className:"CB",Name:"CB",t:h,data_change:mt,data_c:Xe.current,col:["LING_","LING_","CENT2_","CENT2_","CENT3_","CENT3_","CUL4/5_","CUL4/5_","DEC_","DEC_","FOTU_","FOTU_","PYR_","PYR_","UVU_","UVU_","NOD_","NOD_","SIM_","SIM_","ANcr1_","ANcr1_","ANcr2_","ANcr2_","PRM_","PRM_","COPY_","COPY_","PFL_","PFL_","FL_","FL_","IP","DN"],row:["gr","mo"]}),x.createElement(lc,{ref:Fn[1],className:"CB",Name:"CB",t:h,data_change:mt,data_c:Xe.current,col:["FN","IP","DN","VeCB"],row:["_"]})),x.createElement(PH,{tab:h("5000.7011")||"神经元投射模式",key:"2"},r?x.createElement(wHe,{data:_n,fbxTreeDatas:r}):null),x.createElement(PH,{tab:h("5000.7012")||"投射长度分布",key:"3"},Cn&&x.createElement(zi,null,"Isocortex"),x.createElement(cc,{t:h,data_change:mt,data_c:_n,col:["RSPv_","FRP_","MOp_","MOs_","SSp_","SSp-n_","SSp-bfd_","SSp-ll_","SSp-m_","SSp-ul_","SSp-tr_","SSp-un_","SSs_","GU_","VISC_","AUDd_","AUDp_","AUDpo_","AUDv_","VISal_","VISam_","VISl_","VISp_","VISpl_","VISpm_","VISli_","VISpor_","ACAd_","ACAv_","PL_","ILA_","ORB_","AId_","AIp_","AIv_","RSPagl_","RSPd_","PTLp_","TEa_","PERI_","ECT_"],row:["1","2/3","5","6a","6b"]}),yn&&x.createElement(zi,null,"HPF"),x.createElement(cc,{t:h,data_change:mt,data_c:_n,col:["CA1_d","CA1_i","CA1_v","CA1_","CA3_dd","CA3_d","CA3_i","CA3_v","CA3_vv","CA2_"],row:["so","sp","slu","sr","slm"]}),x.createElement(cc,{t:h,data_change:mt,data_c:_n,col:["DG_d","DG_i","DG_V"],row:["mo","sg","po"]}),x.createElement(cc,{t:h,data_change:mt,data_c:_n,col:["SUBd_1","SUBv_1","SUBd_2","SUBv_2","SUBd_3","SUBv_3","SUBd_4","SUBv_4","SUBd_","SUBv_"],row:["sp","sr","m"]}),yt&&x.createElement(zi,null,"CNU"),x.createElement(cc,{t:h,data_change:mt,data_c:_n,col:["CP_","ACBv_","ACBd_","FS_","OTisl_","OTislm_","OT1","OT2","OT3","LSc","LSr_","SF","SH","AAA","BA","CEAc","CEAm","IA","MEAad","MEAav","MEApd","MEApv","GPe","GPi","SI","MA","NDB","TRS","PALc","BSTse","BAC"],row:["_"]}),pn&&x.createElement(zi,null,"OLF"),x.createElement(cc,{t:h,data_change:mt,data_c:_n,col:["MOB_","AOB_","AON_","TTv_","TTd_","DP_","PIR_","NLOT_","NLOT_","COAa_","COApm_","COApl_","PAA_","TR_"],row:["gr","mi","ipl","opl","gl"]}),x.createElement(cc,{t:h,data_change:mt,data_c:_n,col:["MOB_","AOB_","AON_","TTv_","TTd_","DP_","PIR_","NLOT_","NLOT_","COAa_","COApm_","COApl_","PAA_","TR_"],row:["1","2","3","4","5","6a","2/3"]}),tn&&x.createElement(zi,null,"TH"),x.createElement(cc,{t:h,data_change:mt,data_c:_n,col:["VAL","VM","VPL","VPLpc","VPM","VPMpc","PoT","SPFm","SPFp","SPA","PP","MGd","MGv","MGm","LGdsh","LGdco","LGdip","LP","PO","POL","SGN","Eth","REth","AV","AMd","AMv","AD","IAM","IAD","LD","IMD","MDc","MDl","MDm","SMT","PR","PVT","PT","RE","Xi","RH","CM","PCN","CL","PF","PIL","RT","IGL","IntG","LGvl","LGvm","SubG","MH","LH","PIN"],row:["_"]}),Yn&&x.createElement(zi,null,"HY"),x.createElement(cc,{t:h,data_change:mt,data_c:_n,col:["SO","NC","PVHam","PVHmm","PVHpmm","PVHpml","PVHap","PVHmpd","PVHpv","PVa","PVi","ARH","ADP","AHA","AVP","DMHa","DMHp","DMHv","MEPO","MPO","OV","PD","PS","PSCH","PVp","PVpo","SBPV","SCH","SFO","VMPO","VLPO","AVPV","AHNa","AHNc","AHNd","AHNp","LM","MMme","MMl","MMm","MMp","MMd","SUMm","SUMl","TMd","TMv","MPNc","MPNl","MPNm","PMd","PMv","PVHdp","PVHf","PVHlp","PVHmpv","VMHa","VMHc","VMHdm","VMHvl","PH","LHA","LPO","PST","PSTN","RCH","PeF","STN","TU","A13","FF","ZIr","ZIc","ZId","ZIv","ME"],row:["_"]}),bt&&x.createElement(zi,null,"MB"),x.createElement(cc,{t:h,data_change:mt,data_c:_n,col:["SCop","SCsg","SCzo","ICc","ICd","ICe","NB","SAG","PBG","MEV","SCO","SNr","VTA","RR","MRNm","MRNmg","MRNp","SCdg","SCdw","SCiw","SCig-a","SCig-b","SCig-c","PRC","INC","ND","Su3","PAGdm","PAGl","PAGvl","PAGdl","PAGvm","APN","MPT","NOT","NPC","OP","PPT","RPF","InCo","CUN","RN","III","MA3","EW","IV","PA4","VTN","AT","LT","DT","MT","SNl","SNc","PPN","IF","IPR","IPC","IPA","IPL","IPI","IPDM","IPDL","IPRL","RL","CLI","DR"],row:["_"]}),Zn&&x.createElement(zi,null,"HB"),x.createElement(cc,{t:h,data_change:mt,data_c:_n,col:["NLLd","NLLh","NLLv","PSV","KF","PBlc","PBld","PBle","PBls","PBlv","PBme","PBmm","PBmv","POR","SOCm","SOCl","B","DTN","LTN","PDTg","PCG","PG","PRNc","PRNv","SG","SSN","SUT","TRN","V","P5","Acs5","PC5","I5","CSl","CSm","LC","LDT","NI","PRNr","RPO","SLC","SLD","AP","CNlam","CNspg","DCO","VCO","CU","GR","ECU","NTB","NTSce","NTSco","NTSge","NTSl","NTSm","SPVC","SPVI","SPVOcdm","SPVOmdmd","SPVOmdmv","SPVOrdm","SPVOvl","Pa5","z","VI","ACVI","VII","ACVII","EV","AMBd","AMBv","DMX","ECO","GRN","ICB","IO","LRNm","LRNp","ISN","LIN","IRN","MARN","MDRNd","MDRNv","PARN","PAS","PGRNd","PGRNl","NIS","NR","PRP","PMR","PPYd","PPYs","LAV","MV","SPIV","SUV","XII","x","y","RM","RPA","RO"],row:["_"]}),Sr&&x.createElement(zi,null,"CB"),x.createElement(cc,{t:h,data_change:mt,data_c:_n,col:["LING_","LING_","CENT2_","CENT2_","CENT3_","CENT3_","CUL4/5_","CUL4/5_","DEC_","DEC_","FOTU_","FOTU_","PYR_","PYR_","UVU_","UVU_","NOD_","NOD_","SIM_","SIM_","ANcr1_","ANcr1_","ANcr2_","ANcr2_","PRM_","PRM_","COPY_","COPY_","PFL_","PFL_","FL_","FL_","IP","DN"],row:["gr","mo"]}),x.createElement(cc,{t:h,data_change:mt,data_c:_n,col:["FN","IP","DN","VeCB"],row:["_"]})))),x.createElement(hR,{className:"SwcTable",rowSelection:Vn,columns:Qa,dataSource:Oi,locale:rn}),x.createElement("div",{style:{top:0,left:0,width:"100%",height:"100vh",display:Yr?"block":"none",zIndex:998,overflowX:"hidden",position:"absolute",background:"#fff"}},x.createElement(ca,{type:"text",shape:"circle",icon:x.createElement(Hm,null),style:{position:"absolute",right:4,top:4},onClick:()=>{Di(!1),jr.current=[];let Oe=document.getElementById("leftContent");Oe&&(Oe.style.overflow="auto"),Se.current.traverse(ze=>{ze.myMeshType==="SWC"&&ze.traverse(lt=>{lt instanceof Ji&<.material.color.set(ze.userData.initColor)})})}}),x.createElement("div",{style:{marginTop:40}},x.createElement("h1",{style:{marginLeft:15,margin:0,display:"block",textAlign:"center"}},h("5000.7052")||"基于神经元形态的聚类及评估"),x.createElement("div",{style:{display:"flex",justifyContent:"center",marginTop:10}},x.createElement("a",{onClick:()=>{La.info({title:h("5000.7061")||"Introduction",content:x.createElement("div",null,x.createElement("p",null,h("5000.7056")||"折线图:本图根据投射靶区分布情况,对所选单神经元进行了不同数量的聚类,并对聚类结果使用轮廓系数进行了评估。通常来说,轮廓系数越大,表示聚类效果越好。您可以点击鼠标左键,选中一个您满意的聚类数。"))})}},h("5000.7061")||"使用说明"))),x.createElement("div",{ref:Nr,style:{width:"100%",height:"300px"}}),x.createElement("div",null,x.createElement("h1",{style:{marginLeft:25,margin:0,display:"block",textAlign:"center"}},h("5000.7059")||"Visualization of neuron clusters"),x.createElement("div",{style:{display:"flex",justifyContent:"center",marginTop:10}},x.createElement("a",{onClick:()=>{La.info({title:h("5000.7061")||"使用说明",content:x.createElement("div",null,x.createElement("p",null,h("5000.7060")||"点状图:本图根据t-SNE算法,将神经元以散点形式绘制在了由2个主成分所构成的分布图上,每种颜色代表1个类别。点击分布图中的任意一个点,该点所对应的神经元将在主窗口中被重新渲染为所属类别的颜色。点击分布图上方代表任意一个类别的色块,所有属于该类别的神经元都将在主窗口中被重新渲染为该类别的颜色。"))})}},h("5000.7061")||"使用说明"))),x.createElement("div",{ref:ni,style:{width:"100%",height:"440px"}})))):x.createElement(x.Fragment,null,x.createElement(trn,{style:{marginBottom:8},placeholder:"Search",onChange:vs,onKeyPress:Oe=>{Oe.stopPropagation()}}),x.createElement(Fx,{showLine:!0,onExpand:br,defaultExpandParent:!0,expandedKeys:G,onCheck:da,checkable:!0,selectable:!1,treeData:Oi,checkedKeys:g,checkStrictly:!0,autoExpandParent:Z,style:{paddingLeft:"2px"}})))});let arn=new URL(window.location.href),orn=new URLSearchParams(arn.search),ISe=orn.get("brainContourOpacity");const srn=t=>{const{regionData:e}=t,[n,r]=x.useState(!1);return x.useEffect(()=>{let i=ISe?JSON.parse(ISe):.3;Vy({filepath:e+"/data/FBX/outline.FBX",index:"Brain",color:"0xcccccc",opacity:i,offsetZ:0,R:1,callback:function(){r(!1)}})},[]),x.createElement("div",{id:"spinner",style:{position:"absolute",zIndex:999,left:0,top:0,width:"100%",height:"100%",display:`${n?"block":"none"}`,opacity:.7,backgroundColor:"#ffffff"}},x.createElement("div",{style:{position:"absolute",zIndex:999,left:"50%",top:"50%",fontWeight:"bold",textAlign:"center"}},x.createElement(Ab,{spinning:!0,size:"large"}),x.createElement("br",null),"Loading....wait..."))};(function(t){if(t.TextEncoder&&t.TextDecoder)return!1;function e(r="utf-8"){if(r!=="utf-8")throw new RangeError(`Failed to construct 'TextEncoder': The encoding label provided ('${r}') is invalid.`)}Object.defineProperty(e.prototype,"encoding",{value:"utf-8"}),e.prototype.encode=function(r,i={stream:!1}){if(i.stream)throw new Error("Failed to encode: the 'stream' option is unsupported.");let a=0;const o=r.length;let s=0,l=Math.max(32,o+(o>>1)+7),u=new Uint8Array(l>>3<<3);for(;a<o;){let d=r.charCodeAt(a++);if(d>=55296&&d<=56319){if(a<o){const f=r.charCodeAt(a);(f&64512)===56320&&(++a,d=((d&1023)<<10)+(f&1023)+65536)}if(d>=55296&&d<=56319)continue}if(s+4>u.length){l+=8,l*=1+a/r.length*2,l=l>>3<<3;const f=new Uint8Array(l);f.set(u),u=f}if(d&4294967168)if(!(d&4294965248))u[s++]=d>>6&31|192;else if(!(d&4294901760))u[s++]=d>>12&15|224,u[s++]=d>>6&63|128;else if(!(d&4292870144))u[s++]=d>>18&7|240,u[s++]=d>>12&63|128,u[s++]=d>>6&63|128;else continue;else{u[s++]=d;continue}u[s++]=d&63|128}return u.slice(0,s)};function n(r="utf-8",i={fatal:!1}){if(r!=="utf-8")throw new RangeError(`Failed to construct 'TextDecoder': The encoding label provided ('${r}') is invalid.`);if(i.fatal)throw new Error("Failed to construct 'TextDecoder': the 'fatal' option is unsupported.")}Object.defineProperty(n.prototype,"encoding",{value:"utf-8"}),Object.defineProperty(n.prototype,"fatal",{value:!1}),Object.defineProperty(n.prototype,"ignoreBOM",{value:!1}),n.prototype.decode=function(r,i={stream:!1}){if(i.stream)throw new Error("Failed to decode: the 'stream' option is unsupported.");const a=new Uint8Array(r);let o=0;const s=a.length,l=[];for(;o<s;){const u=a[o++];if(u===0)break;if(!(u&128))l.push(u);else if((u&224)===192){const d=a[o++]&63;l.push((u&31)<<6|d)}else if((u&240)===224){const d=a[o++]&63,f=a[o++]&63;l.push((u&31)<<12|d<<6|f)}else if((u&248)===240){const d=a[o++]&63,f=a[o++]&63,p=a[o++]&63;let h=(u&7)<<18|d<<12|f<<6|p;h>65535&&(h-=65536,l.push(h>>>10&1023|55296),h=56320|h&1023),l.push(h)}}return String.fromCharCode.apply(null,l)},t.TextEncoder=e,t.TextDecoder=n})(typeof window<"u"?window:typeof self<"u"?self:globalThis);function ASe(t,e="utf8"){return new TextDecoder(e).decode(t)}const lrn=new TextEncoder;function crn(t){return lrn.encode(t)}const urn=1024*8,drn=(()=>{const t=new Uint8Array(4),e=new Uint32Array(t.buffer);return!((e[0]=1)&t[0])})(),UH={int8:globalThis.Int8Array,uint8:globalThis.Uint8Array,int16:globalThis.Int16Array,uint16:globalThis.Uint16Array,int32:globalThis.Int32Array,uint32:globalThis.Uint32Array,uint64:globalThis.BigUint64Array,int64:globalThis.BigInt64Array,float32:globalThis.Float32Array,float64:globalThis.Float64Array};class aU{constructor(e=urn,n={}){let r=!1;typeof e=="number"?e=new ArrayBuffer(e):(r=!0,this.lastWrittenByte=e.byteLength);const i=n.offset?n.offset>>>0:0,a=e.byteLength-i;let o=i;(ArrayBuffer.isView(e)||e instanceof aU)&&(e.byteLength!==e.buffer.byteLength&&(o=e.byteOffset+i),e=e.buffer),r?this.lastWrittenByte=a:this.lastWrittenByte=0,this.buffer=e,this.length=a,this.byteLength=a,this.byteOffset=o,this.offset=0,this.littleEndian=!0,this._data=new DataView(this.buffer,o,a),this._mark=0,this._marks=[]}available(e=1){return this.offset+e<=this.length}isLittleEndian(){return this.littleEndian}setLittleEndian(){return this.littleEndian=!0,this}isBigEndian(){return!this.littleEndian}setBigEndian(){return this.littleEndian=!1,this}skip(e=1){return this.offset+=e,this}back(e=1){return this.offset-=e,this}seek(e){return this.offset=e,this}mark(){return this._mark=this.offset,this}reset(){return this.offset=this._mark,this}pushMark(){return this._marks.push(this.offset),this}popMark(){const e=this._marks.pop();if(e===void 0)throw new Error("Mark stack empty");return this.seek(e),this}rewind(){return this.offset=0,this}ensureAvailable(e=1){if(!this.available(e)){const r=(this.offset+e)*2,i=new Uint8Array(r);i.set(new Uint8Array(this.buffer)),this.buffer=i.buffer,this.length=this.byteLength=r,this._data=new DataView(this.buffer)}return this}readBoolean(){return this.readUint8()!==0}readInt8(){return this._data.getInt8(this.offset++)}readUint8(){return this._data.getUint8(this.offset++)}readByte(){return this.readUint8()}readBytes(e=1){return this.readArray(e,"uint8")}readArray(e,n){const r=UH[n].BYTES_PER_ELEMENT*e,i=this.byteOffset+this.offset,a=this.buffer.slice(i,i+r);if(this.littleEndian===drn&&n!=="uint8"&&n!=="int8"){const s=new Uint8Array(this.buffer.slice(i,i+r));s.reverse();const l=new UH[n](s.buffer);return this.offset+=r,l.reverse(),l}const o=new UH[n](a);return this.offset+=r,o}readInt16(){const e=this._data.getInt16(this.offset,this.littleEndian);return this.offset+=2,e}readUint16(){const e=this._data.getUint16(this.offset,this.littleEndian);return this.offset+=2,e}readInt32(){const e=this._data.getInt32(this.offset,this.littleEndian);return this.offset+=4,e}readUint32(){const e=this._data.getUint32(this.offset,this.littleEndian);return this.offset+=4,e}readFloat32(){const e=this._data.getFloat32(this.offset,this.littleEndian);return this.offset+=4,e}readFloat64(){const e=this._data.getFloat64(this.offset,this.littleEndian);return this.offset+=8,e}readBigInt64(){const e=this._data.getBigInt64(this.offset,this.littleEndian);return this.offset+=8,e}readBigUint64(){const e=this._data.getBigUint64(this.offset,this.littleEndian);return this.offset+=8,e}readChar(){return String.fromCharCode(this.readInt8())}readChars(e=1){let n="";for(let r=0;r<e;r++)n+=this.readChar();return n}readUtf8(e=1){return ASe(this.readBytes(e))}decodeText(e=1,n="utf-8"){return ASe(this.readBytes(e),n)}writeBoolean(e){return this.writeUint8(e?255:0),this}writeInt8(e){return this.ensureAvailable(1),this._data.setInt8(this.offset++,e),this._updateLastWrittenByte(),this}writeUint8(e){return this.ensureAvailable(1),this._data.setUint8(this.offset++,e),this._updateLastWrittenByte(),this}writeByte(e){return this.writeUint8(e)}writeBytes(e){this.ensureAvailable(e.length);for(let n=0;n<e.length;n++)this._data.setUint8(this.offset++,e[n]);return this._updateLastWrittenByte(),this}writeInt16(e){return this.ensureAvailable(2),this._data.setInt16(this.offset,e,this.littleEndian),this.offset+=2,this._updateLastWrittenByte(),this}writeUint16(e){return this.ensureAvailable(2),this._data.setUint16(this.offset,e,this.littleEndian),this.offset+=2,this._updateLastWrittenByte(),this}writeInt32(e){return this.ensureAvailable(4),this._data.setInt32(this.offset,e,this.littleEndian),this.offset+=4,this._updateLastWrittenByte(),this}writeUint32(e){return this.ensureAvailable(4),this._data.setUint32(this.offset,e,this.littleEndian),this.offset+=4,this._updateLastWrittenByte(),this}writeFloat32(e){return this.ensureAvailable(4),this._data.setFloat32(this.offset,e,this.littleEndian),this.offset+=4,this._updateLastWrittenByte(),this}writeFloat64(e){return this.ensureAvailable(8),this._data.setFloat64(this.offset,e,this.littleEndian),this.offset+=8,this._updateLastWrittenByte(),this}writeBigInt64(e){return this.ensureAvailable(8),this._data.setBigInt64(this.offset,e,this.littleEndian),this.offset+=8,this._updateLastWrittenByte(),this}writeBigUint64(e){return this.ensureAvailable(8),this._data.setBigUint64(this.offset,e,this.littleEndian),this.offset+=8,this._updateLastWrittenByte(),this}writeChar(e){return this.writeUint8(e.charCodeAt(0))}writeChars(e){for(let n=0;n<e.length;n++)this.writeUint8(e.charCodeAt(n));return this}writeUtf8(e){return this.writeBytes(crn(e))}toArray(){return new Uint8Array(this.buffer,this.byteOffset,this.lastWrittenByte)}_updateLastWrittenByte(){this.offset>this.lastWrittenByte&&(this.lastWrittenByte=this.offset)}}function frn(t){if(t.compression!==1)throw new Error("missing mandatory StripByteCounts field in compressed image");const e=t.rowsPerStrip*t.width*t.samplesPerPixel*(t.bitsPerSample/8);return new Array(t.stripOffsets.length).fill(e)}function prn(t,e,n){let r=0;for(;r<t.length;){for(let i=n;i<e*n;i+=n)for(let a=0;a<n;a++)t[r+i+a]=t[r+i+a]+t[r+i-(n-a)]&255;r+=e*n}}function hrn(t,e,n){let r=0;for(;r<t.length;){for(let i=n;i<e*n;i+=n)for(let a=0;a<n;a++)t[r+i+a]=t[r+i+a]+t[r+i-(n-a)]&65535;r+=e*n}}const Ree={33434:"ExposureTime",33437:"FNumber",34850:"ExposureProgram",34852:"SpectralSensitivity",34855:"ISOSpeedRatings",34856:"OECF",34864:"SensitivityType",34865:"StandardOutputSensitivity",34866:"RecommendedExposureIndex",34867:"ISOSpeed",34868:"ISOSpeedLatitudeyyy",34869:"ISOSpeedLatitudezzz",36864:"ExifVersion",36867:"DateTimeOriginal",36868:"DateTimeDigitized",37121:"ComponentsConfiguration",37122:"CompressedBitsPerPixel",37377:"ShutterSpeedValue",37378:"ApertureValue",37379:"BrightnessValue",37380:"ExposureBiasValue",37381:"MaxApertureValue",37382:"SubjectDistance",37383:"MeteringMode",37384:"LightSource",37385:"Flash",37386:"FocalLength",37396:"SubjectArea",37500:"MakerNote",37510:"UserComment",37520:"SubsecTime",37521:"SubsecTimeOriginal",37522:"SubsecTimeDigitized",40960:"FlashpixVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",40964:"RelatedSoundFile",41483:"FlashEnergy",41484:"SpatialFrequencyResponse",41486:"FocalPlaneXResolution",41487:"FocalPlaneYResolution",41488:"FocalPlaneResolutionUnit",41492:"SubjectLocation",41493:"ExposureIndex",41495:"SensingMethod",41728:"FileSource",41729:"SceneType",41730:"CFAPattern",41985:"CustomRendered",41986:"ExposureMode",41987:"WhiteBalance",41988:"DigitalZoomRatio",41989:"FocalLengthIn35mmFilm",41990:"SceneCaptureType",41991:"GainControl",41992:"Contrast",41993:"Saturation",41994:"Sharpness",41995:"DeviceSettingDescription",41996:"SubjectDistanceRange",42016:"ImageUniqueID",42032:"CameraOwnerName",42033:"BodySerialNumber",42034:"LensSpecification",42035:"LensMake",42036:"LensModel",42037:"LensSerialNumber",42240:"Gamma"},THe={};for(const t in Ree)THe[Ree[t]]=Number(t);const mrn=Object.freeze(Object.defineProperty({__proto__:null,tagsById:Ree,tagsByName:THe},Symbol.toStringTag,{value:"Module"})),Oee={0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude",5:"GPSAltitudeRef",6:"GPSAltitude",7:"GPSTimeStamp",8:"GPSSatellites",9:"GPSStatus",10:"GPSMeasureMode",11:"GPSDOP",12:"GPSSpeedRef",13:"GPSSpeed",14:"GPSTrackRef",15:"GPSTrack",16:"GPSImgDirectionRef",17:"GPSImgDirection",18:"GPSMapDatum",19:"GPSDestLatitudeRef",20:"GPSDestLatitude",21:"GPSDestLongitudeRef",22:"GPSDestLongitude",23:"GPSDestBearingRef",24:"GPSDestBearing",25:"GPSDestDistanceRef",26:"GPSDestDistance",27:"GPSProcessingMethod",28:"GPSAreaInformation",29:"GPSDateStamp",30:"GPSDifferential",31:"GPSHPositioningError"},IHe={};for(const t in Oee)IHe[Oee[t]]=Number(t);const grn=Object.freeze(Object.defineProperty({__proto__:null,tagsById:Oee,tagsByName:IHe},Symbol.toStringTag,{value:"Module"})),Lee={254:"NewSubfileType",255:"SubfileType",256:"ImageWidth",257:"ImageLength",258:"BitsPerSample",259:"Compression",262:"PhotometricInterpretation",263:"Threshholding",264:"CellWidth",265:"CellLength",266:"FillOrder",270:"ImageDescription",271:"Make",272:"Model",273:"StripOffsets",274:"Orientation",277:"SamplesPerPixel",278:"RowsPerStrip",279:"StripByteCounts",280:"MinSampleValue",281:"MaxSampleValue",282:"XResolution",283:"YResolution",284:"PlanarConfiguration",288:"FreeOffsets",289:"FreeByteCounts",290:"GrayResponseUnit",291:"GrayResponseCurve",296:"ResolutionUnit",305:"Software",306:"DateTime",315:"Artist",316:"HostComputer",320:"ColorMap",338:"ExtraSamples",33432:"Copyright",269:"DocumentName",285:"PageName",286:"XPosition",287:"YPosition",292:"T4Options",293:"T6Options",297:"PageNumber",301:"TransferFunction",317:"Predictor",318:"WhitePoint",319:"PrimaryChromaticities",321:"HalftoneHints",322:"TileWidth",323:"TileLength",324:"TileOffsets",325:"TileByteCounts",326:"BadFaxLines",327:"CleanFaxData",328:"ConsecutiveBadFaxLines",330:"SubIFDs",332:"InkSet",333:"InkNames",334:"NumberOfInks",336:"DotRange",337:"TargetPrinter",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",342:"TransferRange",343:"ClipPath",344:"XClipPathUnits",345:"YClipPathUnits",346:"Indexed",347:"JPEGTables",351:"OPIProxy",400:"GlobalParametersIFD",401:"ProfileType",402:"FaxProfile",403:"CodingMethods",404:"VersionYear",405:"ModeNumber",433:"Decode",434:"DefaultImageColor",512:"JPEGProc",513:"JPEGInterchangeFormat",514:"JPEGInterchangeFormatLength",515:"JPEGRestartInterval",517:"JPEGLosslessPredictors",518:"JPEGPointTransforms",519:"JPEGQTables",520:"JPEGDCTables",521:"JPEGACTables",529:"YCbCrCoefficients",530:"YCbCrSubSampling",531:"YCbCrPositioning",532:"ReferenceBlackWhite",559:"StripRowCounts",700:"XMP",32781:"ImageID",34732:"ImageLayer",32932:"WangAnnotatio",33445:"MDFileTag",33446:"MDScalePixel",33447:"MDColorTable",33448:"MDLabName",33449:"MDSampleInfo",33450:"MDPrepDate",33451:"MDPrepTime",33452:"MDFileUnits",33550:"ModelPixelScaleTag",33723:"IPTC",33918:"INGRPacketDataTag",33919:"INGRFlagRegisters",33920:"IrasBTransformationMatrix",33922:"ModelTiepointTag",34264:"ModelTransformationTag",34377:"Photoshop",34665:"ExifIFD",34675:"ICCProfile",34735:"GeoKeyDirectoryTag",34736:"GeoDoubleParamsTag",34737:"GeoAsciiParamsTag",34853:"GPSIFD",34908:"HylaFAXFaxRecvParams",34909:"HylaFAXFaxSubAddress",34910:"HylaFAXFaxRecvTime",37724:"ImageSourceData",40965:"InteroperabilityIFD",42112:"GDAL_METADATA",42113:"GDAL_NODATA",50215:"OceScanjobDescription",50216:"OceApplicationSelector",50217:"OceIdentificationNumber",50218:"OceImageLogicCharacteristics",50706:"DNGVersion",50707:"DNGBackwardVersion",50708:"UniqueCameraModel",50709:"LocalizedCameraModel",50710:"CFAPlaneColor",50711:"CFALayout",50712:"LinearizationTable",50713:"BlackLevelRepeatDim",50714:"BlackLevel",50715:"BlackLevelDeltaH",50716:"BlackLevelDeltaV",50717:"WhiteLevel",50718:"DefaultScale",50719:"DefaultCropOrigin",50720:"DefaultCropSize",50721:"ColorMatrix1",50722:"ColorMatrix2",50723:"CameraCalibration1",50724:"CameraCalibration2",50725:"ReductionMatrix1",50726:"ReductionMatrix2",50727:"AnalogBalance",50728:"AsShotNeutral",50729:"AsShotWhiteXY",50730:"BaselineExposure",50731:"BaselineNoise",50732:"BaselineSharpness",50733:"BayerGreenSplit",50734:"LinearResponseLimit",50735:"CameraSerialNumber",50736:"LensInfo",50737:"ChromaBlurRadius",50738:"AntiAliasStrength",50740:"DNGPrivateData",50741:"MakerNoteSafety",50778:"CalibrationIlluminant1",50779:"CalibrationIlluminant2",50780:"BestQualityScale",50784:"AliasLayerMetadata"},AHe={};for(const t in Lee)AHe[Lee[t]]=Number(t);const vrn=Object.freeze(Object.defineProperty({__proto__:null,tagsById:Lee,tagsByName:AHe},Symbol.toStringTag,{value:"Module"})),RSe={standard:vrn,exif:mrn,gps:grn};class RHe{constructor(e){if(!e)throw new Error("missing kind");this.data=new Uint8Array,this.fields=new Map,this.kind=e,this._hasMap=!1,this._map={}}get(e){if(typeof e=="number")return this.fields.get(e);if(typeof e=="string")return this.fields.get(RSe[this.kind].tagsByName[e]);throw new Error("expected a number or string")}get map(){if(!this._hasMap){const e=RSe[this.kind].tagsById;for(const n of this.fields.keys())e[n]&&(this._map[e[n]]=this.fields.get(n));this._hasMap=!0}return this._map}}const OHe=new Map([[1,[1,OSe]],[2,[1,Ern]],[3,[2,xrn]],[4,[4,Srn]],[5,[8,Crn]],[6,[1,_rn]],[7,[1,OSe]],[8,[2,wrn]],[9,[4,Trn]],[10,[8,Irn]],[11,[4,Arn]],[12,[8,Rrn]]]);function yrn(t,e){const n=OHe.get(t);if(!n)throw new Error(`type not found: ${t}`);return n[0]*e}function brn(t,e,n){const r=OHe.get(e);if(!r)throw new Error(`type not found: ${e}`);return r[1](t,n)}function OSe(t,e){if(e===1)return t.readUint8();const n=new Uint8Array(e);for(let r=0;r<e;r++)n[r]=t.readUint8();return n}function Ern(t,e){const n=[];let r="";for(let i=0;i<e;i++){const a=String.fromCharCode(t.readUint8());a==="\0"?(n.push(r),r=""):r+=a}return n.length===1?n[0]:n}function xrn(t,e){if(e===1)return t.readUint16();const n=new Uint16Array(e);for(let r=0;r<e;r++)n[r]=t.readUint16();return n}function Srn(t,e){if(e===1)return t.readUint32();const n=new Uint32Array(e);for(let r=0;r<e;r++)n[r]=t.readUint32();return n}function Crn(t,e){if(e===1)return t.readUint32()/t.readUint32();const n=new Array(e);for(let r=0;r<e;r++)n[r]=t.readUint32()/t.readUint32();return n}function _rn(t,e){if(e===1)return t.readInt8();const n=new Int8Array(e);for(let r=0;r<e;r++)n[r]=t.readInt8();return n}function wrn(t,e){if(e===1)return t.readInt16();const n=new Int16Array(e);for(let r=0;r<e;r++)n[r]=t.readInt16();return n}function Trn(t,e){if(e===1)return t.readInt32();const n=new Int32Array(e);for(let r=0;r<e;r++)n[r]=t.readInt32();return n}function Irn(t,e){if(e===1)return t.readInt32()/t.readInt32();const n=new Array(e);for(let r=0;r<e;r++)n[r]=t.readInt32()/t.readInt32();return n}function Arn(t,e){if(e===1)return t.readFloat32();const n=new Float32Array(e);for(let r=0;r<e;r++)n[r]=t.readFloat32();return n}function Rrn(t,e){if(e===1)return t.readFloat64();const n=new Float64Array(e);for(let r=0;r<e;r++)n[r]=t.readFloat64();return n}const Orn=256,LSe=257,NSe=258,MSe=9;let QE=[];function Lrn(){if(QE.length===0){for(let e=0;e<256;e++)QE.push([e]);const t=[];for(let e=256;e<4096;e++)QE.push(t)}}const Nrn=[511,1023,2047,4095],Mrn=[0,0,0,0,0,0,0,0,0,511,1023,2047,4095];class Prn{constructor(e){this.nextData=0,this.nextBits=0,this.bytePointer=0,this.tableLength=NSe,this.currentBitLength=MSe,this.stripArray=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),this.outData=new aU(e.byteLength),this.initializeTable()}decode(){let e=0,n=0;for(;(e=this.getNextCode())!==LSe;)if(e===Orn){if(this.initializeTable(),e=this.getNextCode(),e===LSe)break;this.writeString(this.stringFromCode(e)),n=e}else if(this.isInTable(e))this.writeString(this.stringFromCode(e)),this.addStringToTable(this.stringFromCode(n).concat(this.stringFromCode(e)[0])),n=e;else{const i=this.stringFromCode(n).concat(this.stringFromCode(n)[0]);this.writeString(i),this.addStringToTable(i),n=e}const r=this.outData.toArray();return new DataView(r.buffer,r.byteOffset,r.byteLength)}initializeTable(){Lrn(),this.tableLength=NSe,this.currentBitLength=MSe}writeString(e){this.outData.writeBytes(e)}stringFromCode(e){return QE[e]}isInTable(e){return e<this.tableLength}addStringToTable(e){if(QE[this.tableLength++]=e,QE.length>4096)throw QE=[],new Error("LZW decoding error. Please open an issue at https://github.com/image-js/tiff/issues/new/choose (include a test image).");this.tableLength===Mrn[this.currentBitLength]&&this.currentBitLength++}getNextCode(){this.nextData=this.nextData<<8|this.stripArray[this.bytePointer++]&255,this.nextBits+=8,this.nextBits<this.currentBitLength&&(this.nextData=this.nextData<<8|this.stripArray[this.bytePointer++]&255,this.nextBits+=8);const e=this.nextData>>this.nextBits-this.currentBitLength&Nrn[this.currentBitLength-9];return this.nextBits-=this.currentBitLength,this.bytePointer>this.stripArray.length?257:e}}function Drn(t){return new Prn(t).decode()}const krn=/^(\d{4}):(\d{2}):(\d{2}) (\d{2}):(\d{2}):(\d{2})$/;class PSe extends RHe{constructor(){super("standard")}get size(){return this.width*this.height}get width(){return this.imageWidth}get height(){return this.imageLength}get components(){return this.samplesPerPixel}get date(){const e=new Date,n=krn.exec(this.dateTime);if(n===null)throw new Error(`invalid dateTime: ${this.dateTime}`);return e.setFullYear(Number(n[1]),Number(n[2])-1,Number(n[3])),e.setHours(Number(n[4]),Number(n[5]),Number(n[6])),e}get newSubfileType(){return this.get("NewSubfileType")}get imageWidth(){return this.get("ImageWidth")}get imageLength(){return this.get("ImageLength")}get bitsPerSample(){const e=this.get("BitsPerSample");return e&&typeof e!="number"?e[0]:e}get alpha(){const e=this.extraSamples;return e?e[0]!==0:!1}get associatedAlpha(){const e=this.extraSamples;return e?e[0]===1:!1}get extraSamples(){return NN(this.get("ExtraSamples"))}get compression(){return this.get("Compression")||1}get type(){return this.get("PhotometricInterpretation")}get fillOrder(){return this.get("FillOrder")||1}get documentName(){return this.get("DocumentName")}get imageDescription(){return this.get("ImageDescription")}get stripOffsets(){return NN(this.get("StripOffsets"))}get orientation(){return this.get("Orientation")}get samplesPerPixel(){return this.get("SamplesPerPixel")||1}get rowsPerStrip(){return this.get("RowsPerStrip")}get stripByteCounts(){return NN(this.get("StripByteCounts"))}get minSampleValue(){return this.get("MinSampleValue")||0}get maxSampleValue(){return this.get("MaxSampleValue")||2**this.bitsPerSample-1}get xResolution(){return this.get("XResolution")}get yResolution(){return this.get("YResolution")}get planarConfiguration(){return this.get("PlanarConfiguration")||1}get resolutionUnit(){return this.get("ResolutionUnit")||2}get dateTime(){return this.get("DateTime")}get predictor(){return this.get("Predictor")||1}get sampleFormat(){return NN(this.get("SampleFormat")||1)[0]}get sMinSampleValue(){return this.get("SMinSampleValue")||this.minSampleValue}get sMaxSampleValue(){return this.get("SMaxSampleValue")||this.maxSampleValue}get palette(){const e=2**this.bitsPerSample,n=this.get("ColorMap");if(!n)return;if(n.length!==3*e)throw new Error(`ColorMap size must be ${e}`);const r=[];for(let i=0;i<e;i++)r.push([n[i],n[i+e],n[i+2*e]]);return r}}function NN(t){return typeof t=="number"?[t]:t}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const Urn=4,DSe=0,kSe=1,Frn=2;function RT(t){let e=t.length;for(;--e>=0;)t[e]=0}const Brn=0,LHe=1,$rn=2,Vrn=3,zrn=258,Poe=29,VR=256,R6=VR+1+Poe,$w=30,Doe=19,NHe=2*R6+1,ex=15,FH=16,Hrn=7,koe=256,MHe=16,PHe=17,DHe=18,Nee=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]),g7=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]),Grn=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),kHe=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),jrn=512,e1=new Array((R6+2)*2);RT(e1);const f5=new Array($w*2);RT(f5);const O6=new Array(jrn);RT(O6);const L6=new Array(zrn-Vrn+1);RT(L6);const Uoe=new Array(Poe);RT(Uoe);const m9=new Array($w);RT(m9);function BH(t,e,n,r,i){this.static_tree=t,this.extra_bits=e,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=t&&t.length}let UHe,FHe,BHe;function $H(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}const $He=t=>t<256?O6[t]:O6[256+(t>>>7)],N6=(t,e)=>{t.pending_buf[t.pending++]=e&255,t.pending_buf[t.pending++]=e>>>8&255},zp=(t,e,n)=>{t.bi_valid>FH-n?(t.bi_buf|=e<<t.bi_valid&65535,N6(t,t.bi_buf),t.bi_buf=e>>FH-t.bi_valid,t.bi_valid+=n-FH):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=n)},j0=(t,e,n)=>{zp(t,n[e*2],n[e*2+1])},VHe=(t,e)=>{let n=0;do n|=t&1,t>>>=1,n<<=1;while(--e>0);return n>>>1},Wrn=t=>{t.bi_valid===16?(N6(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=t.bi_buf&255,t.bi_buf>>=8,t.bi_valid-=8)},Xrn=(t,e)=>{const n=e.dyn_tree,r=e.max_code,i=e.stat_desc.static_tree,a=e.stat_desc.has_stree,o=e.stat_desc.extra_bits,s=e.stat_desc.extra_base,l=e.stat_desc.max_length;let u,d,f,p,h,m,y=0;for(p=0;p<=ex;p++)t.bl_count[p]=0;for(n[t.heap[t.heap_max]*2+1]=0,u=t.heap_max+1;u<NHe;u++)d=t.heap[u],p=n[n[d*2+1]*2+1]+1,p>l&&(p=l,y++),n[d*2+1]=p,!(d>r)&&(t.bl_count[p]++,h=0,d>=s&&(h=o[d-s]),m=n[d*2],t.opt_len+=m*(p+h),a&&(t.static_len+=m*(i[d*2+1]+h)));if(y!==0){do{for(p=l-1;t.bl_count[p]===0;)p--;t.bl_count[p]--,t.bl_count[p+1]+=2,t.bl_count[l]--,y-=2}while(y>0);for(p=l;p!==0;p--)for(d=t.bl_count[p];d!==0;)f=t.heap[--u],!(f>r)&&(n[f*2+1]!==p&&(t.opt_len+=(p-n[f*2+1])*n[f*2],n[f*2+1]=p),d--)}},zHe=(t,e,n)=>{const r=new Array(ex+1);let i=0,a,o;for(a=1;a<=ex;a++)i=i+n[a-1]<<1,r[a]=i;for(o=0;o<=e;o++){let s=t[o*2+1];s!==0&&(t[o*2]=VHe(r[s]++,s))}},qrn=()=>{let t,e,n,r,i;const a=new Array(ex+1);for(n=0,r=0;r<Poe-1;r++)for(Uoe[r]=n,t=0;t<1<<Nee[r];t++)L6[n++]=r;for(L6[n-1]=r,i=0,r=0;r<16;r++)for(m9[r]=i,t=0;t<1<<g7[r];t++)O6[i++]=r;for(i>>=7;r<$w;r++)for(m9[r]=i<<7,t=0;t<1<<g7[r]-7;t++)O6[256+i++]=r;for(e=0;e<=ex;e++)a[e]=0;for(t=0;t<=143;)e1[t*2+1]=8,t++,a[8]++;for(;t<=255;)e1[t*2+1]=9,t++,a[9]++;for(;t<=279;)e1[t*2+1]=7,t++,a[7]++;for(;t<=287;)e1[t*2+1]=8,t++,a[8]++;for(zHe(e1,R6+1,a),t=0;t<$w;t++)f5[t*2+1]=5,f5[t*2]=VHe(t,5);UHe=new BH(e1,Nee,VR+1,R6,ex),FHe=new BH(f5,g7,0,$w,ex),BHe=new BH(new Array(0),Grn,0,Doe,Hrn)},HHe=t=>{let e;for(e=0;e<R6;e++)t.dyn_ltree[e*2]=0;for(e=0;e<$w;e++)t.dyn_dtree[e*2]=0;for(e=0;e<Doe;e++)t.bl_tree[e*2]=0;t.dyn_ltree[koe*2]=1,t.opt_len=t.static_len=0,t.sym_next=t.matches=0},GHe=t=>{t.bi_valid>8?N6(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},USe=(t,e,n,r)=>{const i=e*2,a=n*2;return t[i]<t[a]||t[i]===t[a]&&r[e]<=r[n]},VH=(t,e,n)=>{const r=t.heap[n];let i=n<<1;for(;i<=t.heap_len&&(i<t.heap_len&&USe(e,t.heap[i+1],t.heap[i],t.depth)&&i++,!USe(e,r,t.heap[i],t.depth));)t.heap[n]=t.heap[i],n=i,i<<=1;t.heap[n]=r},FSe=(t,e,n)=>{let r,i,a=0,o,s;if(t.sym_next!==0)do r=t.pending_buf[t.sym_buf+a++]&255,r+=(t.pending_buf[t.sym_buf+a++]&255)<<8,i=t.pending_buf[t.sym_buf+a++],r===0?j0(t,i,e):(o=L6[i],j0(t,o+VR+1,e),s=Nee[o],s!==0&&(i-=Uoe[o],zp(t,i,s)),r--,o=$He(r),j0(t,o,n),s=g7[o],s!==0&&(r-=m9[o],zp(t,r,s)));while(a<t.sym_next);j0(t,koe,e)},Mee=(t,e)=>{const n=e.dyn_tree,r=e.stat_desc.static_tree,i=e.stat_desc.has_stree,a=e.stat_desc.elems;let o,s,l=-1,u;for(t.heap_len=0,t.heap_max=NHe,o=0;o<a;o++)n[o*2]!==0?(t.heap[++t.heap_len]=l=o,t.depth[o]=0):n[o*2+1]=0;for(;t.heap_len<2;)u=t.heap[++t.heap_len]=l<2?++l:0,n[u*2]=1,t.depth[u]=0,t.opt_len--,i&&(t.static_len-=r[u*2+1]);for(e.max_code=l,o=t.heap_len>>1;o>=1;o--)VH(t,n,o);u=a;do o=t.heap[1],t.heap[1]=t.heap[t.heap_len--],VH(t,n,1),s=t.heap[1],t.heap[--t.heap_max]=o,t.heap[--t.heap_max]=s,n[u*2]=n[o*2]+n[s*2],t.depth[u]=(t.depth[o]>=t.depth[s]?t.depth[o]:t.depth[s])+1,n[o*2+1]=n[s*2+1]=u,t.heap[1]=u++,VH(t,n,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],Xrn(t,e),zHe(n,l,t.bl_count)},BSe=(t,e,n)=>{let r,i=-1,a,o=e[0*2+1],s=0,l=7,u=4;for(o===0&&(l=138,u=3),e[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=e[(r+1)*2+1],!(++s<l&&a===o)&&(s<u?t.bl_tree[a*2]+=s:a!==0?(a!==i&&t.bl_tree[a*2]++,t.bl_tree[MHe*2]++):s<=10?t.bl_tree[PHe*2]++:t.bl_tree[DHe*2]++,s=0,i=a,o===0?(l=138,u=3):a===o?(l=6,u=3):(l=7,u=4))},$Se=(t,e,n)=>{let r,i=-1,a,o=e[0*2+1],s=0,l=7,u=4;for(o===0&&(l=138,u=3),r=0;r<=n;r++)if(a=o,o=e[(r+1)*2+1],!(++s<l&&a===o)){if(s<u)do j0(t,a,t.bl_tree);while(--s!==0);else a!==0?(a!==i&&(j0(t,a,t.bl_tree),s--),j0(t,MHe,t.bl_tree),zp(t,s-3,2)):s<=10?(j0(t,PHe,t.bl_tree),zp(t,s-3,3)):(j0(t,DHe,t.bl_tree),zp(t,s-11,7));s=0,i=a,o===0?(l=138,u=3):a===o?(l=6,u=3):(l=7,u=4)}},Yrn=t=>{let e;for(BSe(t,t.dyn_ltree,t.l_desc.max_code),BSe(t,t.dyn_dtree,t.d_desc.max_code),Mee(t,t.bl_desc),e=Doe-1;e>=3&&t.bl_tree[kHe[e]*2+1]===0;e--);return t.opt_len+=3*(e+1)+5+5+4,e},Zrn=(t,e,n,r)=>{let i;for(zp(t,e-257,5),zp(t,n-1,5),zp(t,r-4,4),i=0;i<r;i++)zp(t,t.bl_tree[kHe[i]*2+1],3);$Se(t,t.dyn_ltree,e-1),$Se(t,t.dyn_dtree,n-1)},Krn=t=>{let e=4093624447,n;for(n=0;n<=31;n++,e>>>=1)if(e&1&&t.dyn_ltree[n*2]!==0)return DSe;if(t.dyn_ltree[9*2]!==0||t.dyn_ltree[10*2]!==0||t.dyn_ltree[13*2]!==0)return kSe;for(n=32;n<VR;n++)if(t.dyn_ltree[n*2]!==0)return kSe;return DSe};let VSe=!1;const Jrn=t=>{VSe||(qrn(),VSe=!0),t.l_desc=new $H(t.dyn_ltree,UHe),t.d_desc=new $H(t.dyn_dtree,FHe),t.bl_desc=new $H(t.bl_tree,BHe),t.bi_buf=0,t.bi_valid=0,HHe(t)},jHe=(t,e,n,r)=>{zp(t,(Brn<<1)+(r?1:0),3),GHe(t),N6(t,n),N6(t,~n),n&&t.pending_buf.set(t.window.subarray(e,e+n),t.pending),t.pending+=n},Qrn=t=>{zp(t,LHe<<1,3),j0(t,koe,e1),Wrn(t)},ein=(t,e,n,r)=>{let i,a,o=0;t.level>0?(t.strm.data_type===Frn&&(t.strm.data_type=Krn(t)),Mee(t,t.l_desc),Mee(t,t.d_desc),o=Yrn(t),i=t.opt_len+3+7>>>3,a=t.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&e!==-1?jHe(t,e,n,r):t.strategy===Urn||a===i?(zp(t,(LHe<<1)+(r?1:0),3),FSe(t,e1,f5)):(zp(t,($rn<<1)+(r?1:0),3),Zrn(t,t.l_desc.max_code+1,t.d_desc.max_code+1,o+1),FSe(t,t.dyn_ltree,t.dyn_dtree)),HHe(t),r&&GHe(t)},tin=(t,e,n)=>(t.pending_buf[t.sym_buf+t.sym_next++]=e,t.pending_buf[t.sym_buf+t.sym_next++]=e>>8,t.pending_buf[t.sym_buf+t.sym_next++]=n,e===0?t.dyn_ltree[n*2]++:(t.matches++,e--,t.dyn_ltree[(L6[n]+VR+1)*2]++,t.dyn_dtree[$He(e)*2]++),t.sym_next===t.sym_end);var nin=Jrn,rin=jHe,iin=ein,ain=tin,oin=Qrn,sin={_tr_init:nin,_tr_stored_block:rin,_tr_flush_block:iin,_tr_tally:ain,_tr_align:oin};const lin=(t,e,n,r)=>{let i=t&65535|0,a=t>>>16&65535|0,o=0;for(;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+e[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0};var M6=lin;const cin=()=>{let t,e=[];for(var n=0;n<256;n++){t=n;for(var r=0;r<8;r++)t=t&1?3988292384^t>>>1:t>>>1;e[n]=t}return e},uin=new Uint32Array(cin()),din=(t,e,n,r)=>{const i=uin,a=r+n;t^=-1;for(let o=r;o<a;o++)t=t>>>8^i[(t^e[o])&255];return t^-1};var Ld=din,A3={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"},zR={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:fin,_tr_stored_block:Pee,_tr_flush_block:pin,_tr_tally:yb,_tr_align:hin}=sin,{Z_NO_FLUSH:bb,Z_PARTIAL_FLUSH:min,Z_FULL_FLUSH:gin,Z_FINISH:Cm,Z_BLOCK:zSe,Z_OK:Jd,Z_STREAM_END:HSe,Z_STREAM_ERROR:tv,Z_DATA_ERROR:vin,Z_BUF_ERROR:zH,Z_DEFAULT_COMPRESSION:yin,Z_FILTERED:bin,Z_HUFFMAN_ONLY:MN,Z_RLE:Ein,Z_FIXED:xin,Z_DEFAULT_STRATEGY:Sin,Z_UNKNOWN:Cin,Z_DEFLATED:oU}=zR,_in=9,win=15,Tin=8,Iin=29,Ain=256,Dee=Ain+1+Iin,Rin=30,Oin=19,Lin=2*Dee+1,Nin=15,Ls=3,ob=258,nv=ob+Ls+1,Min=32,R3=42,Foe=57,kee=69,Uee=73,Fee=91,Bee=103,tx=113,_A=666,cp=1,OT=2,nS=3,LT=4,Pin=3,nx=(t,e)=>(t.msg=A3[e],e),GSe=t=>t*2-(t>4?9:0),zy=t=>{let e=t.length;for(;--e>=0;)t[e]=0},Din=t=>{let e,n,r,i=t.w_size;e=t.hash_size,r=e;do n=t.head[--r],t.head[r]=n>=i?n-i:0;while(--e);e=i,r=e;do n=t.prev[--r],t.prev[r]=n>=i?n-i:0;while(--e)};let kin=(t,e,n)=>(e<<t.hash_shift^n)&t.hash_mask,Eb=kin;const dh=t=>{const e=t.state;let n=e.pending;n>t.avail_out&&(n=t.avail_out),n!==0&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+n),t.next_out),t.next_out+=n,e.pending_out+=n,t.total_out+=n,t.avail_out-=n,e.pending-=n,e.pending===0&&(e.pending_out=0))},Eh=(t,e)=>{pin(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,dh(t.strm)},al=(t,e)=>{t.pending_buf[t.pending++]=e},II=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=e&255},$ee=(t,e,n,r)=>{let i=t.avail_in;return i>r&&(i=r),i===0?0:(t.avail_in-=i,e.set(t.input.subarray(t.next_in,t.next_in+i),n),t.state.wrap===1?t.adler=M6(t.adler,e,i,n):t.state.wrap===2&&(t.adler=Ld(t.adler,e,i,n)),t.next_in+=i,t.total_in+=i,i)},WHe=(t,e)=>{let n=t.max_chain_length,r=t.strstart,i,a,o=t.prev_length,s=t.nice_match;const l=t.strstart>t.w_size-nv?t.strstart-(t.w_size-nv):0,u=t.window,d=t.w_mask,f=t.prev,p=t.strstart+ob;let h=u[r+o-1],m=u[r+o];t.prev_length>=t.good_match&&(n>>=2),s>t.lookahead&&(s=t.lookahead);do if(i=e,!(u[i+o]!==m||u[i+o-1]!==h||u[i]!==u[r]||u[++i]!==u[r+1])){r+=2,i++;do;while(u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&r<p);if(a=ob-(p-r),r=p-ob,a>o){if(t.match_start=e,o=a,a>=s)break;h=u[r+o-1],m=u[r+o]}}while((e=f[e&d])>l&&--n!==0);return o<=t.lookahead?o:t.lookahead},O3=t=>{const e=t.w_size;let n,r,i;do{if(r=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-nv)&&(t.window.set(t.window.subarray(e,e+e-r),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,t.insert>t.strstart&&(t.insert=t.strstart),Din(t),r+=e),t.strm.avail_in===0)break;if(n=$ee(t.strm,t.window,t.strstart+t.lookahead,r),t.lookahead+=n,t.lookahead+t.insert>=Ls)for(i=t.strstart-t.insert,t.ins_h=t.window[i],t.ins_h=Eb(t,t.ins_h,t.window[i+1]);t.insert&&(t.ins_h=Eb(t,t.ins_h,t.window[i+Ls-1]),t.prev[i&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=i,i++,t.insert--,!(t.lookahead+t.insert<Ls)););}while(t.lookahead<nv&&t.strm.avail_in!==0)},XHe=(t,e)=>{let n=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,r,i,a,o=0,s=t.strm.avail_in;do{if(r=65535,a=t.bi_valid+42>>3,t.strm.avail_out<a||(a=t.strm.avail_out-a,i=t.strstart-t.block_start,r>i+t.strm.avail_in&&(r=i+t.strm.avail_in),r>a&&(r=a),r<n&&(r===0&&e!==Cm||e===bb||r!==i+t.strm.avail_in)))break;o=e===Cm&&r===i+t.strm.avail_in?1:0,Pee(t,0,0,o),t.pending_buf[t.pending-4]=r,t.pending_buf[t.pending-3]=r>>8,t.pending_buf[t.pending-2]=~r,t.pending_buf[t.pending-1]=~r>>8,dh(t.strm),i&&(i>r&&(i=r),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+i),t.strm.next_out),t.strm.next_out+=i,t.strm.avail_out-=i,t.strm.total_out+=i,t.block_start+=i,r-=i),r&&($ee(t.strm,t.strm.output,t.strm.next_out,r),t.strm.next_out+=r,t.strm.avail_out-=r,t.strm.total_out+=r)}while(o===0);return s-=t.strm.avail_in,s&&(s>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=s&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-s,t.strm.next_in),t.strstart),t.strstart+=s,t.insert+=s>t.w_size-t.insert?t.w_size-t.insert:s),t.block_start=t.strstart),t.high_water<t.strstart&&(t.high_water=t.strstart),o?LT:e!==bb&&e!==Cm&&t.strm.avail_in===0&&t.strstart===t.block_start?OT:(a=t.window_size-t.strstart,t.strm.avail_in>a&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,a+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),a>t.strm.avail_in&&(a=t.strm.avail_in),a&&($ee(t.strm,t.window,t.strstart,a),t.strstart+=a,t.insert+=a>t.w_size-t.insert?t.w_size-t.insert:a),t.high_water<t.strstart&&(t.high_water=t.strstart),a=t.bi_valid+42>>3,a=t.pending_buf_size-a>65535?65535:t.pending_buf_size-a,n=a>t.w_size?t.w_size:a,i=t.strstart-t.block_start,(i>=n||(i||e===Cm)&&e!==bb&&t.strm.avail_in===0&&i<=a)&&(r=i>a?a:i,o=e===Cm&&t.strm.avail_in===0&&r===i?1:0,Pee(t,t.block_start,r,o),t.block_start+=r,dh(t.strm)),o?nS:cp)},HH=(t,e)=>{let n,r;for(;;){if(t.lookahead<nv){if(O3(t),t.lookahead<nv&&e===bb)return cp;if(t.lookahead===0)break}if(n=0,t.lookahead>=Ls&&(t.ins_h=Eb(t,t.ins_h,t.window[t.strstart+Ls-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),n!==0&&t.strstart-n<=t.w_size-nv&&(t.match_length=WHe(t,n)),t.match_length>=Ls)if(r=yb(t,t.strstart-t.match_start,t.match_length-Ls),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=Ls){t.match_length--;do t.strstart++,t.ins_h=Eb(t,t.ins_h,t.window[t.strstart+Ls-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart;while(--t.match_length!==0);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=Eb(t,t.ins_h,t.window[t.strstart+1]);else r=yb(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(r&&(Eh(t,!1),t.strm.avail_out===0))return cp}return t.insert=t.strstart<Ls-1?t.strstart:Ls-1,e===Cm?(Eh(t,!0),t.strm.avail_out===0?nS:LT):t.sym_next&&(Eh(t,!1),t.strm.avail_out===0)?cp:OT},o_=(t,e)=>{let n,r,i;for(;;){if(t.lookahead<nv){if(O3(t),t.lookahead<nv&&e===bb)return cp;if(t.lookahead===0)break}if(n=0,t.lookahead>=Ls&&(t.ins_h=Eb(t,t.ins_h,t.window[t.strstart+Ls-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=Ls-1,n!==0&&t.prev_length<t.max_lazy_match&&t.strstart-n<=t.w_size-nv&&(t.match_length=WHe(t,n),t.match_length<=5&&(t.strategy===bin||t.match_length===Ls&&t.strstart-t.match_start>4096)&&(t.match_length=Ls-1)),t.prev_length>=Ls&&t.match_length<=t.prev_length){i=t.strstart+t.lookahead-Ls,r=yb(t,t.strstart-1-t.prev_match,t.prev_length-Ls),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=i&&(t.ins_h=Eb(t,t.ins_h,t.window[t.strstart+Ls-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart);while(--t.prev_length!==0);if(t.match_available=0,t.match_length=Ls-1,t.strstart++,r&&(Eh(t,!1),t.strm.avail_out===0))return cp}else if(t.match_available){if(r=yb(t,0,t.window[t.strstart-1]),r&&Eh(t,!1),t.strstart++,t.lookahead--,t.strm.avail_out===0)return cp}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(r=yb(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<Ls-1?t.strstart:Ls-1,e===Cm?(Eh(t,!0),t.strm.avail_out===0?nS:LT):t.sym_next&&(Eh(t,!1),t.strm.avail_out===0)?cp:OT},Uin=(t,e)=>{let n,r,i,a;const o=t.window;for(;;){if(t.lookahead<=ob){if(O3(t),t.lookahead<=ob&&e===bb)return cp;if(t.lookahead===0)break}if(t.match_length=0,t.lookahead>=Ls&&t.strstart>0&&(i=t.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=t.strstart+ob;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);t.match_length=ob-(a-i),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=Ls?(n=yb(t,1,t.match_length-Ls),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(n=yb(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),n&&(Eh(t,!1),t.strm.avail_out===0))return cp}return t.insert=0,e===Cm?(Eh(t,!0),t.strm.avail_out===0?nS:LT):t.sym_next&&(Eh(t,!1),t.strm.avail_out===0)?cp:OT},Fin=(t,e)=>{let n;for(;;){if(t.lookahead===0&&(O3(t),t.lookahead===0)){if(e===bb)return cp;break}if(t.match_length=0,n=yb(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,n&&(Eh(t,!1),t.strm.avail_out===0))return cp}return t.insert=0,e===Cm?(Eh(t,!0),t.strm.avail_out===0?nS:LT):t.sym_next&&(Eh(t,!1),t.strm.avail_out===0)?cp:OT};function w0(t,e,n,r,i){this.good_length=t,this.max_lazy=e,this.nice_length=n,this.max_chain=r,this.func=i}const wA=[new w0(0,0,0,0,XHe),new w0(4,4,8,4,HH),new w0(4,5,16,8,HH),new w0(4,6,32,32,HH),new w0(4,4,16,16,o_),new w0(8,16,32,32,o_),new w0(8,16,128,128,o_),new w0(8,32,128,256,o_),new w0(32,128,258,1024,o_),new w0(32,258,258,4096,o_)],Bin=t=>{t.window_size=2*t.w_size,zy(t.head),t.max_lazy_match=wA[t.level].max_lazy,t.good_match=wA[t.level].good_length,t.nice_match=wA[t.level].nice_length,t.max_chain_length=wA[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=Ls-1,t.match_available=0,t.ins_h=0};function $in(){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=oU,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(Lin*2),this.dyn_dtree=new Uint16Array((2*Rin+1)*2),this.bl_tree=new Uint16Array((2*Oin+1)*2),zy(this.dyn_ltree),zy(this.dyn_dtree),zy(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(Nin+1),this.heap=new Uint16Array(2*Dee+1),zy(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*Dee+1),zy(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}const HR=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.status!==R3&&e.status!==Foe&&e.status!==kee&&e.status!==Uee&&e.status!==Fee&&e.status!==Bee&&e.status!==tx&&e.status!==_A?1:0},qHe=t=>{if(HR(t))return nx(t,tv);t.total_in=t.total_out=0,t.data_type=Cin;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap===2?Foe:e.wrap?R3:tx,t.adler=e.wrap===2?0:1,e.last_flush=-2,fin(e),Jd},YHe=t=>{const e=qHe(t);return e===Jd&&Bin(t.state),e},Vin=(t,e)=>HR(t)||t.state.wrap!==2?tv:(t.state.gzhead=e,Jd),ZHe=(t,e,n,r,i,a)=>{if(!t)return tv;let o=1;if(e===yin&&(e=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>_in||n!==oU||r<8||r>15||e<0||e>9||a<0||a>xin||r===8&&o!==1)return nx(t,tv);r===8&&(r=9);const s=new $in;return t.state=s,s.strm=t,s.status=R3,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+Ls-1)/Ls),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=e,s.strategy=a,s.method=n,YHe(t)},zin=(t,e)=>ZHe(t,e,oU,win,Tin,Sin),Hin=(t,e)=>{if(HR(t)||e>zSe||e<0)return t?nx(t,tv):tv;const n=t.state;if(!t.output||t.avail_in!==0&&!t.input||n.status===_A&&e!==Cm)return nx(t,t.avail_out===0?zH:tv);const r=n.last_flush;if(n.last_flush=e,n.pending!==0){if(dh(t),t.avail_out===0)return n.last_flush=-1,Jd}else if(t.avail_in===0&&GSe(e)<=GSe(r)&&e!==Cm)return nx(t,zH);if(n.status===_A&&t.avail_in!==0)return nx(t,zH);if(n.status===R3&&n.wrap===0&&(n.status=tx),n.status===R3){let i=oU+(n.w_bits-8<<4)<<8,a=-1;if(n.strategy>=MN||n.level<2?a=0:n.level<6?a=1:n.level===6?a=2:a=3,i|=a<<6,n.strstart!==0&&(i|=Min),i+=31-i%31,II(n,i),n.strstart!==0&&(II(n,t.adler>>>16),II(n,t.adler&65535)),t.adler=1,n.status=tx,dh(t),n.pending!==0)return n.last_flush=-1,Jd}if(n.status===Foe){if(t.adler=0,al(n,31),al(n,139),al(n,8),n.gzhead)al(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),al(n,n.gzhead.time&255),al(n,n.gzhead.time>>8&255),al(n,n.gzhead.time>>16&255),al(n,n.gzhead.time>>24&255),al(n,n.level===9?2:n.strategy>=MN||n.level<2?4:0),al(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(al(n,n.gzhead.extra.length&255),al(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(t.adler=Ld(t.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=kee;else if(al(n,0),al(n,0),al(n,0),al(n,0),al(n,0),al(n,n.level===9?2:n.strategy>=MN||n.level<2?4:0),al(n,Pin),n.status=tx,dh(t),n.pending!==0)return n.last_flush=-1,Jd}if(n.status===kee){if(n.gzhead.extra){let i=n.pending,a=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+a>n.pending_buf_size;){let s=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+s),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>i&&(t.adler=Ld(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=s,dh(t),n.pending!==0)return n.last_flush=-1,Jd;i=0,a-=s}let o=new Uint8Array(n.gzhead.extra);n.pending_buf.set(o.subarray(n.gzindex,n.gzindex+a),n.pending),n.pending+=a,n.gzhead.hcrc&&n.pending>i&&(t.adler=Ld(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=Uee}if(n.status===Uee){if(n.gzhead.name){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(t.adler=Ld(t.adler,n.pending_buf,n.pending-i,i)),dh(t),n.pending!==0)return n.last_flush=-1,Jd;i=0}n.gzindex<n.gzhead.name.length?a=n.gzhead.name.charCodeAt(n.gzindex++)&255:a=0,al(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(t.adler=Ld(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=Fee}if(n.status===Fee){if(n.gzhead.comment){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(t.adler=Ld(t.adler,n.pending_buf,n.pending-i,i)),dh(t),n.pending!==0)return n.last_flush=-1,Jd;i=0}n.gzindex<n.gzhead.comment.length?a=n.gzhead.comment.charCodeAt(n.gzindex++)&255:a=0,al(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(t.adler=Ld(t.adler,n.pending_buf,n.pending-i,i))}n.status=Bee}if(n.status===Bee){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(dh(t),n.pending!==0))return n.last_flush=-1,Jd;al(n,t.adler&255),al(n,t.adler>>8&255),t.adler=0}if(n.status=tx,dh(t),n.pending!==0)return n.last_flush=-1,Jd}if(t.avail_in!==0||n.lookahead!==0||e!==bb&&n.status!==_A){let i=n.level===0?XHe(n,e):n.strategy===MN?Fin(n,e):n.strategy===Ein?Uin(n,e):wA[n.level].func(n,e);if((i===nS||i===LT)&&(n.status=_A),i===cp||i===nS)return t.avail_out===0&&(n.last_flush=-1),Jd;if(i===OT&&(e===min?hin(n):e!==zSe&&(Pee(n,0,0,!1),e===gin&&(zy(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),dh(t),t.avail_out===0))return n.last_flush=-1,Jd}return e!==Cm?Jd:n.wrap<=0?HSe:(n.wrap===2?(al(n,t.adler&255),al(n,t.adler>>8&255),al(n,t.adler>>16&255),al(n,t.adler>>24&255),al(n,t.total_in&255),al(n,t.total_in>>8&255),al(n,t.total_in>>16&255),al(n,t.total_in>>24&255)):(II(n,t.adler>>>16),II(n,t.adler&65535)),dh(t),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?Jd:HSe)},Gin=t=>{if(HR(t))return tv;const e=t.state.status;return t.state=null,e===tx?nx(t,vin):Jd},jin=(t,e)=>{let n=e.length;if(HR(t))return tv;const r=t.state,i=r.wrap;if(i===2||i===1&&r.status!==R3||r.lookahead)return tv;if(i===1&&(t.adler=M6(t.adler,e,n,0)),r.wrap=0,n>=r.w_size){i===0&&(zy(r.head),r.strstart=0,r.block_start=0,r.insert=0);let l=new Uint8Array(r.w_size);l.set(e.subarray(n-r.w_size,n),0),e=l,n=r.w_size}const a=t.avail_in,o=t.next_in,s=t.input;for(t.avail_in=n,t.next_in=0,t.input=e,O3(r);r.lookahead>=Ls;){let l=r.strstart,u=r.lookahead-(Ls-1);do r.ins_h=Eb(r,r.ins_h,r.window[l+Ls-1]),r.prev[l&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=l,l++;while(--u);r.strstart=l,r.lookahead=Ls-1,O3(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=Ls-1,r.match_available=0,t.next_in=o,t.input=s,t.avail_in=a,r.wrap=i,Jd};var Win=zin,Xin=ZHe,qin=YHe,Yin=qHe,Zin=Vin,Kin=Hin,Jin=Gin,Qin=jin,ean="pako deflate (from Nodeca project)",p5={deflateInit:Win,deflateInit2:Xin,deflateReset:qin,deflateResetKeep:Yin,deflateSetHeader:Zin,deflate:Kin,deflateEnd:Jin,deflateSetDictionary:Qin,deflateInfo:ean};const tan=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var nan=function(t){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const n=e.shift();if(n){if(typeof n!="object")throw new TypeError(n+"must be non-object");for(const r in n)tan(n,r)&&(t[r]=n[r])}}return t},ran=t=>{let e=0;for(let r=0,i=t.length;r<i;r++)e+=t[r].length;const n=new Uint8Array(e);for(let r=0,i=0,a=t.length;r<a;r++){let o=t[r];n.set(o,i),i+=o.length}return n},sU={assign:nan,flattenChunks:ran};let KHe=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{KHe=!1}const P6=new Uint8Array(256);for(let t=0;t<256;t++)P6[t]=t>=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;P6[254]=P6[254]=1;var ian=t=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(t);let e,n,r,i,a,o=t.length,s=0;for(i=0;i<o;i++)n=t.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=t.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(e=new Uint8Array(s),a=0,i=0;a<s;i++)n=t.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=t.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?e[a++]=n:n<2048?(e[a++]=192|n>>>6,e[a++]=128|n&63):n<65536?(e[a++]=224|n>>>12,e[a++]=128|n>>>6&63,e[a++]=128|n&63):(e[a++]=240|n>>>18,e[a++]=128|n>>>12&63,e[a++]=128|n>>>6&63,e[a++]=128|n&63);return e};const aan=(t,e)=>{if(e<65534&&t.subarray&&KHe)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));let n="";for(let r=0;r<e;r++)n+=String.fromCharCode(t[r]);return n};var oan=(t,e)=>{const n=e||t.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(t.subarray(0,e));let r,i;const a=new Array(n*2);for(i=0,r=0;r<n;){let o=t[r++];if(o<128){a[i++]=o;continue}let s=P6[o];if(s>4){a[i++]=65533,r+=s-1;continue}for(o&=s===2?31:s===3?15:7;s>1&&r<n;)o=o<<6|t[r++]&63,s--;if(s>1){a[i++]=65533;continue}o<65536?a[i++]=o:(o-=65536,a[i++]=55296|o>>10&1023,a[i++]=56320|o&1023)}return aan(a,i)},san=(t,e)=>{e=e||t.length,e>t.length&&(e=t.length);let n=e-1;for(;n>=0&&(t[n]&192)===128;)n--;return n<0||n===0?e:n+P6[t[n]]>e?n:e},D6={string2buf:ian,buf2string:oan,utf8border:san};function lan(){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 JHe=lan;const QHe=Object.prototype.toString,{Z_NO_FLUSH:can,Z_SYNC_FLUSH:uan,Z_FULL_FLUSH:dan,Z_FINISH:fan,Z_OK:g9,Z_STREAM_END:pan,Z_DEFAULT_COMPRESSION:han,Z_DEFAULT_STRATEGY:man,Z_DEFLATED:gan}=zR;function Boe(t){this.options=sU.assign({level:han,method:gan,chunkSize:16384,windowBits:15,memLevel:8,strategy:man},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new JHe,this.strm.avail_out=0;let n=p5.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(n!==g9)throw new Error(A3[n]);if(e.header&&p5.deflateSetHeader(this.strm,e.header),e.dictionary){let r;if(typeof e.dictionary=="string"?r=D6.string2buf(e.dictionary):QHe.call(e.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(e.dictionary):r=e.dictionary,n=p5.deflateSetDictionary(this.strm,r),n!==g9)throw new Error(A3[n]);this._dict_set=!0}}Boe.prototype.push=function(t,e){const n=this.strm,r=this.options.chunkSize;let i,a;if(this.ended)return!1;for(e===~~e?a=e:a=e===!0?fan:can,typeof t=="string"?n.input=D6.string2buf(t):QHe.call(t)==="[object ArrayBuffer]"?n.input=new Uint8Array(t):n.input=t,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===uan||a===dan)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=p5.deflate(n,a),i===pan)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=p5.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===g9;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};Boe.prototype.onData=function(t){this.chunks.push(t)};Boe.prototype.onEnd=function(t){t===g9&&(this.result=sU.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};const PN=16209,van=16191;var yan=function(e,n){let r,i,a,o,s,l,u,d,f,p,h,m,y,g,v,E,b,S,C,_,I,P,R,N;const D=e.state;r=e.next_in,R=e.input,i=r+(e.avail_in-5),a=e.next_out,N=e.output,o=a-(n-e.avail_out),s=a+(e.avail_out-257),l=D.dmax,u=D.wsize,d=D.whave,f=D.wnext,p=D.window,h=D.hold,m=D.bits,y=D.lencode,g=D.distcode,v=(1<<D.lenbits)-1,E=(1<<D.distbits)-1;e:do{m<15&&(h+=R[r++]<<m,m+=8,h+=R[r++]<<m,m+=8),b=y[h&v];t:for(;;){if(S=b>>>24,h>>>=S,m-=S,S=b>>>16&255,S===0)N[a++]=b&65535;else if(S&16){C=b&65535,S&=15,S&&(m<S&&(h+=R[r++]<<m,m+=8),C+=h&(1<<S)-1,h>>>=S,m-=S),m<15&&(h+=R[r++]<<m,m+=8,h+=R[r++]<<m,m+=8),b=g[h&E];n:for(;;){if(S=b>>>24,h>>>=S,m-=S,S=b>>>16&255,S&16){if(_=b&65535,S&=15,m<S&&(h+=R[r++]<<m,m+=8,m<S&&(h+=R[r++]<<m,m+=8)),_+=h&(1<<S)-1,_>l){e.msg="invalid distance too far back",D.mode=PN;break e}if(h>>>=S,m-=S,S=a-o,_>S){if(S=_-S,S>d&&D.sane){e.msg="invalid distance too far back",D.mode=PN;break e}if(I=0,P=p,f===0){if(I+=u-S,S<C){C-=S;do N[a++]=p[I++];while(--S);I=a-_,P=N}}else if(f<S){if(I+=u+f-S,S-=f,S<C){C-=S;do N[a++]=p[I++];while(--S);if(I=0,f<C){S=f,C-=S;do N[a++]=p[I++];while(--S);I=a-_,P=N}}}else if(I+=f-S,S<C){C-=S;do N[a++]=p[I++];while(--S);I=a-_,P=N}for(;C>2;)N[a++]=P[I++],N[a++]=P[I++],N[a++]=P[I++],C-=3;C&&(N[a++]=P[I++],C>1&&(N[a++]=P[I++]))}else{I=a-_;do N[a++]=N[I++],N[a++]=N[I++],N[a++]=N[I++],C-=3;while(C>2);C&&(N[a++]=N[I++],C>1&&(N[a++]=N[I++]))}}else if(S&64){e.msg="invalid distance code",D.mode=PN;break e}else{b=g[(b&65535)+(h&(1<<S)-1)];continue n}break}}else if(S&64)if(S&32){D.mode=van;break e}else{e.msg="invalid literal/length code",D.mode=PN;break e}else{b=y[(b&65535)+(h&(1<<S)-1)];continue t}break}}while(r<i&&a<s);C=m>>3,r-=C,m-=C<<3,h&=(1<<m)-1,e.next_in=r,e.next_out=a,e.avail_in=r<i?5+(i-r):5-(r-i),e.avail_out=a<s?257+(s-a):257-(a-s),D.hold=h,D.bits=m};const s_=15,jSe=852,WSe=592,XSe=0,GH=1,qSe=2,ban=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]),Ean=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]),xan=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]),San=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]),Can=(t,e,n,r,i,a,o,s)=>{const l=s.bits;let u=0,d=0,f=0,p=0,h=0,m=0,y=0,g=0,v=0,E=0,b,S,C,_,I,P=null,R;const N=new Uint16Array(s_+1),D=new Uint16Array(s_+1);let F=null,j,U,H;for(u=0;u<=s_;u++)N[u]=0;for(d=0;d<r;d++)N[e[n+d]]++;for(h=l,p=s_;p>=1&&N[p]===0;p--);if(h>p&&(h=p),p===0)return i[a++]=1<<24|64<<16|0,i[a++]=1<<24|64<<16|0,s.bits=1,0;for(f=1;f<p&&N[f]===0;f++);for(h<f&&(h=f),g=1,u=1;u<=s_;u++)if(g<<=1,g-=N[u],g<0)return-1;if(g>0&&(t===XSe||p!==1))return-1;for(D[1]=0,u=1;u<s_;u++)D[u+1]=D[u]+N[u];for(d=0;d<r;d++)e[n+d]!==0&&(o[D[e[n+d]]++]=d);if(t===XSe?(P=F=o,R=20):t===GH?(P=ban,F=Ean,R=257):(P=xan,F=San,R=0),E=0,d=0,u=f,I=a,m=h,y=0,C=-1,v=1<<h,_=v-1,t===GH&&v>jSe||t===qSe&&v>WSe)return 1;for(;;){j=u-y,o[d]+1<R?(U=0,H=o[d]):o[d]>=R?(U=F[o[d]-R],H=P[o[d]-R]):(U=32+64,H=0),b=1<<u-y,S=1<<m,f=S;do S-=b,i[I+(E>>y)+S]=j<<24|U<<16|H|0;while(S!==0);for(b=1<<u-1;E&b;)b>>=1;if(b!==0?(E&=b-1,E+=b):E=0,d++,--N[u]===0){if(u===p)break;u=e[n+o[d]]}if(u>h&&(E&_)!==C){for(y===0&&(y=h),I+=f,m=u-y,g=1<<m;m+y<p&&(g-=N[m+y],!(g<=0));)m++,g<<=1;if(v+=1<<m,t===GH&&v>jSe||t===qSe&&v>WSe)return 1;C=E&_,i[C]=h<<24|m<<16|I-a|0}}return E!==0&&(i[I+E]=u-y<<24|64<<16|0),s.bits=h,0};var h5=Can;const _an=0,eGe=1,tGe=2,{Z_FINISH:YSe,Z_BLOCK:wan,Z_TREES:DN,Z_OK:rS,Z_STREAM_END:Tan,Z_NEED_DICT:Ian,Z_STREAM_ERROR:Um,Z_DATA_ERROR:nGe,Z_MEM_ERROR:rGe,Z_BUF_ERROR:Aan,Z_DEFLATED:ZSe}=zR,lU=16180,KSe=16181,JSe=16182,QSe=16183,eCe=16184,tCe=16185,nCe=16186,rCe=16187,iCe=16188,aCe=16189,v9=16190,Bv=16191,jH=16192,oCe=16193,WH=16194,sCe=16195,lCe=16196,cCe=16197,uCe=16198,kN=16199,UN=16200,dCe=16201,fCe=16202,pCe=16203,hCe=16204,mCe=16205,XH=16206,gCe=16207,vCe=16208,Oc=16209,iGe=16210,aGe=16211,Ran=852,Oan=592,Lan=15,Nan=Lan,yCe=t=>(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24);function Man(){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}const TS=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.mode<lU||e.mode>aGe?1:0},oGe=t=>{if(TS(t))return Um;const e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=e.wrap&1),e.mode=lU,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(Ran),e.distcode=e.distdyn=new Int32Array(Oan),e.sane=1,e.back=-1,rS},sGe=t=>{if(TS(t))return Um;const e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,oGe(t)},lGe=(t,e)=>{let n;if(TS(t))return Um;const r=t.state;return e<0?(n=0,e=-e):(n=(e>>4)+5,e<48&&(e&=15)),e&&(e<8||e>15)?Um:(r.window!==null&&r.wbits!==e&&(r.window=null),r.wrap=n,r.wbits=e,sGe(t))},cGe=(t,e)=>{if(!t)return Um;const n=new Man;t.state=n,n.strm=t,n.window=null,n.mode=lU;const r=lGe(t,e);return r!==rS&&(t.state=null),r},Pan=t=>cGe(t,Nan);let bCe=!0,qH,YH;const Dan=t=>{if(bCe){qH=new Int32Array(512),YH=new Int32Array(32);let e=0;for(;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(h5(eGe,t.lens,0,288,qH,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;h5(tGe,t.lens,0,32,YH,0,t.work,{bits:5}),bCe=!1}t.lencode=qH,t.lenbits=9,t.distcode=YH,t.distbits=5},uGe=(t,e,n,r)=>{let i;const a=t.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(e.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(e.subarray(n-r,n-r+i),a.wnext),r-=i,r?(a.window.set(e.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},kan=(t,e)=>{let n,r,i,a,o,s,l,u,d,f,p,h,m,y,g=0,v,E,b,S,C,_,I,P;const R=new Uint8Array(4);let N,D;const F=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(TS(t)||!t.output||!t.input&&t.avail_in!==0)return Um;n=t.state,n.mode===Bv&&(n.mode=jH),o=t.next_out,i=t.output,l=t.avail_out,a=t.next_in,r=t.input,s=t.avail_in,u=n.hold,d=n.bits,f=s,p=l,P=rS;e:for(;;)switch(n.mode){case lU:if(n.wrap===0){n.mode=jH;break}for(;d<16;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(n.wrap&2&&u===35615){n.wbits===0&&(n.wbits=15),n.check=0,R[0]=u&255,R[1]=u>>>8&255,n.check=Ld(n.check,R,2,0),u=0,d=0,n.mode=KSe;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((u&255)<<8)+(u>>8))%31){t.msg="incorrect header check",n.mode=Oc;break}if((u&15)!==ZSe){t.msg="unknown compression method",n.mode=Oc;break}if(u>>>=4,d-=4,I=(u&15)+8,n.wbits===0&&(n.wbits=I),I>15||I>n.wbits){t.msg="invalid window size",n.mode=Oc;break}n.dmax=1<<n.wbits,n.flags=0,t.adler=n.check=1,n.mode=u&512?aCe:Bv,u=0,d=0;break;case KSe:for(;d<16;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(n.flags=u,(n.flags&255)!==ZSe){t.msg="unknown compression method",n.mode=Oc;break}if(n.flags&57344){t.msg="unknown header flags set",n.mode=Oc;break}n.head&&(n.head.text=u>>8&1),n.flags&512&&n.wrap&4&&(R[0]=u&255,R[1]=u>>>8&255,n.check=Ld(n.check,R,2,0)),u=0,d=0,n.mode=JSe;case JSe:for(;d<32;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}n.head&&(n.head.time=u),n.flags&512&&n.wrap&4&&(R[0]=u&255,R[1]=u>>>8&255,R[2]=u>>>16&255,R[3]=u>>>24&255,n.check=Ld(n.check,R,4,0)),u=0,d=0,n.mode=QSe;case QSe:for(;d<16;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}n.head&&(n.head.xflags=u&255,n.head.os=u>>8),n.flags&512&&n.wrap&4&&(R[0]=u&255,R[1]=u>>>8&255,n.check=Ld(n.check,R,2,0)),u=0,d=0,n.mode=eCe;case eCe:if(n.flags&1024){for(;d<16;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}n.length=u,n.head&&(n.head.extra_len=u),n.flags&512&&n.wrap&4&&(R[0]=u&255,R[1]=u>>>8&255,n.check=Ld(n.check,R,2,0)),u=0,d=0}else n.head&&(n.head.extra=null);n.mode=tCe;case tCe:if(n.flags&1024&&(h=n.length,h>s&&(h=s),h&&(n.head&&(I=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+h),I)),n.flags&512&&n.wrap&4&&(n.check=Ld(n.check,r,h,a)),s-=h,a+=h,n.length-=h),n.length))break e;n.length=0,n.mode=nCe;case nCe:if(n.flags&2048){if(s===0)break e;h=0;do I=r[a+h++],n.head&&I&&n.length<65536&&(n.head.name+=String.fromCharCode(I));while(I&&h<s);if(n.flags&512&&n.wrap&4&&(n.check=Ld(n.check,r,h,a)),s-=h,a+=h,I)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=rCe;case rCe:if(n.flags&4096){if(s===0)break e;h=0;do I=r[a+h++],n.head&&I&&n.length<65536&&(n.head.comment+=String.fromCharCode(I));while(I&&h<s);if(n.flags&512&&n.wrap&4&&(n.check=Ld(n.check,r,h,a)),s-=h,a+=h,I)break e}else n.head&&(n.head.comment=null);n.mode=iCe;case iCe:if(n.flags&512){for(;d<16;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(n.wrap&4&&u!==(n.check&65535)){t.msg="header crc mismatch",n.mode=Oc;break}u=0,d=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=Bv;break;case aCe:for(;d<32;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}t.adler=n.check=yCe(u),u=0,d=0,n.mode=v9;case v9:if(n.havedict===0)return t.next_out=o,t.avail_out=l,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=d,Ian;t.adler=n.check=1,n.mode=Bv;case Bv:if(e===wan||e===DN)break e;case jH:if(n.last){u>>>=d&7,d-=d&7,n.mode=XH;break}for(;d<3;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}switch(n.last=u&1,u>>>=1,d-=1,u&3){case 0:n.mode=oCe;break;case 1:if(Dan(n),n.mode=kN,e===DN){u>>>=2,d-=2;break e}break;case 2:n.mode=lCe;break;case 3:t.msg="invalid block type",n.mode=Oc}u>>>=2,d-=2;break;case oCe:for(u>>>=d&7,d-=d&7;d<32;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if((u&65535)!==(u>>>16^65535)){t.msg="invalid stored block lengths",n.mode=Oc;break}if(n.length=u&65535,u=0,d=0,n.mode=WH,e===DN)break e;case WH:n.mode=sCe;case sCe:if(h=n.length,h){if(h>s&&(h=s),h>l&&(h=l),h===0)break e;i.set(r.subarray(a,a+h),o),s-=h,a+=h,l-=h,o+=h,n.length-=h;break}n.mode=Bv;break;case lCe:for(;d<14;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(n.nlen=(u&31)+257,u>>>=5,d-=5,n.ndist=(u&31)+1,u>>>=5,d-=5,n.ncode=(u&15)+4,u>>>=4,d-=4,n.nlen>286||n.ndist>30){t.msg="too many length or distance symbols",n.mode=Oc;break}n.have=0,n.mode=cCe;case cCe:for(;n.have<n.ncode;){for(;d<3;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}n.lens[F[n.have++]]=u&7,u>>>=3,d-=3}for(;n.have<19;)n.lens[F[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,N={bits:n.lenbits},P=h5(_an,n.lens,0,19,n.lencode,0,n.work,N),n.lenbits=N.bits,P){t.msg="invalid code lengths set",n.mode=Oc;break}n.have=0,n.mode=uCe;case uCe:for(;n.have<n.nlen+n.ndist;){for(;g=n.lencode[u&(1<<n.lenbits)-1],v=g>>>24,E=g>>>16&255,b=g&65535,!(v<=d);){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(b<16)u>>>=v,d-=v,n.lens[n.have++]=b;else{if(b===16){for(D=v+2;d<D;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(u>>>=v,d-=v,n.have===0){t.msg="invalid bit length repeat",n.mode=Oc;break}I=n.lens[n.have-1],h=3+(u&3),u>>>=2,d-=2}else if(b===17){for(D=v+3;d<D;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}u>>>=v,d-=v,I=0,h=3+(u&7),u>>>=3,d-=3}else{for(D=v+7;d<D;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}u>>>=v,d-=v,I=0,h=11+(u&127),u>>>=7,d-=7}if(n.have+h>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=Oc;break}for(;h--;)n.lens[n.have++]=I}}if(n.mode===Oc)break;if(n.lens[256]===0){t.msg="invalid code -- missing end-of-block",n.mode=Oc;break}if(n.lenbits=9,N={bits:n.lenbits},P=h5(eGe,n.lens,0,n.nlen,n.lencode,0,n.work,N),n.lenbits=N.bits,P){t.msg="invalid literal/lengths set",n.mode=Oc;break}if(n.distbits=6,n.distcode=n.distdyn,N={bits:n.distbits},P=h5(tGe,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,N),n.distbits=N.bits,P){t.msg="invalid distances set",n.mode=Oc;break}if(n.mode=kN,e===DN)break e;case kN:n.mode=UN;case UN:if(s>=6&&l>=258){t.next_out=o,t.avail_out=l,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=d,yan(t,p),o=t.next_out,i=t.output,l=t.avail_out,a=t.next_in,r=t.input,s=t.avail_in,u=n.hold,d=n.bits,n.mode===Bv&&(n.back=-1);break}for(n.back=0;g=n.lencode[u&(1<<n.lenbits)-1],v=g>>>24,E=g>>>16&255,b=g&65535,!(v<=d);){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(E&&!(E&240)){for(S=v,C=E,_=b;g=n.lencode[_+((u&(1<<S+C)-1)>>S)],v=g>>>24,E=g>>>16&255,b=g&65535,!(S+v<=d);){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}u>>>=S,d-=S,n.back+=S}if(u>>>=v,d-=v,n.back+=v,n.length=b,E===0){n.mode=mCe;break}if(E&32){n.back=-1,n.mode=Bv;break}if(E&64){t.msg="invalid literal/length code",n.mode=Oc;break}n.extra=E&15,n.mode=dCe;case dCe:if(n.extra){for(D=n.extra;d<D;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}n.length+=u&(1<<n.extra)-1,u>>>=n.extra,d-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=fCe;case fCe:for(;g=n.distcode[u&(1<<n.distbits)-1],v=g>>>24,E=g>>>16&255,b=g&65535,!(v<=d);){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(!(E&240)){for(S=v,C=E,_=b;g=n.distcode[_+((u&(1<<S+C)-1)>>S)],v=g>>>24,E=g>>>16&255,b=g&65535,!(S+v<=d);){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}u>>>=S,d-=S,n.back+=S}if(u>>>=v,d-=v,n.back+=v,E&64){t.msg="invalid distance code",n.mode=Oc;break}n.offset=b,n.extra=E&15,n.mode=pCe;case pCe:if(n.extra){for(D=n.extra;d<D;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}n.offset+=u&(1<<n.extra)-1,u>>>=n.extra,d-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=Oc;break}n.mode=hCe;case hCe:if(l===0)break e;if(h=p-l,n.offset>h){if(h=n.offset-h,h>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=Oc;break}h>n.wnext?(h-=n.wnext,m=n.wsize-h):m=n.wnext-h,h>n.length&&(h=n.length),y=n.window}else y=i,m=o-n.offset,h=n.length;h>l&&(h=l),l-=h,n.length-=h;do i[o++]=y[m++];while(--h);n.length===0&&(n.mode=UN);break;case mCe:if(l===0)break e;i[o++]=n.length,l--,n.mode=UN;break;case XH:if(n.wrap){for(;d<32;){if(s===0)break e;s--,u|=r[a++]<<d,d+=8}if(p-=l,t.total_out+=p,n.total+=p,n.wrap&4&&p&&(t.adler=n.check=n.flags?Ld(n.check,i,p,o-p):M6(n.check,i,p,o-p)),p=l,n.wrap&4&&(n.flags?u:yCe(u))!==n.check){t.msg="incorrect data check",n.mode=Oc;break}u=0,d=0}n.mode=gCe;case gCe:if(n.wrap&&n.flags){for(;d<32;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(n.wrap&4&&u!==(n.total&4294967295)){t.msg="incorrect length check",n.mode=Oc;break}u=0,d=0}n.mode=vCe;case vCe:P=Tan;break e;case Oc:P=nGe;break e;case iGe:return rGe;case aGe:default:return Um}return t.next_out=o,t.avail_out=l,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=d,(n.wsize||p!==t.avail_out&&n.mode<Oc&&(n.mode<XH||e!==YSe))&&uGe(t,t.output,t.next_out,p-t.avail_out),f-=t.avail_in,p-=t.avail_out,t.total_in+=f,t.total_out+=p,n.total+=p,n.wrap&4&&p&&(t.adler=n.check=n.flags?Ld(n.check,i,p,t.next_out-p):M6(n.check,i,p,t.next_out-p)),t.data_type=n.bits+(n.last?64:0)+(n.mode===Bv?128:0)+(n.mode===kN||n.mode===WH?256:0),(f===0&&p===0||e===YSe)&&P===rS&&(P=Aan),P},Uan=t=>{if(TS(t))return Um;let e=t.state;return e.window&&(e.window=null),t.state=null,rS},Fan=(t,e)=>{if(TS(t))return Um;const n=t.state;return n.wrap&2?(n.head=e,e.done=!1,rS):Um},Ban=(t,e)=>{const n=e.length;let r,i,a;return TS(t)||(r=t.state,r.wrap!==0&&r.mode!==v9)?Um:r.mode===v9&&(i=1,i=M6(i,e,n,0),i!==r.check)?nGe:(a=uGe(t,e,n,n),a?(r.mode=iGe,rGe):(r.havedict=1,rS))};var $an=sGe,Van=lGe,zan=oGe,Han=Pan,Gan=cGe,jan=kan,Wan=Uan,Xan=Fan,qan=Ban,Yan="pako inflate (from Nodeca project)",t1={inflateReset:$an,inflateReset2:Van,inflateResetKeep:zan,inflateInit:Han,inflateInit2:Gan,inflate:jan,inflateEnd:Wan,inflateGetHeader:Xan,inflateSetDictionary:qan,inflateInfo:Yan};function Zan(){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 Kan=Zan;const dGe=Object.prototype.toString,{Z_NO_FLUSH:Jan,Z_FINISH:Qan,Z_OK:k6,Z_STREAM_END:ZH,Z_NEED_DICT:KH,Z_STREAM_ERROR:eon,Z_DATA_ERROR:ECe,Z_MEM_ERROR:ton}=zR;function GR(t){this.options=sU.assign({chunkSize:1024*64,windowBits:15,to:""},t||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(t&&t.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15||(e.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new JHe,this.strm.avail_out=0;let n=t1.inflateInit2(this.strm,e.windowBits);if(n!==k6)throw new Error(A3[n]);if(this.header=new Kan,t1.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=D6.string2buf(e.dictionary):dGe.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(n=t1.inflateSetDictionary(this.strm,e.dictionary),n!==k6)))throw new Error(A3[n])}GR.prototype.push=function(t,e){const n=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let a,o,s;if(this.ended)return!1;for(e===~~e?o=e:o=e===!0?Qan:Jan,dGe.call(t)==="[object ArrayBuffer]"?n.input=new Uint8Array(t):n.input=t,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=t1.inflate(n,o),a===KH&&i&&(a=t1.inflateSetDictionary(n,i),a===k6?a=t1.inflate(n,o):a===ECe&&(a=KH));n.avail_in>0&&a===ZH&&n.state.wrap>0&&t[n.next_in]!==0;)t1.inflateReset(n),a=t1.inflate(n,o);switch(a){case eon:case ECe:case KH:case ton:return this.onEnd(a),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(n.avail_out===0||a===ZH))if(this.options.to==="string"){let l=D6.utf8border(n.output,n.next_out),u=n.next_out-l,d=D6.buf2string(n.output,l);n.next_out=u,n.avail_out=r-u,u&&n.output.set(n.output.subarray(l,l+u),0),this.onData(d)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(a===k6&&s===0)){if(a===ZH)return a=t1.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(n.avail_in===0)break}}return!0};GR.prototype.onData=function(t){this.chunks.push(t)};GR.prototype.onEnd=function(t){t===k6&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=sU.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function $oe(t,e){const n=new GR(e);if(n.push(t),n.err)throw n.msg||A3[n.err];return n.result}function non(t,e){return e=e||{},e.raw=!0,$oe(t,e)}var ron=GR,ion=$oe,aon=non,oon=$oe,son=zR,lon={Inflate:ron,inflate:ion,inflateRaw:aon,ungzip:oon,constants:son};const{Inflate:f5n,inflate:con,inflateRaw:p5n,ungzip:h5n}=lon;var fGe=con;function uon(t){const e=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),n=fGe(e);return new DataView(n.buffer,n.byteOffset,n.byteLength)}const don={ignoreImageData:!1};class pGe extends aU{constructor(e){super(e),this._nextIFD=0}get isMultiPage(){let e=0;for(this.decodeHeader();this._nextIFD;)if(e++,this.decodeIFD({ignoreImageData:!0},!0),e===2)return!0;if(e===1)return!1;throw Xv("ifdCount",e)}get pageCount(){let e=0;for(this.decodeHeader();this._nextIFD;)e++,this.decodeIFD({ignoreImageData:!0},!0);if(e>0)return e;throw Xv("ifdCount",e)}decode(e={}){const{pages:n}=e;gon(n);const r=n?Math.max(...n):1/0;e={...don,...e};const i=[];this.decodeHeader();let a=0;for(;this._nextIFD;){if(n){if(n.includes(a)?i.push(this.decodeIFD(e,!0)):this.decodeIFD({ignoreImageData:!0},!0),a===r)break}else i.push(this.decodeIFD(e,!0));a++}if(a<r&&r!==1/0)throw new RangeError(`Index ${r} is out of bounds. The stack only contains ${a} images.`);return i}decodeHeader(){const e=this.readUint16();if(e===18761)this.setLittleEndian();else if(e===19789)this.setBigEndian();else throw new Error(`invalid byte order: 0x${e.toString(16)}`);if(this.readUint16()!==42)throw new Error("not a TIFF file");this._nextIFD=this.readUint32()}decodeIFD(e,n){this.seek(this._nextIFD);let r;if(n)r=new PSe;else{if(!e.kind)throw new Error("kind is missing");r=new RHe(e.kind)}const i=this.readUint16();for(let a=0;a<i;a++)this.decodeIFDEntry(r);if(!e.ignoreImageData){if(!(r instanceof PSe))throw new Error("must be a tiff ifd");this.decodeImageData(r)}return this._nextIFD=this.readUint32(),r}decodeIFDEntry(e){const n=this.offset,r=this.readUint16(),i=this.readUint16(),a=this.readUint32();if(i<1||i>12){this.skip(4);return}yrn(i,a)>4&&this.seek(this.readUint32());const s=brn(this,i,a);if(e.fields.set(r,s),r===34665||r===34853){const l=this.offset;let u="exif";r===34665?u="exif":r===34853&&(u="gps"),this._nextIFD=s,e[u]=this.decodeIFD({kind:u,ignoreImageData:!0},!1),this.offset=l}this.seek(n),this.skip(12)}decodeImageData(e){const n=e.orientation;if(n&&n!==1)throw Xv("orientation",n);switch(e.type){case 0:case 1:case 2:case 3:this.readStripData(e);break;default:throw Xv("image type",e.type)}if(this.applyPredictor(e),this.convertAlpha(e),e.type===0){const i=2**e.bitsPerSample-1;for(let a=0;a<e.data.length;a++)e.data[a]=i-e.data[a]}}readStripData(e){const n=e.width,r=e.height,i=e.bitsPerSample,a=e.sampleFormat,o=n*r*e.samplesPerPixel,s=fon(o,i,a),u=e.rowsPerStrip*n*e.samplesPerPixel,d=e.stripOffsets,f=e.stripByteCounts||frn(e);let p=o,h=0;for(let m=0;m<d.length;m++){const y=new DataView(this.buffer,this.byteOffset+d[m],f[m]),g=p>u?u:p;p-=g;let v=y;switch(e.compression){case 1:break;case 5:{v=Drn(y);break}case 8:{v=uon(y);break}case 2:throw Xv("Compression","CCITT Group 3");case 32773:throw Xv("Compression","PackBits");default:throw Xv("Compression",e.compression)}h=this.fillUncompressed(i,a,s,v,h,g)}e.data=s}fillUncompressed(e,n,r,i,a,o){if(e===8)return pon(r,i,a,o);if(e===16)return hon(r,i,a,o,this.isLittleEndian());if(e===32&&n===3)return mon(r,i,a,o,this.isLittleEndian());throw Xv("bitDepth",e)}applyPredictor(e){const n=e.bitsPerSample;switch(e.predictor){case 1:break;case 2:{if(n===8)prn(e.data,e.width,e.components);else if(n===16)hrn(e.data,e.width,e.components);else throw new Error(`Horizontal differencing is only supported for images with a bit depth of ${n}`);break}default:throw new Error(`invalid predictor: ${e.predictor}`)}}convertAlpha(e){if(e.alpha&&e.associatedAlpha){const{data:n,components:r,maxSampleValue:i}=e;for(let a=0;a<n.length;a+=r){const o=n[a+r-1];for(let s=0;s<r-1;s++)n[a+s]=Math.round(n[a+s]*i/o)}}}}function fon(t,e,n){if(e===8)return new Uint8Array(t);if(e===16)return new Uint16Array(t);if(e===32&&n===3)return new Float32Array(t);throw Xv("bit depth / sample format",`${e} / ${n}`)}function pon(t,e,n,r){for(let i=0;i<r;i++)t[n++]=e.getUint8(i);return n}function hon(t,e,n,r,i){for(let a=0;a<r*2;a+=2)t[n++]=e.getUint16(a,i);return n}function mon(t,e,n,r,i){for(let a=0;a<r*4;a+=4)t[n++]=e.getFloat32(a,i);return n}function Xv(t,e){return new Error(`Unsupported ${t}: ${e}`)}function gon(t){if(t){for(const e of t)if(e<0||!Number.isInteger(e))throw new RangeError(`Index ${e} is invalid. Must be a positive integer.`)}}function JH(t,e){return new pGe(t).decode(e)}function xCe(t){return new pGe(t).pageCount}function pf(t){return(e,...n)=>von(t,e,n)}function NT(t,e){return pf(hGe(t,e).get)}const{apply:von,construct:m5n,defineProperty:g5n,get:v5n,getOwnPropertyDescriptor:hGe,getPrototypeOf:Voe,has:y5n,ownKeys:yon,set:b5n,setPrototypeOf:E5n}=Reflect,{iterator:jR,species:x5n,toStringTag:bon,for:S5n}=Symbol,Eon=Object,{create:zoe,defineProperty:xon,freeze:C5n,is:_5n}=Eon,Son=Array,Con=Son.prototype,mGe=Con[jR],_on=pf(mGe),gGe=ArrayBuffer,won=gGe.prototype;NT(won,"byteLength");const SCe=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:null;SCe&&NT(SCe.prototype,"byteLength");const vGe=Voe(Uint8Array);vGe.from;const Cp=vGe.prototype;Cp[jR];pf(Cp.keys);pf(Cp.values);pf(Cp.entries);pf(Cp.set);pf(Cp.reverse);pf(Cp.fill);pf(Cp.copyWithin);pf(Cp.sort);pf(Cp.slice);pf(Cp.subarray);NT(Cp,"buffer");NT(Cp,"byteOffset");NT(Cp,"length");NT(Cp,bon);const Ton=Uint8Array,yGe=Uint16Array,Hoe=Uint32Array,Ion=Float32Array,U6=Voe([][jR]()),bGe=pf(U6.next),Aon=pf(function*(){}().next),Ron=Voe(U6),Oon=DataView.prototype,Lon=pf(Oon.getUint16),Goe=WeakMap,EGe=Goe.prototype,xGe=pf(EGe.get),Non=pf(EGe.set),SGe=new Goe,Mon=zoe(null,{next:{value:function(){const e=xGe(SGe,this);return bGe(e)}},[jR]:{value:function(){return this}}});function Pon(t){if(t[jR]===mGe&&U6.next===bGe)return t;const e=zoe(Mon);return Non(SGe,e,_on(t)),e}const Don=new Goe,kon=zoe(Ron,{next:{value:function(){const e=xGe(Don,this);return Aon(e)},writable:!0,configurable:!0}});for(const t of yon(U6))t!=="next"&&xon(kon,t,hGe(U6,t));const CGe=new gGe(4),Uon=new Ion(CGe),Fon=new Hoe(CGe),T0=new yGe(512),I0=new Ton(512);for(let t=0;t<256;++t){const e=t-127;e<-24?(T0[t]=0,T0[t|256]=32768,I0[t]=24,I0[t|256]=24):e<-14?(T0[t]=1024>>-e-14,T0[t|256]=1024>>-e-14|32768,I0[t]=-e-1,I0[t|256]=-e-1):e<=15?(T0[t]=e+15<<10,T0[t|256]=e+15<<10|32768,I0[t]=13,I0[t|256]=13):e<128?(T0[t]=31744,T0[t|256]=64512,I0[t]=24,I0[t|256]=24):(T0[t]=31744,T0[t|256]=64512,I0[t]=13,I0[t|256]=13)}const joe=new Hoe(2048);for(let t=1;t<1024;++t){let e=t<<13,n=0;for(;!(e&8388608);)e<<=1,n-=8388608;e&=-8388609,n+=947912704,joe[t]=e|n}for(let t=1024;t<2048;++t)joe[t]=939524096+(t-1024<<13);const MT=new Hoe(64);for(let t=1;t<31;++t)MT[t]=t<<23;MT[31]=1199570944;MT[32]=2147483648;for(let t=33;t<63;++t)MT[t]=2147483648+(t-32<<23);MT[63]=3347054592;const _Ge=new yGe(64);for(let t=1;t<64;++t)t!==32&&(_Ge[t]=1024);function Bon(t){const e=t>>10;return Fon[0]=joe[_Ge[e]+(t&1023)]+MT[e],Uon[0]}function wGe(t,e,...n){return Bon(Lon(t,e,...Pon(n)))}var Vw={},$on={get exports(){return Vw},set exports(t){Vw=t}};function TGe(t,e,n){const r=n&&n.debug||!1;r&&console.log("[xml-utils] getting "+e+" in "+t);const i=typeof t=="object"?t.outer:t,a=i.slice(0,i.indexOf(">")+1),o=['"',"'"];for(let s=0;s<o.length;s++){const l=o[s],u=e+"\\="+l+"([^"+l+"]*)"+l;r&&console.log("[xml-utils] pattern:",u);const f=new RegExp(u).exec(a);if(r&&console.log("[xml-utils] match:",f),f)return f[1]}}$on.exports=TGe;Vw.default=TGe;var y9={},Von={get exports(){return y9},set exports(t){y9=t}},b9={},zon={get exports(){return b9},set exports(t){b9=t}},E9={},Hon={get exports(){return E9},set exports(t){E9=t}};function IGe(t,e,n){const i=new RegExp(e).exec(t.slice(n));return i?n+i.index:-1}Hon.exports=IGe;E9.default=IGe;var x9={},Gon={get exports(){return x9},set exports(t){x9=t}};function AGe(t,e,n){const i=new RegExp(e).exec(t.slice(n));return i?n+i.index+i[0].length-1:-1}Gon.exports=AGe;x9.default=AGe;var S9={},jon={get exports(){return S9},set exports(t){S9=t}};function RGe(t,e){const n=new RegExp(e,"g"),r=t.match(n);return r?r.length:0}jon.exports=RGe;S9.default=RGe;const Won=E9,QH=x9,CCe=S9;function OGe(t,e,n){const r=n&&n.debug||!1,i=!(n&&typeof n.nested===!1),a=n&&n.startIndex||0;r&&console.log("[xml-utils] starting findTagByName with",e," and ",n);const o=Won(t,`<${e}[
|
|
4507
4507
|
>/]`,a);if(r&&console.log("[xml-utils] start:",o),o===-1)return;const s=t.slice(o+e.length);let l=QH(s,"^[^<]*[ /]>",0);const u=l!==-1&&s[l-1]==="/";if(r&&console.log("[xml-utils] selfClosing:",u),u===!1)if(i){let h=0,m=1,y=0;for(;(l=QH(s,"[ /]"+e+">",h))!==-1;){const g=s.substring(h,l+1);if(m+=CCe(g,"<"+e+`[
|
|
4508
|
-
>]`),y+=CCe(g,"</"+e+">"),y>=m)break;h=l}}else l=QH(s,"[ /]"+e+">",0);const d=o+e.length+l+1;if(r&&console.log("[xml-utils] end:",d),d===-1)return;const f=t.slice(o,d);let p;return u?p=null:p=f.slice(f.indexOf(">")+1,f.lastIndexOf("<")),{inner:p,outer:f,start:o,end:d}}zon.exports=OGe;b9.default=OGe;const Xon=b9;function LGe(t,e,n){const r=[],i=n&&n.debug||!1,a=n&&typeof n.nested=="boolean"?n.nested:!0;let o=n&&n.startIndex||0,s;for(;s=Xon(t,e,{debug:i,startIndex:o});)a?o=s.start+1+e.length:o=s.end,r.push(s);return i&&console.log("findTagsByName found",r.length,"tags"),r}Von.exports=LGe;y9.default=LGe;const m5={315:"Artist",258:"BitsPerSample",265:"CellLength",264:"CellWidth",320:"ColorMap",259:"Compression",33432:"Copyright",306:"DateTime",338:"ExtraSamples",266:"FillOrder",289:"FreeByteCounts",288:"FreeOffsets",291:"GrayResponseCurve",290:"GrayResponseUnit",316:"HostComputer",270:"ImageDescription",257:"ImageLength",256:"ImageWidth",271:"Make",281:"MaxSampleValue",280:"MinSampleValue",272:"Model",254:"NewSubfileType",274:"Orientation",262:"PhotometricInterpretation",284:"PlanarConfiguration",296:"ResolutionUnit",278:"RowsPerStrip",277:"SamplesPerPixel",305:"Software",279:"StripByteCounts",273:"StripOffsets",255:"SubfileType",263:"Threshholding",282:"XResolution",283:"YResolution",326:"BadFaxLines",327:"CleanFaxData",343:"ClipPath",328:"ConsecutiveBadFaxLines",433:"Decode",434:"DefaultImageColor",269:"DocumentName",336:"DotRange",321:"HalftoneHints",346:"Indexed",347:"JPEGTables",285:"PageName",297:"PageNumber",317:"Predictor",319:"PrimaryChromaticities",532:"ReferenceBlackWhite",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",559:"StripRowCounts",330:"SubIFDs",292:"T4Options",293:"T6Options",325:"TileByteCounts",323:"TileLength",324:"TileOffsets",322:"TileWidth",301:"TransferFunction",318:"WhitePoint",344:"XClipPathUnits",286:"XPosition",529:"YCbCrCoefficients",531:"YCbCrPositioning",530:"YCbCrSubSampling",345:"YClipPathUnits",287:"YPosition",37378:"ApertureValue",40961:"ColorSpace",36868:"DateTimeDigitized",36867:"DateTimeOriginal",34665:"Exif IFD",36864:"ExifVersion",33434:"ExposureTime",41728:"FileSource",37385:"Flash",40960:"FlashpixVersion",33437:"FNumber",42016:"ImageUniqueID",37384:"LightSource",37500:"MakerNote",37377:"ShutterSpeedValue",37510:"UserComment",33723:"IPTC",34675:"ICC Profile",700:"XMP",42112:"GDAL_METADATA",42113:"GDAL_NODATA",34377:"Photoshop",33550:"ModelPixelScale",33922:"ModelTiepoint",34264:"ModelTransformation",34735:"GeoKeyDirectory",34736:"GeoDoubleParams",34737:"GeoAsciiParams",50674:"LercParameters"},D0={};for(const t in m5)m5.hasOwnProperty(t)&&(D0[m5[t]]=parseInt(t,10));const qon=[D0.BitsPerSample,D0.ExtraSamples,D0.SampleFormat,D0.StripByteCounts,D0.StripOffsets,D0.StripRowCounts,D0.TileByteCounts,D0.TileOffsets,D0.SubIFDs],eG={1:"BYTE",2:"ASCII",3:"SHORT",4:"LONG",5:"RATIONAL",6:"SBYTE",7:"UNDEFINED",8:"SSHORT",9:"SLONG",10:"SRATIONAL",11:"FLOAT",12:"DOUBLE",13:"IFD",16:"LONG8",17:"SLONG8",18:"IFD8"},Ho={};for(const t in eG)eG.hasOwnProperty(t)&&(Ho[eG[t]]=parseInt(t,10));const ah={WhiteIsZero:0,BlackIsZero:1,RGB:2,Palette:3,TransparencyMask:4,CMYK:5,YCbCr:6,CIELab:8,ICCLab:9},Yon={Unspecified:0,Assocalpha:1,Unassalpha:2},Zon={Version:0,AddCompression:1},Kon={None:0,Deflate:1,Zstandard:2},Jon={1024:"GTModelTypeGeoKey",1025:"GTRasterTypeGeoKey",1026:"GTCitationGeoKey",2048:"GeographicTypeGeoKey",2049:"GeogCitationGeoKey",2050:"GeogGeodeticDatumGeoKey",2051:"GeogPrimeMeridianGeoKey",2052:"GeogLinearUnitsGeoKey",2053:"GeogLinearUnitSizeGeoKey",2054:"GeogAngularUnitsGeoKey",2055:"GeogAngularUnitSizeGeoKey",2056:"GeogEllipsoidGeoKey",2057:"GeogSemiMajorAxisGeoKey",2058:"GeogSemiMinorAxisGeoKey",2059:"GeogInvFlatteningGeoKey",2060:"GeogAzimuthUnitsGeoKey",2061:"GeogPrimeMeridianLongGeoKey",2062:"GeogTOWGS84GeoKey",3072:"ProjectedCSTypeGeoKey",3073:"PCSCitationGeoKey",3074:"ProjectionGeoKey",3075:"ProjCoordTransGeoKey",3076:"ProjLinearUnitsGeoKey",3077:"ProjLinearUnitSizeGeoKey",3078:"ProjStdParallel1GeoKey",3079:"ProjStdParallel2GeoKey",3080:"ProjNatOriginLongGeoKey",3081:"ProjNatOriginLatGeoKey",3082:"ProjFalseEastingGeoKey",3083:"ProjFalseNorthingGeoKey",3084:"ProjFalseOriginLongGeoKey",3085:"ProjFalseOriginLatGeoKey",3086:"ProjFalseOriginEastingGeoKey",3087:"ProjFalseOriginNorthingGeoKey",3088:"ProjCenterLongGeoKey",3089:"ProjCenterLatGeoKey",3090:"ProjCenterEastingGeoKey",3091:"ProjCenterNorthingGeoKey",3092:"ProjScaleAtNatOriginGeoKey",3093:"ProjScaleAtCenterGeoKey",3094:"ProjAzimuthAngleGeoKey",3095:"ProjStraightVertPoleLongGeoKey",3096:"ProjRectifiedGridAngleGeoKey",4096:"VerticalCSTypeGeoKey",4097:"VerticalCitationGeoKey",4098:"VerticalDatumGeoKey",4099:"VerticalUnitsGeoKey"};function Qon(t,e){const{width:n,height:r}=t,i=new Uint8Array(n*r*3);let a;for(let o=0,s=0;o<t.length;++o,s+=3)a=256-t[o]/e*256,i[s]=a,i[s+1]=a,i[s+2]=a;return i}function esn(t,e){const{width:n,height:r}=t,i=new Uint8Array(n*r*3);let a;for(let o=0,s=0;o<t.length;++o,s+=3)a=t[o]/e*256,i[s]=a,i[s+1]=a,i[s+2]=a;return i}function tsn(t,e){const{width:n,height:r}=t,i=new Uint8Array(n*r*3),a=e.length/3,o=e.length/3*2;for(let s=0,l=0;s<t.length;++s,l+=3){const u=t[s];i[l]=e[u]/65536*256,i[l+1]=e[u+a]/65536*256,i[l+2]=e[u+o]/65536*256}return i}function nsn(t){const{width:e,height:n}=t,r=new Uint8Array(e*n*3);for(let i=0,a=0;i<t.length;i+=4,a+=3){const o=t[i],s=t[i+1],l=t[i+2],u=t[i+3];r[a]=255*((255-o)/256)*((255-u)/256),r[a+1]=255*((255-s)/256)*((255-u)/256),r[a+2]=255*((255-l)/256)*((255-u)/256)}return r}function rsn(t){const{width:e,height:n}=t,r=new Uint8ClampedArray(e*n*3);for(let i=0,a=0;i<t.length;i+=3,a+=3){const o=t[i],s=t[i+1],l=t[i+2];r[a]=o+1.402*(l-128),r[a+1]=o-.34414*(s-128)-.71414*(l-128),r[a+2]=o+1.772*(s-128)}return r}const isn=.95047,asn=1,osn=1.08883;function ssn(t){const{width:e,height:n}=t,r=new Uint8Array(e*n*3);for(let i=0,a=0;i<t.length;i+=3,a+=3){const o=t[i+0],s=t[i+1]<<24>>24,l=t[i+2]<<24>>24;let u=(o+16)/116,d=s/500+u,f=u-l/200,p,h,m;d=isn*(d*d*d>.008856?d*d*d:(d-16/116)/7.787),u=asn*(u*u*u>.008856?u*u*u:(u-16/116)/7.787),f=osn*(f*f*f>.008856?f*f*f:(f-16/116)/7.787),p=d*3.2406+u*-1.5372+f*-.4986,h=d*-.9689+u*1.8758+f*.0415,m=d*.0557+u*-.204+f*1.057,p=p>.0031308?1.055*p**(1/2.4)-.055:12.92*p,h=h>.0031308?1.055*h**(1/2.4)-.055:12.92*h,m=m>.0031308?1.055*m**(1/2.4)-.055:12.92*m,r[a]=Math.max(0,Math.min(1,p))*255,r[a+1]=Math.max(0,Math.min(1,h))*255,r[a+2]=Math.max(0,Math.min(1,m))*255}return r}const NGe=new Map;function e2(t,e){Array.isArray(t)||(t=[t]),t.forEach(n=>NGe.set(n,e))}async function lsn(t){const e=NGe.get(t.Compression);if(!e)throw new Error(`Unknown compression method identifier: ${t.Compression}`);const n=await e();return new n(t)}e2([void 0,1],()=>Promise.resolve().then(()=>require("./raw-9c0f4034.js")).then(t=>t.default));e2(5,()=>Promise.resolve().then(()=>require("./lzw-f00e8c8c.js")).then(t=>t.default));e2(6,()=>{throw new Error("old style JPEG compression is not supported.")});e2(7,()=>Promise.resolve().then(()=>require("./jpeg-f3c7cefc.js")).then(t=>t.default));e2([8,32946],()=>Promise.resolve().then(()=>require("./deflate-e7b5c31c.js")).then(t=>t.default));e2(32773,()=>Promise.resolve().then(()=>require("./packbits-58fd9c05.js")).then(t=>t.default));e2(34887,()=>Promise.resolve().then(()=>require("./lerc-2bab883c.js")).then(async t=>(await t.zstd.init(),t)).then(t=>t.default));e2(50001,()=>Promise.resolve().then(()=>require("./webimage-bc81928d.js")).then(t=>t.default));function cU(t,e,n,r=1){return new(Object.getPrototypeOf(t)).constructor(e*n*r)}function csn(t,e,n,r,i){const a=e/r,o=n/i;return t.map(s=>{const l=cU(s,r,i);for(let u=0;u<i;++u){const d=Math.min(Math.round(o*u),n-1);for(let f=0;f<r;++f){const p=Math.min(Math.round(a*f),e-1),h=s[d*e+p];l[u*r+f]=h}}return l})}function zw(t,e,n){return(1-n)*t+n*e}function usn(t,e,n,r,i){const a=e/r,o=n/i;return t.map(s=>{const l=cU(s,r,i);for(let u=0;u<i;++u){const d=o*u,f=Math.floor(d),p=Math.min(Math.ceil(d),n-1);for(let h=0;h<r;++h){const m=a*h,y=m%1,g=Math.floor(m),v=Math.min(Math.ceil(m),e-1),E=s[f*e+g],b=s[f*e+v],S=s[p*e+g],C=s[p*e+v],_=zw(zw(E,b,y),zw(S,C,y),d%1);l[u*r+h]=_}}return l})}function dsn(t,e,n,r,i,a="nearest"){switch(a.toLowerCase()){case"nearest":return csn(t,e,n,r,i);case"bilinear":case"linear":return usn(t,e,n,r,i);default:throw new Error(`Unsupported resampling method: '${a}'`)}}function fsn(t,e,n,r,i,a){const o=e/r,s=n/i,l=cU(t,r,i,a);for(let u=0;u<i;++u){const d=Math.min(Math.round(s*u),n-1);for(let f=0;f<r;++f){const p=Math.min(Math.round(o*f),e-1);for(let h=0;h<a;++h){const m=t[d*e*a+p*a+h];l[u*r*a+f*a+h]=m}}}return l}function psn(t,e,n,r,i,a){const o=e/r,s=n/i,l=cU(t,r,i,a);for(let u=0;u<i;++u){const d=s*u,f=Math.floor(d),p=Math.min(Math.ceil(d),n-1);for(let h=0;h<r;++h){const m=o*h,y=m%1,g=Math.floor(m),v=Math.min(Math.ceil(m),e-1);for(let E=0;E<a;++E){const b=t[f*e*a+g*a+E],S=t[f*e*a+v*a+E],C=t[p*e*a+g*a+E],_=t[p*e*a+v*a+E],I=zw(zw(b,S,y),zw(C,_,y),d%1);l[u*r*a+h*a+E]=I}}}return l}function hsn(t,e,n,r,i,a,o="nearest"){switch(o.toLowerCase()){case"nearest":return fsn(t,e,n,r,i,a);case"bilinear":case"linear":return psn(t,e,n,r,i,a);default:throw new Error(`Unsupported resampling method: '${o}'`)}}function msn(t,e,n){let r=0;for(let i=e;i<n;++i)r+=t[i];return r}function Vee(t,e,n){switch(t){case 1:if(e<=8)return new Uint8Array(n);if(e<=16)return new Uint16Array(n);if(e<=32)return new Uint32Array(n);break;case 2:if(e===8)return new Int8Array(n);if(e===16)return new Int16Array(n);if(e===32)return new Int32Array(n);break;case 3:switch(e){case 16:case 32:return new Float32Array(n);case 64:return new Float64Array(n)}break}throw Error("Unsupported data format/bitsPerSample")}function gsn(t,e){return(t===1||t===2)&&e<=32&&e%8===0?!1:!(t===3&&(e===16||e===32||e===64))}function vsn(t,e,n,r,i,a,o){const s=new DataView(t),l=n===2?o*a:o*a*r,u=n===2?1:r,d=Vee(e,i,l),f=parseInt("1".repeat(i),2);if(e===1){let p;n===1?p=r*i:p=i;let h=a*p;h&7&&(h=h+7&-8);for(let m=0;m<o;++m){const y=m*h;for(let g=0;g<a;++g){const v=y+g*u*i;for(let E=0;E<u;++E){const b=v+E*i,S=(m*a+g)*u+E,C=Math.floor(b/8),_=b%8;if(_+i<=8)d[S]=s.getUint8(C)>>8-i-_&f;else if(_+i<=16)d[S]=s.getUint16(C)>>16-i-_&f;else if(_+i<=24){const I=s.getUint16(C)<<8|s.getUint8(C+2);d[S]=I>>24-i-_&f}else d[S]=s.getUint32(C)>>32-i-_&f}}}}return d.buffer}class ysn{constructor(e,n,r,i,a,o){this.fileDirectory=e,this.geoKeys=n,this.dataView=r,this.littleEndian=i,this.tiles=a?{}:null,this.isTiled=!e.StripOffsets;const s=e.PlanarConfiguration;if(this.planarConfiguration=typeof s>"u"?1:s,this.planarConfiguration!==1&&this.planarConfiguration!==2)throw new Error("Invalid planar configuration.");this.source=o}getFileDirectory(){return this.fileDirectory}getGeoKeys(){return this.geoKeys}getWidth(){return this.fileDirectory.ImageWidth}getHeight(){return this.fileDirectory.ImageLength}getSamplesPerPixel(){return typeof this.fileDirectory.SamplesPerPixel<"u"?this.fileDirectory.SamplesPerPixel:1}getTileWidth(){return this.isTiled?this.fileDirectory.TileWidth:this.getWidth()}getTileHeight(){return this.isTiled?this.fileDirectory.TileLength:typeof this.fileDirectory.RowsPerStrip<"u"?Math.min(this.fileDirectory.RowsPerStrip,this.getHeight()):this.getHeight()}getBlockWidth(){return this.getTileWidth()}getBlockHeight(e){return this.isTiled||(e+1)*this.getTileHeight()<=this.getHeight()?this.getTileHeight():this.getHeight()-e*this.getTileHeight()}getBytesPerPixel(){let e=0;for(let n=0;n<this.fileDirectory.BitsPerSample.length;++n)e+=this.getSampleByteSize(n);return e}getSampleByteSize(e){if(e>=this.fileDirectory.BitsPerSample.length)throw new RangeError(`Sample index ${e} is out of range.`);return Math.ceil(this.fileDirectory.BitsPerSample[e]/8)}getReaderForSample(e){const n=this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[e]:1,r=this.fileDirectory.BitsPerSample[e];switch(n){case 1:if(r<=8)return DataView.prototype.getUint8;if(r<=16)return DataView.prototype.getUint16;if(r<=32)return DataView.prototype.getUint32;break;case 2:if(r<=8)return DataView.prototype.getInt8;if(r<=16)return DataView.prototype.getInt16;if(r<=32)return DataView.prototype.getInt32;break;case 3:switch(r){case 16:return function(i,a){return wGe(this,i,a)};case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64}break}throw Error("Unsupported data format/bitsPerSample")}getSampleFormat(e=0){return this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[e]:1}getBitsPerSample(e=0){return this.fileDirectory.BitsPerSample[e]}getArrayForSample(e,n){const r=this.getSampleFormat(e),i=this.getBitsPerSample(e);return Vee(r,i,n)}async getTileOrStrip(e,n,r,i,a){const o=Math.ceil(this.getWidth()/this.getTileWidth()),s=Math.ceil(this.getHeight()/this.getTileHeight());let l;const{tiles:u}=this;this.planarConfiguration===1?l=n*o+e:this.planarConfiguration===2&&(l=r*o*s+n*o+e);let d,f;this.isTiled?(d=this.fileDirectory.TileOffsets[l],f=this.fileDirectory.TileByteCounts[l]):(d=this.fileDirectory.StripOffsets[l],f=this.fileDirectory.StripByteCounts[l]);const p=(await this.source.fetch([{offset:d,length:f}],a))[0];let h;return u===null||!u[l]?(h=(async()=>{let m=await i.decode(this.fileDirectory,p);const y=this.getSampleFormat(),g=this.getBitsPerSample();return gsn(y,g)&&(m=vsn(m,y,this.planarConfiguration,this.getSamplesPerPixel(),g,this.getTileWidth(),this.getBlockHeight(n))),m})(),u!==null&&(u[l]=h)):h=u[l],{x:e,y:n,sample:r,data:await h}}async _readRaster(e,n,r,i,a,o,s,l,u){const d=this.getTileWidth(),f=this.getTileHeight(),p=this.getWidth(),h=this.getHeight(),m=Math.max(Math.floor(e[0]/d),0),y=Math.min(Math.ceil(e[2]/d),Math.ceil(p/d)),g=Math.max(Math.floor(e[1]/f),0),v=Math.min(Math.ceil(e[3]/f),Math.ceil(h/f)),E=e[2]-e[0];let b=this.getBytesPerPixel();const S=[],C=[];for(let P=0;P<n.length;++P)this.planarConfiguration===1?S.push(msn(this.fileDirectory.BitsPerSample,0,n[P])/8):S.push(0),C.push(this.getReaderForSample(n[P]));const _=[],{littleEndian:I}=this;for(let P=g;P<v;++P)for(let R=m;R<y;++R){let N;this.planarConfiguration===1&&(N=this.getTileOrStrip(R,P,0,a,u));for(let D=0;D<n.length;++D){const F=D,j=n[D];this.planarConfiguration===2&&(b=this.getSampleByteSize(j),N=this.getTileOrStrip(R,P,j,a,u));const U=N.then(H=>{const z=H.data,B=new DataView(z),W=this.getBlockHeight(H.y),q=H.y*f,G=H.x*d,X=q+W,ne=(H.x+1)*d,Z=C[F],Y=Math.min(W,W-(X-e[3]),h-q),Q=Math.min(d,d-(ne-e[2]),p-G);for(let J=Math.max(0,e[1]-q);J<Y;++J)for(let te=Math.max(0,e[0]-G);te<Q;++te){const ae=(J*d+te)*b,de=Z.call(B,ae+S[F],I);let ue;i?(ue=(J+q-e[1])*E*n.length+(te+G-e[0])*n.length+F,r[ue]=de):(ue=(J+q-e[1])*E+te+G-e[0],r[F][ue]=de)}});_.push(U)}}if(await Promise.all(_),o&&e[2]-e[0]!==o||s&&e[3]-e[1]!==s){let P;return i?P=hsn(r,e[2]-e[0],e[3]-e[1],o,s,n.length,l):P=dsn(r,e[2]-e[0],e[3]-e[1],o,s,l),P.width=o,P.height=s,P}return r.width=o||e[2]-e[0],r.height=s||e[3]-e[1],r}async readRasters({window:e,samples:n=[],interleave:r,pool:i=null,width:a,height:o,resampleMethod:s,fillValue:l,signal:u}={}){const d=e||[0,0,this.getWidth(),this.getHeight()];if(d[0]>d[2]||d[1]>d[3])throw new Error("Invalid subsets");const f=d[2]-d[0],p=d[3]-d[1],h=f*p,m=this.getSamplesPerPixel();if(!n||!n.length)for(let E=0;E<m;++E)n.push(E);else for(let E=0;E<n.length;++E)if(n[E]>=m)return Promise.reject(new RangeError(`Invalid sample index '${n[E]}'.`));let y;if(r){const E=this.fileDirectory.SampleFormat?Math.max.apply(null,this.fileDirectory.SampleFormat):1,b=Math.max.apply(null,this.fileDirectory.BitsPerSample);y=Vee(E,b,h*n.length),l&&y.fill(l)}else{y=[];for(let E=0;E<n.length;++E){const b=this.getArrayForSample(n[E],h);Array.isArray(l)&&E<l.length?b.fill(l[E]):l&&!Array.isArray(l)&&b.fill(l),y.push(b)}}const g=i||await lsn(this.fileDirectory);return await this._readRaster(d,n,y,r,g,a,o,s,u)}async readRGB({window:e,interleave:n=!0,pool:r=null,width:i,height:a,resampleMethod:o,enableAlpha:s=!1,signal:l}={}){const u=e||[0,0,this.getWidth(),this.getHeight()];if(u[0]>u[2]||u[1]>u[3])throw new Error("Invalid subsets");const d=this.fileDirectory.PhotometricInterpretation;if(d===ah.RGB){let v=[0,1,2];if(this.fileDirectory.ExtraSamples!==Yon.Unspecified&&s){v=[];for(let E=0;E<this.fileDirectory.BitsPerSample.length;E+=1)v.push(E)}return this.readRasters({window:e,interleave:n,samples:v,pool:r,width:i,height:a,resampleMethod:o,signal:l})}let f;switch(d){case ah.WhiteIsZero:case ah.BlackIsZero:case ah.Palette:f=[0];break;case ah.CMYK:f=[0,1,2,3];break;case ah.YCbCr:case ah.CIELab:f=[0,1,2];break;default:throw new Error("Invalid or unsupported photometric interpretation.")}const p={window:u,interleave:!0,samples:f,pool:r,width:i,height:a,resampleMethod:o,signal:l},{fileDirectory:h}=this,m=await this.readRasters(p),y=2**this.fileDirectory.BitsPerSample[0];let g;switch(d){case ah.WhiteIsZero:g=Qon(m,y);break;case ah.BlackIsZero:g=esn(m,y);break;case ah.Palette:g=tsn(m,h.ColorMap);break;case ah.CMYK:g=nsn(m);break;case ah.YCbCr:g=rsn(m);break;case ah.CIELab:g=ssn(m);break;default:throw new Error("Unsupported photometric interpretation.")}if(!n){const v=new Uint8Array(g.length/3),E=new Uint8Array(g.length/3),b=new Uint8Array(g.length/3);for(let S=0,C=0;S<g.length;S+=3,++C)v[C]=g[S],E[C]=g[S+1],b[C]=g[S+2];g=[v,E,b]}return g.width=m.width,g.height=m.height,g}getTiePoints(){if(!this.fileDirectory.ModelTiepoint)return[];const e=[];for(let n=0;n<this.fileDirectory.ModelTiepoint.length;n+=6)e.push({i:this.fileDirectory.ModelTiepoint[n],j:this.fileDirectory.ModelTiepoint[n+1],k:this.fileDirectory.ModelTiepoint[n+2],x:this.fileDirectory.ModelTiepoint[n+3],y:this.fileDirectory.ModelTiepoint[n+4],z:this.fileDirectory.ModelTiepoint[n+5]});return e}getGDALMetadata(e=null){const n={};if(!this.fileDirectory.GDAL_METADATA)return null;const r=this.fileDirectory.GDAL_METADATA;let i=y9(r,"Item");e===null?i=i.filter(a=>Vw(a,"sample")===void 0):i=i.filter(a=>Number(Vw(a,"sample"))===e);for(let a=0;a<i.length;++a){const o=i[a];n[Vw(o,"name")]=o.inner}return n}getGDALNoData(){if(!this.fileDirectory.GDAL_NODATA)return null;const e=this.fileDirectory.GDAL_NODATA;return Number(e.substring(0,e.length-1))}getOrigin(){const e=this.fileDirectory.ModelTiepoint,n=this.fileDirectory.ModelTransformation;if(e&&e.length===6)return[e[3],e[4],e[5]];if(n)return[n[3],n[7],n[11]];throw new Error("The image does not have an affine transformation.")}getResolution(e=null){const n=this.fileDirectory.ModelPixelScale,r=this.fileDirectory.ModelTransformation;if(n)return[n[0],-n[1],n[2]];if(r)return r[1]===0&&r[4]===0?[r[0],-r[5],r[10]]:[Math.sqrt(r[0]*r[0]+r[4]*r[4]),-Math.sqrt(r[1]*r[1]+r[5]*r[5]),r[10]];if(e){const[i,a,o]=e.getResolution();return[i*e.getWidth()/this.getWidth(),a*e.getHeight()/this.getHeight(),o*e.getWidth()/this.getWidth()]}throw new Error("The image does not have an affine transformation.")}pixelIsArea(){return this.geoKeys.GTRasterTypeGeoKey===1}getBoundingBox(e=!1){const n=this.getHeight(),r=this.getWidth();if(this.fileDirectory.ModelTransformation&&!e){const[i,a,o,s,l,u,d,f]=this.fileDirectory.ModelTransformation,h=[[0,0],[0,n],[r,0],[r,n]].map(([g,v])=>[s+i*g+a*v,f+l*g+u*v]),m=h.map(g=>g[0]),y=h.map(g=>g[1]);return[Math.min(...m),Math.min(...y),Math.max(...m),Math.max(...y)]}else{const i=this.getOrigin(),a=this.getResolution(),o=i[0],s=i[1],l=o+a[0]*r,u=s+a[1]*n;return[Math.min(o,l),Math.min(s,u),Math.max(o,l),Math.max(s,u)]}}}const bsn=ysn;class Esn{constructor(e){this._dataView=new DataView(e)}get buffer(){return this._dataView.buffer}getUint64(e,n){const r=this.getUint32(e,n),i=this.getUint32(e+4,n);let a;if(n){if(a=r+2**32*i,!Number.isSafeInteger(a))throw new Error(`${a} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return a}if(a=2**32*r+i,!Number.isSafeInteger(a))throw new Error(`${a} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return a}getInt64(e,n){let r=0;const i=(this._dataView.getUint8(e+(n?7:0))&128)>0;let a=!0;for(let o=0;o<8;o++){let s=this._dataView.getUint8(e+(n?o:7-o));i&&(a?s!==0&&(s=~(s-1)&255,a=!1):s=~s&255),r+=s*256**o}return i&&(r=-r),r}getUint8(e,n){return this._dataView.getUint8(e,n)}getInt8(e,n){return this._dataView.getInt8(e,n)}getUint16(e,n){return this._dataView.getUint16(e,n)}getInt16(e,n){return this._dataView.getInt16(e,n)}getUint32(e,n){return this._dataView.getUint32(e,n)}getInt32(e,n){return this._dataView.getInt32(e,n)}getFloat16(e,n){return wGe(this._dataView,e,n)}getFloat32(e,n){return this._dataView.getFloat32(e,n)}getFloat64(e,n){return this._dataView.getFloat64(e,n)}}class xsn{constructor(e,n,r,i){this._dataView=new DataView(e),this._sliceOffset=n,this._littleEndian=r,this._bigTiff=i}get sliceOffset(){return this._sliceOffset}get sliceTop(){return this._sliceOffset+this.buffer.byteLength}get littleEndian(){return this._littleEndian}get bigTiff(){return this._bigTiff}get buffer(){return this._dataView.buffer}covers(e,n){return this.sliceOffset<=e&&this.sliceTop>=e+n}readUint8(e){return this._dataView.getUint8(e-this._sliceOffset,this._littleEndian)}readInt8(e){return this._dataView.getInt8(e-this._sliceOffset,this._littleEndian)}readUint16(e){return this._dataView.getUint16(e-this._sliceOffset,this._littleEndian)}readInt16(e){return this._dataView.getInt16(e-this._sliceOffset,this._littleEndian)}readUint32(e){return this._dataView.getUint32(e-this._sliceOffset,this._littleEndian)}readInt32(e){return this._dataView.getInt32(e-this._sliceOffset,this._littleEndian)}readFloat32(e){return this._dataView.getFloat32(e-this._sliceOffset,this._littleEndian)}readFloat64(e){return this._dataView.getFloat64(e-this._sliceOffset,this._littleEndian)}readUint64(e){const n=this.readUint32(e),r=this.readUint32(e+4);let i;if(this._littleEndian){if(i=n+2**32*r,!Number.isSafeInteger(i))throw new Error(`${i} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return i}if(i=2**32*n+r,!Number.isSafeInteger(i))throw new Error(`${i} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return i}readInt64(e){let n=0;const r=(this._dataView.getUint8(e+(this._littleEndian?7:0))&128)>0;let i=!0;for(let a=0;a<8;a++){let o=this._dataView.getUint8(e+(this._littleEndian?a:7-a));r&&(i?o!==0&&(o=~(o-1)&255,i=!1):o=~o&255),n+=o*256**a}return r&&(n=-n),n}readOffset(e){return this._bigTiff?this.readUint64(e):this.readUint32(e)}}class Ssn{async fetch(e,n=void 0){return Promise.all(e.map(r=>this.fetchSlice(r,n)))}async fetchSlice(e){throw new Error(`fetching of slice ${e} not possible, not implemented`)}get fileSize(){return null}async close(){}}class Woe extends Error{constructor(e){super(e),Error.captureStackTrace&&Error.captureStackTrace(this,Woe),this.name="AbortError"}}class Csn extends Ssn{constructor(e){super(),this.arrayBuffer=e}fetchSlice(e,n){if(n&&n.aborted)throw new Woe("Request aborted");return this.arrayBuffer.slice(e.offset,e.offset+e.length)}}function _sn(t){return new Csn(t)}function zee(t){switch(t){case Ho.BYTE:case Ho.ASCII:case Ho.SBYTE:case Ho.UNDEFINED:return 1;case Ho.SHORT:case Ho.SSHORT:return 2;case Ho.LONG:case Ho.SLONG:case Ho.FLOAT:case Ho.IFD:return 4;case Ho.RATIONAL:case Ho.SRATIONAL:case Ho.DOUBLE:case Ho.LONG8:case Ho.SLONG8:case Ho.IFD8:return 8;default:throw new RangeError(`Invalid field type: ${t}`)}}function wsn(t){const e=t.GeoKeyDirectory;if(!e)return null;const n={};for(let r=4;r<=e[3]*4;r+=4){const i=Jon[e[r]],a=e[r+1]?m5[e[r+1]]:null,o=e[r+2],s=e[r+3];let l=null;if(!a)l=s;else{if(l=t[a],typeof l>"u"||l===null)throw new Error(`Could not get value of geoKey '${i}'.`);typeof l=="string"?l=l.substring(s,s+o-1):l.subarray&&(l=l.subarray(s,s+o),o===1&&(l=l[0]))}n[i]=l}return n}function l_(t,e,n,r){let i=null,a=null;const o=zee(e);switch(e){case Ho.BYTE:case Ho.ASCII:case Ho.UNDEFINED:i=new Uint8Array(n),a=t.readUint8;break;case Ho.SBYTE:i=new Int8Array(n),a=t.readInt8;break;case Ho.SHORT:i=new Uint16Array(n),a=t.readUint16;break;case Ho.SSHORT:i=new Int16Array(n),a=t.readInt16;break;case Ho.LONG:case Ho.IFD:i=new Uint32Array(n),a=t.readUint32;break;case Ho.SLONG:i=new Int32Array(n),a=t.readInt32;break;case Ho.LONG8:case Ho.IFD8:i=new Array(n),a=t.readUint64;break;case Ho.SLONG8:i=new Array(n),a=t.readInt64;break;case Ho.RATIONAL:i=new Uint32Array(n*2),a=t.readUint32;break;case Ho.SRATIONAL:i=new Int32Array(n*2),a=t.readInt32;break;case Ho.FLOAT:i=new Float32Array(n),a=t.readFloat32;break;case Ho.DOUBLE:i=new Float64Array(n),a=t.readFloat64;break;default:throw new RangeError(`Invalid field type: ${e}`)}if(e===Ho.RATIONAL||e===Ho.SRATIONAL)for(let s=0;s<n;s+=2)i[s]=a.call(t,r+s*o),i[s+1]=a.call(t,r+(s*o+4));else for(let s=0;s<n;++s)i[s]=a.call(t,r+s*o);return e===Ho.ASCII?new TextDecoder("utf-8").decode(i):i}class Tsn{constructor(e,n,r){this.fileDirectory=e,this.geoKeyDirectory=n,this.nextIFDByteOffset=r}}class FN extends Error{constructor(e){super(`No image at index ${e}`),this.index=e}}class Isn{async readRasters(e={}){const{window:n,width:r,height:i}=e;let{resX:a,resY:o,bbox:s}=e;const l=await this.getImage();let u=l;const d=await this.getImageCount(),f=l.getBoundingBox();if(n&&s)throw new Error('Both "bbox" and "window" passed.');if(r||i){if(n){const[m,y]=l.getOrigin(),[g,v]=l.getResolution();s=[m+n[0]*g,y+n[1]*v,m+n[2]*g,y+n[3]*v]}const h=s||f;if(r){if(a)throw new Error("Both width and resX passed");a=(h[2]-h[0])/r}if(i){if(o)throw new Error("Both width and resY passed");o=(h[3]-h[1])/i}}if(a||o){const h=[];for(let m=0;m<d;++m){const y=await this.getImage(m),{SubfileType:g,NewSubfileType:v}=y.fileDirectory;(m===0||g===2||v&1)&&h.push(y)}h.sort((m,y)=>m.getWidth()-y.getWidth());for(let m=0;m<h.length;++m){const y=h[m],g=(f[2]-f[0])/y.getWidth(),v=(f[3]-f[1])/y.getHeight();if(u=y,a&&a>g||o&&o>v)break}}let p=n;if(s){const[h,m]=l.getOrigin(),[y,g]=u.getResolution(l);p=[Math.round((s[0]-h)/y),Math.round((s[1]-m)/g),Math.round((s[2]-h)/y),Math.round((s[3]-m)/g)],p=[Math.min(p[0],p[2]),Math.min(p[1],p[3]),Math.max(p[0],p[2]),Math.max(p[1],p[3])]}return u.readRasters({...e,window:p})}}class Xoe extends Isn{constructor(e,n,r,i,a={}){super(),this.source=e,this.littleEndian=n,this.bigTiff=r,this.firstIFDOffset=i,this.cache=a.cache||!1,this.ifdRequests=[],this.ghostValues=null}async getSlice(e,n){const r=this.bigTiff?4048:1024;return new xsn((await this.source.fetch([{offset:e,length:typeof n<"u"?n:r}]))[0],e,this.littleEndian,this.bigTiff)}async parseFileDirectoryAt(e){const n=this.bigTiff?20:12,r=this.bigTiff?8:2;let i=await this.getSlice(e);const a=this.bigTiff?i.readUint64(e):i.readUint16(e),o=a*n+(this.bigTiff?16:6);i.covers(e,o)||(i=await this.getSlice(e,o));const s={};let l=e+(this.bigTiff?8:2);for(let f=0;f<a;l+=n,++f){const p=i.readUint16(l),h=i.readUint16(l+2),m=this.bigTiff?i.readUint64(l+4):i.readUint32(l+4);let y,g;const v=zee(h),E=l+(this.bigTiff?12:8);if(v*m<=(this.bigTiff?8:4))y=l_(i,h,m,E);else{const b=i.readOffset(E),S=zee(h)*m;if(i.covers(b,S))y=l_(i,h,m,b);else{const C=await this.getSlice(b,S);y=l_(C,h,m,b)}}m===1&&qon.indexOf(p)===-1&&!(h===Ho.RATIONAL||h===Ho.SRATIONAL)?g=y[0]:g=y,s[m5[p]]=g}const u=wsn(s),d=i.readOffset(e+r+n*a);return new Tsn(s,u,d)}async requestIFD(e){if(this.ifdRequests[e])return this.ifdRequests[e];if(e===0)return this.ifdRequests[e]=this.parseFileDirectoryAt(this.firstIFDOffset),this.ifdRequests[e];if(!this.ifdRequests[e-1])try{this.ifdRequests[e-1]=this.requestIFD(e-1)}catch(n){throw n instanceof FN?new FN(e):n}return this.ifdRequests[e]=(async()=>{const n=await this.ifdRequests[e-1];if(n.nextIFDByteOffset===0)throw new FN(e);return this.parseFileDirectoryAt(n.nextIFDByteOffset)})(),this.ifdRequests[e]}async getImage(e=0){const n=await this.requestIFD(e);return new bsn(n.fileDirectory,n.geoKeyDirectory,this.dataView,this.littleEndian,this.cache,this.source)}async getImageCount(){let e=0,n=!0;for(;n;)try{await this.requestIFD(e),++e}catch(r){if(r instanceof FN)n=!1;else throw r}return e}async getGhostValues(){const e=this.bigTiff?16:8;if(this.ghostValues)return this.ghostValues;const n="GDAL_STRUCTURAL_METADATA_SIZE=",r=n.length+100;let i=await this.getSlice(e,r);if(n===l_(i,Ho.ASCII,n.length,e)){const o=l_(i,Ho.ASCII,r,e).split(`
|
|
4508
|
+
>]`),y+=CCe(g,"</"+e+">"),y>=m)break;h=l}}else l=QH(s,"[ /]"+e+">",0);const d=o+e.length+l+1;if(r&&console.log("[xml-utils] end:",d),d===-1)return;const f=t.slice(o,d);let p;return u?p=null:p=f.slice(f.indexOf(">")+1,f.lastIndexOf("<")),{inner:p,outer:f,start:o,end:d}}zon.exports=OGe;b9.default=OGe;const Xon=b9;function LGe(t,e,n){const r=[],i=n&&n.debug||!1,a=n&&typeof n.nested=="boolean"?n.nested:!0;let o=n&&n.startIndex||0,s;for(;s=Xon(t,e,{debug:i,startIndex:o});)a?o=s.start+1+e.length:o=s.end,r.push(s);return i&&console.log("findTagsByName found",r.length,"tags"),r}Von.exports=LGe;y9.default=LGe;const m5={315:"Artist",258:"BitsPerSample",265:"CellLength",264:"CellWidth",320:"ColorMap",259:"Compression",33432:"Copyright",306:"DateTime",338:"ExtraSamples",266:"FillOrder",289:"FreeByteCounts",288:"FreeOffsets",291:"GrayResponseCurve",290:"GrayResponseUnit",316:"HostComputer",270:"ImageDescription",257:"ImageLength",256:"ImageWidth",271:"Make",281:"MaxSampleValue",280:"MinSampleValue",272:"Model",254:"NewSubfileType",274:"Orientation",262:"PhotometricInterpretation",284:"PlanarConfiguration",296:"ResolutionUnit",278:"RowsPerStrip",277:"SamplesPerPixel",305:"Software",279:"StripByteCounts",273:"StripOffsets",255:"SubfileType",263:"Threshholding",282:"XResolution",283:"YResolution",326:"BadFaxLines",327:"CleanFaxData",343:"ClipPath",328:"ConsecutiveBadFaxLines",433:"Decode",434:"DefaultImageColor",269:"DocumentName",336:"DotRange",321:"HalftoneHints",346:"Indexed",347:"JPEGTables",285:"PageName",297:"PageNumber",317:"Predictor",319:"PrimaryChromaticities",532:"ReferenceBlackWhite",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",559:"StripRowCounts",330:"SubIFDs",292:"T4Options",293:"T6Options",325:"TileByteCounts",323:"TileLength",324:"TileOffsets",322:"TileWidth",301:"TransferFunction",318:"WhitePoint",344:"XClipPathUnits",286:"XPosition",529:"YCbCrCoefficients",531:"YCbCrPositioning",530:"YCbCrSubSampling",345:"YClipPathUnits",287:"YPosition",37378:"ApertureValue",40961:"ColorSpace",36868:"DateTimeDigitized",36867:"DateTimeOriginal",34665:"Exif IFD",36864:"ExifVersion",33434:"ExposureTime",41728:"FileSource",37385:"Flash",40960:"FlashpixVersion",33437:"FNumber",42016:"ImageUniqueID",37384:"LightSource",37500:"MakerNote",37377:"ShutterSpeedValue",37510:"UserComment",33723:"IPTC",34675:"ICC Profile",700:"XMP",42112:"GDAL_METADATA",42113:"GDAL_NODATA",34377:"Photoshop",33550:"ModelPixelScale",33922:"ModelTiepoint",34264:"ModelTransformation",34735:"GeoKeyDirectory",34736:"GeoDoubleParams",34737:"GeoAsciiParams",50674:"LercParameters"},D0={};for(const t in m5)m5.hasOwnProperty(t)&&(D0[m5[t]]=parseInt(t,10));const qon=[D0.BitsPerSample,D0.ExtraSamples,D0.SampleFormat,D0.StripByteCounts,D0.StripOffsets,D0.StripRowCounts,D0.TileByteCounts,D0.TileOffsets,D0.SubIFDs],eG={1:"BYTE",2:"ASCII",3:"SHORT",4:"LONG",5:"RATIONAL",6:"SBYTE",7:"UNDEFINED",8:"SSHORT",9:"SLONG",10:"SRATIONAL",11:"FLOAT",12:"DOUBLE",13:"IFD",16:"LONG8",17:"SLONG8",18:"IFD8"},Ho={};for(const t in eG)eG.hasOwnProperty(t)&&(Ho[eG[t]]=parseInt(t,10));const ah={WhiteIsZero:0,BlackIsZero:1,RGB:2,Palette:3,TransparencyMask:4,CMYK:5,YCbCr:6,CIELab:8,ICCLab:9},Yon={Unspecified:0,Assocalpha:1,Unassalpha:2},Zon={Version:0,AddCompression:1},Kon={None:0,Deflate:1,Zstandard:2},Jon={1024:"GTModelTypeGeoKey",1025:"GTRasterTypeGeoKey",1026:"GTCitationGeoKey",2048:"GeographicTypeGeoKey",2049:"GeogCitationGeoKey",2050:"GeogGeodeticDatumGeoKey",2051:"GeogPrimeMeridianGeoKey",2052:"GeogLinearUnitsGeoKey",2053:"GeogLinearUnitSizeGeoKey",2054:"GeogAngularUnitsGeoKey",2055:"GeogAngularUnitSizeGeoKey",2056:"GeogEllipsoidGeoKey",2057:"GeogSemiMajorAxisGeoKey",2058:"GeogSemiMinorAxisGeoKey",2059:"GeogInvFlatteningGeoKey",2060:"GeogAzimuthUnitsGeoKey",2061:"GeogPrimeMeridianLongGeoKey",2062:"GeogTOWGS84GeoKey",3072:"ProjectedCSTypeGeoKey",3073:"PCSCitationGeoKey",3074:"ProjectionGeoKey",3075:"ProjCoordTransGeoKey",3076:"ProjLinearUnitsGeoKey",3077:"ProjLinearUnitSizeGeoKey",3078:"ProjStdParallel1GeoKey",3079:"ProjStdParallel2GeoKey",3080:"ProjNatOriginLongGeoKey",3081:"ProjNatOriginLatGeoKey",3082:"ProjFalseEastingGeoKey",3083:"ProjFalseNorthingGeoKey",3084:"ProjFalseOriginLongGeoKey",3085:"ProjFalseOriginLatGeoKey",3086:"ProjFalseOriginEastingGeoKey",3087:"ProjFalseOriginNorthingGeoKey",3088:"ProjCenterLongGeoKey",3089:"ProjCenterLatGeoKey",3090:"ProjCenterEastingGeoKey",3091:"ProjCenterNorthingGeoKey",3092:"ProjScaleAtNatOriginGeoKey",3093:"ProjScaleAtCenterGeoKey",3094:"ProjAzimuthAngleGeoKey",3095:"ProjStraightVertPoleLongGeoKey",3096:"ProjRectifiedGridAngleGeoKey",4096:"VerticalCSTypeGeoKey",4097:"VerticalCitationGeoKey",4098:"VerticalDatumGeoKey",4099:"VerticalUnitsGeoKey"};function Qon(t,e){const{width:n,height:r}=t,i=new Uint8Array(n*r*3);let a;for(let o=0,s=0;o<t.length;++o,s+=3)a=256-t[o]/e*256,i[s]=a,i[s+1]=a,i[s+2]=a;return i}function esn(t,e){const{width:n,height:r}=t,i=new Uint8Array(n*r*3);let a;for(let o=0,s=0;o<t.length;++o,s+=3)a=t[o]/e*256,i[s]=a,i[s+1]=a,i[s+2]=a;return i}function tsn(t,e){const{width:n,height:r}=t,i=new Uint8Array(n*r*3),a=e.length/3,o=e.length/3*2;for(let s=0,l=0;s<t.length;++s,l+=3){const u=t[s];i[l]=e[u]/65536*256,i[l+1]=e[u+a]/65536*256,i[l+2]=e[u+o]/65536*256}return i}function nsn(t){const{width:e,height:n}=t,r=new Uint8Array(e*n*3);for(let i=0,a=0;i<t.length;i+=4,a+=3){const o=t[i],s=t[i+1],l=t[i+2],u=t[i+3];r[a]=255*((255-o)/256)*((255-u)/256),r[a+1]=255*((255-s)/256)*((255-u)/256),r[a+2]=255*((255-l)/256)*((255-u)/256)}return r}function rsn(t){const{width:e,height:n}=t,r=new Uint8ClampedArray(e*n*3);for(let i=0,a=0;i<t.length;i+=3,a+=3){const o=t[i],s=t[i+1],l=t[i+2];r[a]=o+1.402*(l-128),r[a+1]=o-.34414*(s-128)-.71414*(l-128),r[a+2]=o+1.772*(s-128)}return r}const isn=.95047,asn=1,osn=1.08883;function ssn(t){const{width:e,height:n}=t,r=new Uint8Array(e*n*3);for(let i=0,a=0;i<t.length;i+=3,a+=3){const o=t[i+0],s=t[i+1]<<24>>24,l=t[i+2]<<24>>24;let u=(o+16)/116,d=s/500+u,f=u-l/200,p,h,m;d=isn*(d*d*d>.008856?d*d*d:(d-16/116)/7.787),u=asn*(u*u*u>.008856?u*u*u:(u-16/116)/7.787),f=osn*(f*f*f>.008856?f*f*f:(f-16/116)/7.787),p=d*3.2406+u*-1.5372+f*-.4986,h=d*-.9689+u*1.8758+f*.0415,m=d*.0557+u*-.204+f*1.057,p=p>.0031308?1.055*p**(1/2.4)-.055:12.92*p,h=h>.0031308?1.055*h**(1/2.4)-.055:12.92*h,m=m>.0031308?1.055*m**(1/2.4)-.055:12.92*m,r[a]=Math.max(0,Math.min(1,p))*255,r[a+1]=Math.max(0,Math.min(1,h))*255,r[a+2]=Math.max(0,Math.min(1,m))*255}return r}const NGe=new Map;function e2(t,e){Array.isArray(t)||(t=[t]),t.forEach(n=>NGe.set(n,e))}async function lsn(t){const e=NGe.get(t.Compression);if(!e)throw new Error(`Unknown compression method identifier: ${t.Compression}`);const n=await e();return new n(t)}e2([void 0,1],()=>Promise.resolve().then(()=>require("./raw-9c0f4034.js")).then(t=>t.default));e2(5,()=>Promise.resolve().then(()=>require("./lzw-f00e8c8c.js")).then(t=>t.default));e2(6,()=>{throw new Error("old style JPEG compression is not supported.")});e2(7,()=>Promise.resolve().then(()=>require("./jpeg-f3c7cefc.js")).then(t=>t.default));e2([8,32946],()=>Promise.resolve().then(()=>require("./deflate-5437f3fa.js")).then(t=>t.default));e2(32773,()=>Promise.resolve().then(()=>require("./packbits-58fd9c05.js")).then(t=>t.default));e2(34887,()=>Promise.resolve().then(()=>require("./lerc-c967361e.js")).then(async t=>(await t.zstd.init(),t)).then(t=>t.default));e2(50001,()=>Promise.resolve().then(()=>require("./webimage-bc81928d.js")).then(t=>t.default));function cU(t,e,n,r=1){return new(Object.getPrototypeOf(t)).constructor(e*n*r)}function csn(t,e,n,r,i){const a=e/r,o=n/i;return t.map(s=>{const l=cU(s,r,i);for(let u=0;u<i;++u){const d=Math.min(Math.round(o*u),n-1);for(let f=0;f<r;++f){const p=Math.min(Math.round(a*f),e-1),h=s[d*e+p];l[u*r+f]=h}}return l})}function zw(t,e,n){return(1-n)*t+n*e}function usn(t,e,n,r,i){const a=e/r,o=n/i;return t.map(s=>{const l=cU(s,r,i);for(let u=0;u<i;++u){const d=o*u,f=Math.floor(d),p=Math.min(Math.ceil(d),n-1);for(let h=0;h<r;++h){const m=a*h,y=m%1,g=Math.floor(m),v=Math.min(Math.ceil(m),e-1),E=s[f*e+g],b=s[f*e+v],S=s[p*e+g],C=s[p*e+v],_=zw(zw(E,b,y),zw(S,C,y),d%1);l[u*r+h]=_}}return l})}function dsn(t,e,n,r,i,a="nearest"){switch(a.toLowerCase()){case"nearest":return csn(t,e,n,r,i);case"bilinear":case"linear":return usn(t,e,n,r,i);default:throw new Error(`Unsupported resampling method: '${a}'`)}}function fsn(t,e,n,r,i,a){const o=e/r,s=n/i,l=cU(t,r,i,a);for(let u=0;u<i;++u){const d=Math.min(Math.round(s*u),n-1);for(let f=0;f<r;++f){const p=Math.min(Math.round(o*f),e-1);for(let h=0;h<a;++h){const m=t[d*e*a+p*a+h];l[u*r*a+f*a+h]=m}}}return l}function psn(t,e,n,r,i,a){const o=e/r,s=n/i,l=cU(t,r,i,a);for(let u=0;u<i;++u){const d=s*u,f=Math.floor(d),p=Math.min(Math.ceil(d),n-1);for(let h=0;h<r;++h){const m=o*h,y=m%1,g=Math.floor(m),v=Math.min(Math.ceil(m),e-1);for(let E=0;E<a;++E){const b=t[f*e*a+g*a+E],S=t[f*e*a+v*a+E],C=t[p*e*a+g*a+E],_=t[p*e*a+v*a+E],I=zw(zw(b,S,y),zw(C,_,y),d%1);l[u*r*a+h*a+E]=I}}}return l}function hsn(t,e,n,r,i,a,o="nearest"){switch(o.toLowerCase()){case"nearest":return fsn(t,e,n,r,i,a);case"bilinear":case"linear":return psn(t,e,n,r,i,a);default:throw new Error(`Unsupported resampling method: '${o}'`)}}function msn(t,e,n){let r=0;for(let i=e;i<n;++i)r+=t[i];return r}function Vee(t,e,n){switch(t){case 1:if(e<=8)return new Uint8Array(n);if(e<=16)return new Uint16Array(n);if(e<=32)return new Uint32Array(n);break;case 2:if(e===8)return new Int8Array(n);if(e===16)return new Int16Array(n);if(e===32)return new Int32Array(n);break;case 3:switch(e){case 16:case 32:return new Float32Array(n);case 64:return new Float64Array(n)}break}throw Error("Unsupported data format/bitsPerSample")}function gsn(t,e){return(t===1||t===2)&&e<=32&&e%8===0?!1:!(t===3&&(e===16||e===32||e===64))}function vsn(t,e,n,r,i,a,o){const s=new DataView(t),l=n===2?o*a:o*a*r,u=n===2?1:r,d=Vee(e,i,l),f=parseInt("1".repeat(i),2);if(e===1){let p;n===1?p=r*i:p=i;let h=a*p;h&7&&(h=h+7&-8);for(let m=0;m<o;++m){const y=m*h;for(let g=0;g<a;++g){const v=y+g*u*i;for(let E=0;E<u;++E){const b=v+E*i,S=(m*a+g)*u+E,C=Math.floor(b/8),_=b%8;if(_+i<=8)d[S]=s.getUint8(C)>>8-i-_&f;else if(_+i<=16)d[S]=s.getUint16(C)>>16-i-_&f;else if(_+i<=24){const I=s.getUint16(C)<<8|s.getUint8(C+2);d[S]=I>>24-i-_&f}else d[S]=s.getUint32(C)>>32-i-_&f}}}}return d.buffer}class ysn{constructor(e,n,r,i,a,o){this.fileDirectory=e,this.geoKeys=n,this.dataView=r,this.littleEndian=i,this.tiles=a?{}:null,this.isTiled=!e.StripOffsets;const s=e.PlanarConfiguration;if(this.planarConfiguration=typeof s>"u"?1:s,this.planarConfiguration!==1&&this.planarConfiguration!==2)throw new Error("Invalid planar configuration.");this.source=o}getFileDirectory(){return this.fileDirectory}getGeoKeys(){return this.geoKeys}getWidth(){return this.fileDirectory.ImageWidth}getHeight(){return this.fileDirectory.ImageLength}getSamplesPerPixel(){return typeof this.fileDirectory.SamplesPerPixel<"u"?this.fileDirectory.SamplesPerPixel:1}getTileWidth(){return this.isTiled?this.fileDirectory.TileWidth:this.getWidth()}getTileHeight(){return this.isTiled?this.fileDirectory.TileLength:typeof this.fileDirectory.RowsPerStrip<"u"?Math.min(this.fileDirectory.RowsPerStrip,this.getHeight()):this.getHeight()}getBlockWidth(){return this.getTileWidth()}getBlockHeight(e){return this.isTiled||(e+1)*this.getTileHeight()<=this.getHeight()?this.getTileHeight():this.getHeight()-e*this.getTileHeight()}getBytesPerPixel(){let e=0;for(let n=0;n<this.fileDirectory.BitsPerSample.length;++n)e+=this.getSampleByteSize(n);return e}getSampleByteSize(e){if(e>=this.fileDirectory.BitsPerSample.length)throw new RangeError(`Sample index ${e} is out of range.`);return Math.ceil(this.fileDirectory.BitsPerSample[e]/8)}getReaderForSample(e){const n=this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[e]:1,r=this.fileDirectory.BitsPerSample[e];switch(n){case 1:if(r<=8)return DataView.prototype.getUint8;if(r<=16)return DataView.prototype.getUint16;if(r<=32)return DataView.prototype.getUint32;break;case 2:if(r<=8)return DataView.prototype.getInt8;if(r<=16)return DataView.prototype.getInt16;if(r<=32)return DataView.prototype.getInt32;break;case 3:switch(r){case 16:return function(i,a){return wGe(this,i,a)};case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64}break}throw Error("Unsupported data format/bitsPerSample")}getSampleFormat(e=0){return this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[e]:1}getBitsPerSample(e=0){return this.fileDirectory.BitsPerSample[e]}getArrayForSample(e,n){const r=this.getSampleFormat(e),i=this.getBitsPerSample(e);return Vee(r,i,n)}async getTileOrStrip(e,n,r,i,a){const o=Math.ceil(this.getWidth()/this.getTileWidth()),s=Math.ceil(this.getHeight()/this.getTileHeight());let l;const{tiles:u}=this;this.planarConfiguration===1?l=n*o+e:this.planarConfiguration===2&&(l=r*o*s+n*o+e);let d,f;this.isTiled?(d=this.fileDirectory.TileOffsets[l],f=this.fileDirectory.TileByteCounts[l]):(d=this.fileDirectory.StripOffsets[l],f=this.fileDirectory.StripByteCounts[l]);const p=(await this.source.fetch([{offset:d,length:f}],a))[0];let h;return u===null||!u[l]?(h=(async()=>{let m=await i.decode(this.fileDirectory,p);const y=this.getSampleFormat(),g=this.getBitsPerSample();return gsn(y,g)&&(m=vsn(m,y,this.planarConfiguration,this.getSamplesPerPixel(),g,this.getTileWidth(),this.getBlockHeight(n))),m})(),u!==null&&(u[l]=h)):h=u[l],{x:e,y:n,sample:r,data:await h}}async _readRaster(e,n,r,i,a,o,s,l,u){const d=this.getTileWidth(),f=this.getTileHeight(),p=this.getWidth(),h=this.getHeight(),m=Math.max(Math.floor(e[0]/d),0),y=Math.min(Math.ceil(e[2]/d),Math.ceil(p/d)),g=Math.max(Math.floor(e[1]/f),0),v=Math.min(Math.ceil(e[3]/f),Math.ceil(h/f)),E=e[2]-e[0];let b=this.getBytesPerPixel();const S=[],C=[];for(let P=0;P<n.length;++P)this.planarConfiguration===1?S.push(msn(this.fileDirectory.BitsPerSample,0,n[P])/8):S.push(0),C.push(this.getReaderForSample(n[P]));const _=[],{littleEndian:I}=this;for(let P=g;P<v;++P)for(let R=m;R<y;++R){let N;this.planarConfiguration===1&&(N=this.getTileOrStrip(R,P,0,a,u));for(let D=0;D<n.length;++D){const F=D,j=n[D];this.planarConfiguration===2&&(b=this.getSampleByteSize(j),N=this.getTileOrStrip(R,P,j,a,u));const U=N.then(H=>{const z=H.data,B=new DataView(z),W=this.getBlockHeight(H.y),q=H.y*f,G=H.x*d,X=q+W,ne=(H.x+1)*d,Z=C[F],Y=Math.min(W,W-(X-e[3]),h-q),Q=Math.min(d,d-(ne-e[2]),p-G);for(let J=Math.max(0,e[1]-q);J<Y;++J)for(let te=Math.max(0,e[0]-G);te<Q;++te){const ae=(J*d+te)*b,de=Z.call(B,ae+S[F],I);let ue;i?(ue=(J+q-e[1])*E*n.length+(te+G-e[0])*n.length+F,r[ue]=de):(ue=(J+q-e[1])*E+te+G-e[0],r[F][ue]=de)}});_.push(U)}}if(await Promise.all(_),o&&e[2]-e[0]!==o||s&&e[3]-e[1]!==s){let P;return i?P=hsn(r,e[2]-e[0],e[3]-e[1],o,s,n.length,l):P=dsn(r,e[2]-e[0],e[3]-e[1],o,s,l),P.width=o,P.height=s,P}return r.width=o||e[2]-e[0],r.height=s||e[3]-e[1],r}async readRasters({window:e,samples:n=[],interleave:r,pool:i=null,width:a,height:o,resampleMethod:s,fillValue:l,signal:u}={}){const d=e||[0,0,this.getWidth(),this.getHeight()];if(d[0]>d[2]||d[1]>d[3])throw new Error("Invalid subsets");const f=d[2]-d[0],p=d[3]-d[1],h=f*p,m=this.getSamplesPerPixel();if(!n||!n.length)for(let E=0;E<m;++E)n.push(E);else for(let E=0;E<n.length;++E)if(n[E]>=m)return Promise.reject(new RangeError(`Invalid sample index '${n[E]}'.`));let y;if(r){const E=this.fileDirectory.SampleFormat?Math.max.apply(null,this.fileDirectory.SampleFormat):1,b=Math.max.apply(null,this.fileDirectory.BitsPerSample);y=Vee(E,b,h*n.length),l&&y.fill(l)}else{y=[];for(let E=0;E<n.length;++E){const b=this.getArrayForSample(n[E],h);Array.isArray(l)&&E<l.length?b.fill(l[E]):l&&!Array.isArray(l)&&b.fill(l),y.push(b)}}const g=i||await lsn(this.fileDirectory);return await this._readRaster(d,n,y,r,g,a,o,s,u)}async readRGB({window:e,interleave:n=!0,pool:r=null,width:i,height:a,resampleMethod:o,enableAlpha:s=!1,signal:l}={}){const u=e||[0,0,this.getWidth(),this.getHeight()];if(u[0]>u[2]||u[1]>u[3])throw new Error("Invalid subsets");const d=this.fileDirectory.PhotometricInterpretation;if(d===ah.RGB){let v=[0,1,2];if(this.fileDirectory.ExtraSamples!==Yon.Unspecified&&s){v=[];for(let E=0;E<this.fileDirectory.BitsPerSample.length;E+=1)v.push(E)}return this.readRasters({window:e,interleave:n,samples:v,pool:r,width:i,height:a,resampleMethod:o,signal:l})}let f;switch(d){case ah.WhiteIsZero:case ah.BlackIsZero:case ah.Palette:f=[0];break;case ah.CMYK:f=[0,1,2,3];break;case ah.YCbCr:case ah.CIELab:f=[0,1,2];break;default:throw new Error("Invalid or unsupported photometric interpretation.")}const p={window:u,interleave:!0,samples:f,pool:r,width:i,height:a,resampleMethod:o,signal:l},{fileDirectory:h}=this,m=await this.readRasters(p),y=2**this.fileDirectory.BitsPerSample[0];let g;switch(d){case ah.WhiteIsZero:g=Qon(m,y);break;case ah.BlackIsZero:g=esn(m,y);break;case ah.Palette:g=tsn(m,h.ColorMap);break;case ah.CMYK:g=nsn(m);break;case ah.YCbCr:g=rsn(m);break;case ah.CIELab:g=ssn(m);break;default:throw new Error("Unsupported photometric interpretation.")}if(!n){const v=new Uint8Array(g.length/3),E=new Uint8Array(g.length/3),b=new Uint8Array(g.length/3);for(let S=0,C=0;S<g.length;S+=3,++C)v[C]=g[S],E[C]=g[S+1],b[C]=g[S+2];g=[v,E,b]}return g.width=m.width,g.height=m.height,g}getTiePoints(){if(!this.fileDirectory.ModelTiepoint)return[];const e=[];for(let n=0;n<this.fileDirectory.ModelTiepoint.length;n+=6)e.push({i:this.fileDirectory.ModelTiepoint[n],j:this.fileDirectory.ModelTiepoint[n+1],k:this.fileDirectory.ModelTiepoint[n+2],x:this.fileDirectory.ModelTiepoint[n+3],y:this.fileDirectory.ModelTiepoint[n+4],z:this.fileDirectory.ModelTiepoint[n+5]});return e}getGDALMetadata(e=null){const n={};if(!this.fileDirectory.GDAL_METADATA)return null;const r=this.fileDirectory.GDAL_METADATA;let i=y9(r,"Item");e===null?i=i.filter(a=>Vw(a,"sample")===void 0):i=i.filter(a=>Number(Vw(a,"sample"))===e);for(let a=0;a<i.length;++a){const o=i[a];n[Vw(o,"name")]=o.inner}return n}getGDALNoData(){if(!this.fileDirectory.GDAL_NODATA)return null;const e=this.fileDirectory.GDAL_NODATA;return Number(e.substring(0,e.length-1))}getOrigin(){const e=this.fileDirectory.ModelTiepoint,n=this.fileDirectory.ModelTransformation;if(e&&e.length===6)return[e[3],e[4],e[5]];if(n)return[n[3],n[7],n[11]];throw new Error("The image does not have an affine transformation.")}getResolution(e=null){const n=this.fileDirectory.ModelPixelScale,r=this.fileDirectory.ModelTransformation;if(n)return[n[0],-n[1],n[2]];if(r)return r[1]===0&&r[4]===0?[r[0],-r[5],r[10]]:[Math.sqrt(r[0]*r[0]+r[4]*r[4]),-Math.sqrt(r[1]*r[1]+r[5]*r[5]),r[10]];if(e){const[i,a,o]=e.getResolution();return[i*e.getWidth()/this.getWidth(),a*e.getHeight()/this.getHeight(),o*e.getWidth()/this.getWidth()]}throw new Error("The image does not have an affine transformation.")}pixelIsArea(){return this.geoKeys.GTRasterTypeGeoKey===1}getBoundingBox(e=!1){const n=this.getHeight(),r=this.getWidth();if(this.fileDirectory.ModelTransformation&&!e){const[i,a,o,s,l,u,d,f]=this.fileDirectory.ModelTransformation,h=[[0,0],[0,n],[r,0],[r,n]].map(([g,v])=>[s+i*g+a*v,f+l*g+u*v]),m=h.map(g=>g[0]),y=h.map(g=>g[1]);return[Math.min(...m),Math.min(...y),Math.max(...m),Math.max(...y)]}else{const i=this.getOrigin(),a=this.getResolution(),o=i[0],s=i[1],l=o+a[0]*r,u=s+a[1]*n;return[Math.min(o,l),Math.min(s,u),Math.max(o,l),Math.max(s,u)]}}}const bsn=ysn;class Esn{constructor(e){this._dataView=new DataView(e)}get buffer(){return this._dataView.buffer}getUint64(e,n){const r=this.getUint32(e,n),i=this.getUint32(e+4,n);let a;if(n){if(a=r+2**32*i,!Number.isSafeInteger(a))throw new Error(`${a} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return a}if(a=2**32*r+i,!Number.isSafeInteger(a))throw new Error(`${a} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return a}getInt64(e,n){let r=0;const i=(this._dataView.getUint8(e+(n?7:0))&128)>0;let a=!0;for(let o=0;o<8;o++){let s=this._dataView.getUint8(e+(n?o:7-o));i&&(a?s!==0&&(s=~(s-1)&255,a=!1):s=~s&255),r+=s*256**o}return i&&(r=-r),r}getUint8(e,n){return this._dataView.getUint8(e,n)}getInt8(e,n){return this._dataView.getInt8(e,n)}getUint16(e,n){return this._dataView.getUint16(e,n)}getInt16(e,n){return this._dataView.getInt16(e,n)}getUint32(e,n){return this._dataView.getUint32(e,n)}getInt32(e,n){return this._dataView.getInt32(e,n)}getFloat16(e,n){return wGe(this._dataView,e,n)}getFloat32(e,n){return this._dataView.getFloat32(e,n)}getFloat64(e,n){return this._dataView.getFloat64(e,n)}}class xsn{constructor(e,n,r,i){this._dataView=new DataView(e),this._sliceOffset=n,this._littleEndian=r,this._bigTiff=i}get sliceOffset(){return this._sliceOffset}get sliceTop(){return this._sliceOffset+this.buffer.byteLength}get littleEndian(){return this._littleEndian}get bigTiff(){return this._bigTiff}get buffer(){return this._dataView.buffer}covers(e,n){return this.sliceOffset<=e&&this.sliceTop>=e+n}readUint8(e){return this._dataView.getUint8(e-this._sliceOffset,this._littleEndian)}readInt8(e){return this._dataView.getInt8(e-this._sliceOffset,this._littleEndian)}readUint16(e){return this._dataView.getUint16(e-this._sliceOffset,this._littleEndian)}readInt16(e){return this._dataView.getInt16(e-this._sliceOffset,this._littleEndian)}readUint32(e){return this._dataView.getUint32(e-this._sliceOffset,this._littleEndian)}readInt32(e){return this._dataView.getInt32(e-this._sliceOffset,this._littleEndian)}readFloat32(e){return this._dataView.getFloat32(e-this._sliceOffset,this._littleEndian)}readFloat64(e){return this._dataView.getFloat64(e-this._sliceOffset,this._littleEndian)}readUint64(e){const n=this.readUint32(e),r=this.readUint32(e+4);let i;if(this._littleEndian){if(i=n+2**32*r,!Number.isSafeInteger(i))throw new Error(`${i} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return i}if(i=2**32*n+r,!Number.isSafeInteger(i))throw new Error(`${i} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return i}readInt64(e){let n=0;const r=(this._dataView.getUint8(e+(this._littleEndian?7:0))&128)>0;let i=!0;for(let a=0;a<8;a++){let o=this._dataView.getUint8(e+(this._littleEndian?a:7-a));r&&(i?o!==0&&(o=~(o-1)&255,i=!1):o=~o&255),n+=o*256**a}return r&&(n=-n),n}readOffset(e){return this._bigTiff?this.readUint64(e):this.readUint32(e)}}class Ssn{async fetch(e,n=void 0){return Promise.all(e.map(r=>this.fetchSlice(r,n)))}async fetchSlice(e){throw new Error(`fetching of slice ${e} not possible, not implemented`)}get fileSize(){return null}async close(){}}class Woe extends Error{constructor(e){super(e),Error.captureStackTrace&&Error.captureStackTrace(this,Woe),this.name="AbortError"}}class Csn extends Ssn{constructor(e){super(),this.arrayBuffer=e}fetchSlice(e,n){if(n&&n.aborted)throw new Woe("Request aborted");return this.arrayBuffer.slice(e.offset,e.offset+e.length)}}function _sn(t){return new Csn(t)}function zee(t){switch(t){case Ho.BYTE:case Ho.ASCII:case Ho.SBYTE:case Ho.UNDEFINED:return 1;case Ho.SHORT:case Ho.SSHORT:return 2;case Ho.LONG:case Ho.SLONG:case Ho.FLOAT:case Ho.IFD:return 4;case Ho.RATIONAL:case Ho.SRATIONAL:case Ho.DOUBLE:case Ho.LONG8:case Ho.SLONG8:case Ho.IFD8:return 8;default:throw new RangeError(`Invalid field type: ${t}`)}}function wsn(t){const e=t.GeoKeyDirectory;if(!e)return null;const n={};for(let r=4;r<=e[3]*4;r+=4){const i=Jon[e[r]],a=e[r+1]?m5[e[r+1]]:null,o=e[r+2],s=e[r+3];let l=null;if(!a)l=s;else{if(l=t[a],typeof l>"u"||l===null)throw new Error(`Could not get value of geoKey '${i}'.`);typeof l=="string"?l=l.substring(s,s+o-1):l.subarray&&(l=l.subarray(s,s+o),o===1&&(l=l[0]))}n[i]=l}return n}function l_(t,e,n,r){let i=null,a=null;const o=zee(e);switch(e){case Ho.BYTE:case Ho.ASCII:case Ho.UNDEFINED:i=new Uint8Array(n),a=t.readUint8;break;case Ho.SBYTE:i=new Int8Array(n),a=t.readInt8;break;case Ho.SHORT:i=new Uint16Array(n),a=t.readUint16;break;case Ho.SSHORT:i=new Int16Array(n),a=t.readInt16;break;case Ho.LONG:case Ho.IFD:i=new Uint32Array(n),a=t.readUint32;break;case Ho.SLONG:i=new Int32Array(n),a=t.readInt32;break;case Ho.LONG8:case Ho.IFD8:i=new Array(n),a=t.readUint64;break;case Ho.SLONG8:i=new Array(n),a=t.readInt64;break;case Ho.RATIONAL:i=new Uint32Array(n*2),a=t.readUint32;break;case Ho.SRATIONAL:i=new Int32Array(n*2),a=t.readInt32;break;case Ho.FLOAT:i=new Float32Array(n),a=t.readFloat32;break;case Ho.DOUBLE:i=new Float64Array(n),a=t.readFloat64;break;default:throw new RangeError(`Invalid field type: ${e}`)}if(e===Ho.RATIONAL||e===Ho.SRATIONAL)for(let s=0;s<n;s+=2)i[s]=a.call(t,r+s*o),i[s+1]=a.call(t,r+(s*o+4));else for(let s=0;s<n;++s)i[s]=a.call(t,r+s*o);return e===Ho.ASCII?new TextDecoder("utf-8").decode(i):i}class Tsn{constructor(e,n,r){this.fileDirectory=e,this.geoKeyDirectory=n,this.nextIFDByteOffset=r}}class FN extends Error{constructor(e){super(`No image at index ${e}`),this.index=e}}class Isn{async readRasters(e={}){const{window:n,width:r,height:i}=e;let{resX:a,resY:o,bbox:s}=e;const l=await this.getImage();let u=l;const d=await this.getImageCount(),f=l.getBoundingBox();if(n&&s)throw new Error('Both "bbox" and "window" passed.');if(r||i){if(n){const[m,y]=l.getOrigin(),[g,v]=l.getResolution();s=[m+n[0]*g,y+n[1]*v,m+n[2]*g,y+n[3]*v]}const h=s||f;if(r){if(a)throw new Error("Both width and resX passed");a=(h[2]-h[0])/r}if(i){if(o)throw new Error("Both width and resY passed");o=(h[3]-h[1])/i}}if(a||o){const h=[];for(let m=0;m<d;++m){const y=await this.getImage(m),{SubfileType:g,NewSubfileType:v}=y.fileDirectory;(m===0||g===2||v&1)&&h.push(y)}h.sort((m,y)=>m.getWidth()-y.getWidth());for(let m=0;m<h.length;++m){const y=h[m],g=(f[2]-f[0])/y.getWidth(),v=(f[3]-f[1])/y.getHeight();if(u=y,a&&a>g||o&&o>v)break}}let p=n;if(s){const[h,m]=l.getOrigin(),[y,g]=u.getResolution(l);p=[Math.round((s[0]-h)/y),Math.round((s[1]-m)/g),Math.round((s[2]-h)/y),Math.round((s[3]-m)/g)],p=[Math.min(p[0],p[2]),Math.min(p[1],p[3]),Math.max(p[0],p[2]),Math.max(p[1],p[3])]}return u.readRasters({...e,window:p})}}class Xoe extends Isn{constructor(e,n,r,i,a={}){super(),this.source=e,this.littleEndian=n,this.bigTiff=r,this.firstIFDOffset=i,this.cache=a.cache||!1,this.ifdRequests=[],this.ghostValues=null}async getSlice(e,n){const r=this.bigTiff?4048:1024;return new xsn((await this.source.fetch([{offset:e,length:typeof n<"u"?n:r}]))[0],e,this.littleEndian,this.bigTiff)}async parseFileDirectoryAt(e){const n=this.bigTiff?20:12,r=this.bigTiff?8:2;let i=await this.getSlice(e);const a=this.bigTiff?i.readUint64(e):i.readUint16(e),o=a*n+(this.bigTiff?16:6);i.covers(e,o)||(i=await this.getSlice(e,o));const s={};let l=e+(this.bigTiff?8:2);for(let f=0;f<a;l+=n,++f){const p=i.readUint16(l),h=i.readUint16(l+2),m=this.bigTiff?i.readUint64(l+4):i.readUint32(l+4);let y,g;const v=zee(h),E=l+(this.bigTiff?12:8);if(v*m<=(this.bigTiff?8:4))y=l_(i,h,m,E);else{const b=i.readOffset(E),S=zee(h)*m;if(i.covers(b,S))y=l_(i,h,m,b);else{const C=await this.getSlice(b,S);y=l_(C,h,m,b)}}m===1&&qon.indexOf(p)===-1&&!(h===Ho.RATIONAL||h===Ho.SRATIONAL)?g=y[0]:g=y,s[m5[p]]=g}const u=wsn(s),d=i.readOffset(e+r+n*a);return new Tsn(s,u,d)}async requestIFD(e){if(this.ifdRequests[e])return this.ifdRequests[e];if(e===0)return this.ifdRequests[e]=this.parseFileDirectoryAt(this.firstIFDOffset),this.ifdRequests[e];if(!this.ifdRequests[e-1])try{this.ifdRequests[e-1]=this.requestIFD(e-1)}catch(n){throw n instanceof FN?new FN(e):n}return this.ifdRequests[e]=(async()=>{const n=await this.ifdRequests[e-1];if(n.nextIFDByteOffset===0)throw new FN(e);return this.parseFileDirectoryAt(n.nextIFDByteOffset)})(),this.ifdRequests[e]}async getImage(e=0){const n=await this.requestIFD(e);return new bsn(n.fileDirectory,n.geoKeyDirectory,this.dataView,this.littleEndian,this.cache,this.source)}async getImageCount(){let e=0,n=!0;for(;n;)try{await this.requestIFD(e),++e}catch(r){if(r instanceof FN)n=!1;else throw r}return e}async getGhostValues(){const e=this.bigTiff?16:8;if(this.ghostValues)return this.ghostValues;const n="GDAL_STRUCTURAL_METADATA_SIZE=",r=n.length+100;let i=await this.getSlice(e,r);if(n===l_(i,Ho.ASCII,n.length,e)){const o=l_(i,Ho.ASCII,r,e).split(`
|
|
4509
4509
|
`)[0],s=Number(o.split("=")[1].split(" ")[0])+o.length;s>r&&(i=await this.getSlice(e,s));const l=l_(i,Ho.ASCII,s,e);this.ghostValues={},l.split(`
|
|
4510
4510
|
`).filter(u=>u.length>0).map(u=>u.split("=")).forEach(([u,d])=>{this.ghostValues[u]=d})}return this.ghostValues}static async fromSource(e,n,r){const i=(await e.fetch([{offset:0,length:1024}],r))[0],a=new Esn(i),o=a.getUint16(0,0);let s;if(o===18761)s=!0;else if(o===19789)s=!1;else throw new TypeError("Invalid byte order value.");const l=a.getUint16(2,s);let u;if(l===42)u=!1;else if(l===43){if(u=!0,a.getUint16(4,s)!==8)throw new Error("Unsupported offset byte-size.")}else throw new TypeError("Invalid magic number.");const d=u?a.getUint64(8,s):a.getUint32(4,s);return new Xoe(e,s,u,d,n)}close(){return typeof this.source.close=="function"?this.source.close():!1}}async function Hee(t,e){return Xoe.fromSource(_sn(t),e)}const Asn=({axon_check:t,fbxTreeDatas:e,setLeftMenuTabIndex:n,swcRef:r,setIsChartOpen:i,setEchartValue:a,setChartValue:o,reset:s})=>{const l=x.useRef(null),u=x.useRef(null),[d,f]=x.useState(!1),[p,h]=x.useState(""),[m,y]=x.useState(""),[g,v]=x.useState({x:0,y:0}),E=x.useRef([]),b=x.useRef([]),S=x.useRef(null),C=x.useRef(null),[_,I]=x.useState(!0),P=x.useRef("#000"),[R,N]=x.useState(["Isocortex","OLF","HPF","CTXsp","STR","PAL","IB","MB","HB","CB","VS","fiber tract"]),[D,F]=x.useState({nodes:[],links:[],categories:[]});let j=x.useRef(null),U=!1;const H=(X,ne)=>{N(Z=>[...Z.filter(Y=>!X.includes(Y)),...ne])};x.useEffect(()=>{N(["Isocortex","OLF","HPF","CTXsp","STR","PAL","IB","MB","HB","CB","VS","fiber tract"])},[s]);const z=(X,ne)=>ne.map(Z=>{const Y=X.find(J=>J.id===Z.source),Q=X.find(J=>J.id===Z.target);return{...Z,lineStyle:{color:{type:"linear",x:0,y:0,x2:1,y2:0,colorStops:[{offset:0,color:Q.itemStyle.color},{offset:1,color:Y.itemStyle.color}]},width:1,curveness:.3}}});x.useEffect(()=>{B(R)},[R]);const B=X=>{fetch("/app-api/d-api/connectivity",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:X})}).then(ne=>ne.json()).then(ne=>{ne.code==200?F(ne.node):co.error(ne.message)})};x.useEffect(()=>{u.current=nb(l.current),u.current.clear();const X=()=>u.current.getOption().series[0].data,ne={tooltip:{formatter:te=>{var ae,de;return te.dataType==="node"?`${te.data.fullname} (${te.data.name})<br>Downstream: ${((ae=t[te.data.name].down)==null?void 0:ae.length)??0} projection neuron(s)<br>Upstream: projected by ${((de=t[te.data.name].up)==null?void 0:de.length)??0} neuron(s)`:(te.dataType,"")}},animationDurationUpdate:1500,animationEasingUpdate:"quinticInOut",series:[{name:"Les Miserables",type:"graph",layout:"circular",circular:{rotateLabel:!0},data:D.nodes,links:z(D.nodes,D.links),categories:D.categories,roam:!0,label:{show:!0,position:"right",formatter:"{b}",textStyle:{fontSize:20}},lineStyle:{color:"source",curveness:.3}}]};function Z(te){if(te.event.event.preventDefault(),te.dataType=="node"){const ae=Y(te.data.name,e);let de=W(ae);de&&H(de,[ae.name])}if(te.dataType=="edge"){const ae=X().find(ue=>ue.id===te.data.source),de=X().find(ue=>ue.id===te.data.target);E.current=t[ae.name].soma.filter(function(ue){return t[de.name].axon.indexOf(ue)>-1}),b.current=t[de.name].soma.filter(function(ue){return t[ae.name].axon.indexOf(ue)>-1}),h(ae.name),y(de.name),v({x:te.event.event.clientX+2,y:te.event.event.clientY}),f(!0),P.current=te.data.lineStyle.color.colorStops[0].color}}const Y=(te,ae)=>{let de={name:""};for(let ue=0;ue<ae.length;ue++){const fe=ae[ue];if(fe.children){if(fe.children.some(oe=>oe.name===te)){de=fe;break}else if(Y(te,fe.children)){de=Y(te,fe.children);break}}}return de},Q=te=>{clearTimeout(j.current),U=!0,a(te.data.name),o(te.data.name),i(!1)},J=te=>{j.current=setTimeout(()=>{if(!U){const ae=q(te.data.name,e);if(ae){let de=[];"children"in ae?(ae.children.forEach(ue=>{de.push(ue.name)}),H([te.data.name],de)):co.error("No child node")}}U=!1},300)};return u.current.setOption(ne),u.current.on("click",J),u.current.on("dblclick",Q),u.current.on("contextmenu",Z),()=>{u.current.off("click",J),u.current.off("dblclick",Q),u.current.off("contextmenu",Z)}},[e,D]);const W=X=>{const ne=[],Z=Y=>{ne.push(Y.name),Y.children&&Y.children.forEach(Q=>Z(Q))};return Z(X),ne},q=(X,ne)=>{let Z=[],Y=!1,Q;for(let J=0;J<ne.length;J++)Z.push(ne[J]);for(;Z.length>0&&!Y;){let J=Z.pop();if(J.name==X){Y=!0,Q=J;break}else if(J.children)for(let te=0;te<J.children.length;te++)Z.push(J.children[te])}return Q},G=[{key:"1",label:x.createElement("a",{target:"_blank",style:{width:"150px",textAlign:"center"},onClick:X=>{n(3),r.current.setSearchValue(m),r.current.setSomaValue(p),f(!1),i(!1)}},p," →",m,": ",E.current.length," projection neruon(s)")},{key:"2",label:x.createElement("a",{target:"_blank",style:{width:"150px",textAlign:"center"},onClick:X=>{n(3),r.current.setSearchValue(p),r.current.setSomaValue(m),f(!1),i(!1)}},m," →",p,": ",b.current.length," projection neruon(s)")}];return x.createElement(x.Fragment,null,x.createElement("div",{style:{overflow:"hidden",position:"absolute",width:"500px",height:"200px"}},x.createElement("div",{ref:S,style:{zIndex:9,position:"absolute",backgroundColor:"#f1f1f180",borderTopRightRadius:"5px",borderTopLeftRadius:"5px",borderBottomRightRadius:"5px",transform:_?"translateY(0)":"translateY(-99%)",transition:"transform 0.3s ease-in-out",padding:"5px"}},x.createElement("p",{style:{paddingLeft:"10px",paddingRight:"10px"}},"- Mouse-over a node to see upstream and downstream neuron numbers",x.createElement("br",null),"- Left-click a node to expand its children structures",x.createElement("br",null),"- Righ-click a node to collapse to its parent structure",x.createElement("br",null),"- Double-click a node to visualize all its projections in the main window",x.createElement("br",null),"- Righ-click a line to see the projections between two connected nodes",x.createElement("br",null),"- Left-click the popup menu of the line to inquire the projection neurons"),x.createElement("a",{style:{zIndex:9,position:"absolute",bottom:"-28px",left:0,display:"flex"},onClick:()=>{I(!_)}},x.createElement("div",{style:{width:"90px",height:"28px",display:"flex",justifyContent:"center",borderBottomRightRadius:"5px",borderBottomLeftRadius:"5px",backgroundColor:"#f1f1f180"}},x.createElement("div",{style:{display:"flex",alignItems:"center",color:"#000"}},"Help ",x.createElement("div",{ref:C,style:{width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent",borderBottom:_?"10px solid #000":0,borderTop:_?0:"10px solid #000"}})))))),x.createElement(hS,{menu:{items:G},open:d,overlayStyle:{position:"absolute",left:g.x,top:g.y,width:"auto",minWidth:"auto",border:`2px solid ${P}`},overlayClassName:"pipeline_dropdown"},x.createElement("div",{ref:l,style:{width:"100%",height:"calc(100vh - 75px)"},onMouseEnter:()=>{f(!1)}})))},Rsn="1.2.0",Osn=x.createContext({}),Lsn=Osn,Nsn={classNames:{},styles:{},className:"",style:{}},Msn=t=>{const e=x.useContext(Lsn);return x.useMemo(()=>({...Nsn,...e[t]}),[e[t]])},MGe=Msn;function Fm(){return Fm=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)({}).hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},Fm.apply(null,arguments)}function F6(){const{getPrefixCls:t,direction:e,csp:n,iconPrefixCls:r,theme:i}=x.useContext(zm.ConfigContext);return{theme:i,getPrefixCls:t,direction:e,csp:n,iconPrefixCls:r}}process.env.NODE_ENV;const Psn=N5(dJ.defaultAlgorithm),Dsn={screenXS:!0,screenXSMin:!0,screenXSMax:!0,screenSM:!0,screenSMMin:!0,screenSMMax:!0,screenMD:!0,screenMDMin:!0,screenMDMax:!0,screenLG:!0,screenLGMin:!0,screenLGMax:!0,screenXL:!0,screenXLMin:!0,screenXLMax:!0,screenXXL:!0,screenXXLMin:!0},PGe=(t,e,n)=>{const r=n.getDerivativeToken(t),{override:i,...a}=e;let o={...r,override:i};return o=oD(o),a&&Object.entries(a).forEach(([s,l])=>{const{theme:u,...d}=l;let f=d;u&&(f=PGe({...o,...d},{override:d},u)),o[s]=f}),o};function ksn(){const{token:t,hashed:e,theme:n=Psn,override:r,cssVar:i}=x.useContext(dJ._internalContext),[a,o,s]=W6e(n,[dJ.defaultSeed,t],{salt:`${Rsn}-${e||""}`,override:r,getComputedToken:PGe,cssVar:i&&{prefix:i.prefix,key:i.key,unitless:ene,ignore:XRe,preserve:Dsn}});return[n,s,e?o:"",a,i]}const{genStyleHooks:DGe,genComponentStyleHook:w5n,genSubStyleComponent:T5n}=WRe({usePrefix:()=>{const{getPrefixCls:t,iconPrefixCls:e}=F6();return{iconPrefixCls:e,rootPrefixCls:t()}},useToken:()=>{const[t,e,n,r,i]=ksn();return{theme:t,realToken:e,hashId:n,token:r,cssVar:i}},useCSP:()=>{const{csp:t}=F6();return t??{}},layer:{name:"antdx",dependencies:["antd"]}});function Usn(t,e){return x.useImperativeHandle(t,()=>{const n=e(),{nativeElement:r}=n;return new Proxy(r,{get(i,a){return n[a]?n[a]:Reflect.get(i,a)}})})}const kGe=w.createContext({}),_Ce=()=>({height:0}),wCe=t=>({height:t.scrollHeight});function Fsn(t){const{title:e,onOpenChange:n,open:r,children:i,className:a,style:o,classNames:s={},styles:l={},closable:u,forceRender:d}=t,{prefixCls:f}=w.useContext(kGe),p=`${f}-header`;return w.createElement(Gm,{motionEnter:!0,motionLeave:!0,motionName:`${p}-motion`,leavedClassName:`${p}-motion-hidden`,onEnterStart:_Ce,onEnterActive:wCe,onLeaveStart:wCe,onLeaveActive:_Ce,visible:r,forceRender:d},({className:h,style:m})=>w.createElement("div",{className:et(p,h,a),style:{...m,...o}},(u!==!1||e)&&w.createElement("div",{className:et(`${p}-header`,s.header),style:{...l.header}},w.createElement("div",{className:`${p}-title`},e),u!==!1&&w.createElement("div",{className:`${p}-close`},w.createElement(ca,{type:"text",icon:w.createElement(Hm,null),size:"small",onClick:()=>{n==null||n(!r)}}))),i&&w.createElement("div",{className:et(`${p}-content`,s.content),style:{...l.content}},i)))}const uU=w.createContext(null);function Bsn(t,e){const{className:n,action:r,onClick:i,...a}=t,o=w.useContext(uU),{prefixCls:s,disabled:l}=o,u=a.disabled??l??o[`${r}Disabled`];return w.createElement(ca,Fm({type:"text"},a,{ref:e,onClick:d=>{var f;u||((f=o[r])==null||f.call(o),i==null||i(d))},className:et(s,n,{[`${s}-disabled`]:u})}))}const dU=w.forwardRef(Bsn);function $sn(t,e){return w.createElement(dU,Fm({icon:w.createElement(xxt,null)},t,{action:"onClear",ref:e}))}const Vsn=w.forwardRef($sn),zsn=x.memo(t=>{const{className:e}=t;return x.createElement("svg",{color:"currentColor",viewBox:"0 0 1000 1000",xmlns:"http://www.w3.org/2000/svg",className:e},x.createElement("title",null,"Stop Loading"),x.createElement("rect",{fill:"currentColor",height:"250",rx:"24",ry:"24",width:"250",x:"375",y:"375"}),x.createElement("circle",{cx:"500",cy:"500",fill:"none",r:"450",stroke:"currentColor",strokeWidth:"100",opacity:"0.45"}),x.createElement("circle",{cx:"500",cy:"500",fill:"none",r:"450",stroke:"currentColor",strokeWidth:"100",strokeDasharray:"600 9999999"},x.createElement("animateTransform",{attributeName:"transform",dur:"1s",from:"0 500 500",repeatCount:"indefinite",to:"360 500 500",type:"rotate"})))}),Hsn=zsn;function Gsn(t,e){const{prefixCls:n}=w.useContext(uU),{className:r}=t;return w.createElement(dU,Fm({icon:null,color:"primary",variant:"text",shape:"circle"},t,{className:et(r,`${n}-loading-button`),action:"onCancel",ref:e}),w.createElement(Hsn,{className:`${n}-loading-icon`}))}const UGe=w.forwardRef(Gsn);function jsn(t,e){return w.createElement(dU,Fm({icon:w.createElement(HEt,null),type:"primary",shape:"circle"},t,{action:"onSend",ref:e}))}const FGe=w.forwardRef(jsn),AI=1e3,RI=4,v7=140,TCe=v7/2,BN=250,ICe=500,$N=.8;function Wsn({className:t}){return x.createElement("svg",{color:"currentColor",viewBox:`0 0 ${AI} ${AI}`,xmlns:"http://www.w3.org/2000/svg",className:t},x.createElement("title",null,"Speech Recording"),Array.from({length:RI}).map((e,n)=>{const r=(AI-v7*RI)/(RI-1),i=n*(r+v7),a=AI/2-BN/2,o=AI/2-ICe/2;return x.createElement("rect",{fill:"currentColor",rx:TCe,ry:TCe,height:BN,width:v7,x:i,y:a,key:n},x.createElement("animate",{attributeName:"height",values:`${BN}; ${ICe}; ${BN}`,keyTimes:"0; 0.5; 1",dur:`${$N}s`,begin:`${$N/RI*n}s`,repeatCount:"indefinite"}),x.createElement("animate",{attributeName:"y",values:`${a}; ${o}; ${a}`,keyTimes:"0; 0.5; 1",dur:`${$N}s`,begin:`${$N/RI*n}s`,repeatCount:"indefinite"}))}))}function Xsn(t,e){const{speechRecording:n,onSpeechDisabled:r,prefixCls:i}=w.useContext(uU);let a=null;return n?a=w.createElement(Wsn,{className:`${i}-recording-icon`}):r?a=w.createElement(XEt,null):a=w.createElement(KEt,null),w.createElement(dU,Fm({icon:a,color:"primary",variant:"text"},t,{action:"onSpeech",ref:e}))}const BGe=w.forwardRef(Xsn),qsn=t=>{const{componentCls:e,calc:n}=t,r=`${e}-header`;return{[e]:{[r]:{borderBottomWidth:t.lineWidth,borderBottomStyle:"solid",borderBottomColor:t.colorBorder,"&-header":{background:t.colorFillAlter,fontSize:t.fontSize,lineHeight:t.lineHeight,paddingBlock:n(t.paddingSM).sub(t.lineWidthBold).equal(),paddingInlineStart:t.padding,paddingInlineEnd:t.paddingXS,display:"flex",borderRadius:{_skip_check_:!0,value:n(t.borderRadius).mul(2).equal()},borderEndStartRadius:0,borderEndEndRadius:0,[`${r}-title`]:{flex:"auto"}},"&-content":{padding:t.padding},"&-motion":{transition:["height","border"].map(i=>`${i} ${t.motionDurationSlow}`).join(","),overflow:"hidden","&-enter-start, &-leave-active":{borderBottomColor:"transparent"},"&-hidden":{display:"none"}}}}}},Ysn=qsn,Zsn=t=>{const{componentCls:e,padding:n,paddingSM:r,paddingXS:i,paddingXXS:a,lineWidth:o,lineWidthBold:s,calc:l}=t;return{[e]:{position:"relative",width:"100%",boxSizing:"border-box",boxShadow:`${t.boxShadowTertiary}`,transition:`background ${t.motionDurationSlow}`,borderRadius:{_skip_check_:!0,value:l(t.borderRadius).mul(2).equal()},borderColor:t.colorBorder,borderWidth:0,borderStyle:"solid","&:after":{content:'""',position:"absolute",inset:0,pointerEvents:"none",transition:`border-color ${t.motionDurationSlow}`,borderRadius:{_skip_check_:!0,value:"inherit"},borderStyle:"inherit",borderColor:"inherit",borderWidth:o},"&:focus-within":{boxShadow:`${t.boxShadowSecondary}`,borderColor:t.colorPrimary,"&:after":{borderWidth:s}},"&-disabled":{background:t.colorBgContainerDisabled},[`&${e}-rtl`]:{direction:"rtl"},[`${e}-content`]:{display:"flex",gap:i,width:"100%",paddingBlock:r,paddingInlineStart:n,paddingInlineEnd:r,boxSizing:"border-box",alignItems:"flex-end"},[`${e}-prefix`]:{flex:"none"},[`${e}-input`]:{padding:0,borderRadius:0,flex:"auto",alignSelf:"center",minHeight:"auto"},[`${e}-actions-list`]:{flex:"none",display:"flex","&-presets":{gap:t.paddingXS}},[`${e}-actions-btn`]:{"&-disabled":{opacity:.45},"&-loading-button":{padding:0,border:0},"&-loading-icon":{height:t.controlHeight,width:t.controlHeight,verticalAlign:"top"},"&-recording-icon":{height:"1.2em",width:"1.2em",verticalAlign:"top"}},[`${e}-footer`]:{paddingInlineStart:n,paddingInlineEnd:r,paddingBlockEnd:r,paddingBlockStart:a,boxSizing:"border-box"}}}},Ksn=()=>({}),Jsn=DGe("Sender",t=>{const{paddingXS:e,calc:n}=t,r=wa(t,{SenderContentMaxWidth:`calc(100% - ${Je(n(e).add(32).equal())})`});return[Zsn(r),Ysn(r)]},Ksn);let C9;!C9&&typeof window<"u"&&(C9=window.SpeechRecognition||window.webkitSpeechRecognition);function Qsn(t,e){const n=Rl(t),[r,i,a]=x.useMemo(()=>typeof e=="object"?[e.recording,e.onRecordingChange,typeof e.recording=="boolean"]:[void 0,void 0,!1],[e]),[o,s]=x.useState(null);x.useEffect(()=>{if(typeof navigator<"u"&&"permissions"in navigator){let y=null;return navigator.permissions.query({name:"microphone"}).then(g=>{s(g.state),g.onchange=function(){s(this.state)},y=g}),()=>{y&&(y.onchange=null)}}},[]);const l=C9&&o!=="denied",u=x.useRef(null),[d,f]=Nl(!1,{value:r}),p=x.useRef(!1),h=()=>{if(l&&!u.current){const y=new C9;y.onstart=()=>{f(!0)},y.onend=()=>{f(!1)},y.onresult=g=>{var v,E,b;if(!p.current){const S=(b=(E=(v=g.results)==null?void 0:v[0])==null?void 0:E[0])==null?void 0:b.transcript;n(S)}p.current=!1},u.current=y}},m=Rl(y=>{y&&!d||(p.current=y,a?i==null||i(!d):(h(),u.current&&(d?(u.current.stop(),i==null||i(!1)):(u.current.start(),i==null||i(!0)))))});return[l,m,d]}function eln(t,e,n){return Og(t,e)||n}const ACe={SendButton:FGe,ClearButton:Vsn,LoadingButton:UGe,SpeechButton:BGe},tln=x.forwardRef((t,e)=>{const{prefixCls:n,styles:r={},classNames:i={},className:a,rootClassName:o,style:s,defaultValue:l,value:u,readOnly:d,submitType:f="enter",onSubmit:p,loading:h,components:m,onCancel:y,onChange:g,actions:v,onKeyPress:E,onKeyDown:b,disabled:S,allowSpeech:C,prefix:_,footer:I,header:P,onPaste:R,onPasteFile:N,autoSize:D={maxRows:8},...F}=t,{direction:j,getPrefixCls:U}=F6(),H=U("sender",n),z=x.useRef(null),B=x.useRef(null);Usn(e,()=>{var _e,Te;return{nativeElement:z.current,focus:(_e=B.current)==null?void 0:_e.focus,blur:(Te=B.current)==null?void 0:Te.blur}});const W=MGe("sender"),q=`${H}-input`,[G,X,ne]=Jsn(H),Z=et(H,W.className,a,o,X,ne,{[`${H}-rtl`]:j==="rtl",[`${H}-disabled`]:S}),Y=`${H}-actions-btn`,Q=`${H}-actions-list`,[J,te]=Nl(l||"",{value:u}),ae=(_e,Te)=>{te(_e),g&&g(_e,Te)},[de,ue,fe]=Qsn(_e=>{ae(`${J} ${_e}`)},C),oe=eln(m,["input"],Dc.TextArea),se={...mp(F,{attr:!0,aria:!0,data:!0}),ref:B},ve=()=>{J&&p&&!h&&p(J)},he=()=>{ae("")},Re=x.useRef(!1),Fe=()=>{Re.current=!0},Ye=()=>{Re.current=!1},Ue=_e=>{const Te=_e.key==="Enter"&&!Re.current;switch(f){case"enter":Te&&!_e.shiftKey&&(_e.preventDefault(),ve());break;case"shiftEnter":Te&&_e.shiftKey&&(_e.preventDefault(),ve());break}E==null||E(_e)},ge=_e=>{var Pe;const Te=(Pe=_e.clipboardData)==null?void 0:Pe.files;Te!=null&&Te.length&&N&&(N(Te[0],Te),_e.preventDefault()),R==null||R(_e)},qe=_e=>{var Te,Pe;_e.target!==((Te=z.current)==null?void 0:Te.querySelector(`.${q}`))&&_e.preventDefault(),(Pe=B.current)==null||Pe.focus()};let ye=x.createElement(n7e,{className:`${Q}-presets`},C&&x.createElement(BGe,null),h?x.createElement(UGe,null):x.createElement(FGe,null));typeof v=="function"?ye=v(ye,{components:ACe}):(v||v===!1)&&(ye=v);const ee={prefixCls:Y,onSend:ve,onSendDisabled:!J,onClear:he,onClearDisabled:!J,onCancel:y,onCancelDisabled:!h,onSpeech:()=>ue(!1),onSpeechDisabled:!de,speechRecording:fe,disabled:S},be=typeof I=="function"?I({components:ACe}):I||null;return G(x.createElement("div",{ref:z,className:Z,style:{...W.style,...s}},P&&x.createElement(kGe.Provider,{value:{prefixCls:H}},P),x.createElement(uU.Provider,{value:ee},x.createElement("div",{className:`${H}-content`,onMouseDown:qe},_&&x.createElement("div",{className:et(`${H}-prefix`,W.classNames.prefix,i.prefix),style:{...W.styles.prefix,...r.prefix}},_),x.createElement(oe,Fm({},se,{disabled:S,style:{...W.styles.input,...r.input},className:et(q,W.classNames.input,i.input),autoSize:D,value:J,onChange:_e=>{ae(_e.target.value,_e),ue(!0)},onPressEnter:Ue,onCompositionStart:Fe,onCompositionEnd:Ye,onKeyDown:b,onPaste:ge,variant:"borderless",readOnly:d})),ye&&x.createElement("div",{className:et(Q,W.classNames.actions,i.actions),style:{...W.styles.actions,...r.actions}},ye)),be&&x.createElement("div",{className:et(`${H}-footer`,W.classNames.footer,i.footer),style:{...W.styles.footer,...r.footer}},be))))}),qoe=tln;process.env.NODE_ENV!=="production"&&(qoe.displayName="Sender");qoe.Header=Fsn;const nln=qoe;function VN(t){return typeof t=="string"}const rln=(t,e,n,r)=>{const i=w.useRef(""),[a,o]=w.useState(1),s=e&&VN(t);return us(()=>{!s&&VN(t)?o(t.length):VN(t)&&VN(i.current)&&t.indexOf(i.current)!==0&&o(1),i.current=t},[t]),w.useEffect(()=>{if(s&&a<t.length){const u=setTimeout(()=>{o(d=>d+n)},r);return()=>{clearTimeout(u)}}},[a,e,t]),[s?t.slice(0,a):t,s&&a<t.length]},iln=rln;function aln(t){return w.useMemo(()=>{if(!t)return[!1,0,0,null];let e={step:1,interval:50,suffix:null};return typeof t=="object"&&(e={...e,...t}),[!0,e.step,e.interval,e.suffix]},[t])}const oln=({prefixCls:t})=>x.createElement("span",{className:`${t}-dot`},x.createElement("i",{className:`${t}-dot-item`,key:"item-1"}),x.createElement("i",{className:`${t}-dot-item`,key:"item-2"}),x.createElement("i",{className:`${t}-dot-item`,key:"item-3"})),sln=oln,lln=t=>{const{componentCls:e,paddingSM:n,padding:r}=t;return{[e]:{[`${e}-content`]:{"&-filled,&-outlined,&-shadow":{padding:`${Je(n)} ${Je(r)}`,borderRadius:t.borderRadiusLG},"&-filled":{backgroundColor:t.colorFillContent},"&-outlined":{border:`1px solid ${t.colorBorderSecondary}`},"&-shadow":{boxShadow:t.boxShadowTertiary}}}}},cln=t=>{const{componentCls:e,fontSize:n,lineHeight:r,paddingSM:i,padding:a,calc:o}=t,s=o(n).mul(r).div(2).add(i).equal(),l=`${e}-content`;return{[e]:{[l]:{"&-round":{borderRadius:{_skip_check_:!0,value:s},paddingInline:o(a).mul(1.25).equal()}},[`&-start ${l}-corner`]:{borderStartStartRadius:t.borderRadiusXS},[`&-end ${l}-corner`]:{borderStartEndRadius:t.borderRadiusXS}}}},uln=t=>{const{componentCls:e,padding:n}=t;return{[`${e}-list`]:{display:"flex",flexDirection:"column",gap:n,overflowY:"auto","&::-webkit-scrollbar":{width:8,backgroundColor:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:t.colorTextTertiary,borderRadius:t.borderRadiusSM},"&":{scrollbarWidth:"thin",scrollbarColor:`${t.colorTextTertiary} transparent`}}}},dln=uln,fln=new ho("loadingMove",{"0%":{transform:"translateY(0)"},"10%":{transform:"translateY(4px)"},"20%":{transform:"translateY(0)"},"30%":{transform:"translateY(-4px)"},"40%":{transform:"translateY(0)"}}),pln=new ho("cursorBlink",{"0%":{opacity:1},"50%":{opacity:0},"100%":{opacity:1}}),hln=t=>{const{componentCls:e,fontSize:n,lineHeight:r,paddingSM:i,colorText:a,calc:o}=t;return{[e]:{display:"flex",columnGap:i,[`&${e}-end`]:{justifyContent:"end",flexDirection:"row-reverse",[`& ${e}-content-wrapper`]:{alignItems:"flex-end"}},[`&${e}-rtl`]:{direction:"rtl"},[`&${e}-typing ${e}-content:last-child::after`]:{content:'"|"',fontWeight:900,userSelect:"none",opacity:1,marginInlineStart:"0.1em",animationName:pln,animationDuration:"0.8s",animationIterationCount:"infinite",animationTimingFunction:"linear"},[`& ${e}-avatar`]:{display:"inline-flex",justifyContent:"center",alignSelf:"flex-start"},[`& ${e}-header, & ${e}-footer`]:{fontSize:n,lineHeight:r,color:t.colorText},[`& ${e}-header`]:{marginBottom:t.paddingXXS},[`& ${e}-footer`]:{marginTop:i},[`& ${e}-content-wrapper`]:{flex:"auto",display:"flex",flexDirection:"column",alignItems:"flex-start",minWidth:0,maxWidth:"100%"},[`& ${e}-content`]:{position:"relative",boxSizing:"border-box",minWidth:0,maxWidth:"100%",color:a,fontSize:t.fontSize,lineHeight:t.lineHeight,minHeight:o(i).mul(2).add(o(r).mul(n)).equal(),wordBreak:"break-word",[`& ${e}-dot`]:{position:"relative",height:"100%",display:"flex",alignItems:"center",columnGap:t.marginXS,padding:`0 ${Je(t.paddingXXS)}`,"&-item":{backgroundColor:t.colorPrimary,borderRadius:"100%",width:4,height:4,animationName:fln,animationDuration:"2s",animationIterationCount:"infinite",animationTimingFunction:"linear","&:nth-child(1)":{animationDelay:"0s"},"&:nth-child(2)":{animationDelay:"0.2s"},"&:nth-child(3)":{animationDelay:"0.4s"}}}}}}},mln=()=>({}),$Ge=DGe("Bubble",t=>{const e=wa(t,{});return[hln(e),dln(e),lln(e),cln(e)]},mln),VGe=x.createContext({}),gln=(t,e)=>{const{prefixCls:n,className:r,rootClassName:i,style:a,classNames:o={},styles:s={},avatar:l,placement:u="start",loading:d=!1,loadingRender:f,typing:p,content:h="",messageRender:m,variant:y="filled",shape:g,onTypingComplete:v,header:E,footer:b,...S}=t,{onUpdate:C}=x.useContext(VGe),_=x.useRef(null);x.useImperativeHandle(e,()=>({nativeElement:_.current}));const{direction:I,getPrefixCls:P}=F6(),R=P("bubble",n),N=MGe("bubble"),[D,F,j,U]=aln(p),[H,z]=iln(h,D,F,j);x.useEffect(()=>{C==null||C()},[H]);const B=x.useRef(!1);x.useEffect(()=>{!z&&!d?B.current||(B.current=!0,v==null||v()):B.current=!1},[z,d]);const[W,q,G]=$Ge(R),X=et(R,i,N.className,r,q,G,`${R}-${u}`,{[`${R}-rtl`]:I==="rtl",[`${R}-typing`]:z&&!d&&!m&&!U}),ne=x.useMemo(()=>x.isValidElement(l)?l:x.createElement(rpt,l),[l]),Z=x.useMemo(()=>m?m(H):H,[H,m]);let Y;d?Y=f?f():x.createElement(sln,{prefixCls:R}):Y=x.createElement(x.Fragment,null,Z,z&&U);let Q=x.createElement("div",{style:{...N.styles.content,...s.content},className:et(`${R}-content`,`${R}-content-${y}`,g&&`${R}-content-${g}`,N.classNames.content,o.content)},Y);return(E||b)&&(Q=x.createElement("div",{className:`${R}-content-wrapper`},E&&x.createElement("div",{className:et(`${R}-header`,N.classNames.header,o.header),style:{...N.styles.header,...s.header}},E),Q,b&&x.createElement("div",{className:et(`${R}-footer`,N.classNames.footer,o.footer),style:{...N.styles.footer,...s.footer}},typeof b=="function"?b(Z):b))),W(x.createElement("div",Fm({style:{...N.style,...a},className:X},S,{ref:_}),l&&x.createElement("div",{style:{...N.styles.avatar,...s.avatar},className:et(`${R}-avatar`,N.classNames.avatar,o.avatar)},ne),Q))},zGe=x.forwardRef(gln);process.env.NODE_ENV!=="production"&&(zGe.displayName="Bubble");const Yoe=zGe;function vln(t,e){const n=w.useCallback((r,i)=>typeof e=="function"?e(r,i):e?e[r.role]||{}:{},[e]);return w.useMemo(()=>(t||[]).map((r,i)=>{const a=r.key??`preset_${i}`;return{...n(r,i),...r,key:a}}),[t,n])}const yln=({_key:t,...e},n)=>w.createElement(Yoe,Fm({},e,{ref:r=>{var i;r?n.current[t]=r:(i=n.current)==null||delete i[t]}})),bln=w.memo(w.forwardRef(yln)),Eln=1,xln=(t,e)=>{const{prefixCls:n,rootClassName:r,className:i,items:a,autoScroll:o=!0,roles:s,...l}=t,u=mp(l,{attr:!0,aria:!0}),d=w.useRef(null),f=w.useRef({}),{getPrefixCls:p}=F6(),h=p("bubble",n),m=`${h}-list`,[y,g,v]=$Ge(h),[E,b]=w.useState(!1);w.useEffect(()=>(b(!0),()=>{b(!1)}),[]);const S=vln(a,s),[C,_]=w.useState(!0),[I,P]=w.useState(0),R=F=>{const j=F.target;_(j.scrollHeight-Math.abs(j.scrollTop)-j.clientHeight<=Eln)};w.useEffect(()=>{o&&d.current&&C&&d.current.scrollTo({top:d.current.scrollHeight})},[I]),w.useEffect(()=>{var F;if(o){const j=(F=S[S.length-2])==null?void 0:F.key,U=f.current[j];if(U){const{nativeElement:H}=U,{top:z,bottom:B}=H.getBoundingClientRect(),{top:W,bottom:q}=d.current.getBoundingClientRect();z<q&&B>W&&(P(X=>X+1),_(!0))}}},[S.length]),w.useImperativeHandle(e,()=>({nativeElement:d.current,scrollTo:({key:F,offset:j,behavior:U="smooth",block:H})=>{if(typeof j=="number")d.current.scrollTo({top:j,behavior:U});else if(F!==void 0){const z=f.current[F];if(z){const B=S.findIndex(W=>W.key===F);_(B===S.length-1),z.nativeElement.scrollIntoView({behavior:U,block:H})}}}}));const N=Rl(()=>{o&&P(F=>F+1)}),D=w.useMemo(()=>({onUpdate:N}),[]);return y(w.createElement(VGe.Provider,{value:D},w.createElement("div",Fm({},u,{className:et(m,r,i,g,v,{[`${m}-reach-end`]:C}),ref:d,onScroll:R}),S.map(({key:F,...j})=>w.createElement(bln,Fm({},j,{key:F,_key:F,ref:f,typing:E?j.typing:!1}))))))},HGe=w.forwardRef(xln);process.env.NODE_ENV!=="production"&&(HGe.displayName="BubbleList");const Sln=HGe;Yoe.List=Sln;function RCe(t){const e=[],n=String(t||"");let r=n.indexOf(","),i=0,a=!1;for(;!a;){r===-1&&(r=n.length,a=!0);const o=n.slice(i,r).trim();(o||!a)&&e.push(o),i=r+1,r=n.indexOf(",",i)}return e}function GGe(t,e){const n=e||{};return(t[t.length-1]===""?[...t,""]:t).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const Cln=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,_ln=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,wln={};function OCe(t,e){return((e||wln).jsx?_ln:Cln).test(t)}const Tln=/[ \t\n\f\r]/g;function Iln(t){return typeof t=="object"?t.type==="text"?LCe(t.value):!1:LCe(t)}function LCe(t){return t.replace(Tln,"")===""}let WR=class{constructor(e,n,r){this.normal=n,this.property=e,r&&(this.space=r)}};WR.prototype.normal={};WR.prototype.property={};WR.prototype.space=void 0;function jGe(t,e){const n={},r={};for(const i of t)Object.assign(n,i.property),Object.assign(r,i.normal);return new WR(n,r,e)}function B6(t){return t.toLowerCase()}let Yp=class{constructor(e,n){this.attribute=n,this.property=e}};Yp.prototype.attribute="";Yp.prototype.booleanish=!1;Yp.prototype.boolean=!1;Yp.prototype.commaOrSpaceSeparated=!1;Yp.prototype.commaSeparated=!1;Yp.prototype.defined=!1;Yp.prototype.mustUseProperty=!1;Yp.prototype.number=!1;Yp.prototype.overloadedBoolean=!1;Yp.prototype.property="";Yp.prototype.spaceSeparated=!1;Yp.prototype.space=void 0;let Aln=0;const Do=IS(),Wu=IS(),WGe=IS(),Jr=IS(),oc=IS(),Hw=IS(),ch=IS();function IS(){return 2**++Aln}const Gee=Object.freeze(Object.defineProperty({__proto__:null,boolean:Do,booleanish:Wu,commaOrSpaceSeparated:ch,commaSeparated:Hw,number:Jr,overloadedBoolean:WGe,spaceSeparated:oc},Symbol.toStringTag,{value:"Module"})),tG=Object.keys(Gee);let Zoe=class extends Yp{constructor(e,n,r,i){let a=-1;if(super(e,n),NCe(this,"space",i),typeof r=="number")for(;++a<tG.length;){const o=tG[a];NCe(this,tG[a],(r&Gee[o])===Gee[o])}}};Zoe.prototype.defined=!0;function NCe(t,e,n){n&&(t[e]=n)}function PT(t){const e={},n={};for(const[r,i]of Object.entries(t.properties)){const a=new Zoe(r,t.transform(t.attributes||{},r),i,t.space);t.mustUseProperty&&t.mustUseProperty.includes(r)&&(a.mustUseProperty=!0),e[r]=a,n[B6(r)]=r,n[B6(a.attribute)]=r}return new WR(e,n,t.space)}const XGe=PT({properties:{ariaActiveDescendant:null,ariaAtomic:Wu,ariaAutoComplete:null,ariaBusy:Wu,ariaChecked:Wu,ariaColCount:Jr,ariaColIndex:Jr,ariaColSpan:Jr,ariaControls:oc,ariaCurrent:null,ariaDescribedBy:oc,ariaDetails:null,ariaDisabled:Wu,ariaDropEffect:oc,ariaErrorMessage:null,ariaExpanded:Wu,ariaFlowTo:oc,ariaGrabbed:Wu,ariaHasPopup:null,ariaHidden:Wu,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:oc,ariaLevel:Jr,ariaLive:null,ariaModal:Wu,ariaMultiLine:Wu,ariaMultiSelectable:Wu,ariaOrientation:null,ariaOwns:oc,ariaPlaceholder:null,ariaPosInSet:Jr,ariaPressed:Wu,ariaReadOnly:Wu,ariaRelevant:null,ariaRequired:Wu,ariaRoleDescription:oc,ariaRowCount:Jr,ariaRowIndex:Jr,ariaRowSpan:Jr,ariaSelected:Wu,ariaSetSize:Jr,ariaSort:null,ariaValueMax:Jr,ariaValueMin:Jr,ariaValueNow:Jr,ariaValueText:null,role:null},transform(t,e){return e==="role"?e:"aria-"+e.slice(4).toLowerCase()}});function qGe(t,e){return e in t?t[e]:e}function YGe(t,e){return qGe(t,e.toLowerCase())}const Rln=PT({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:Hw,acceptCharset:oc,accessKey:oc,action:null,allow:null,allowFullScreen:Do,allowPaymentRequest:Do,allowUserMedia:Do,alt:null,as:null,async:Do,autoCapitalize:null,autoComplete:oc,autoFocus:Do,autoPlay:Do,blocking:oc,capture:null,charSet:null,checked:Do,cite:null,className:oc,cols:Jr,colSpan:null,content:null,contentEditable:Wu,controls:Do,controlsList:oc,coords:Jr|Hw,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Do,defer:Do,dir:null,dirName:null,disabled:Do,download:WGe,draggable:Wu,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:Do,formTarget:null,headers:oc,height:Jr,hidden:Do,high:Jr,href:null,hrefLang:null,htmlFor:oc,httpEquiv:oc,id:null,imageSizes:null,imageSrcSet:null,inert:Do,inputMode:null,integrity:null,is:null,isMap:Do,itemId:null,itemProp:oc,itemRef:oc,itemScope:Do,itemType:oc,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:Do,low:Jr,manifest:null,max:null,maxLength:Jr,media:null,method:null,min:null,minLength:Jr,multiple:Do,muted:Do,name:null,nonce:null,noModule:Do,noValidate:Do,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:Do,optimum:Jr,pattern:null,ping:oc,placeholder:null,playsInline:Do,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:Do,referrerPolicy:null,rel:oc,required:Do,reversed:Do,rows:Jr,rowSpan:Jr,sandbox:oc,scope:null,scoped:Do,seamless:Do,selected:Do,shadowRootClonable:Do,shadowRootDelegatesFocus:Do,shadowRootMode:null,shape:null,size:Jr,sizes:null,slot:null,span:Jr,spellCheck:Wu,src:null,srcDoc:null,srcLang:null,srcSet:null,start:Jr,step:null,style:null,tabIndex:Jr,target:null,title:null,translate:null,type:null,typeMustMatch:Do,useMap:null,value:Wu,width:Jr,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:oc,axis:null,background:null,bgColor:null,border:Jr,borderColor:null,bottomMargin:Jr,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:Do,declare:Do,event:null,face:null,frame:null,frameBorder:null,hSpace:Jr,leftMargin:Jr,link:null,longDesc:null,lowSrc:null,marginHeight:Jr,marginWidth:Jr,noResize:Do,noHref:Do,noShade:Do,noWrap:Do,object:null,profile:null,prompt:null,rev:null,rightMargin:Jr,rules:null,scheme:null,scrolling:Wu,standby:null,summary:null,text:null,topMargin:Jr,valueType:null,version:null,vAlign:null,vLink:null,vSpace:Jr,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:Do,disableRemotePlayback:Do,prefix:null,property:null,results:Jr,security:null,unselectable:null},space:"html",transform:YGe}),Oln=PT({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:ch,accentHeight:Jr,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:Jr,amplitude:Jr,arabicForm:null,ascent:Jr,attributeName:null,attributeType:null,azimuth:Jr,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:Jr,by:null,calcMode:null,capHeight:Jr,className:oc,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:Jr,diffuseConstant:Jr,direction:null,display:null,dur:null,divisor:Jr,dominantBaseline:null,download:Do,dx:null,dy:null,edgeMode:null,editable:null,elevation:Jr,enableBackground:null,end:null,event:null,exponent:Jr,externalResourcesRequired:null,fill:null,fillOpacity:Jr,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:Hw,g2:Hw,glyphName:Hw,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:Jr,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:Jr,horizOriginX:Jr,horizOriginY:Jr,id:null,ideographic:Jr,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:Jr,k:Jr,k1:Jr,k2:Jr,k3:Jr,k4:Jr,kernelMatrix:ch,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:Jr,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:Jr,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:Jr,overlineThickness:Jr,paintOrder:null,panose1:null,path:null,pathLength:Jr,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:oc,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:Jr,pointsAtY:Jr,pointsAtZ:Jr,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:ch,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:ch,rev:ch,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:ch,requiredFeatures:ch,requiredFonts:ch,requiredFormats:ch,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:Jr,specularExponent:Jr,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:Jr,strikethroughThickness:Jr,string:null,stroke:null,strokeDashArray:ch,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:Jr,strokeOpacity:Jr,strokeWidth:null,style:null,surfaceScale:Jr,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:ch,tabIndex:Jr,tableValues:null,target:null,targetX:Jr,targetY:Jr,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:ch,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:Jr,underlineThickness:Jr,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:Jr,values:null,vAlphabetic:Jr,vMathematical:Jr,vectorEffect:null,vHanging:Jr,vIdeographic:Jr,version:null,vertAdvY:Jr,vertOriginX:Jr,vertOriginY:Jr,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:Jr,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:qGe}),ZGe=PT({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform(t,e){return"xlink:"+e.slice(5).toLowerCase()}}),KGe=PT({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:YGe}),JGe=PT({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(t,e){return"xml:"+e.slice(3).toLowerCase()}}),Lln={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"},Nln=/[A-Z]/g,MCe=/-[a-z]/g,Mln=/^data[-\w.:]+$/i;function Koe(t,e){const n=B6(e);let r=e,i=Yp;if(n in t.normal)return t.property[t.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&Mln.test(e)){if(e.charAt(4)==="-"){const a=e.slice(5).replace(MCe,Dln);r="data"+a.charAt(0).toUpperCase()+a.slice(1)}else{const a=e.slice(4);if(!MCe.test(a)){let o=a.replace(Nln,Pln);o.charAt(0)!=="-"&&(o="-"+o),e="data"+o}}i=Zoe}return new i(r,e)}function Pln(t){return"-"+t.toLowerCase()}function Dln(t){return t.charAt(1).toUpperCase()}const fU=jGe([XGe,Rln,ZGe,KGe,JGe],"html"),DT=jGe([XGe,Oln,ZGe,KGe,JGe],"svg");function PCe(t){const e=String(t||"").trim();return e?e.split(/[ \t\n\r\f]+/g):[]}function QGe(t){return t.join(" ").trim()}var Joe={},DCe=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,kln=/\n/g,Uln=/^\s*/,Fln=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,Bln=/^:\s*/,$ln=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,Vln=/^[;\s]*/,zln=/^\s+|\s+$/g,Hln=`
|
|
4511
4511
|
`,kCe="/",UCe="*",BE="",Gln="comment",jln="declaration",Wln=function(t,e){if(typeof t!="string")throw new TypeError("First argument must be a string");if(!t)return[];e=e||{};var n=1,r=1;function i(m){var y=m.match(kln);y&&(n+=y.length);var g=m.lastIndexOf(Hln);r=~g?m.length-g:r+m.length}function a(){var m={line:n,column:r};return function(y){return y.position=new o(m),u(),y}}function o(m){this.start=m,this.end={line:n,column:r},this.source=e.source}o.prototype.content=t;function s(m){var y=new Error(e.source+":"+n+":"+r+": "+m);if(y.reason=m,y.filename=e.source,y.line=n,y.column=r,y.source=t,!e.silent)throw y}function l(m){var y=m.exec(t);if(y){var g=y[0];return i(g),t=t.slice(g.length),y}}function u(){l(Uln)}function d(m){var y;for(m=m||[];y=f();)y!==!1&&m.push(y);return m}function f(){var m=a();if(!(kCe!=t.charAt(0)||UCe!=t.charAt(1))){for(var y=2;BE!=t.charAt(y)&&(UCe!=t.charAt(y)||kCe!=t.charAt(y+1));)++y;if(y+=2,BE===t.charAt(y-1))return s("End of comment missing");var g=t.slice(2,y-2);return r+=2,i(g),t=t.slice(y),r+=2,m({type:Gln,comment:g})}}function p(){var m=a(),y=l(Fln);if(y){if(f(),!l(Bln))return s("property missing ':'");var g=l($ln),v=m({type:jln,property:FCe(y[0].replace(DCe,BE)),value:g?FCe(g[0].replace(DCe,BE)):BE});return l(Vln),v}}function h(){var m=[];d(m);for(var y;y=p();)y!==!1&&(m.push(y),d(m));return m}return u(),h()};function FCe(t){return t?t.replace(zln,BE):BE}var Xln=Mf&&Mf.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Joe,"__esModule",{value:!0});Joe.default=Yln;var qln=Xln(Wln);function Yln(t,e){var n=null;if(!t||typeof t!="string")return n;var r=(0,qln.default)(t),i=typeof e=="function";return r.forEach(function(a){if(a.type==="declaration"){var o=a.property,s=a.value;i?e(o,s,a):s&&(n=n||{},n[o]=s)}}),n}var pU={};Object.defineProperty(pU,"__esModule",{value:!0});pU.camelCase=void 0;var Zln=/^--[a-zA-Z0-9_-]+$/,Kln=/-([a-z])/g,Jln=/^[^-]+$/,Qln=/^-(webkit|moz|ms|o|khtml)-/,ecn=/^-(ms)-/,tcn=function(t){return!t||Jln.test(t)||Zln.test(t)},ncn=function(t,e){return e.toUpperCase()},BCe=function(t,e){return"".concat(e,"-")},rcn=function(t,e){return e===void 0&&(e={}),tcn(t)?t:(t=t.toLowerCase(),e.reactCompat?t=t.replace(ecn,BCe):t=t.replace(Qln,BCe),t.replace(Kln,ncn))};pU.camelCase=rcn;var icn=Mf&&Mf.__importDefault||function(t){return t&&t.__esModule?t:{default:t}},acn=icn(Joe),ocn=pU;function jee(t,e){var n={};return!t||typeof t!="string"||(0,acn.default)(t,function(r,i){r&&i&&(n[(0,ocn.camelCase)(r,e)]=i)}),n}jee.default=jee;var scn=jee;const hU=eje("end"),mv=eje("start");function eje(t){return e;function e(n){const r=n&&n.position&&n.position[t]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function lcn(t){const e=mv(t),n=hU(t);if(e&&n)return{start:e,end:n}}function g5(t){return!t||typeof t!="object"?"":"position"in t||"type"in t?$Ce(t.position):"start"in t||"end"in t?$Ce(t):"line"in t||"column"in t?Wee(t):""}function Wee(t){return VCe(t&&t.line)+":"+VCe(t&&t.column)}function $Ce(t){return Wee(t&&t.start)+"-"+Wee(t&&t.end)}function VCe(t){return t&&typeof t=="number"?t:1}class Ff extends Error{constructor(e,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let i="",a={},o=!1;if(n&&("line"in n&&"column"in n?a={place:n}:"start"in n&&"end"in n?a={place:n}:"type"in n?a={ancestors:[n],place:n.position}:a={...n}),typeof e=="string"?i=e:!a.cause&&e&&(o=!0,i=e.message,a.cause=e),!a.ruleId&&!a.source&&typeof r=="string"){const l=r.indexOf(":");l===-1?a.ruleId=r:(a.source=r.slice(0,l),a.ruleId=r.slice(l+1))}if(!a.place&&a.ancestors&&a.ancestors){const l=a.ancestors[a.ancestors.length-1];l&&(a.place=l.position)}const s=a.place&&"start"in a.place?a.place.start:a.place;this.ancestors=a.ancestors||void 0,this.cause=a.cause||void 0,this.column=s?s.column:void 0,this.fatal=void 0,this.file,this.message=i,this.line=s?s.line:void 0,this.name=g5(a.place)||"1:1",this.place=a.place||void 0,this.reason=this.message,this.ruleId=a.ruleId||void 0,this.source=a.source||void 0,this.stack=o&&a.cause&&typeof a.cause.stack=="string"?a.cause.stack:"",this.actual,this.expected,this.note,this.url}}Ff.prototype.file="";Ff.prototype.name="";Ff.prototype.reason="";Ff.prototype.message="";Ff.prototype.stack="";Ff.prototype.column=void 0;Ff.prototype.line=void 0;Ff.prototype.ancestors=void 0;Ff.prototype.cause=void 0;Ff.prototype.fatal=void 0;Ff.prototype.place=void 0;Ff.prototype.ruleId=void 0;Ff.prototype.source=void 0;const Qoe={}.hasOwnProperty,ccn=new Map,ucn=/[A-Z]/g,dcn=new Set(["table","tbody","thead","tfoot","tr"]),fcn=new Set(["td","th"]),tje="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function pcn(t,e){if(!e||e.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=e.filePath||void 0;let r;if(e.development){if(typeof e.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=xcn(n,e.jsxDEV)}else{if(typeof e.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof e.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=Ecn(n,e.jsx,e.jsxs)}const i={Fragment:e.Fragment,ancestors:[],components:e.components||{},create:r,elementAttributeNameCase:e.elementAttributeNameCase||"react",evaluater:e.createEvaluater?e.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:e.ignoreInvalidStyle||!1,passKeys:e.passKeys!==!1,passNode:e.passNode||!1,schema:e.space==="svg"?DT:fU,stylePropertyNameCase:e.stylePropertyNameCase||"dom",tableCellAlignToStyle:e.tableCellAlignToStyle!==!1},a=nje(i,t,void 0);return a&&typeof a!="string"?a:i.create(t,i.Fragment,{children:a||void 0},void 0)}function nje(t,e,n){if(e.type==="element")return hcn(t,e,n);if(e.type==="mdxFlowExpression"||e.type==="mdxTextExpression")return mcn(t,e);if(e.type==="mdxJsxFlowElement"||e.type==="mdxJsxTextElement")return vcn(t,e,n);if(e.type==="mdxjsEsm")return gcn(t,e);if(e.type==="root")return ycn(t,e,n);if(e.type==="text")return bcn(t,e)}function hcn(t,e,n){const r=t.schema;let i=r;e.tagName.toLowerCase()==="svg"&&r.space==="html"&&(i=DT,t.schema=i),t.ancestors.push(e);const a=ije(t,e.tagName,!1),o=Scn(t,e);let s=tse(t,e);return dcn.has(e.tagName)&&(s=s.filter(function(l){return typeof l=="string"?!Iln(l):!0})),rje(t,o,a,e),ese(o,s),t.ancestors.pop(),t.schema=r,t.create(e,a,o,n)}function mcn(t,e){if(e.data&&e.data.estree&&t.evaluater){const r=e.data.estree.body[0];return r.type,t.evaluater.evaluateExpression(r.expression)}$6(t,e.position)}function gcn(t,e){if(e.data&&e.data.estree&&t.evaluater)return t.evaluater.evaluateProgram(e.data.estree);$6(t,e.position)}function vcn(t,e,n){const r=t.schema;let i=r;e.name==="svg"&&r.space==="html"&&(i=DT,t.schema=i),t.ancestors.push(e);const a=e.name===null?t.Fragment:ije(t,e.name,!0),o=Ccn(t,e),s=tse(t,e);return rje(t,o,a,e),ese(o,s),t.ancestors.pop(),t.schema=r,t.create(e,a,o,n)}function ycn(t,e,n){const r={};return ese(r,tse(t,e)),t.create(e,t.Fragment,r,n)}function bcn(t,e){return e.value}function rje(t,e,n,r){typeof n!="string"&&n!==t.Fragment&&t.passNode&&(e.node=r)}function ese(t,e){if(e.length>0){const n=e.length>1?e:e[0];n&&(t.children=n)}}function Ecn(t,e,n){return r;function r(i,a,o,s){const u=Array.isArray(o.children)?n:e;return s?u(a,o,s):u(a,o)}}function xcn(t,e){return n;function n(r,i,a,o){const s=Array.isArray(a.children),l=mv(r);return e(i,a,o,s,{columnNumber:l?l.column-1:void 0,fileName:t,lineNumber:l?l.line:void 0},void 0)}}function Scn(t,e){const n={};let r,i;for(i in e.properties)if(i!=="children"&&Qoe.call(e.properties,i)){const a=_cn(t,i,e.properties[i]);if(a){const[o,s]=a;t.tableCellAlignToStyle&&o==="align"&&typeof s=="string"&&fcn.has(e.tagName)?r=s:n[o]=s}}if(r){const a=n.style||(n.style={});a[t.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function Ccn(t,e){const n={};for(const r of e.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&t.evaluater){const a=r.data.estree.body[0];a.type;const o=a.expression;o.type;const s=o.properties[0];s.type,Object.assign(n,t.evaluater.evaluateExpression(s.argument))}else $6(t,e.position);else{const i=r.name;let a;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&t.evaluater){const s=r.value.data.estree.body[0];s.type,a=t.evaluater.evaluateExpression(s.expression)}else $6(t,e.position);else a=r.value===null?!0:r.value;n[i]=a}return n}function tse(t,e){const n=[];let r=-1;const i=t.passKeys?new Map:ccn;for(;++r<e.children.length;){const a=e.children[r];let o;if(t.passKeys){const l=a.type==="element"?a.tagName:a.type==="mdxJsxFlowElement"||a.type==="mdxJsxTextElement"?a.name:void 0;if(l){const u=i.get(l)||0;o=l+"-"+u,i.set(l,u+1)}}const s=nje(t,a,o);s!==void 0&&n.push(s)}return n}function _cn(t,e,n){const r=Koe(t.schema,e);if(!(n==null||typeof n=="number"&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?GGe(n):QGe(n)),r.property==="style"){let i=typeof n=="object"?n:wcn(t,String(n));return t.stylePropertyNameCase==="css"&&(i=Tcn(i)),["style",i]}return[t.elementAttributeNameCase==="react"&&r.space?Lln[r.property]||r.property:r.attribute,n]}}function wcn(t,e){try{return scn(e,{reactCompat:!0})}catch(n){if(t.ignoreInvalidStyle)return{};const r=n,i=new Ff("Cannot parse `style` attribute",{ancestors:t.ancestors,cause:r,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw i.file=t.filePath||void 0,i.url=tje+"#cannot-parse-style-attribute",i}}function ije(t,e,n){let r;if(!n)r={type:"Literal",value:e};else if(e.includes(".")){const i=e.split(".");let a=-1,o;for(;++a<i.length;){const s=OCe(i[a])?{type:"Identifier",name:i[a]}:{type:"Literal",value:i[a]};o=o?{type:"MemberExpression",object:o,property:s,computed:!!(a&&s.type==="Literal"),optional:!1}:s}r=o}else r=OCe(e)&&!/^[a-z]/.test(e)?{type:"Identifier",name:e}:{type:"Literal",value:e};if(r.type==="Literal"){const i=r.value;return Qoe.call(t.components,i)?t.components[i]:i}if(t.evaluater)return t.evaluater.evaluateExpression(r);$6(t)}function $6(t,e){const n=new Ff("Cannot handle MDX estrees without `createEvaluater`",{ancestors:t.ancestors,place:e,ruleId:"mdx-estree",source:"hast-util-to-jsx-runtime"});throw n.file=t.filePath||void 0,n.url=tje+"#cannot-handle-mdx-estrees-without-createevaluater",n}function Tcn(t){const e={};let n;for(n in t)Qoe.call(t,n)&&(e[Icn(n)]=t[n]);return e}function Icn(t){let e=t.replace(ucn,Acn);return e.slice(0,3)==="ms-"&&(e="-"+e),e}function Acn(t){return"-"+t.toLowerCase()}const nG={action:["form"],cite:["blockquote","del","ins","q"],data:["object"],formAction:["button","input"],href:["a","area","base","link"],icon:["menuitem"],itemId:null,manifest:["html"],ping:["a","area"],poster:["video"],src:["audio","embed","iframe","img","input","script","source","track","video"]};var v5={},Rcn={get exports(){return v5},set exports(t){v5=t}},OI={};/**
|
|
@@ -5852,7 +5852,7 @@ Coefficient`,"5000.7056":"Line chart:Based on the distribution of projection tar
|
|
|
5852
5852
|
discard;
|
|
5853
5853
|
}
|
|
5854
5854
|
}
|
|
5855
|
-
`,transparent:!1,depthWrite:!1,depthTest:!1}),ne=new Xc(q,X);ne.translateX(_),ne.translateY(C),ne.translateZ(I),R.add(ne),R.name="functionSwcPoint",R.userData.name=y;const Z=Se.current.getObjectByName("functionLoopGroup");Z&&Z.add(R);let Y=1;for(let Q=0;Q<S.line.length;Q++){let J=[],te=[S.position[0].x,S.position[0].y,S.position[0].z];for(let de=S.line[Q].start;de<=S.line[Q].end;de++){de===S.line[Q].start&&(te=[S.position[de].x,S.position[de].y,S.position[de].z]);let ue=S.position[de].x,fe=S.position[de].y,oe=S.position[de].z;(Math.sqrt((ue-te[0])*(ue-te[0])+(fe-te[1])*(fe-te[1])+(oe-te[2])*(oe-te[2]))>Y||de===S.line[Q].end||de===S.line[Q].start)&&(J.push(new we(ue,fe,oe)),te=[ue,fe,oe])}let ae=new Ji(new Ei().setFromPoints(J),new sl({color:E===0?"rgb(125, 235, 129)":"#2E7D32"}));P.add(ae)}P.scale.set(_i.current,_i.current,_i.current),P.translateX(_),P.translateY(C),P.translateZ(I),P.name="functionSwcLine",P.userData.name=y,Z&&Z.add(P),b&&(b.style.display="none")})},p=async m=>{const y=Se.current.getObjectByName("functionLoopGroup");if(y){const g=y.children.filter(E=>!m.includes(E.userData.name)&&["functionSwcLine","functionSwcPoint"].includes(E.name));for(let E=0;E<g.length;E++)y.remove(g[E]);const v=y.children.filter(E=>!m.includes(E.userData.fathername)&&E.name==="functionSwcText");if(v.length>0){a.current[v[0].userData.fathername].visible=!1;for(let E=0;E<v.length;E++)y.remove(v[E])}for(let E=0;E<m.length;E++)if(!y.children.find(S=>S.userData.name===m[E])){let S=e.find(C=>C.name===m[E]);if(S){const C=S==null?void 0:S.path;for(let _=0;_<C.length;_++){let I=C[_];await f(I,m[E],"#7ac47a","#A7B5A1",_)}}}}i(m)},h={selectedRowKeys:r,onChange:p,getCheckboxProps:m=>({disabled:m.name==="Disabled User",name:m.name})};return x.createElement("div",null,x.createElement(hR,{rowSelection:{type:"checkbox",...h},columns:u,dataSource:e,rowKey:"name"}))});const eAn=()=>{const[t,e]=x.useState([]),[n,r]=x.useState([]),[i,a]=x.useState(""),[o,s]=x.useState(!1),[l,u]=x.useState(""),[d,f]=x.useState(!1),[p,h]=x.useState(null),[m]=Js.useForm(),[y,g]=x.useState([]),[v,E]=x.useState(!1),[b]=Gqe(),[S,C]=x.useState([]),[_,I]=x.useState([]),[P,R]=x.useState(!1),[N,D]=x.useState(null),[F,j]=x.useState({storage_used:0,storage_limit:0,usage_percentage:0}),[U,H]=x.useState(0),[z,B]=x.useState(!1),W=x.useRef(""),q=x.useRef(null),G=x.useRef(new BroadcastChannel("userUpload")),X=x.useRef(new BroadcastChannel("userUpload2")),ne=x.useRef(!0),Z=x.useRef(""),Y=async()=>{try{E(!0);const be=await(await Q("/app-api/userDB-api/files/directory-tree")).json();if(be){const Te=(Pe=>{const Ze=(Me,He)=>Me.map(ot=>({title:ot.name,key:He+"/"+ot.name,children:ot.children?Ze(ot.children,ot.name):[]}));return[{title:Pe.name,key:Pe.name,children:Pe.children?Ze(Pe.children,Pe.name):[]}]})(be);if(e(Te),Te.length>0){const Pe=Te[0].key;a(Pe),J(Pe)}}}catch(ee){console.error("获取文件夹树失败:",ee),co.error("获取文件夹树失败")}finally{E(!1)}},Q=async(ee,be)=>await fetch(ee,{...be,headers:{...be==null?void 0:be.headers,"X-API-Key":`${W.current}`}}),J=async ee=>{try{E(!0);const _e=await(await Q(`/app-api/userDB-api/files/my-files?hierarchy=${ee}`)).json();_e&&(r(_e),C([]))}catch(be){console.error("获取文件列表失败:",be),co.error("获取文件列表失败")}finally{E(!1)}};x.useEffect(()=>{const ee="imgKey=",be=document.cookie.split(";");let _e="";for(let Te=0;Te<be.length;Te++){let Pe=be[Te];for(;Pe.charAt(0)===" ";)Pe=Pe.substring(1,Pe.length);Pe.indexOf(ee)===0&&(_e=Pe.substring(ee.length,Pe.length))}if(_e)W.current=_e,Y(),Ye();else{const Te=prompt("请输入用户key:");if(Te){W.current=Te;let Pe=new Date;Pe.setTime(Pe.getTime()+7*24*60*60*1e3);let Ze="; expires="+Pe.toUTCString();document.cookie=`imgKey=${Te}; path=/;expires=${Ze}`,Y(),Ye()}}X.current.onmessage=Te=>{switch(Te.data.type){case"updateSceneFileTransform":ne.current=!1,I(Te.data.sceneFiles);break}}},[]),x.useEffect(()=>{_.length>0&&ne.current&&G.current.postMessage({type:"addSceneFiles",sceneFiles:_})},[_]);const te=ee=>{if(ee.length>0){const be=ee[0].toString();a(be),J(be)}},ae=(ee,be)=>{u(ee),s(!0),Z.current=be},de=ee=>{h(ee),m.setFieldsValue({original_filename:ee.original_filename,description:ee.description||"",file_type:ee.file_type,is_shared:ee.is_shared,resolution:ee.resolution}),f(!0)},ue=async()=>{try{const ee=await m.validateFields();if(p){console.log("values",ee);const _e=await(await Q(`/app-api/userDB-api/files/${p.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({original_filename:ee.original_filename,file_type:ee.file_type,is_shared:ee.is_shared,description:ee.description,resolution:ee.resolution})})).json();if(_e){const Te=n.map(Pe=>Pe.id===p.id?{..._e}:Pe);r(Te),co.success("文件信息已更新")}else co.error("更新失败")}f(!1)}catch(ee){console.error("保存文件信息失败:",ee),co.error("保存文件信息失败")}},fe=async({file:ee,onSuccess:be,onError:_e})=>{try{B(!0),H(0);const Te=new FormData;Te.append("file",ee),Te.append("hierarchy",i);const Pe=new XMLHttpRequest;Pe.upload.addEventListener("progress",Me=>{if(Me.lengthComputable){const He=Math.round(Me.loaded*100/Me.total);H(He)}}),await new Promise((Me,He)=>{Pe.onload=()=>{Pe.status>=200&&Pe.status<300?Me(Pe.response):He(new Error(`HTTP ${Pe.status}: ${Pe.statusText}`))},Pe.onerror=()=>{He(new Error("网络错误"))},Pe.open("POST","/app-api/userDB-api/files/upload"),Pe.send(Te)});const Ze=JSON.parse(Pe.response);Ze?(g([]),J(i),be&&be({},ee),co.success("文件上传成功"),Ye()):(co.error("上传失败"),_e&&_e(new Error(JSON.stringify(Ze))))}catch(Te){console.error("文件上传失败:",Te),co.error("文件上传失败"),_e&&_e(Te)}finally{B(!1),H(0)}},oe=async()=>{try{const ee=prompt("请输入文件夹名称:");ee&&(await(await Q("/app-api/userDB-api/files/create-dir",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({hierarchy:i+"/"+ee})})).json()?(await Y(),co.success("文件夹创建成功")):co.error("创建失败"))}catch(ee){console.error("创建文件夹失败:",ee),co.error("创建文件夹失败")}},Ce=async ee=>{const be=prompt("请输入新的文件夹名称:");be&&(await(await Q("/app-api/userDB-api/files/rename-dir",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({new_hierarchy:i.slice(0,i.lastIndexOf("/"))+"/"+be,old_hierarchy:i})})).json()?(await Y(),co.success("文件夹名称修改成功")):co.error("修改失败"))},se=async ee=>{La.confirm({title:b("5000.8113")||"确定要删除该文件夹吗?",content:b("5000.8114")||"删除后将无法恢复",async onOk(){await(await Q("/app-api/userDB-api/files/dele_dir",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({hierarchy:ee})})).json()?(await Y(),co.success("文件夹删除成功")):co.error("删除失败")}})},ve=(ee,be)=>{C(be?_e=>[..._e,ee]:_e=>_e.filter(Te=>Te!==ee))},he=ee=>{let be=[];ee&&n.forEach(_e=>{be.push(_e.id)}),C(be)},Re=()=>{const ee=S;if(ee.length===0){co.warning("请至少选择一个文件");return}const _e=n.filter(Te=>ee.includes(Te.id)).filter(Te=>!_.some(Pe=>Pe.id===Te.id)).map(Te=>({...Te,translateX:0,translateY:0,translateZ:0,rotateX:0,rotateY:0,rotateZ:0,scaleX:1,scaleY:1,scaleZ:1,color:"#000000",radius:.01,normalText:"Normal",brightness:1,darkness:0,opacity:1,opacity2:1,color2:"#fff",backColor:"#ffa600"}));if(_e.length>1&&_e.every(Te=>Te.original_filename.includes(".png"))){const Te=_e.map(Ze=>Ze.id).join("-"),Pe={children:_e,translateX:0,translateY:0,translateZ:0,rotateX:0,rotateY:0,rotateZ:0,scaleX:1,scaleY:1,scaleZ:1,id:Te,original_filename:"scene",user_id:_e[0].user_id,file_type:"neuronsBody",is_shared:_e[0].is_shared,stored_filename:_e[0].stored_filename,file_path:_e[0].file_path,file_size:_e[0].file_size,created_at:_e[0].created_at,updated_at:_e[0].updated_at,distance:1,resolution:_e[0].resolution};La.confirm({title:b("5000.8115")||"检测到多个PNG文件,是否要升级成高级对象神经元群落?",content:b("5000.8116")||"取消后则不进行升级",async onOk(){ne.current=!0,I(Ze=>[...Ze,Pe]),C([]),R(!0)},onCancel(){ne.current=!0,I(Ze=>[...Ze,..._e]),C([]),R(!0)}});return}else ne.current=!0,I(Te=>[...Te,..._e]),C([]),R(!0),co.success(`成功添加 ${_e.length} 个文件到场景`)},Fe=async()=>{La.confirm({title:b("5000.8117")||"确定要删除所选文件吗?",content:b("5000.8114")||"删除后将无法恢复",async onOk(){const ee=S;await(await Q("/app-api/userDB-api/files/dele_file",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({file_ids:ee})})).json()?(r(Te=>Te.filter(Pe=>!ee.includes(Pe.id))),J(i),co.success("文件删除成功")):co.error("删除失败")}})},Ye=async()=>{try{const be=await(await Q("/app-api/userDB-api/files/storage-info",{method:"GET"})).json();be&&j(be)}catch(ee){console.error("获取存储大小失败:",ee),co.error("获取存储大小失败")}},Ue=()=>{R(ee=>!ee)},ge=(ee,be,_e)=>{ne.current=!0,I(Te=>Te.map(Pe=>Pe.id===ee?{...Pe,[be]:_e}:Pe))},qe=ee=>{ne.current=!0,G.current.postMessage({type:"removeSceneFile",fileId:ee}),I(be=>be.filter(_e=>_e.id!==ee))},ye=ee=>{if((N==null?void 0:N.id)===ee)D(null);else{const be=_.find(_e=>_e.id===ee);be&&D(be)}};return x.createElement("div",{className:"repository-container"},x.createElement("div",{className:"folder-tree"},x.createElement("div",{className:"tree-header"},x.createElement("h3",null,b("5000.8100")||"资料库")),x.createElement("div",{className:"tree-content"},v?x.createElement("div",{style:{textAlign:"center",padding:"20px"}},x.createElement(Ab,null)):x.createElement(Fx,{treeData:t,defaultExpandAll:!0,onSelect:te,selectedKeys:[i]}))),x.createElement("div",{className:"file-list"},x.createElement("div",{className:"file-list-header"},x.createElement("div",{className:"header-buttons"},x.createElement("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-start"}},x.createElement(sA,{fileList:y,accept:".png,.jpg,.jpeg,.gif,.tiff,.tif,.pdf,.json,.stl,.obj,.glb,.fbx,.gz,.nii.gz",customRequest:fe,multiple:!0,beforeUpload:ee=>F.storage_used+ee.size>F.storage_limit?(co.error("存储空间不足,请清理空间后重试"),!1):(g([ee]),!0),showUploadList:!1},x.createElement(ca,{icon:x.createElement(kPe,null),type:"primary",disabled:z},b("5000.8101")||"上传文件")),z&&x.createElement("div",{style:{width:"100%",marginTop:"10px"}},x.createElement(K7e,{percent:U,status:"active"}))),x.createElement(ca,{icon:x.createElement(Phe,null),onClick:oe,style:{marginLeft:10}},b("5000.8102")||"新建文件夹"),x.createElement(ca,{icon:x.createElement(Phe,null),onClick:()=>Ce(),style:{marginLeft:10}},b("5000.8103")||"修改文件夹名"),x.createElement(ca,{icon:x.createElement(fPe,null),type:"primary",danger:!0,onClick:()=>se(i),style:{marginLeft:10}},b("5000.8104")||"删除文件夹"),x.createElement("div",{style:{lineHeight:"32px",marginLeft:10}},b("5000.8105")||"存储大小",": ",F.storage_used/1024/1024," MB / ",F.storage_limit/1024/1024," MB"))),x.createElement("div",{className:"file-selection-area"},x.createElement("div",{className:"select-all-checkbox"},x.createElement(Fg,{onChange:ee=>he(ee.target.checked),defaultChecked:!1,checked:S.length==n.length&&n.length>0,indeterminate:S.length>0&&S.length<n.length},b("5000.8106")||"全选")),x.createElement("div",null,x.createElement(ca,{type:"primary",onClick:Re,disabled:S.length===0},b("5000.8107")||"插入场景"),x.createElement(ca,{type:"primary",danger:!0,onClick:Fe,disabled:S.length===0},b("5000.8108")||"删除文件"))),x.createElement("div",{className:"files-container"},v?x.createElement("div",{style:{textAlign:"center",padding:"20px",width:"100%"}},x.createElement(Ab,null)):n.map(ee=>x.createElement("div",{key:ee.id,className:"file-item"},x.createElement("div",{className:"file-checkbox"},x.createElement(Fg,{checked:S.includes(ee.id),onChange:be=>ve(ee.id,be.target.checked),disabled:_.some(be=>be.id===ee.id)})),x.createElement("div",{className:"file-thumbnail",onClick:()=>ae(`/app-api/userDB-api/files/${ee.id}`||"",ee.original_filename)},ee.thumbnail_path?x.createElement("img",{src:`/app-api/userDB-api/files/${ee.id}/thumbnail`}):x.createElement("div",{className:"file-placeholder"},b("5000.8110")||"文件"),x.createElement(WD,{className:"preview-icon"})),x.createElement("div",{className:"file-info"},x.createElement("div",{className:"file-name"},ee.original_filename),x.createElement(ca,{icon:x.createElement(Cre,null),size:"small",onClick:()=>de(ee)},b("5000.8109")||"编辑")))))),x.createElement("div",{className:"scene-list-container"},x.createElement("div",{className:"scene-list-toggle",onClick:Ue},P?x.createElement(W3,null):x.createElement(LMe,null)),x.createElement("div",{className:`scene-list-content ${P?"open":""}`,ref:q},x.createElement("div",{className:"scene-list-header"},x.createElement("h3",null,b("5000.8111")||"场景列表")),x.createElement("div",{className:"scene-files-container"},_.map(ee=>x.createElement("div",{key:ee.id,className:"scene-file-item"},x.createElement("div",{className:"scene-file-info"},ee.thumbnail_path?x.createElement("img",{src:`/app-api/userDB-api/files/${ee.id}/thumbnail`,className:"scene-file-thumbnail",onClick:()=>ye(ee.id)}):x.createElement("div",{className:"scene-file-placeholder",onClick:()=>ye(ee.id)},b("5000.8110")||"文件"),x.createElement("div",{className:"scene-file-name",onClick:()=>ye(ee.id)},ee.original_filename),x.createElement(ca,{size:"small",onClick:()=>qe(ee.id),danger:!0},b("5000.8000")||"删除")),(N==null?void 0:N.id)===ee.id&&x.createElement("div",{className:"scene-file-controls"},x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8001")||"位移 X",": ",ee.translateX),x.createElement(Uo,{min:-20,max:20,step:.1,value:ee.translateX,onChange:be=>ge(ee.id,"translateX",be)})),x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8002")||"位移 Y",": ",ee.translateY),x.createElement(Uo,{min:-20,max:20,step:.1,value:ee.translateY,onChange:be=>ge(ee.id,"translateY",be)})),x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8003")||"位移 Z",": ",ee.translateZ),x.createElement(Uo,{min:-20,max:20,step:.1,value:ee.translateZ,onChange:be=>ge(ee.id,"translateZ",be)})),x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8004")||"旋转 X",": ",ee.rotateX,"°"),x.createElement(Uo,{min:0,max:360,value:ee.rotateX,onChange:be=>ge(ee.id,"rotateX",be)})),x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8005")||"旋转 Y",": ",ee.rotateY,"°"),x.createElement(Uo,{min:0,max:360,value:ee.rotateY,onChange:be=>ge(ee.id,"rotateY",be)})),x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8006")||"旋转 Z",": ",ee.rotateZ,"°"),x.createElement(Uo,{min:0,max:360,value:ee.rotateZ,onChange:be=>ge(ee.id,"rotateZ",be)})),x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8007")||"缩放X",": ",ee.scaleX),x.createElement(Uo,{min:.001,max:20,step:.001,value:ee.scaleX,onChange:be=>ge(ee.id,"scaleX",be)})),x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8008")||"缩放Y",": ",ee.scaleY),x.createElement(Uo,{min:.001,max:20,step:.001,value:ee.scaleY,onChange:be=>ge(ee.id,"scaleY",be)})),x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8009")||"缩放Z",": ",ee.scaleZ),x.createElement(Uo,{min:.001,max:20,step:.001,value:ee.scaleZ,onChange:be=>ge(ee.id,"scaleZ",be)})),ee.distance&&x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8010")||"距离",": ",ee.distance),x.createElement(Uo,{min:.01,max:10,step:.01,value:ee.distance,onChange:be=>ge(ee.id,"distance",be)})),["Point","Vessel"].includes(ee.file_type)&&x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8011")||"半径",": ",ee.radius||1),x.createElement(Uo,{min:.01,max:10,step:.01,value:ee.radius,onChange:be=>ge(ee.id,"radius",be)})),ee.color&&x.createElement("div",{className:"control-group"},x.createElement("label",null,["NiiGZ","TIFF"].includes(ee.file_type)?b("5000.8200")||"低灰度值颜色":b("5000.8012")||"颜色",": ",ee.color),x.createElement(Sh,{value:ee.color,format:"hex",onChange:(be,_e)=>{ge(ee.id,"color",_e)}})),["NiiGZ","TIFF"].includes(ee.file_type)&&x.createElement("div",null,x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8202")||"高灰度值颜色",": ",ee.color2),x.createElement(Sh,{value:ee.color2,format:"hex",onChange:(be,_e)=>{ge(ee.id,"color2",_e)}})),x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8203")||"亮度",": ",ee.brightness),x.createElement(Uo,{min:0,max:1.5,step:.01,value:ee.brightness,onChange:be=>ge(ee.id,"brightness",be)})),x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8204")||"暗度",": ",ee.darkness),x.createElement(Uo,{min:0,max:1,step:.01,value:ee.darkness,onChange:be=>ge(ee.id,"darkness",be)})),x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8205")||"透明度",": ",ee.opacity),x.createElement(Uo,{min:0,max:1,step:.01,value:ee.opacity,onChange:be=>ge(ee.id,"opacity",be)})),x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8206")||"透明度2",": ",ee.opacity2),x.createElement(Uo,{min:0,max:1,step:.01,value:ee.opacity2,onChange:be=>ge(ee.id,"opacity2",be)}))),ee.file_type==="normalLoop"&&x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8207")||"卡片颜色",": ",ee.backColor),x.createElement(Sh,{value:ee.backColor,format:"hex",onChange:(be,_e)=>{ge(ee.id,"backColor",_e)}}))))),_.length===0&&x.createElement("div",{className:"empty-scene-list"},b("5000.8112")||"场景中暂无文件")))),x.createElement(La,{visible:o,footer:null,onCancel:()=>s(!1),width:"calc(100vw - 300px)",style:{overflow:"auto",height:"calc(100vh - 120px)",padding:0},className:"userModalPreivew"},x.createElement(tAn,{file:l,previewImageName:Z.current,style:{width:"100%"}})),x.createElement(La,{title:b("5000.8120")||"编辑文件信息",visible:d,onOk:ue,onCancel:()=>f(!1)},x.createElement(Js,{form:m,layout:"vertical"},x.createElement(Js.Item,{name:"original_filename",label:b("5000.8121")||"文件名",rules:[{required:!0,message:b("5000.8121")+" "+b("5000.0110")||"请输入文件名"}]},x.createElement(Dc,null)),x.createElement(Js.Item,{name:"file_type",label:b("5000.8122")||"文件类型"},["Line","Point","PointCloud","Neuron","Vessel"].includes(m.getFieldValue("file_type"))?x.createElement(Ki.Group,{value:m.getFieldValue("file_type")},x.createElement(Ki,{value:"Line"},b("5000.8123")||"线"),x.createElement(Ki,{value:"Point"},b("5000.8124")||"点"),x.createElement(Ki,{value:"PointCloud"},b("5000.8125")||"点云"),x.createElement(Ki,{value:"Neuron"},b("5000.8126")||"神经元群落"),x.createElement(Ki,{value:"Vessel"},b("5000.8127")||"血管")):["normalLoop","virusLoop","MRILoop","GeneLoop","EPLoop","OptogeneticsLoop"].includes(m.getFieldValue("file_type"))?x.createElement(Ki.Group,{value:m.getFieldValue("file_type")},x.createElement(Ki,{value:"normalLoop"},b("5000.8128")||"默认"),x.createElement(Ki,{value:"virusLoop"},b("5000.8129")||"病毒"),x.createElement(Ki,{value:"MRILoop"},b("5000.8130")||"磁共振"),x.createElement(Ki,{value:"GeneLoop"},b("5000.8131")||"基因表达"),x.createElement(Ki,{value:"EPLoop"},b("5000.8132")||"电生理"),x.createElement(Ki,{value:"OptogeneticsLoop"},b("5000.8133")||"光遗传")):x.createElement(Dc,{disabled:!0})),x.createElement(Js.Item,{name:"is_shared",valuePropName:"checked",label:b("5000.8135")||"是否共享",rules:[{required:!0,message:b("5000.8136")||"请选择是否共享"}]},x.createElement(Fg,{style:{width:50}})),x.createElement(Js.Item,{name:"resolution",label:b("5000.8208")||"分辨率"},["TIFF","NiiGZ","Neuron","Vessel","Line"].includes(m.getFieldValue("file_type"))?x.createElement(fre,{min:1,max:100,step:1}):null),x.createElement(Js.Item,{name:"description",label:b("5000.8137")||"描述"},x.createElement(Dc.TextArea,{rows:4})))))},tAn=({file:t,previewImageName:e,className:n,onClick:r,style:i})=>{const[a,o]=x.useState({}),[s,l]=x.useState(!1);x.useEffect(()=>{e.includes(".json")?fetch(t).then(d=>{if(d.ok)return d.json();throw new Error("Failed to fetch JSON")}).then(d=>{o(d),l(!1)}).catch(d=>{l(!0)}):o(t)},[t]);const u=(d,f=0)=>Object.entries(d).map(([p,h])=>x.createElement("div",{key:p,style:{marginLeft:`${f*20}px`}},x.createElement("strong",null,p,":"),typeof h=="object"&&h!==null?x.createElement("div",null,u(h,f+1)):x.createElement("span",{style:{marginLeft:"10px"}},typeof h=="string"?`"${h}"`:String(h))));return s?x.createElement("div",null,"Failed to load json"):e.includes(".json")?x.createElement("div",null,u(a)):a?x.createElement("img",{src:a,alt:"Uploaded",className:n,onClick:r,style:{objectFit:"cover",...i}}):x.createElement(Ab,null)},nAn=/^[og]\s*(.+)?/,rAn=/^mtllib /,iAn=/^usemtl /,aAn=/^usemap /,w5e=/\s+/,T5e=new we,FY=new we,I5e=new we,A5e=new we,em=new we,eM=new rr;function oAn(){const t={objects:[],object:{},vertices:[],normals:[],colors:[],uvs:[],materials:{},materialLibraries:[],startObject:function(e,n){if(this.object&&this.object.fromDeclaration===!1){this.object.name=e,this.object.fromDeclaration=n!==!1;return}const r=this.object&&typeof this.object.currentMaterial=="function"?this.object.currentMaterial():void 0;if(this.object&&typeof this.object._finalize=="function"&&this.object._finalize(!0),this.object={name:e||"",fromDeclaration:n!==!1,geometry:{vertices:[],normals:[],colors:[],uvs:[],hasUVIndices:!1},materials:[],smooth:!0,startMaterial:function(i,a){const o=this._finalize(!1);o&&(o.inherited||o.groupCount<=0)&&this.materials.splice(o.index,1);const s={index:this.materials.length,name:i||"",mtllib:Array.isArray(a)&&a.length>0?a[a.length-1]:"",smooth:o!==void 0?o.smooth:this.smooth,groupStart:o!==void 0?o.groupEnd:0,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(l){const u={index:typeof l=="number"?l:this.index,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0,groupEnd:-1,groupCount:-1,inherited:!1};return u.clone=this.clone.bind(u),u}};return this.materials.push(s),s},currentMaterial:function(){if(this.materials.length>0)return this.materials[this.materials.length-1]},_finalize:function(i){const a=this.currentMaterial();if(a&&a.groupEnd===-1&&(a.groupEnd=this.geometry.vertices.length/3,a.groupCount=a.groupEnd-a.groupStart,a.inherited=!1),i&&this.materials.length>1)for(let o=this.materials.length-1;o>=0;o--)this.materials[o].groupCount<=0&&this.materials.splice(o,1);return i&&this.materials.length===0&&this.materials.push({name:"",smooth:this.smooth}),a}},r&&r.name&&typeof r.clone=="function"){const i=r.clone(0);i.inherited=!0,this.object.materials.push(i)}this.objects.push(this.object)},finalize:function(){this.object&&typeof this.object._finalize=="function"&&this.object._finalize(!0)},parseVertexIndex:function(e,n){const r=parseInt(e,10);return(r>=0?r-1:r+n/3)*3},parseNormalIndex:function(e,n){const r=parseInt(e,10);return(r>=0?r-1:r+n/3)*3},parseUVIndex:function(e,n){const r=parseInt(e,10);return(r>=0?r-1:r+n/2)*2},addVertex:function(e,n,r){const i=this.vertices,a=this.object.geometry.vertices;a.push(i[e+0],i[e+1],i[e+2]),a.push(i[n+0],i[n+1],i[n+2]),a.push(i[r+0],i[r+1],i[r+2])},addVertexPoint:function(e){const n=this.vertices;this.object.geometry.vertices.push(n[e+0],n[e+1],n[e+2])},addVertexLine:function(e){const n=this.vertices;this.object.geometry.vertices.push(n[e+0],n[e+1],n[e+2])},addNormal:function(e,n,r){const i=this.normals,a=this.object.geometry.normals;a.push(i[e+0],i[e+1],i[e+2]),a.push(i[n+0],i[n+1],i[n+2]),a.push(i[r+0],i[r+1],i[r+2])},addFaceNormal:function(e,n,r){const i=this.vertices,a=this.object.geometry.normals;T5e.fromArray(i,e),FY.fromArray(i,n),I5e.fromArray(i,r),em.subVectors(I5e,FY),A5e.subVectors(T5e,FY),em.cross(A5e),em.normalize(),a.push(em.x,em.y,em.z),a.push(em.x,em.y,em.z),a.push(em.x,em.y,em.z)},addColor:function(e,n,r){const i=this.colors,a=this.object.geometry.colors;i[e]!==void 0&&a.push(i[e+0],i[e+1],i[e+2]),i[n]!==void 0&&a.push(i[n+0],i[n+1],i[n+2]),i[r]!==void 0&&a.push(i[r+0],i[r+1],i[r+2])},addUV:function(e,n,r){const i=this.uvs,a=this.object.geometry.uvs;a.push(i[e+0],i[e+1]),a.push(i[n+0],i[n+1]),a.push(i[r+0],i[r+1])},addDefaultUV:function(){const e=this.object.geometry.uvs;e.push(0,0),e.push(0,0),e.push(0,0)},addUVLine:function(e){const n=this.uvs;this.object.geometry.uvs.push(n[e+0],n[e+1])},addFace:function(e,n,r,i,a,o,s,l,u){const d=this.vertices.length;let f=this.parseVertexIndex(e,d),p=this.parseVertexIndex(n,d),h=this.parseVertexIndex(r,d);if(this.addVertex(f,p,h),this.addColor(f,p,h),s!==void 0&&s!==""){const m=this.normals.length;f=this.parseNormalIndex(s,m),p=this.parseNormalIndex(l,m),h=this.parseNormalIndex(u,m),this.addNormal(f,p,h)}else this.addFaceNormal(f,p,h);if(i!==void 0&&i!==""){const m=this.uvs.length;f=this.parseUVIndex(i,m),p=this.parseUVIndex(a,m),h=this.parseUVIndex(o,m),this.addUV(f,p,h),this.object.geometry.hasUVIndices=!0}else this.addDefaultUV()},addPointGeometry:function(e){this.object.geometry.type="Points";const n=this.vertices.length;for(let r=0,i=e.length;r<i;r++){const a=this.parseVertexIndex(e[r],n);this.addVertexPoint(a),this.addColor(a)}},addLineGeometry:function(e,n){this.object.geometry.type="Line";const r=this.vertices.length,i=this.uvs.length;for(let a=0,o=e.length;a<o;a++)this.addVertexLine(this.parseVertexIndex(e[a],r));for(let a=0,o=n.length;a<o;a++)this.addUVLine(this.parseUVIndex(n[a],i))}};return t.startObject("",!1),t}class sAn extends Dm{constructor(e){super(e),this.materials=null}load(e,n,r,i){const a=this,o=new cT(this.manager);o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(s){try{n(a.parse(s))}catch(l){i?i(l):console.error(l),a.manager.itemError(e)}},r,i)}setMaterials(e){return this.materials=e,this}parse(e){const n=new oAn;e.indexOf(`\r
|
|
5855
|
+
`,transparent:!1,depthWrite:!1,depthTest:!1}),ne=new Xc(q,X);ne.translateX(_),ne.translateY(C),ne.translateZ(I),R.add(ne),R.name="functionSwcPoint",R.userData.name=y;const Z=Se.current.getObjectByName("functionLoopGroup");Z&&Z.add(R);let Y=1;for(let Q=0;Q<S.line.length;Q++){let J=[],te=[S.position[0].x,S.position[0].y,S.position[0].z];for(let de=S.line[Q].start;de<=S.line[Q].end;de++){de===S.line[Q].start&&(te=[S.position[de].x,S.position[de].y,S.position[de].z]);let ue=S.position[de].x,fe=S.position[de].y,oe=S.position[de].z;(Math.sqrt((ue-te[0])*(ue-te[0])+(fe-te[1])*(fe-te[1])+(oe-te[2])*(oe-te[2]))>Y||de===S.line[Q].end||de===S.line[Q].start)&&(J.push(new we(ue,fe,oe)),te=[ue,fe,oe])}let ae=new Ji(new Ei().setFromPoints(J),new sl({color:E===0?"rgb(125, 235, 129)":"#2E7D32"}));P.add(ae)}P.scale.set(_i.current,_i.current,_i.current),P.translateX(_),P.translateY(C),P.translateZ(I),P.name="functionSwcLine",P.userData.name=y,Z&&Z.add(P),b&&(b.style.display="none")})},p=async m=>{const y=Se.current.getObjectByName("functionLoopGroup");if(y){const g=y.children.filter(E=>!m.includes(E.userData.name)&&["functionSwcLine","functionSwcPoint"].includes(E.name));for(let E=0;E<g.length;E++)y.remove(g[E]);const v=y.children.filter(E=>!m.includes(E.userData.fathername)&&E.name==="functionSwcText");if(v.length>0){a.current[v[0].userData.fathername].visible=!1;for(let E=0;E<v.length;E++)y.remove(v[E])}for(let E=0;E<m.length;E++)if(!y.children.find(S=>S.userData.name===m[E])){let S=e.find(C=>C.name===m[E]);if(S){const C=S==null?void 0:S.path;for(let _=0;_<C.length;_++){let I=C[_];await f(I,m[E],"#7ac47a","#A7B5A1",_)}}}}i(m)},h={selectedRowKeys:r,onChange:p,getCheckboxProps:m=>({disabled:m.name==="Disabled User",name:m.name})};return x.createElement("div",null,x.createElement(hR,{rowSelection:{type:"checkbox",...h},columns:u,dataSource:e,rowKey:"name"}))});const eAn=()=>{const[t,e]=x.useState([]),[n,r]=x.useState([]),[i,a]=x.useState(""),[o,s]=x.useState(!1),[l,u]=x.useState(""),[d,f]=x.useState(!1),[p,h]=x.useState(null),[m]=Js.useForm(),[y,g]=x.useState([]),[v,E]=x.useState(!1),[b]=Gqe(),[S,C]=x.useState([]),[_,I]=x.useState([]),[P,R]=x.useState(!1),[N,D]=x.useState(null),[F,j]=x.useState({storage_used:0,storage_limit:0,usage_percentage:0}),[U,H]=x.useState(0),[z,B]=x.useState(!1),W=x.useRef(""),q=x.useRef(null),G=x.useRef(new BroadcastChannel("userUpload")),X=x.useRef(new BroadcastChannel("userUpload2")),ne=x.useRef(!0),Z=x.useRef(""),Y=async()=>{try{E(!0);const be=await(await Q("/app-api/userDB-api/files/directory-tree")).json();if(be){const Te=(Pe=>{const Ze=(Me,He)=>Me.map(ot=>({title:ot.name,key:He+"/"+ot.name,children:ot.children?Ze(ot.children,ot.name):[]}));return[{title:Pe.name,key:Pe.name,children:Pe.children?Ze(Pe.children,Pe.name):[]}]})(be);if(e(Te),Te.length>0){const Pe=Te[0].key;a(Pe),J(Pe)}}}catch(ee){console.error("获取文件夹树失败:",ee),co.error("获取文件夹树失败")}finally{E(!1)}},Q=async(ee,be)=>await fetch(ee,{...be,headers:{...be==null?void 0:be.headers,"X-API-Key":`${W.current}`}}),J=async ee=>{try{E(!0);const _e=await(await Q(`/app-api/userDB-api/files/my-files?hierarchy=${ee}`)).json();_e&&(r(_e),C([]))}catch(be){console.error("获取文件列表失败:",be),co.error("获取文件列表失败")}finally{E(!1)}};x.useEffect(()=>{const ee="imgKey=",be=document.cookie.split(";");let _e="";for(let Te=0;Te<be.length;Te++){let Pe=be[Te];for(;Pe.charAt(0)===" ";)Pe=Pe.substring(1,Pe.length);Pe.indexOf(ee)===0&&(_e=Pe.substring(ee.length,Pe.length))}if(_e)W.current=_e,Y(),Ye();else{const Te=prompt("请输入用户key:");if(Te){W.current=Te;let Pe=new Date;Pe.setTime(Pe.getTime()+7*24*60*60*1e3);let Ze="; expires="+Pe.toUTCString();document.cookie=`imgKey=${Te}; path=/;expires=${Ze}`,Y(),Ye()}}X.current.onmessage=Te=>{switch(Te.data.type){case"updateSceneFileTransform":ne.current=!1,I(Te.data.sceneFiles);break}}},[]),x.useEffect(()=>{_.length>0&&ne.current&&G.current.postMessage({type:"addSceneFiles",sceneFiles:_})},[_]);const te=ee=>{if(ee.length>0){const be=ee[0].toString();a(be),J(be)}},ae=(ee,be)=>{u(ee),s(!0),Z.current=be},de=ee=>{h(ee),m.setFieldsValue({original_filename:ee.original_filename,description:ee.description||"",file_type:ee.file_type,is_shared:ee.is_shared,resolution:ee.resolution}),f(!0)},ue=async()=>{try{const ee=await m.validateFields();if(p){console.log("values",ee);const _e=await(await Q(`/app-api/userDB-api/files/${p.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({original_filename:ee.original_filename,file_type:ee.file_type,is_shared:ee.is_shared,description:ee.description,resolution:ee.resolution})})).json();if(_e){const Te=n.map(Pe=>Pe.id===p.id?{..._e}:Pe);r(Te),co.success("文件信息已更新")}else co.error("更新失败")}f(!1)}catch(ee){console.error("保存文件信息失败:",ee),co.error("保存文件信息失败")}},fe=async({file:ee,onSuccess:be,onError:_e})=>{try{B(!0),H(0);const Te=new FormData;Te.append("file",ee),Te.append("hierarchy",i);const Pe=new XMLHttpRequest;Pe.upload.addEventListener("progress",Me=>{if(Me.lengthComputable){const He=Math.round(Me.loaded*100/Me.total);H(He)}}),await new Promise((Me,He)=>{Pe.onload=()=>{Pe.status>=200&&Pe.status<300?Me(Pe.response):He(new Error(`HTTP ${Pe.status}: ${Pe.statusText}`))},Pe.onerror=()=>{He(new Error("网络错误"))},Pe.open("POST","/app-api/userDB-api/files/upload"),Pe.send(Te)});const Ze=JSON.parse(Pe.response);Ze?(g([]),J(i),be&&be({},ee),co.success("文件上传成功"),Ye()):(co.error("上传失败"),_e&&_e(new Error(JSON.stringify(Ze))))}catch(Te){console.error("文件上传失败:",Te),co.error("文件上传失败"),_e&&_e(Te)}finally{B(!1),H(0)}},oe=async()=>{try{const ee=prompt("请输入文件夹名称:");ee&&(await(await Q("/app-api/userDB-api/files/create-dir",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({hierarchy:i+"/"+ee})})).json()?(await Y(),co.success("文件夹创建成功")):co.error("创建失败"))}catch(ee){console.error("创建文件夹失败:",ee),co.error("创建文件夹失败")}},Ce=async ee=>{const be=prompt("请输入新的文件夹名称:");be&&(await(await Q("/app-api/userDB-api/files/rename-dir",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({new_hierarchy:i.slice(0,i.lastIndexOf("/"))+"/"+be,old_hierarchy:i})})).json()?(await Y(),co.success("文件夹名称修改成功")):co.error("修改失败"))},se=async ee=>{La.confirm({title:b("5000.8113")||"确定要删除该文件夹吗?",content:b("5000.8114")||"删除后将无法恢复",async onOk(){await(await Q("/app-api/userDB-api/files/dele_dir",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({hierarchy:ee})})).json()?(await Y(),co.success("文件夹删除成功")):co.error("删除失败")}})},ve=(ee,be)=>{C(be?_e=>[..._e,ee]:_e=>_e.filter(Te=>Te!==ee))},he=ee=>{let be=[];ee&&n.forEach(_e=>{be.push(_e.id)}),C(be)},Re=()=>{const ee=S;if(ee.length===0){co.warning("请至少选择一个文件");return}const _e=n.filter(Te=>ee.includes(Te.id)).filter(Te=>!_.some(Pe=>Pe.id===Te.id)).map(Te=>({...Te,translateX:0,translateY:["TIFF","NiiGZ"].includes(Te.file_type)?-1.5:0,translateZ:0,rotateX:0,rotateY:0,rotateZ:0,scaleX:1,scaleY:1,scaleZ:1,color:"#000000",radius:.01,normalText:"Normal",brightness:1,darkness:0,opacity:1,opacity2:1,color2:"#fff",backColor:"#ffa600"}));if(_e.length>1&&_e.every(Te=>Te.original_filename.includes(".png"))){const Te=_e.map(Ze=>Ze.id).join("-"),Pe={children:_e,translateX:0,translateY:0,translateZ:0,rotateX:0,rotateY:0,rotateZ:0,scaleX:1,scaleY:1,scaleZ:1,id:Te,original_filename:"scene",user_id:_e[0].user_id,file_type:"neuronsBody",is_shared:_e[0].is_shared,stored_filename:_e[0].stored_filename,file_path:_e[0].file_path,file_size:_e[0].file_size,created_at:_e[0].created_at,updated_at:_e[0].updated_at,distance:1,resolution:_e[0].resolution};La.confirm({title:b("5000.8115")||"检测到多个PNG文件,是否要升级成高级对象神经元群落?",content:b("5000.8116")||"取消后则不进行升级",async onOk(){ne.current=!0,I(Ze=>[...Ze,Pe]),C([]),R(!0)},onCancel(){ne.current=!0,I(Ze=>[...Ze,..._e]),C([]),R(!0)}});return}else ne.current=!0,I(Te=>[...Te,..._e]),C([]),R(!0),co.success(`成功添加 ${_e.length} 个文件到场景`)},Fe=async()=>{La.confirm({title:b("5000.8117")||"确定要删除所选文件吗?",content:b("5000.8114")||"删除后将无法恢复",async onOk(){const ee=S;await(await Q("/app-api/userDB-api/files/dele_file",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({file_ids:ee})})).json()?(r(Te=>Te.filter(Pe=>!ee.includes(Pe.id))),J(i),co.success("文件删除成功")):co.error("删除失败")}})},Ye=async()=>{try{const be=await(await Q("/app-api/userDB-api/files/storage-info",{method:"GET"})).json();be&&j(be)}catch(ee){console.error("获取存储大小失败:",ee),co.error("获取存储大小失败")}},Ue=()=>{R(ee=>!ee)},ge=(ee,be,_e)=>{ne.current=!0,I(Te=>Te.map(Pe=>Pe.id===ee?{...Pe,[be]:_e}:Pe))},qe=ee=>{ne.current=!0,G.current.postMessage({type:"removeSceneFile",fileId:ee}),I(be=>be.filter(_e=>_e.id!==ee))},ye=ee=>{if((N==null?void 0:N.id)===ee)D(null);else{const be=_.find(_e=>_e.id===ee);be&&D(be)}};return x.createElement("div",{className:"repository-container"},x.createElement("div",{className:"folder-tree"},x.createElement("div",{className:"tree-header"},x.createElement("h3",null,b("5000.8100")||"资料库")),x.createElement("div",{className:"tree-content"},v?x.createElement("div",{style:{textAlign:"center",padding:"20px"}},x.createElement(Ab,null)):x.createElement(Fx,{treeData:t,defaultExpandAll:!0,onSelect:te,selectedKeys:[i]}))),x.createElement("div",{className:"file-list"},x.createElement("div",{className:"file-list-header"},x.createElement("div",{className:"header-buttons"},x.createElement("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-start"}},x.createElement(sA,{fileList:y,accept:".png,.jpg,.jpeg,.gif,.tiff,.tif,.pdf,.json,.stl,.obj,.glb,.fbx,.gz,.nii.gz",customRequest:fe,multiple:!0,beforeUpload:ee=>F.storage_used+ee.size>F.storage_limit?(co.error("存储空间不足,请清理空间后重试"),!1):(g([ee]),!0),showUploadList:!1},x.createElement(ca,{icon:x.createElement(kPe,null),type:"primary",disabled:z},b("5000.8101")||"上传文件")),z&&x.createElement("div",{style:{width:"100%",marginTop:"10px"}},x.createElement(K7e,{percent:U,status:"active"}))),x.createElement(ca,{icon:x.createElement(Phe,null),onClick:oe,style:{marginLeft:10}},b("5000.8102")||"新建文件夹"),x.createElement(ca,{icon:x.createElement(Phe,null),onClick:()=>Ce(),style:{marginLeft:10}},b("5000.8103")||"修改文件夹名"),x.createElement(ca,{icon:x.createElement(fPe,null),type:"primary",danger:!0,onClick:()=>se(i),style:{marginLeft:10}},b("5000.8104")||"删除文件夹"),x.createElement("div",{style:{lineHeight:"32px",marginLeft:10}},b("5000.8105")||"存储大小",": ",F.storage_used/1024/1024," MB / ",F.storage_limit/1024/1024," MB"))),x.createElement("div",{className:"file-selection-area"},x.createElement("div",{className:"select-all-checkbox"},x.createElement(Fg,{onChange:ee=>he(ee.target.checked),defaultChecked:!1,checked:S.length==n.length&&n.length>0,indeterminate:S.length>0&&S.length<n.length},b("5000.8106")||"全选")),x.createElement("div",null,x.createElement(ca,{type:"primary",onClick:Re,disabled:S.length===0},b("5000.8107")||"插入场景"),x.createElement(ca,{type:"primary",danger:!0,onClick:Fe,disabled:S.length===0},b("5000.8108")||"删除文件"))),x.createElement("div",{className:"files-container"},v?x.createElement("div",{style:{textAlign:"center",padding:"20px",width:"100%"}},x.createElement(Ab,null)):n.map(ee=>x.createElement("div",{key:ee.id,className:"file-item"},x.createElement("div",{className:"file-checkbox"},x.createElement(Fg,{checked:S.includes(ee.id),onChange:be=>ve(ee.id,be.target.checked),disabled:_.some(be=>be.id===ee.id)})),x.createElement("div",{className:"file-thumbnail",onClick:()=>ae(`/app-api/userDB-api/files/${ee.id}`||"",ee.original_filename)},ee.thumbnail_path?x.createElement("img",{src:`/app-api/userDB-api/files/${ee.id}/thumbnail`}):x.createElement("div",{className:"file-placeholder"},b("5000.8110")||"文件"),x.createElement(WD,{className:"preview-icon"})),x.createElement("div",{className:"file-info"},x.createElement("div",{className:"file-name"},ee.original_filename),x.createElement(ca,{icon:x.createElement(Cre,null),size:"small",onClick:()=>de(ee)},b("5000.8109")||"编辑")))))),x.createElement("div",{className:"scene-list-container"},x.createElement("div",{className:"scene-list-toggle",onClick:Ue},P?x.createElement(W3,null):x.createElement(LMe,null)),x.createElement("div",{className:`scene-list-content ${P?"open":""}`,ref:q},x.createElement("div",{className:"scene-list-header"},x.createElement("h3",null,b("5000.8111")||"场景列表")),x.createElement("div",{className:"scene-files-container"},_.map(ee=>x.createElement("div",{key:ee.id,className:"scene-file-item"},x.createElement("div",{className:"scene-file-info"},ee.thumbnail_path?x.createElement("img",{src:`/app-api/userDB-api/files/${ee.id}/thumbnail`,className:"scene-file-thumbnail",onClick:()=>ye(ee.id)}):x.createElement("div",{className:"scene-file-placeholder",onClick:()=>ye(ee.id)},b("5000.8110")||"文件"),x.createElement("div",{className:"scene-file-name",onClick:()=>ye(ee.id)},ee.original_filename),x.createElement(ca,{size:"small",onClick:()=>qe(ee.id),danger:!0},b("5000.8000")||"删除")),(N==null?void 0:N.id)===ee.id&&x.createElement("div",{className:"scene-file-controls"},x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8001")||"位移 X",": ",ee.translateX),x.createElement(Uo,{min:-20,max:20,step:.1,value:ee.translateX,onChange:be=>ge(ee.id,"translateX",be)})),x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8002")||"位移 Y",": ",ee.translateY),x.createElement(Uo,{min:-20,max:20,step:.1,value:ee.translateY,onChange:be=>ge(ee.id,"translateY",be)})),x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8003")||"位移 Z",": ",ee.translateZ),x.createElement(Uo,{min:-20,max:20,step:.1,value:ee.translateZ,onChange:be=>ge(ee.id,"translateZ",be)})),x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8004")||"旋转 X",": ",ee.rotateX,"°"),x.createElement(Uo,{min:0,max:360,value:ee.rotateX,onChange:be=>ge(ee.id,"rotateX",be)})),x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8005")||"旋转 Y",": ",ee.rotateY,"°"),x.createElement(Uo,{min:0,max:360,value:ee.rotateY,onChange:be=>ge(ee.id,"rotateY",be)})),x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8006")||"旋转 Z",": ",ee.rotateZ,"°"),x.createElement(Uo,{min:0,max:360,value:ee.rotateZ,onChange:be=>ge(ee.id,"rotateZ",be)})),x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8007")||"缩放X",": ",ee.scaleX),x.createElement(Uo,{min:.001,max:20,step:.001,value:ee.scaleX,onChange:be=>ge(ee.id,"scaleX",be)})),x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8008")||"缩放Y",": ",ee.scaleY),x.createElement(Uo,{min:.001,max:20,step:.001,value:ee.scaleY,onChange:be=>ge(ee.id,"scaleY",be)})),x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8009")||"缩放Z",": ",ee.scaleZ),x.createElement(Uo,{min:.001,max:20,step:.001,value:ee.scaleZ,onChange:be=>ge(ee.id,"scaleZ",be)})),ee.distance&&x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8010")||"距离",": ",ee.distance),x.createElement(Uo,{min:.01,max:10,step:.01,value:ee.distance,onChange:be=>ge(ee.id,"distance",be)})),["Point","Vessel"].includes(ee.file_type)&&x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8011")||"半径",": ",ee.radius||1),x.createElement(Uo,{min:.01,max:10,step:.01,value:ee.radius,onChange:be=>ge(ee.id,"radius",be)})),ee.color&&x.createElement("div",{className:"control-group"},x.createElement("label",null,["NiiGZ","TIFF"].includes(ee.file_type)?b("5000.8200")||"低灰度值颜色":b("5000.8012")||"颜色",": ",ee.color),x.createElement(Sh,{value:ee.color,format:"hex",onChange:(be,_e)=>{ge(ee.id,"color",_e)}})),["NiiGZ","TIFF"].includes(ee.file_type)&&x.createElement("div",null,x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8202")||"高灰度值颜色",": ",ee.color2),x.createElement(Sh,{value:ee.color2,format:"hex",onChange:(be,_e)=>{ge(ee.id,"color2",_e)}})),x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8203")||"亮度",": ",ee.brightness),x.createElement(Uo,{min:0,max:1.5,step:.01,value:ee.brightness,onChange:be=>ge(ee.id,"brightness",be)})),x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8204")||"暗度",": ",ee.darkness),x.createElement(Uo,{min:0,max:1,step:.01,value:ee.darkness,onChange:be=>ge(ee.id,"darkness",be)})),x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8205")||"透明度",": ",ee.opacity),x.createElement(Uo,{min:0,max:1,step:.01,value:ee.opacity,onChange:be=>ge(ee.id,"opacity",be)})),x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8206")||"透明度2",": ",ee.opacity2),x.createElement(Uo,{min:0,max:1,step:.01,value:ee.opacity2,onChange:be=>ge(ee.id,"opacity2",be)}))),ee.file_type==="normalLoop"&&x.createElement("div",{className:"control-group"},x.createElement("label",null,b("5000.8207")||"卡片颜色",": ",ee.backColor),x.createElement(Sh,{value:ee.backColor,format:"hex",onChange:(be,_e)=>{ge(ee.id,"backColor",_e)}}))))),_.length===0&&x.createElement("div",{className:"empty-scene-list"},b("5000.8112")||"场景中暂无文件")))),x.createElement(La,{visible:o,footer:null,onCancel:()=>s(!1),width:"calc(100vw - 300px)",style:{overflow:"auto",height:"calc(100vh - 120px)",padding:0},className:"userModalPreivew"},x.createElement(tAn,{file:l,previewImageName:Z.current,style:{width:"100%"}})),x.createElement(La,{title:b("5000.8120")||"编辑文件信息",visible:d,onOk:ue,onCancel:()=>f(!1)},x.createElement(Js,{form:m,layout:"vertical"},x.createElement(Js.Item,{name:"original_filename",label:b("5000.8121")||"文件名",rules:[{required:!0,message:b("5000.8121")+" "+b("5000.0110")||"请输入文件名"}]},x.createElement(Dc,null)),x.createElement(Js.Item,{name:"file_type",label:b("5000.8122")||"文件类型"},["Line","Point","PointCloud","Neuron","Vessel"].includes(m.getFieldValue("file_type"))?x.createElement(Ki.Group,{value:m.getFieldValue("file_type")},x.createElement(Ki,{value:"Line"},b("5000.8123")||"线"),x.createElement(Ki,{value:"Point"},b("5000.8124")||"点"),x.createElement(Ki,{value:"PointCloud"},b("5000.8125")||"点云"),x.createElement(Ki,{value:"Neuron"},b("5000.8126")||"神经元群落"),x.createElement(Ki,{value:"Vessel"},b("5000.8127")||"血管")):["normalLoop","virusLoop","MRILoop","GeneLoop","EPLoop","OptogeneticsLoop"].includes(m.getFieldValue("file_type"))?x.createElement(Ki.Group,{value:m.getFieldValue("file_type")},x.createElement(Ki,{value:"normalLoop"},b("5000.8128")||"默认"),x.createElement(Ki,{value:"virusLoop"},b("5000.8129")||"病毒"),x.createElement(Ki,{value:"MRILoop"},b("5000.8130")||"磁共振"),x.createElement(Ki,{value:"GeneLoop"},b("5000.8131")||"基因表达"),x.createElement(Ki,{value:"EPLoop"},b("5000.8132")||"电生理"),x.createElement(Ki,{value:"OptogeneticsLoop"},b("5000.8133")||"光遗传")):x.createElement(Dc,{disabled:!0})),x.createElement(Js.Item,{name:"is_shared",valuePropName:"checked",label:b("5000.8135")||"是否共享",rules:[{required:!0,message:b("5000.8136")||"请选择是否共享"}]},x.createElement(Fg,{style:{width:50}})),x.createElement(Js.Item,{name:"resolution",label:b("5000.8208")||"分辨率"},["TIFF","NiiGZ","Neuron","Vessel","Line"].includes(m.getFieldValue("file_type"))?x.createElement(fre,{min:1,max:100,step:1}):null),x.createElement(Js.Item,{name:"description",label:b("5000.8137")||"描述"},x.createElement(Dc.TextArea,{rows:4})))))},tAn=({file:t,previewImageName:e,className:n,onClick:r,style:i})=>{const[a,o]=x.useState({}),[s,l]=x.useState(!1);x.useEffect(()=>{e.includes(".json")?fetch(t).then(d=>{if(d.ok)return d.json();throw new Error("Failed to fetch JSON")}).then(d=>{o(d),l(!1)}).catch(d=>{l(!0)}):o(t)},[t]);const u=(d,f=0)=>Object.entries(d).map(([p,h])=>x.createElement("div",{key:p,style:{marginLeft:`${f*20}px`}},x.createElement("strong",null,p,":"),typeof h=="object"&&h!==null?x.createElement("div",null,u(h,f+1)):x.createElement("span",{style:{marginLeft:"10px"}},typeof h=="string"?`"${h}"`:String(h))));return s?x.createElement("div",null,"Failed to load json"):e.includes(".json")?x.createElement("div",null,u(a)):a?x.createElement("img",{src:a,alt:"Uploaded",className:n,onClick:r,style:{objectFit:"cover",...i}}):x.createElement(Ab,null)},nAn=/^[og]\s*(.+)?/,rAn=/^mtllib /,iAn=/^usemtl /,aAn=/^usemap /,w5e=/\s+/,T5e=new we,FY=new we,I5e=new we,A5e=new we,em=new we,eM=new rr;function oAn(){const t={objects:[],object:{},vertices:[],normals:[],colors:[],uvs:[],materials:{},materialLibraries:[],startObject:function(e,n){if(this.object&&this.object.fromDeclaration===!1){this.object.name=e,this.object.fromDeclaration=n!==!1;return}const r=this.object&&typeof this.object.currentMaterial=="function"?this.object.currentMaterial():void 0;if(this.object&&typeof this.object._finalize=="function"&&this.object._finalize(!0),this.object={name:e||"",fromDeclaration:n!==!1,geometry:{vertices:[],normals:[],colors:[],uvs:[],hasUVIndices:!1},materials:[],smooth:!0,startMaterial:function(i,a){const o=this._finalize(!1);o&&(o.inherited||o.groupCount<=0)&&this.materials.splice(o.index,1);const s={index:this.materials.length,name:i||"",mtllib:Array.isArray(a)&&a.length>0?a[a.length-1]:"",smooth:o!==void 0?o.smooth:this.smooth,groupStart:o!==void 0?o.groupEnd:0,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(l){const u={index:typeof l=="number"?l:this.index,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0,groupEnd:-1,groupCount:-1,inherited:!1};return u.clone=this.clone.bind(u),u}};return this.materials.push(s),s},currentMaterial:function(){if(this.materials.length>0)return this.materials[this.materials.length-1]},_finalize:function(i){const a=this.currentMaterial();if(a&&a.groupEnd===-1&&(a.groupEnd=this.geometry.vertices.length/3,a.groupCount=a.groupEnd-a.groupStart,a.inherited=!1),i&&this.materials.length>1)for(let o=this.materials.length-1;o>=0;o--)this.materials[o].groupCount<=0&&this.materials.splice(o,1);return i&&this.materials.length===0&&this.materials.push({name:"",smooth:this.smooth}),a}},r&&r.name&&typeof r.clone=="function"){const i=r.clone(0);i.inherited=!0,this.object.materials.push(i)}this.objects.push(this.object)},finalize:function(){this.object&&typeof this.object._finalize=="function"&&this.object._finalize(!0)},parseVertexIndex:function(e,n){const r=parseInt(e,10);return(r>=0?r-1:r+n/3)*3},parseNormalIndex:function(e,n){const r=parseInt(e,10);return(r>=0?r-1:r+n/3)*3},parseUVIndex:function(e,n){const r=parseInt(e,10);return(r>=0?r-1:r+n/2)*2},addVertex:function(e,n,r){const i=this.vertices,a=this.object.geometry.vertices;a.push(i[e+0],i[e+1],i[e+2]),a.push(i[n+0],i[n+1],i[n+2]),a.push(i[r+0],i[r+1],i[r+2])},addVertexPoint:function(e){const n=this.vertices;this.object.geometry.vertices.push(n[e+0],n[e+1],n[e+2])},addVertexLine:function(e){const n=this.vertices;this.object.geometry.vertices.push(n[e+0],n[e+1],n[e+2])},addNormal:function(e,n,r){const i=this.normals,a=this.object.geometry.normals;a.push(i[e+0],i[e+1],i[e+2]),a.push(i[n+0],i[n+1],i[n+2]),a.push(i[r+0],i[r+1],i[r+2])},addFaceNormal:function(e,n,r){const i=this.vertices,a=this.object.geometry.normals;T5e.fromArray(i,e),FY.fromArray(i,n),I5e.fromArray(i,r),em.subVectors(I5e,FY),A5e.subVectors(T5e,FY),em.cross(A5e),em.normalize(),a.push(em.x,em.y,em.z),a.push(em.x,em.y,em.z),a.push(em.x,em.y,em.z)},addColor:function(e,n,r){const i=this.colors,a=this.object.geometry.colors;i[e]!==void 0&&a.push(i[e+0],i[e+1],i[e+2]),i[n]!==void 0&&a.push(i[n+0],i[n+1],i[n+2]),i[r]!==void 0&&a.push(i[r+0],i[r+1],i[r+2])},addUV:function(e,n,r){const i=this.uvs,a=this.object.geometry.uvs;a.push(i[e+0],i[e+1]),a.push(i[n+0],i[n+1]),a.push(i[r+0],i[r+1])},addDefaultUV:function(){const e=this.object.geometry.uvs;e.push(0,0),e.push(0,0),e.push(0,0)},addUVLine:function(e){const n=this.uvs;this.object.geometry.uvs.push(n[e+0],n[e+1])},addFace:function(e,n,r,i,a,o,s,l,u){const d=this.vertices.length;let f=this.parseVertexIndex(e,d),p=this.parseVertexIndex(n,d),h=this.parseVertexIndex(r,d);if(this.addVertex(f,p,h),this.addColor(f,p,h),s!==void 0&&s!==""){const m=this.normals.length;f=this.parseNormalIndex(s,m),p=this.parseNormalIndex(l,m),h=this.parseNormalIndex(u,m),this.addNormal(f,p,h)}else this.addFaceNormal(f,p,h);if(i!==void 0&&i!==""){const m=this.uvs.length;f=this.parseUVIndex(i,m),p=this.parseUVIndex(a,m),h=this.parseUVIndex(o,m),this.addUV(f,p,h),this.object.geometry.hasUVIndices=!0}else this.addDefaultUV()},addPointGeometry:function(e){this.object.geometry.type="Points";const n=this.vertices.length;for(let r=0,i=e.length;r<i;r++){const a=this.parseVertexIndex(e[r],n);this.addVertexPoint(a),this.addColor(a)}},addLineGeometry:function(e,n){this.object.geometry.type="Line";const r=this.vertices.length,i=this.uvs.length;for(let a=0,o=e.length;a<o;a++)this.addVertexLine(this.parseVertexIndex(e[a],r));for(let a=0,o=n.length;a<o;a++)this.addUVLine(this.parseUVIndex(n[a],i))}};return t.startObject("",!1),t}class sAn extends Dm{constructor(e){super(e),this.materials=null}load(e,n,r,i){const a=this,o=new cT(this.manager);o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(s){try{n(a.parse(s))}catch(l){i?i(l):console.error(l),a.manager.itemError(e)}},r,i)}setMaterials(e){return this.materials=e,this}parse(e){const n=new oAn;e.indexOf(`\r
|
|
5856
5856
|
`)!==-1&&(e=e.replace(/\r\n/g,`
|
|
5857
5857
|
`)),e.indexOf(`\\
|
|
5858
5858
|
`)!==-1&&(e=e.replace(/\\\n/g,""));const r=e.split(`
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-fc4834e6.js");require("react");require("react-dom");exports.Atlas=e.Atlas;exports.AtlasBottomTabs=e.AtlasBottomTabs;exports.AtlasSideBar=e.AtlasSideBar;exports.Auxiliary=e.Auxiliary;exports.BottomTabs=e.BottomTabs;exports.Button=e.Button;exports.Carddata=e.Carddata;exports.Distribution=e.Distribution;exports.FunctionLoop=e.Functionloop;exports.FunctionLoopSwc=e.FunctionLoopSwc;exports.GridViewer=e.GridViewer;exports.Header=e.Header;exports.InfoDiv=e.InfoDiv;exports.LoadFBX=e.LoadFBX;exports.LoadsceneFBX=e.LoadsceneFBX;exports.Modal2DLoader=e.Modal2DLoader;exports.ModalLoader=e.modalLoader;exports.MulfiViewer=e.MulfiViewer;exports.NavTree=e.NavTree;exports.NaviGation=e.NaviGation;exports.PipeLine=e.PipeLine;exports.Sections=e.Sections;exports.ShowReglions=e.ShowReglions;exports.SideBar=e.SideBar;exports.StlLoader=e.StlLoader;exports.Swctree=e.Swctree;exports.Thumbnail=e.Thumbnail;exports.TwoViewer=e.TwoViewer;exports.UploadComponent=e.UploadComponent;exports.UserUpload=e.UserUpload;exports.Z=e.Z;exports.bbox=e.bbox;exports.camera=e.camera;exports.cameralight=e.cameralight;exports.currentPathAbortController=e.currentPathAbortController;exports.fbxmeshs=e.fbxmeshs;exports.fbxmeshs_jing=e.fbxmeshs_jing;exports.fetchData=e.fetchData;exports.findChildrenByKey=e.findChildrenByKey;exports.findNodeByName=e.findNodeByName;exports.findNodeListByfather=e.findNodeListByfather;exports.findfatherlist=e.findfatherlist;exports.formatDate=e.formatDate;exports.getParentKey=e.getParentKey;exports.logMessage=e.logMessage;exports.mirrorDisplayTag=e.mirrorDisplayTag;exports.node_data=e.node_data;exports.scale=e.scale;exports.scene=e.scene;exports.tranX=e.tranX;exports.tranY=e.tranY;exports.tranZ=e.tranZ;
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { l as t, k as r, j as i, A as n, B as d, p as l, C as m, D as f, F as c, n as h, G as p, H as B, I as b, u, t as L, f as g, m as w, M as y, N as S, b as D, P as T, d as x, h as A, S as N, e as C, g as F, c as M, T as v, o as P, U, Z as V, a0 as X, K as G, J as K, W as _, X as j, Y as H, q as I, w as R, x as Y, v as Z, z as k, s as q, y as z, r as E, _ as J, $ as O, O as Q, E as W, Q as $, R as aa, V as sa } from "./index-
|
|
1
|
+
import { l as t, k as r, j as i, A as n, B as d, p as l, C as m, D as f, F as c, n as h, G as p, H as B, I as b, u, t as L, f as g, m as w, M as y, N as S, b as D, P as T, d as x, h as A, S as N, e as C, g as F, c as M, T as v, o as P, U, Z as V, a0 as X, K as G, J as K, W as _, X as j, Y as H, q as I, w as R, x as Y, v as Z, z as k, s as q, y as z, r as E, _ as J, $ as O, O as Q, E as W, Q as $, R as aa, V as sa } from "./index-e9246ba3.mjs";
|
|
2
2
|
import "react";
|
|
3
3
|
import "react-dom";
|
|
4
4
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("./index-48b0765c.js"),sA=require("./basedecoder-0503cc54.js");require("react");require("react-dom");var QA={},DA={get exports(){return QA},set exports(T){QA=T}};(function(T){/* Copyright 2015-2021 Esri. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve */(function(){var J=function(){var u={};u.defaultNoDataValue=-34027999387901484e22,u.decode=function(I,a){a=a||{};var Q=a.encodedMaskData||a.encodedMaskData===null,g=E(I,a.inputOffset||0,Q),D=a.noDataValue!==null?a.noDataValue:u.defaultNoDataValue,B=L(g,a.pixelType||Float32Array,a.encodedMaskData,D,a.returnMask),C={width:g.width,height:g.height,pixelData:B.resultPixels,minValue:B.minValue,maxValue:g.pixels.maxValue,noDataValue:D};return B.resultMask&&(C.maskData=B.resultMask),a.returnEncodedMask&&g.mask&&(C.encodedMaskData=g.mask.bitset?g.mask.bitset:null),a.returnFileInfo&&(C.fileInfo=m(g),a.computeUsedBitDepths&&(C.fileInfo.bitDepths=z(g))),C};var L=function(I,a,Q,g,D){var B=0,C=I.pixels.numBlocksX,o=I.pixels.numBlocksY,r=Math.floor(I.width/C),s=Math.floor(I.height/o),f=2*I.maxZError,e=Number.MAX_VALUE,i;Q=Q||(I.mask?I.mask.bitset:null);var t,F;t=new a(I.width*I.height),D&&Q&&(F=new Uint8Array(I.width*I.height));for(var S=new Float32Array(r*s),h,U,G=0;G<=o;G++){var R=G!==o?s:I.height%o;if(R!==0)for(var w=0;w<=C;w++){var n=w!==C?r:I.width%C;if(n!==0){var l=G*I.width*s+w*r,y=I.width-n,k=I.pixels.blocks[B],M,c,N;k.encoding<2?(k.encoding===0?M=k.rawData:(A(k.stuffedData,k.bitsPerPixel,k.numValidPixels,k.offset,f,S,I.pixels.maxValue),M=S),c=0):k.encoding===2?N=0:N=k.offset;var q;if(Q)for(U=0;U<R;U++){for(l&7&&(q=Q[l>>3],q<<=l&7),h=0;h<n;h++)l&7||(q=Q[l>>3]),q&128?(F&&(F[l]=1),i=k.encoding<2?M[c++]:N,e=e>i?i:e,t[l++]=i):(F&&(F[l]=0),t[l++]=g),q<<=1;l+=y}else if(k.encoding<2)for(U=0;U<R;U++){for(h=0;h<n;h++)i=M[c++],e=e>i?i:e,t[l++]=i;l+=y}else for(e=e>N?N:e,U=0;U<R;U++){for(h=0;h<n;h++)t[l++]=N;l+=y}if(k.encoding===1&&c!==k.numValidPixels)throw"Block and Mask do not match";B++}}}return{resultPixels:t,resultMask:F,minValue:e}},m=function(I){return{fileIdentifierString:I.fileIdentifierString,fileVersion:I.fileVersion,imageType:I.imageType,height:I.height,width:I.width,maxZError:I.maxZError,eofOffset:I.eofOffset,mask:I.mask?{numBlocksX:I.mask.numBlocksX,numBlocksY:I.mask.numBlocksY,numBytes:I.mask.numBytes,maxValue:I.mask.maxValue}:null,pixels:{numBlocksX:I.pixels.numBlocksX,numBlocksY:I.pixels.numBlocksY,numBytes:I.pixels.numBytes,maxValue:I.pixels.maxValue,noDataValue:I.noDataValue}}},z=function(I){for(var a=I.pixels.numBlocksX*I.pixels.numBlocksY,Q={},g=0;g<a;g++){var D=I.pixels.blocks[g];D.encoding===0?Q.float32=!0:D.encoding===1?Q[D.bitsPerPixel]=!0:Q[0]=!0}return Object.keys(Q)},E=function(I,a,Q){var g={},D=new Uint8Array(I,a,10);if(g.fileIdentifierString=String.fromCharCode.apply(null,D),g.fileIdentifierString.trim()!=="CntZImage")throw"Unexpected file identifier string: "+g.fileIdentifierString;a+=10;var B=new DataView(I,a,24);if(g.fileVersion=B.getInt32(0,!0),g.imageType=B.getInt32(4,!0),g.height=B.getUint32(8,!0),g.width=B.getUint32(12,!0),g.maxZError=B.getFloat64(16,!0),a+=24,!Q)if(B=new DataView(I,a,16),g.mask={},g.mask.numBlocksY=B.getUint32(0,!0),g.mask.numBlocksX=B.getUint32(4,!0),g.mask.numBytes=B.getUint32(8,!0),g.mask.maxValue=B.getFloat32(12,!0),a+=16,g.mask.numBytes>0){var C=new Uint8Array(Math.ceil(g.width*g.height/8));B=new DataView(I,a,g.mask.numBytes);var o=B.getInt16(0,!0),r=2,s=0;do{if(o>0)for(;o--;)C[s++]=B.getUint8(r++);else{var f=B.getUint8(r++);for(o=-o;o--;)C[s++]=f}o=B.getInt16(r,!0),r+=2}while(r<g.mask.numBytes);if(o!==-32768||s<C.length)throw"Unexpected end of mask RLE encoding";g.mask.bitset=C,a+=g.mask.numBytes}else g.mask.numBytes|g.mask.numBlocksY|g.mask.maxValue||(g.mask.bitset=new Uint8Array(Math.ceil(g.width*g.height/8)));B=new DataView(I,a,16),g.pixels={},g.pixels.numBlocksY=B.getUint32(0,!0),g.pixels.numBlocksX=B.getUint32(4,!0),g.pixels.numBytes=B.getUint32(8,!0),g.pixels.maxValue=B.getFloat32(12,!0),a+=16;var e=g.pixels.numBlocksX,i=g.pixels.numBlocksY,t=e+(g.width%e>0?1:0),F=i+(g.height%i>0?1:0);g.pixels.blocks=new Array(t*F);for(var S=0,h=0;h<F;h++)for(var U=0;U<t;U++){var G=0,R=I.byteLength-a;B=new DataView(I,a,Math.min(10,R));var w={};g.pixels.blocks[S++]=w;var n=B.getUint8(0);if(G++,w.encoding=n&63,w.encoding>3)throw"Invalid block encoding ("+w.encoding+")";if(w.encoding===2){a++;continue}if(n!==0&&n!==2){if(n>>=6,w.offsetType=n,n===2)w.offset=B.getInt8(1),G++;else if(n===1)w.offset=B.getInt16(1,!0),G+=2;else if(n===0)w.offset=B.getFloat32(1,!0),G+=4;else throw"Invalid block offset type";if(w.encoding===1)if(n=B.getUint8(G),G++,w.bitsPerPixel=n&63,n>>=6,w.numValidPixelsType=n,n===2)w.numValidPixels=B.getUint8(G),G++;else if(n===1)w.numValidPixels=B.getUint16(G,!0),G+=2;else if(n===0)w.numValidPixels=B.getUint32(G,!0),G+=4;else throw"Invalid valid pixel count type"}if(a+=G,w.encoding!==3){var l,y;if(w.encoding===0){var k=(g.pixels.numBytes-1)/4;if(k!==Math.floor(k))throw"uncompressed block has invalid length";l=new ArrayBuffer(k*4),y=new Uint8Array(l),y.set(new Uint8Array(I,a,k*4));var M=new Float32Array(l);w.rawData=M,a+=k*4}else if(w.encoding===1){var c=Math.ceil(w.numValidPixels*w.bitsPerPixel/8),N=Math.ceil(c/4);l=new ArrayBuffer(N*4),y=new Uint8Array(l),y.set(new Uint8Array(I,a,c)),w.stuffedData=new Uint32Array(l),a+=c}}}return g.eofOffset=a,g},A=function(I,a,Q,g,D,B,C){var o=(1<<a)-1,r=0,s,f=0,e,i,t=Math.ceil((C-g)/D),F=I.length*4-Math.ceil(a*Q/8);for(I[I.length-1]<<=8*F,s=0;s<Q;s++){if(f===0&&(i=I[r++],f=32),f>=a)e=i>>>f-a&o,f-=a;else{var S=a-f;e=(i&o)<<S&o,i=I[r++],f=32-S,e+=i>>>f}B[s]=e<t?g+e*D:C}return B};return u}(),X=function(){var u={unstuff:function(E,A,I,a,Q,g,D,B){var C=(1<<I)-1,o=0,r,s=0,f,e,i,t,F=E.length*4-Math.ceil(I*a/8);if(E[E.length-1]<<=8*F,Q)for(r=0;r<a;r++)s===0&&(e=E[o++],s=32),s>=I?(f=e>>>s-I&C,s-=I):(i=I-s,f=(e&C)<<i&C,e=E[o++],s=32-i,f+=e>>>s),A[r]=Q[f];else for(t=Math.ceil((B-g)/D),r=0;r<a;r++)s===0&&(e=E[o++],s=32),s>=I?(f=e>>>s-I&C,s-=I):(i=I-s,f=(e&C)<<i&C,e=E[o++],s=32-i,f+=e>>>s),A[r]=f<t?g+f*D:B},unstuffLUT:function(E,A,I,a,Q,g){var D=(1<<A)-1,B=0,C=0,o=0,r=0,s=0,f,e=[],i=E.length*4-Math.ceil(A*I/8);E[E.length-1]<<=8*i;var t=Math.ceil((g-a)/Q);for(C=0;C<I;C++)r===0&&(f=E[B++],r=32),r>=A?(s=f>>>r-A&D,r-=A):(o=A-r,s=(f&D)<<o&D,f=E[B++],r=32-o,s+=f>>>r),e[C]=s<t?a+s*Q:g;return e.unshift(a),e},unstuff2:function(E,A,I,a,Q,g,D,B){var C=(1<<I)-1,o=0,r,s=0,f=0,e,i,t;if(Q)for(r=0;r<a;r++)s===0&&(i=E[o++],s=32,f=0),s>=I?(e=i>>>f&C,s-=I,f+=I):(t=I-s,e=i>>>f&C,i=E[o++],s=32-t,e|=(i&(1<<t)-1)<<I-t,f=t),A[r]=Q[e];else{var F=Math.ceil((B-g)/D);for(r=0;r<a;r++)s===0&&(i=E[o++],s=32,f=0),s>=I?(e=i>>>f&C,s-=I,f+=I):(t=I-s,e=i>>>f&C,i=E[o++],s=32-t,e|=(i&(1<<t)-1)<<I-t,f=t),A[r]=e<F?g+e*D:B}return A},unstuffLUT2:function(E,A,I,a,Q,g){var D=(1<<A)-1,B=0,C=0,o=0,r=0,s=0,f=0,e,i=[],t=Math.ceil((g-a)/Q);for(C=0;C<I;C++)r===0&&(e=E[B++],r=32,f=0),r>=A?(s=e>>>f&D,r-=A,f+=A):(o=A-r,s=e>>>f&D,e=E[B++],r=32-o,s|=(e&(1<<o)-1)<<A-o,f=o),i[C]=s<t?a+s*Q:g;return i.unshift(a),i},originalUnstuff:function(E,A,I,a){var Q=(1<<I)-1,g=0,D,B=0,C,o,r,s=E.length*4-Math.ceil(I*a/8);for(E[E.length-1]<<=8*s,D=0;D<a;D++)B===0&&(o=E[g++],B=32),B>=I?(C=o>>>B-I&Q,B-=I):(r=I-B,C=(o&Q)<<r&Q,o=E[g++],B=32-r,C+=o>>>B),A[D]=C;return A},originalUnstuff2:function(E,A,I,a){var Q=(1<<I)-1,g=0,D,B=0,C=0,o,r,s;for(D=0;D<a;D++)B===0&&(r=E[g++],B=32,C=0),B>=I?(o=r>>>C&Q,B-=I,C+=I):(s=I-B,o=r>>>C&Q,r=E[g++],B=32-s,o|=(r&(1<<s)-1)<<I-s,C=s),A[D]=o;return A}},L={HUFFMAN_LUT_BITS_MAX:12,computeChecksumFletcher32:function(E){for(var A=65535,I=65535,a=E.length,Q=Math.floor(a/2),g=0;Q;){var D=Q>=359?359:Q;Q-=D;do A+=E[g++]<<8,I+=A+=E[g++];while(--D);A=(A&65535)+(A>>>16),I=(I&65535)+(I>>>16)}return a&1&&(I+=A+=E[g]<<8),A=(A&65535)+(A>>>16),I=(I&65535)+(I>>>16),(I<<16|A)>>>0},readHeaderInfo:function(E,A){var I=A.ptr,a=new Uint8Array(E,I,6),Q={};if(Q.fileIdentifierString=String.fromCharCode.apply(null,a),Q.fileIdentifierString.lastIndexOf("Lerc2",0)!==0)throw"Unexpected file identifier string (expect Lerc2 ): "+Q.fileIdentifierString;I+=6;var g=new DataView(E,I,8),D=g.getInt32(0,!0);Q.fileVersion=D,I+=4,D>=3&&(Q.checksum=g.getUint32(4,!0),I+=4),g=new DataView(E,I,12),Q.height=g.getUint32(0,!0),Q.width=g.getUint32(4,!0),I+=8,D>=4?(Q.numDims=g.getUint32(8,!0),I+=4):Q.numDims=1,g=new DataView(E,I,40),Q.numValidPixel=g.getUint32(0,!0),Q.microBlockSize=g.getInt32(4,!0),Q.blobSize=g.getInt32(8,!0),Q.imageType=g.getInt32(12,!0),Q.maxZError=g.getFloat64(16,!0),Q.zMin=g.getFloat64(24,!0),Q.zMax=g.getFloat64(32,!0),I+=40,A.headerInfo=Q,A.ptr=I;var B,C;if(D>=3&&(C=D>=4?52:48,B=this.computeChecksumFletcher32(new Uint8Array(E,I-C,Q.blobSize-14)),B!==Q.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(E,A){var I=A.headerInfo,a=this.getDataTypeArray(I.imageType),Q=I.numDims*this.getDataTypeSize(I.imageType),g=this.readSubArray(E,A.ptr,a,Q),D=this.readSubArray(E,A.ptr+Q,a,Q);A.ptr+=2*Q;var B,C=!0;for(B=0;B<I.numDims;B++)if(g[B]!==D[B]){C=!1;break}return I.minValues=g,I.maxValues=D,C},readSubArray:function(E,A,I,a){var Q;if(I===Uint8Array)Q=new Uint8Array(E,A,a);else{var g=new ArrayBuffer(a),D=new Uint8Array(g);D.set(new Uint8Array(E,A,a)),Q=new I(g)}return Q},readMask:function(E,A){var I=A.ptr,a=A.headerInfo,Q=a.width*a.height,g=a.numValidPixel,D=new DataView(E,I,4),B={};if(B.numBytes=D.getUint32(0,!0),I+=4,(g===0||Q===g)&&B.numBytes!==0)throw"invalid mask";var C,o;if(g===0)C=new Uint8Array(Math.ceil(Q/8)),B.bitset=C,o=new Uint8Array(Q),A.pixels.resultMask=o,I+=B.numBytes;else if(B.numBytes>0){C=new Uint8Array(Math.ceil(Q/8)),D=new DataView(E,I,B.numBytes);var r=D.getInt16(0,!0),s=2,f=0,e=0;do{if(r>0)for(;r--;)C[f++]=D.getUint8(s++);else for(e=D.getUint8(s++),r=-r;r--;)C[f++]=e;r=D.getInt16(s,!0),s+=2}while(s<B.numBytes);if(r!==-32768||f<C.length)throw"Unexpected end of mask RLE encoding";o=new Uint8Array(Q);var i=0,t=0;for(t=0;t<Q;t++)t&7?(i=C[t>>3],i<<=t&7):i=C[t>>3],i&128&&(o[t]=1);A.pixels.resultMask=o,B.bitset=C,I+=B.numBytes}return A.ptr=I,A.mask=B,!0},readDataOneSweep:function(E,A,I,a){var Q=A.ptr,g=A.headerInfo,D=g.numDims,B=g.width*g.height,C=g.imageType,o=g.numValidPixel*L.getDataTypeSize(C)*D,r,s=A.pixels.resultMask;if(I===Uint8Array)r=new Uint8Array(E,Q,o);else{var f=new ArrayBuffer(o),e=new Uint8Array(f);e.set(new Uint8Array(E,Q,o)),r=new I(f)}if(r.length===B*D)a?A.pixels.resultPixels=L.swapDimensionOrder(r,B,D,I,!0):A.pixels.resultPixels=r;else{A.pixels.resultPixels=new I(B*D);var i=0,t=0,F=0,S=0;if(D>1){if(a){for(t=0;t<B;t++)if(s[t])for(S=t,F=0;F<D;F++,S+=B)A.pixels.resultPixels[S]=r[i++]}else for(t=0;t<B;t++)if(s[t])for(S=t*D,F=0;F<D;F++)A.pixels.resultPixels[S+F]=r[i++]}else for(t=0;t<B;t++)s[t]&&(A.pixels.resultPixels[t]=r[i++])}return Q+=o,A.ptr=Q,!0},readHuffmanTree:function(E,A){var I=this.HUFFMAN_LUT_BITS_MAX,a=new DataView(E,A.ptr,16);A.ptr+=16;var Q=a.getInt32(0,!0);if(Q<2)throw"unsupported Huffman version";var g=a.getInt32(4,!0),D=a.getInt32(8,!0),B=a.getInt32(12,!0);if(D>=B)return!1;var C=new Uint32Array(B-D);L.decodeBits(E,A,C);var o=[],r,s,f,e;for(r=D;r<B;r++)s=r-(r<g?0:g),o[s]={first:C[r-D],second:null};var i=E.byteLength-A.ptr,t=Math.ceil(i/4),F=new ArrayBuffer(t*4),S=new Uint8Array(F);S.set(new Uint8Array(E,A.ptr,i));var h=new Uint32Array(F),U=0,G,R=0;for(G=h[0],r=D;r<B;r++)s=r-(r<g?0:g),e=o[s].first,e>0&&(o[s].second=G<<U>>>32-e,32-U>=e?(U+=e,U===32&&(U=0,R++,G=h[R])):(U+=e-32,R++,G=h[R],o[s].second|=G>>>32-U));var w=0,n=0,l=new m;for(r=0;r<o.length;r++)o[r]!==void 0&&(w=Math.max(w,o[r].first));w>=I?n=I:n=w;var y=[],k,M,c,N,q,d;for(r=D;r<B;r++)if(s=r-(r<g?0:g),e=o[s].first,e>0)if(k=[e,s],e<=n)for(M=o[s].second<<n-e,c=1<<n-e,f=0;f<c;f++)y[M|f]=k;else for(M=o[s].second,d=l,N=e-1;N>=0;N--)q=M>>>N&1,q?(d.right||(d.right=new m),d=d.right):(d.left||(d.left=new m),d=d.left),N===0&&!d.val&&(d.val=k[1]);return{decodeLut:y,numBitsLUTQick:n,numBitsLUT:w,tree:l,stuffedData:h,srcPtr:R,bitPos:U}},readHuffman:function(E,A,I,a){var Q=A.headerInfo,g=Q.numDims,D=A.headerInfo.height,B=A.headerInfo.width,C=B*D,o=this.readHuffmanTree(E,A),r=o.decodeLut,s=o.tree,f=o.stuffedData,e=o.srcPtr,i=o.bitPos,t=o.numBitsLUTQick,F=o.numBitsLUT,S=A.headerInfo.imageType===0?128:0,h,U,G,R=A.pixels.resultMask,w,n,l,y,k,M,c,N=0;i>0&&(e++,i=0);var q=f[e],d=A.encodeMode===1,W=new I(C*g),v=W,Y;if(g<2||d){for(Y=0;Y<g;Y++)if(g>1&&(v=new I(W.buffer,C*Y,C),N=0),A.headerInfo.numValidPixel===B*D)for(M=0,y=0;y<D;y++)for(k=0;k<B;k++,M++){if(U=0,w=q<<i>>>32-t,n=w,32-i<t&&(w|=f[e+1]>>>64-i-t,n=w),r[n])U=r[n][1],i+=r[n][0];else for(w=q<<i>>>32-F,n=w,32-i<F&&(w|=f[e+1]>>>64-i-F,n=w),h=s,c=0;c<F;c++)if(l=w>>>F-c-1&1,h=l?h.right:h.left,!(h.left||h.right)){U=h.val,i=i+c+1;break}i>=32&&(i-=32,e++,q=f[e]),G=U-S,d?(k>0?G+=N:y>0?G+=v[M-B]:G+=N,G&=255,v[M]=G,N=G):v[M]=G}else for(M=0,y=0;y<D;y++)for(k=0;k<B;k++,M++)if(R[M]){if(U=0,w=q<<i>>>32-t,n=w,32-i<t&&(w|=f[e+1]>>>64-i-t,n=w),r[n])U=r[n][1],i+=r[n][0];else for(w=q<<i>>>32-F,n=w,32-i<F&&(w|=f[e+1]>>>64-i-F,n=w),h=s,c=0;c<F;c++)if(l=w>>>F-c-1&1,h=l?h.right:h.left,!(h.left||h.right)){U=h.val,i=i+c+1;break}i>=32&&(i-=32,e++,q=f[e]),G=U-S,d?(k>0&&R[M-1]?G+=N:y>0&&R[M-B]?G+=v[M-B]:G+=N,G&=255,v[M]=G,N=G):v[M]=G}}else for(M=0,y=0;y<D;y++)for(k=0;k<B;k++)if(M=y*B+k,!R||R[M])for(Y=0;Y<g;Y++,M+=C){if(U=0,w=q<<i>>>32-t,n=w,32-i<t&&(w|=f[e+1]>>>64-i-t,n=w),r[n])U=r[n][1],i+=r[n][0];else for(w=q<<i>>>32-F,n=w,32-i<F&&(w|=f[e+1]>>>64-i-F,n=w),h=s,c=0;c<F;c++)if(l=w>>>F-c-1&1,h=l?h.right:h.left,!(h.left||h.right)){U=h.val,i=i+c+1;break}i>=32&&(i-=32,e++,q=f[e]),G=U-S,v[M]=G}A.ptr=A.ptr+(e+1)*4+(i>0?4:0),A.pixels.resultPixels=W,g>1&&!a&&(A.pixels.resultPixels=L.swapDimensionOrder(W,C,g,I))},decodeBits:function(E,A,I,a,Q){{var g=A.headerInfo,D=g.fileVersion,B=0,C=E.byteLength-A.ptr>=5?5:E.byteLength-A.ptr,o=new DataView(E,A.ptr,C),r=o.getUint8(0);B++;var s=r>>6,f=s===0?4:3-s,e=(r&32)>0,i=r&31,t=0;if(f===1)t=o.getUint8(B),B++;else if(f===2)t=o.getUint16(B,!0),B+=2;else if(f===4)t=o.getUint32(B,!0),B+=4;else throw"Invalid valid pixel count type";var F=2*g.maxZError,S,h,U,G,R,w,n,l,y,k=g.numDims>1?g.maxValues[Q]:g.zMax;if(e){for(A.counter.lut++,l=o.getUint8(B),B++,G=Math.ceil((l-1)*i/8),R=Math.ceil(G/4),h=new ArrayBuffer(R*4),U=new Uint8Array(h),A.ptr+=B,U.set(new Uint8Array(E,A.ptr,G)),n=new Uint32Array(h),A.ptr+=G,y=0;l-1>>>y;)y++;G=Math.ceil(t*y/8),R=Math.ceil(G/4),h=new ArrayBuffer(R*4),U=new Uint8Array(h),U.set(new Uint8Array(E,A.ptr,G)),S=new Uint32Array(h),A.ptr+=G,D>=3?w=u.unstuffLUT2(n,i,l-1,a,F,k):w=u.unstuffLUT(n,i,l-1,a,F,k),D>=3?u.unstuff2(S,I,y,t,w):u.unstuff(S,I,y,t,w)}else A.counter.bitstuffer++,y=i,A.ptr+=B,y>0&&(G=Math.ceil(t*y/8),R=Math.ceil(G/4),h=new ArrayBuffer(R*4),U=new Uint8Array(h),U.set(new Uint8Array(E,A.ptr,G)),S=new Uint32Array(h),A.ptr+=G,D>=3?a==null?u.originalUnstuff2(S,I,y,t):u.unstuff2(S,I,y,t,!1,a,F,k):a==null?u.originalUnstuff(S,I,y,t):u.unstuff(S,I,y,t,!1,a,F,k))}},readTiles:function(E,A,I,a){var Q=A.headerInfo,g=Q.width,D=Q.height,B=g*D,C=Q.microBlockSize,o=Q.imageType,r=L.getDataTypeSize(o),s=Math.ceil(g/C),f=Math.ceil(D/C);A.pixels.numBlocksY=f,A.pixels.numBlocksX=s,A.pixels.ptr=0;var e=0,i=0,t=0,F=0,S=0,h=0,U=0,G=0,R=0,w=0,n=0,l=0,y=0,k=0,M=0,c=0,N,q,d,W,v,Y,P=new I(C*C),aA=D%C||C,rA=g%C||C,IA,j,AA=Q.numDims,b,K=A.pixels.resultMask,H=A.pixels.resultPixels,oA=Q.fileVersion,EA=oA>=5?14:15,p,gA=Q.zMax,V;for(t=0;t<f;t++)for(S=t!==f-1?C:aA,F=0;F<s;F++)for(h=F!==s-1?C:rA,n=t*g*C+F*C,l=g-h,b=0;b<AA;b++){if(AA>1?(V=H,n=t*g*C+F*C,H=new I(A.pixels.resultPixels.buffer,B*b*r,B),gA=Q.maxValues[b]):V=null,U=E.byteLength-A.ptr,N=new DataView(E,A.ptr,Math.min(10,U)),q={},c=0,G=N.getUint8(0),c++,p=Q.fileVersion>=5?G&4:0,R=G>>6&255,w=G>>2&EA,w!==(F*C>>3&EA)||p&&b===0)throw"integrity issue";if(Y=G&3,Y>3)throw A.ptr+=c,"Invalid block encoding ("+Y+")";if(Y===2){if(p)if(K)for(e=0;e<S;e++)for(i=0;i<h;i++)K[n]&&(H[n]=V[n]),n++;else for(e=0;e<S;e++)for(i=0;i<h;i++)H[n]=V[n],n++;A.counter.constant++,A.ptr+=c;continue}else if(Y===0){if(p)throw"integrity issue";if(A.counter.uncompressed++,A.ptr+=c,y=S*h*r,k=E.byteLength-A.ptr,y=y<k?y:k,d=new ArrayBuffer(y%r===0?y:y+r-y%r),W=new Uint8Array(d),W.set(new Uint8Array(E,A.ptr,y)),v=new I(d),M=0,K)for(e=0;e<S;e++){for(i=0;i<h;i++)K[n]&&(H[n]=v[M++]),n++;n+=l}else for(e=0;e<S;e++){for(i=0;i<h;i++)H[n++]=v[M++];n+=l}A.ptr+=M*r}else if(IA=L.getDataTypeUsed(p&&o<6?4:o,R),j=L.getOnePixel(q,c,IA,N),c+=L.getDataTypeSize(IA),Y===3)if(A.ptr+=c,A.counter.constantoffset++,K)for(e=0;e<S;e++){for(i=0;i<h;i++)K[n]&&(H[n]=p?Math.min(gA,V[n]+j):j),n++;n+=l}else for(e=0;e<S;e++){for(i=0;i<h;i++)H[n]=p?Math.min(gA,V[n]+j):j,n++;n+=l}else if(A.ptr+=c,L.decodeBits(E,A,P,j,b),c=0,p)if(K)for(e=0;e<S;e++){for(i=0;i<h;i++)K[n]&&(H[n]=P[c++]+V[n]),n++;n+=l}else for(e=0;e<S;e++){for(i=0;i<h;i++)H[n]=P[c++]+V[n],n++;n+=l}else if(K)for(e=0;e<S;e++){for(i=0;i<h;i++)K[n]&&(H[n]=P[c++]),n++;n+=l}else for(e=0;e<S;e++){for(i=0;i<h;i++)H[n++]=P[c++];n+=l}}AA>1&&!a&&(A.pixels.resultPixels=L.swapDimensionOrder(A.pixels.resultPixels,B,AA,I))},formatFileInfo:function(E){return{fileIdentifierString:E.headerInfo.fileIdentifierString,fileVersion:E.headerInfo.fileVersion,imageType:E.headerInfo.imageType,height:E.headerInfo.height,width:E.headerInfo.width,numValidPixel:E.headerInfo.numValidPixel,microBlockSize:E.headerInfo.microBlockSize,blobSize:E.headerInfo.blobSize,maxZError:E.headerInfo.maxZError,pixelType:L.getPixelType(E.headerInfo.imageType),eofOffset:E.eofOffset,mask:E.mask?{numBytes:E.mask.numBytes}:null,pixels:{numBlocksX:E.pixels.numBlocksX,numBlocksY:E.pixels.numBlocksY,maxValue:E.headerInfo.zMax,minValue:E.headerInfo.zMin,noDataValue:E.noDataValue}}},constructConstantSurface:function(E,A){var I=E.headerInfo.zMax,a=E.headerInfo.zMin,Q=E.headerInfo.maxValues,g=E.headerInfo.numDims,D=E.headerInfo.height*E.headerInfo.width,B=0,C=0,o=0,r=E.pixels.resultMask,s=E.pixels.resultPixels;if(r)if(g>1){if(A)for(B=0;B<g;B++)for(o=B*D,I=Q[B],C=0;C<D;C++)r[C]&&(s[o+C]=I);else for(C=0;C<D;C++)if(r[C])for(o=C*g,B=0;B<g;B++)s[o+g]=Q[B]}else for(C=0;C<D;C++)r[C]&&(s[C]=I);else if(g>1&&a!==I)if(A)for(B=0;B<g;B++)for(o=B*D,I=Q[B],C=0;C<D;C++)s[o+C]=I;else for(C=0;C<D;C++)for(o=C*g,B=0;B<g;B++)s[o+B]=Q[B];else for(C=0;C<D*g;C++)s[C]=I},getDataTypeArray:function(E){var A;switch(E){case 0:A=Int8Array;break;case 1:A=Uint8Array;break;case 2:A=Int16Array;break;case 3:A=Uint16Array;break;case 4:A=Int32Array;break;case 5:A=Uint32Array;break;case 6:A=Float32Array;break;case 7:A=Float64Array;break;default:A=Float32Array}return A},getPixelType:function(E){var A;switch(E){case 0:A="S8";break;case 1:A="U8";break;case 2:A="S16";break;case 3:A="U16";break;case 4:A="S32";break;case 5:A="U32";break;case 6:A="F32";break;case 7:A="F64";break;default:A="F32"}return A},isValidPixelValue:function(E,A){if(A==null)return!1;var I;switch(E){case 0:I=A>=-128&&A<=127;break;case 1:I=A>=0&&A<=255;break;case 2:I=A>=-32768&&A<=32767;break;case 3:I=A>=0&&A<=65536;break;case 4:I=A>=-2147483648&&A<=2147483647;break;case 5:I=A>=0&&A<=4294967296;break;case 6:I=A>=-34027999387901484e22&&A<=34027999387901484e22;break;case 7:I=A>=-17976931348623157e292&&A<=17976931348623157e292;break;default:I=!1}return I},getDataTypeSize:function(E){var A=0;switch(E){case 0:case 1:A=1;break;case 2:case 3:A=2;break;case 4:case 5:case 6:A=4;break;case 7:A=8;break;default:A=E}return A},getDataTypeUsed:function(E,A){var I=E;switch(E){case 2:case 4:I=E-A;break;case 3:case 5:I=E-2*A;break;case 6:A===0?I=E:A===1?I=2:I=1;break;case 7:A===0?I=E:I=E-2*A+1;break;default:I=E;break}return I},getOnePixel:function(E,A,I,a){var Q=0;switch(I){case 0:Q=a.getInt8(A);break;case 1:Q=a.getUint8(A);break;case 2:Q=a.getInt16(A,!0);break;case 3:Q=a.getUint16(A,!0);break;case 4:Q=a.getInt32(A,!0);break;case 5:Q=a.getUInt32(A,!0);break;case 6:Q=a.getFloat32(A,!0);break;case 7:Q=a.getFloat64(A,!0);break;default:throw"the decoder does not understand this pixel type"}return Q},swapDimensionOrder:function(E,A,I,a,Q){var g=0,D=0,B=0,C=0,o=E;if(I>1)if(o=new a(A*I),Q)for(g=0;g<A;g++)for(C=g,B=0;B<I;B++,C+=A)o[C]=E[D++];else for(g=0;g<A;g++)for(C=g,B=0;B<I;B++,C+=A)o[D++]=E[C];return o}},m=function(E,A,I){this.val=E,this.left=A,this.right=I},z={decode:function(E,A){A=A||{};var I=A.noDataValue,a=0,Q={};if(Q.ptr=A.inputOffset||0,Q.pixels={},!!L.readHeaderInfo(E,Q)){var g=Q.headerInfo,D=g.fileVersion,B=L.getDataTypeArray(g.imageType);if(D>5)throw"unsupported lerc version 2."+D;L.readMask(E,Q),g.numValidPixel!==g.width*g.height&&!Q.pixels.resultMask&&(Q.pixels.resultMask=A.maskData);var C=g.width*g.height;Q.pixels.resultPixels=new B(C*g.numDims),Q.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var o=!A.returnPixelInterleavedDims;if(g.numValidPixel!==0)if(g.zMax===g.zMin)L.constructConstantSurface(Q,o);else if(D>=4&&L.checkMinMaxRanges(E,Q))L.constructConstantSurface(Q,o);else{var r=new DataView(E,Q.ptr,2),s=r.getUint8(0);if(Q.ptr++,s)L.readDataOneSweep(E,Q,B,o);else if(D>1&&g.imageType<=1&&Math.abs(g.maxZError-.5)<1e-5){var f=r.getUint8(1);if(Q.ptr++,Q.encodeMode=f,f>2||D<4&&f>1)throw"Invalid Huffman flag "+f;f?L.readHuffman(E,Q,B,o):L.readTiles(E,Q,B,o)}else L.readTiles(E,Q,B,o)}Q.eofOffset=Q.ptr;var e;A.inputOffset?(e=Q.headerInfo.blobSize+A.inputOffset-Q.ptr,Math.abs(e)>=1&&(Q.eofOffset=A.inputOffset+Q.headerInfo.blobSize)):(e=Q.headerInfo.blobSize-Q.ptr,Math.abs(e)>=1&&(Q.eofOffset=Q.headerInfo.blobSize));var i={width:g.width,height:g.height,pixelData:Q.pixels.resultPixels,minValue:g.zMin,maxValue:g.zMax,validPixelCount:g.numValidPixel,dimCount:g.numDims,dimStats:{minValues:g.minValues,maxValues:g.maxValues},maskData:Q.pixels.resultMask};if(Q.pixels.resultMask&&L.isValidPixelValue(g.imageType,I)){var t=Q.pixels.resultMask;for(a=0;a<C;a++)t[a]||(i.pixelData[a]=I);i.noDataValue=I}return Q.noDataValue=I,A.returnFileInfo&&(i.fileInfo=L.formatFileInfo(Q)),i}},getBandCount:function(E){var A=0,I=0,a={};for(a.ptr=0,a.pixels={};I<E.byteLength-58;)L.readHeaderInfo(E,a),I+=a.headerInfo.blobSize,A++,a.ptr=I;return A}};return z}(),Z=function(){var u=new ArrayBuffer(4),L=new Uint8Array(u),m=new Uint32Array(u);return m[0]=1,L[0]===1}(),O={decode:function(u,L){if(!Z)throw"Big endian system is not supported.";L=L||{};var m=L.inputOffset||0,z=new Uint8Array(u,m,10),E=String.fromCharCode.apply(null,z),A,I;if(E.trim()==="CntZImage")A=J,I=1;else if(E.substring(0,5)==="Lerc2")A=X,I=2;else throw"Unexpected file identifier string: "+E;for(var a=0,Q=u.byteLength-10,g,D=[],B,C,o={width:0,height:0,pixels:[],pixelType:L.pixelType,mask:null,statistics:[]},r=0;m<Q;){var s=A.decode(u,{inputOffset:m,encodedMaskData:g,maskData:C,returnMask:a===0,returnEncodedMask:a===0,returnFileInfo:!0,returnPixelInterleavedDims:L.returnPixelInterleavedDims,pixelType:L.pixelType||null,noDataValue:L.noDataValue||null});m=s.fileInfo.eofOffset,C=s.maskData,a===0&&(g=s.encodedMaskData,o.width=s.width,o.height=s.height,o.dimCount=s.dimCount||1,o.pixelType=s.pixelType||s.fileInfo.pixelType,o.mask=C),I>1&&(C&&D.push(C),s.fileInfo.mask&&s.fileInfo.mask.numBytes>0&&r++),a++,o.pixels.push(s.pixelData),o.statistics.push({minValue:s.minValue,maxValue:s.maxValue,noDataValue:s.noDataValue,dimStats:s.dimStats})}var f,e,i;if(I>1&&r>1){for(i=o.width*o.height,o.bandMasks=D,C=new Uint8Array(i),C.set(D[0]),f=1;f<D.length;f++)for(B=D[f],e=0;e<i;e++)C[e]=C[e]&B[e];o.maskData=C}return o}};T.exports?T.exports=O:this.Lerc=O})()})(DA);let $,x,CA;const BA={env:{emscripten_notify_memory_growth:function(T){CA=new Uint8Array(x.exports.memory.buffer)}}};class nA{init(){return $||(typeof fetch<"u"?$=fetch("data:application/wasm;base64,"+iA).then(J=>J.arrayBuffer()).then(J=>WebAssembly.instantiate(J,BA)).then(this._init):$=WebAssembly.instantiate(Buffer.from(iA,"base64"),BA).then(this._init),$)}_init(J){x=J.instance,BA.env.emscripten_notify_memory_growth(0)}decode(J,X=0){if(!x)throw new Error("ZSTDDecoder: Await .init() before decoding.");const Z=J.byteLength,O=x.exports.malloc(Z);CA.set(J,O),X=X||Number(x.exports.ZSTD_findDecompressedSize(O,Z));const u=x.exports.malloc(X),L=x.exports.ZSTD_decompress(u,X,O,Z),m=CA.slice(u,u+L);return x.exports.free(O),x.exports.free(u),m}}const iA="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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",eA=new nA;class fA extends sA.BaseDecoder{constructor(J){super(),this.planarConfiguration=typeof J.PlanarConfiguration<"u"?J.PlanarConfiguration:1,this.samplesPerPixel=typeof J.SamplesPerPixel<"u"?J.SamplesPerPixel:1,this.addCompression=J.LercParameters[_.LercParameters.AddCompression]}decodeBlock(J){switch(this.addCompression){case _.LercAddCompression.None:break;case _.LercAddCompression.Deflate:J=_.inflate_1(new Uint8Array(J)).buffer;break;case _.LercAddCompression.Zstandard:J=eA.decode(new Uint8Array(J)).buffer;break;default:throw new Error(`Unsupported LERC additional compression method identifier: ${this.addCompression}`)}return QA.decode(J,{returnPixelInterleavedDims:this.planarConfiguration===1}).pixels[0].buffer}}exports.default=fA;exports.zstd=eA;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("./index-fc4834e6.js"),sA=require("./basedecoder-0503cc54.js");require("react");require("react-dom");var QA={},DA={get exports(){return QA},set exports(T){QA=T}};(function(T){/* Copyright 2015-2021 Esri. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve */(function(){var J=function(){var u={};u.defaultNoDataValue=-34027999387901484e22,u.decode=function(I,a){a=a||{};var Q=a.encodedMaskData||a.encodedMaskData===null,g=E(I,a.inputOffset||0,Q),D=a.noDataValue!==null?a.noDataValue:u.defaultNoDataValue,B=L(g,a.pixelType||Float32Array,a.encodedMaskData,D,a.returnMask),C={width:g.width,height:g.height,pixelData:B.resultPixels,minValue:B.minValue,maxValue:g.pixels.maxValue,noDataValue:D};return B.resultMask&&(C.maskData=B.resultMask),a.returnEncodedMask&&g.mask&&(C.encodedMaskData=g.mask.bitset?g.mask.bitset:null),a.returnFileInfo&&(C.fileInfo=m(g),a.computeUsedBitDepths&&(C.fileInfo.bitDepths=z(g))),C};var L=function(I,a,Q,g,D){var B=0,C=I.pixels.numBlocksX,o=I.pixels.numBlocksY,r=Math.floor(I.width/C),s=Math.floor(I.height/o),f=2*I.maxZError,e=Number.MAX_VALUE,i;Q=Q||(I.mask?I.mask.bitset:null);var t,F;t=new a(I.width*I.height),D&&Q&&(F=new Uint8Array(I.width*I.height));for(var S=new Float32Array(r*s),h,U,G=0;G<=o;G++){var R=G!==o?s:I.height%o;if(R!==0)for(var w=0;w<=C;w++){var n=w!==C?r:I.width%C;if(n!==0){var l=G*I.width*s+w*r,y=I.width-n,k=I.pixels.blocks[B],M,c,N;k.encoding<2?(k.encoding===0?M=k.rawData:(A(k.stuffedData,k.bitsPerPixel,k.numValidPixels,k.offset,f,S,I.pixels.maxValue),M=S),c=0):k.encoding===2?N=0:N=k.offset;var q;if(Q)for(U=0;U<R;U++){for(l&7&&(q=Q[l>>3],q<<=l&7),h=0;h<n;h++)l&7||(q=Q[l>>3]),q&128?(F&&(F[l]=1),i=k.encoding<2?M[c++]:N,e=e>i?i:e,t[l++]=i):(F&&(F[l]=0),t[l++]=g),q<<=1;l+=y}else if(k.encoding<2)for(U=0;U<R;U++){for(h=0;h<n;h++)i=M[c++],e=e>i?i:e,t[l++]=i;l+=y}else for(e=e>N?N:e,U=0;U<R;U++){for(h=0;h<n;h++)t[l++]=N;l+=y}if(k.encoding===1&&c!==k.numValidPixels)throw"Block and Mask do not match";B++}}}return{resultPixels:t,resultMask:F,minValue:e}},m=function(I){return{fileIdentifierString:I.fileIdentifierString,fileVersion:I.fileVersion,imageType:I.imageType,height:I.height,width:I.width,maxZError:I.maxZError,eofOffset:I.eofOffset,mask:I.mask?{numBlocksX:I.mask.numBlocksX,numBlocksY:I.mask.numBlocksY,numBytes:I.mask.numBytes,maxValue:I.mask.maxValue}:null,pixels:{numBlocksX:I.pixels.numBlocksX,numBlocksY:I.pixels.numBlocksY,numBytes:I.pixels.numBytes,maxValue:I.pixels.maxValue,noDataValue:I.noDataValue}}},z=function(I){for(var a=I.pixels.numBlocksX*I.pixels.numBlocksY,Q={},g=0;g<a;g++){var D=I.pixels.blocks[g];D.encoding===0?Q.float32=!0:D.encoding===1?Q[D.bitsPerPixel]=!0:Q[0]=!0}return Object.keys(Q)},E=function(I,a,Q){var g={},D=new Uint8Array(I,a,10);if(g.fileIdentifierString=String.fromCharCode.apply(null,D),g.fileIdentifierString.trim()!=="CntZImage")throw"Unexpected file identifier string: "+g.fileIdentifierString;a+=10;var B=new DataView(I,a,24);if(g.fileVersion=B.getInt32(0,!0),g.imageType=B.getInt32(4,!0),g.height=B.getUint32(8,!0),g.width=B.getUint32(12,!0),g.maxZError=B.getFloat64(16,!0),a+=24,!Q)if(B=new DataView(I,a,16),g.mask={},g.mask.numBlocksY=B.getUint32(0,!0),g.mask.numBlocksX=B.getUint32(4,!0),g.mask.numBytes=B.getUint32(8,!0),g.mask.maxValue=B.getFloat32(12,!0),a+=16,g.mask.numBytes>0){var C=new Uint8Array(Math.ceil(g.width*g.height/8));B=new DataView(I,a,g.mask.numBytes);var o=B.getInt16(0,!0),r=2,s=0;do{if(o>0)for(;o--;)C[s++]=B.getUint8(r++);else{var f=B.getUint8(r++);for(o=-o;o--;)C[s++]=f}o=B.getInt16(r,!0),r+=2}while(r<g.mask.numBytes);if(o!==-32768||s<C.length)throw"Unexpected end of mask RLE encoding";g.mask.bitset=C,a+=g.mask.numBytes}else g.mask.numBytes|g.mask.numBlocksY|g.mask.maxValue||(g.mask.bitset=new Uint8Array(Math.ceil(g.width*g.height/8)));B=new DataView(I,a,16),g.pixels={},g.pixels.numBlocksY=B.getUint32(0,!0),g.pixels.numBlocksX=B.getUint32(4,!0),g.pixels.numBytes=B.getUint32(8,!0),g.pixels.maxValue=B.getFloat32(12,!0),a+=16;var e=g.pixels.numBlocksX,i=g.pixels.numBlocksY,t=e+(g.width%e>0?1:0),F=i+(g.height%i>0?1:0);g.pixels.blocks=new Array(t*F);for(var S=0,h=0;h<F;h++)for(var U=0;U<t;U++){var G=0,R=I.byteLength-a;B=new DataView(I,a,Math.min(10,R));var w={};g.pixels.blocks[S++]=w;var n=B.getUint8(0);if(G++,w.encoding=n&63,w.encoding>3)throw"Invalid block encoding ("+w.encoding+")";if(w.encoding===2){a++;continue}if(n!==0&&n!==2){if(n>>=6,w.offsetType=n,n===2)w.offset=B.getInt8(1),G++;else if(n===1)w.offset=B.getInt16(1,!0),G+=2;else if(n===0)w.offset=B.getFloat32(1,!0),G+=4;else throw"Invalid block offset type";if(w.encoding===1)if(n=B.getUint8(G),G++,w.bitsPerPixel=n&63,n>>=6,w.numValidPixelsType=n,n===2)w.numValidPixels=B.getUint8(G),G++;else if(n===1)w.numValidPixels=B.getUint16(G,!0),G+=2;else if(n===0)w.numValidPixels=B.getUint32(G,!0),G+=4;else throw"Invalid valid pixel count type"}if(a+=G,w.encoding!==3){var l,y;if(w.encoding===0){var k=(g.pixels.numBytes-1)/4;if(k!==Math.floor(k))throw"uncompressed block has invalid length";l=new ArrayBuffer(k*4),y=new Uint8Array(l),y.set(new Uint8Array(I,a,k*4));var M=new Float32Array(l);w.rawData=M,a+=k*4}else if(w.encoding===1){var c=Math.ceil(w.numValidPixels*w.bitsPerPixel/8),N=Math.ceil(c/4);l=new ArrayBuffer(N*4),y=new Uint8Array(l),y.set(new Uint8Array(I,a,c)),w.stuffedData=new Uint32Array(l),a+=c}}}return g.eofOffset=a,g},A=function(I,a,Q,g,D,B,C){var o=(1<<a)-1,r=0,s,f=0,e,i,t=Math.ceil((C-g)/D),F=I.length*4-Math.ceil(a*Q/8);for(I[I.length-1]<<=8*F,s=0;s<Q;s++){if(f===0&&(i=I[r++],f=32),f>=a)e=i>>>f-a&o,f-=a;else{var S=a-f;e=(i&o)<<S&o,i=I[r++],f=32-S,e+=i>>>f}B[s]=e<t?g+e*D:C}return B};return u}(),X=function(){var u={unstuff:function(E,A,I,a,Q,g,D,B){var C=(1<<I)-1,o=0,r,s=0,f,e,i,t,F=E.length*4-Math.ceil(I*a/8);if(E[E.length-1]<<=8*F,Q)for(r=0;r<a;r++)s===0&&(e=E[o++],s=32),s>=I?(f=e>>>s-I&C,s-=I):(i=I-s,f=(e&C)<<i&C,e=E[o++],s=32-i,f+=e>>>s),A[r]=Q[f];else for(t=Math.ceil((B-g)/D),r=0;r<a;r++)s===0&&(e=E[o++],s=32),s>=I?(f=e>>>s-I&C,s-=I):(i=I-s,f=(e&C)<<i&C,e=E[o++],s=32-i,f+=e>>>s),A[r]=f<t?g+f*D:B},unstuffLUT:function(E,A,I,a,Q,g){var D=(1<<A)-1,B=0,C=0,o=0,r=0,s=0,f,e=[],i=E.length*4-Math.ceil(A*I/8);E[E.length-1]<<=8*i;var t=Math.ceil((g-a)/Q);for(C=0;C<I;C++)r===0&&(f=E[B++],r=32),r>=A?(s=f>>>r-A&D,r-=A):(o=A-r,s=(f&D)<<o&D,f=E[B++],r=32-o,s+=f>>>r),e[C]=s<t?a+s*Q:g;return e.unshift(a),e},unstuff2:function(E,A,I,a,Q,g,D,B){var C=(1<<I)-1,o=0,r,s=0,f=0,e,i,t;if(Q)for(r=0;r<a;r++)s===0&&(i=E[o++],s=32,f=0),s>=I?(e=i>>>f&C,s-=I,f+=I):(t=I-s,e=i>>>f&C,i=E[o++],s=32-t,e|=(i&(1<<t)-1)<<I-t,f=t),A[r]=Q[e];else{var F=Math.ceil((B-g)/D);for(r=0;r<a;r++)s===0&&(i=E[o++],s=32,f=0),s>=I?(e=i>>>f&C,s-=I,f+=I):(t=I-s,e=i>>>f&C,i=E[o++],s=32-t,e|=(i&(1<<t)-1)<<I-t,f=t),A[r]=e<F?g+e*D:B}return A},unstuffLUT2:function(E,A,I,a,Q,g){var D=(1<<A)-1,B=0,C=0,o=0,r=0,s=0,f=0,e,i=[],t=Math.ceil((g-a)/Q);for(C=0;C<I;C++)r===0&&(e=E[B++],r=32,f=0),r>=A?(s=e>>>f&D,r-=A,f+=A):(o=A-r,s=e>>>f&D,e=E[B++],r=32-o,s|=(e&(1<<o)-1)<<A-o,f=o),i[C]=s<t?a+s*Q:g;return i.unshift(a),i},originalUnstuff:function(E,A,I,a){var Q=(1<<I)-1,g=0,D,B=0,C,o,r,s=E.length*4-Math.ceil(I*a/8);for(E[E.length-1]<<=8*s,D=0;D<a;D++)B===0&&(o=E[g++],B=32),B>=I?(C=o>>>B-I&Q,B-=I):(r=I-B,C=(o&Q)<<r&Q,o=E[g++],B=32-r,C+=o>>>B),A[D]=C;return A},originalUnstuff2:function(E,A,I,a){var Q=(1<<I)-1,g=0,D,B=0,C=0,o,r,s;for(D=0;D<a;D++)B===0&&(r=E[g++],B=32,C=0),B>=I?(o=r>>>C&Q,B-=I,C+=I):(s=I-B,o=r>>>C&Q,r=E[g++],B=32-s,o|=(r&(1<<s)-1)<<I-s,C=s),A[D]=o;return A}},L={HUFFMAN_LUT_BITS_MAX:12,computeChecksumFletcher32:function(E){for(var A=65535,I=65535,a=E.length,Q=Math.floor(a/2),g=0;Q;){var D=Q>=359?359:Q;Q-=D;do A+=E[g++]<<8,I+=A+=E[g++];while(--D);A=(A&65535)+(A>>>16),I=(I&65535)+(I>>>16)}return a&1&&(I+=A+=E[g]<<8),A=(A&65535)+(A>>>16),I=(I&65535)+(I>>>16),(I<<16|A)>>>0},readHeaderInfo:function(E,A){var I=A.ptr,a=new Uint8Array(E,I,6),Q={};if(Q.fileIdentifierString=String.fromCharCode.apply(null,a),Q.fileIdentifierString.lastIndexOf("Lerc2",0)!==0)throw"Unexpected file identifier string (expect Lerc2 ): "+Q.fileIdentifierString;I+=6;var g=new DataView(E,I,8),D=g.getInt32(0,!0);Q.fileVersion=D,I+=4,D>=3&&(Q.checksum=g.getUint32(4,!0),I+=4),g=new DataView(E,I,12),Q.height=g.getUint32(0,!0),Q.width=g.getUint32(4,!0),I+=8,D>=4?(Q.numDims=g.getUint32(8,!0),I+=4):Q.numDims=1,g=new DataView(E,I,40),Q.numValidPixel=g.getUint32(0,!0),Q.microBlockSize=g.getInt32(4,!0),Q.blobSize=g.getInt32(8,!0),Q.imageType=g.getInt32(12,!0),Q.maxZError=g.getFloat64(16,!0),Q.zMin=g.getFloat64(24,!0),Q.zMax=g.getFloat64(32,!0),I+=40,A.headerInfo=Q,A.ptr=I;var B,C;if(D>=3&&(C=D>=4?52:48,B=this.computeChecksumFletcher32(new Uint8Array(E,I-C,Q.blobSize-14)),B!==Q.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(E,A){var I=A.headerInfo,a=this.getDataTypeArray(I.imageType),Q=I.numDims*this.getDataTypeSize(I.imageType),g=this.readSubArray(E,A.ptr,a,Q),D=this.readSubArray(E,A.ptr+Q,a,Q);A.ptr+=2*Q;var B,C=!0;for(B=0;B<I.numDims;B++)if(g[B]!==D[B]){C=!1;break}return I.minValues=g,I.maxValues=D,C},readSubArray:function(E,A,I,a){var Q;if(I===Uint8Array)Q=new Uint8Array(E,A,a);else{var g=new ArrayBuffer(a),D=new Uint8Array(g);D.set(new Uint8Array(E,A,a)),Q=new I(g)}return Q},readMask:function(E,A){var I=A.ptr,a=A.headerInfo,Q=a.width*a.height,g=a.numValidPixel,D=new DataView(E,I,4),B={};if(B.numBytes=D.getUint32(0,!0),I+=4,(g===0||Q===g)&&B.numBytes!==0)throw"invalid mask";var C,o;if(g===0)C=new Uint8Array(Math.ceil(Q/8)),B.bitset=C,o=new Uint8Array(Q),A.pixels.resultMask=o,I+=B.numBytes;else if(B.numBytes>0){C=new Uint8Array(Math.ceil(Q/8)),D=new DataView(E,I,B.numBytes);var r=D.getInt16(0,!0),s=2,f=0,e=0;do{if(r>0)for(;r--;)C[f++]=D.getUint8(s++);else for(e=D.getUint8(s++),r=-r;r--;)C[f++]=e;r=D.getInt16(s,!0),s+=2}while(s<B.numBytes);if(r!==-32768||f<C.length)throw"Unexpected end of mask RLE encoding";o=new Uint8Array(Q);var i=0,t=0;for(t=0;t<Q;t++)t&7?(i=C[t>>3],i<<=t&7):i=C[t>>3],i&128&&(o[t]=1);A.pixels.resultMask=o,B.bitset=C,I+=B.numBytes}return A.ptr=I,A.mask=B,!0},readDataOneSweep:function(E,A,I,a){var Q=A.ptr,g=A.headerInfo,D=g.numDims,B=g.width*g.height,C=g.imageType,o=g.numValidPixel*L.getDataTypeSize(C)*D,r,s=A.pixels.resultMask;if(I===Uint8Array)r=new Uint8Array(E,Q,o);else{var f=new ArrayBuffer(o),e=new Uint8Array(f);e.set(new Uint8Array(E,Q,o)),r=new I(f)}if(r.length===B*D)a?A.pixels.resultPixels=L.swapDimensionOrder(r,B,D,I,!0):A.pixels.resultPixels=r;else{A.pixels.resultPixels=new I(B*D);var i=0,t=0,F=0,S=0;if(D>1){if(a){for(t=0;t<B;t++)if(s[t])for(S=t,F=0;F<D;F++,S+=B)A.pixels.resultPixels[S]=r[i++]}else for(t=0;t<B;t++)if(s[t])for(S=t*D,F=0;F<D;F++)A.pixels.resultPixels[S+F]=r[i++]}else for(t=0;t<B;t++)s[t]&&(A.pixels.resultPixels[t]=r[i++])}return Q+=o,A.ptr=Q,!0},readHuffmanTree:function(E,A){var I=this.HUFFMAN_LUT_BITS_MAX,a=new DataView(E,A.ptr,16);A.ptr+=16;var Q=a.getInt32(0,!0);if(Q<2)throw"unsupported Huffman version";var g=a.getInt32(4,!0),D=a.getInt32(8,!0),B=a.getInt32(12,!0);if(D>=B)return!1;var C=new Uint32Array(B-D);L.decodeBits(E,A,C);var o=[],r,s,f,e;for(r=D;r<B;r++)s=r-(r<g?0:g),o[s]={first:C[r-D],second:null};var i=E.byteLength-A.ptr,t=Math.ceil(i/4),F=new ArrayBuffer(t*4),S=new Uint8Array(F);S.set(new Uint8Array(E,A.ptr,i));var h=new Uint32Array(F),U=0,G,R=0;for(G=h[0],r=D;r<B;r++)s=r-(r<g?0:g),e=o[s].first,e>0&&(o[s].second=G<<U>>>32-e,32-U>=e?(U+=e,U===32&&(U=0,R++,G=h[R])):(U+=e-32,R++,G=h[R],o[s].second|=G>>>32-U));var w=0,n=0,l=new m;for(r=0;r<o.length;r++)o[r]!==void 0&&(w=Math.max(w,o[r].first));w>=I?n=I:n=w;var y=[],k,M,c,N,q,d;for(r=D;r<B;r++)if(s=r-(r<g?0:g),e=o[s].first,e>0)if(k=[e,s],e<=n)for(M=o[s].second<<n-e,c=1<<n-e,f=0;f<c;f++)y[M|f]=k;else for(M=o[s].second,d=l,N=e-1;N>=0;N--)q=M>>>N&1,q?(d.right||(d.right=new m),d=d.right):(d.left||(d.left=new m),d=d.left),N===0&&!d.val&&(d.val=k[1]);return{decodeLut:y,numBitsLUTQick:n,numBitsLUT:w,tree:l,stuffedData:h,srcPtr:R,bitPos:U}},readHuffman:function(E,A,I,a){var Q=A.headerInfo,g=Q.numDims,D=A.headerInfo.height,B=A.headerInfo.width,C=B*D,o=this.readHuffmanTree(E,A),r=o.decodeLut,s=o.tree,f=o.stuffedData,e=o.srcPtr,i=o.bitPos,t=o.numBitsLUTQick,F=o.numBitsLUT,S=A.headerInfo.imageType===0?128:0,h,U,G,R=A.pixels.resultMask,w,n,l,y,k,M,c,N=0;i>0&&(e++,i=0);var q=f[e],d=A.encodeMode===1,W=new I(C*g),v=W,Y;if(g<2||d){for(Y=0;Y<g;Y++)if(g>1&&(v=new I(W.buffer,C*Y,C),N=0),A.headerInfo.numValidPixel===B*D)for(M=0,y=0;y<D;y++)for(k=0;k<B;k++,M++){if(U=0,w=q<<i>>>32-t,n=w,32-i<t&&(w|=f[e+1]>>>64-i-t,n=w),r[n])U=r[n][1],i+=r[n][0];else for(w=q<<i>>>32-F,n=w,32-i<F&&(w|=f[e+1]>>>64-i-F,n=w),h=s,c=0;c<F;c++)if(l=w>>>F-c-1&1,h=l?h.right:h.left,!(h.left||h.right)){U=h.val,i=i+c+1;break}i>=32&&(i-=32,e++,q=f[e]),G=U-S,d?(k>0?G+=N:y>0?G+=v[M-B]:G+=N,G&=255,v[M]=G,N=G):v[M]=G}else for(M=0,y=0;y<D;y++)for(k=0;k<B;k++,M++)if(R[M]){if(U=0,w=q<<i>>>32-t,n=w,32-i<t&&(w|=f[e+1]>>>64-i-t,n=w),r[n])U=r[n][1],i+=r[n][0];else for(w=q<<i>>>32-F,n=w,32-i<F&&(w|=f[e+1]>>>64-i-F,n=w),h=s,c=0;c<F;c++)if(l=w>>>F-c-1&1,h=l?h.right:h.left,!(h.left||h.right)){U=h.val,i=i+c+1;break}i>=32&&(i-=32,e++,q=f[e]),G=U-S,d?(k>0&&R[M-1]?G+=N:y>0&&R[M-B]?G+=v[M-B]:G+=N,G&=255,v[M]=G,N=G):v[M]=G}}else for(M=0,y=0;y<D;y++)for(k=0;k<B;k++)if(M=y*B+k,!R||R[M])for(Y=0;Y<g;Y++,M+=C){if(U=0,w=q<<i>>>32-t,n=w,32-i<t&&(w|=f[e+1]>>>64-i-t,n=w),r[n])U=r[n][1],i+=r[n][0];else for(w=q<<i>>>32-F,n=w,32-i<F&&(w|=f[e+1]>>>64-i-F,n=w),h=s,c=0;c<F;c++)if(l=w>>>F-c-1&1,h=l?h.right:h.left,!(h.left||h.right)){U=h.val,i=i+c+1;break}i>=32&&(i-=32,e++,q=f[e]),G=U-S,v[M]=G}A.ptr=A.ptr+(e+1)*4+(i>0?4:0),A.pixels.resultPixels=W,g>1&&!a&&(A.pixels.resultPixels=L.swapDimensionOrder(W,C,g,I))},decodeBits:function(E,A,I,a,Q){{var g=A.headerInfo,D=g.fileVersion,B=0,C=E.byteLength-A.ptr>=5?5:E.byteLength-A.ptr,o=new DataView(E,A.ptr,C),r=o.getUint8(0);B++;var s=r>>6,f=s===0?4:3-s,e=(r&32)>0,i=r&31,t=0;if(f===1)t=o.getUint8(B),B++;else if(f===2)t=o.getUint16(B,!0),B+=2;else if(f===4)t=o.getUint32(B,!0),B+=4;else throw"Invalid valid pixel count type";var F=2*g.maxZError,S,h,U,G,R,w,n,l,y,k=g.numDims>1?g.maxValues[Q]:g.zMax;if(e){for(A.counter.lut++,l=o.getUint8(B),B++,G=Math.ceil((l-1)*i/8),R=Math.ceil(G/4),h=new ArrayBuffer(R*4),U=new Uint8Array(h),A.ptr+=B,U.set(new Uint8Array(E,A.ptr,G)),n=new Uint32Array(h),A.ptr+=G,y=0;l-1>>>y;)y++;G=Math.ceil(t*y/8),R=Math.ceil(G/4),h=new ArrayBuffer(R*4),U=new Uint8Array(h),U.set(new Uint8Array(E,A.ptr,G)),S=new Uint32Array(h),A.ptr+=G,D>=3?w=u.unstuffLUT2(n,i,l-1,a,F,k):w=u.unstuffLUT(n,i,l-1,a,F,k),D>=3?u.unstuff2(S,I,y,t,w):u.unstuff(S,I,y,t,w)}else A.counter.bitstuffer++,y=i,A.ptr+=B,y>0&&(G=Math.ceil(t*y/8),R=Math.ceil(G/4),h=new ArrayBuffer(R*4),U=new Uint8Array(h),U.set(new Uint8Array(E,A.ptr,G)),S=new Uint32Array(h),A.ptr+=G,D>=3?a==null?u.originalUnstuff2(S,I,y,t):u.unstuff2(S,I,y,t,!1,a,F,k):a==null?u.originalUnstuff(S,I,y,t):u.unstuff(S,I,y,t,!1,a,F,k))}},readTiles:function(E,A,I,a){var Q=A.headerInfo,g=Q.width,D=Q.height,B=g*D,C=Q.microBlockSize,o=Q.imageType,r=L.getDataTypeSize(o),s=Math.ceil(g/C),f=Math.ceil(D/C);A.pixels.numBlocksY=f,A.pixels.numBlocksX=s,A.pixels.ptr=0;var e=0,i=0,t=0,F=0,S=0,h=0,U=0,G=0,R=0,w=0,n=0,l=0,y=0,k=0,M=0,c=0,N,q,d,W,v,Y,P=new I(C*C),aA=D%C||C,rA=g%C||C,IA,j,AA=Q.numDims,b,K=A.pixels.resultMask,H=A.pixels.resultPixels,oA=Q.fileVersion,EA=oA>=5?14:15,p,gA=Q.zMax,V;for(t=0;t<f;t++)for(S=t!==f-1?C:aA,F=0;F<s;F++)for(h=F!==s-1?C:rA,n=t*g*C+F*C,l=g-h,b=0;b<AA;b++){if(AA>1?(V=H,n=t*g*C+F*C,H=new I(A.pixels.resultPixels.buffer,B*b*r,B),gA=Q.maxValues[b]):V=null,U=E.byteLength-A.ptr,N=new DataView(E,A.ptr,Math.min(10,U)),q={},c=0,G=N.getUint8(0),c++,p=Q.fileVersion>=5?G&4:0,R=G>>6&255,w=G>>2&EA,w!==(F*C>>3&EA)||p&&b===0)throw"integrity issue";if(Y=G&3,Y>3)throw A.ptr+=c,"Invalid block encoding ("+Y+")";if(Y===2){if(p)if(K)for(e=0;e<S;e++)for(i=0;i<h;i++)K[n]&&(H[n]=V[n]),n++;else for(e=0;e<S;e++)for(i=0;i<h;i++)H[n]=V[n],n++;A.counter.constant++,A.ptr+=c;continue}else if(Y===0){if(p)throw"integrity issue";if(A.counter.uncompressed++,A.ptr+=c,y=S*h*r,k=E.byteLength-A.ptr,y=y<k?y:k,d=new ArrayBuffer(y%r===0?y:y+r-y%r),W=new Uint8Array(d),W.set(new Uint8Array(E,A.ptr,y)),v=new I(d),M=0,K)for(e=0;e<S;e++){for(i=0;i<h;i++)K[n]&&(H[n]=v[M++]),n++;n+=l}else for(e=0;e<S;e++){for(i=0;i<h;i++)H[n++]=v[M++];n+=l}A.ptr+=M*r}else if(IA=L.getDataTypeUsed(p&&o<6?4:o,R),j=L.getOnePixel(q,c,IA,N),c+=L.getDataTypeSize(IA),Y===3)if(A.ptr+=c,A.counter.constantoffset++,K)for(e=0;e<S;e++){for(i=0;i<h;i++)K[n]&&(H[n]=p?Math.min(gA,V[n]+j):j),n++;n+=l}else for(e=0;e<S;e++){for(i=0;i<h;i++)H[n]=p?Math.min(gA,V[n]+j):j,n++;n+=l}else if(A.ptr+=c,L.decodeBits(E,A,P,j,b),c=0,p)if(K)for(e=0;e<S;e++){for(i=0;i<h;i++)K[n]&&(H[n]=P[c++]+V[n]),n++;n+=l}else for(e=0;e<S;e++){for(i=0;i<h;i++)H[n]=P[c++]+V[n],n++;n+=l}else if(K)for(e=0;e<S;e++){for(i=0;i<h;i++)K[n]&&(H[n]=P[c++]),n++;n+=l}else for(e=0;e<S;e++){for(i=0;i<h;i++)H[n++]=P[c++];n+=l}}AA>1&&!a&&(A.pixels.resultPixels=L.swapDimensionOrder(A.pixels.resultPixels,B,AA,I))},formatFileInfo:function(E){return{fileIdentifierString:E.headerInfo.fileIdentifierString,fileVersion:E.headerInfo.fileVersion,imageType:E.headerInfo.imageType,height:E.headerInfo.height,width:E.headerInfo.width,numValidPixel:E.headerInfo.numValidPixel,microBlockSize:E.headerInfo.microBlockSize,blobSize:E.headerInfo.blobSize,maxZError:E.headerInfo.maxZError,pixelType:L.getPixelType(E.headerInfo.imageType),eofOffset:E.eofOffset,mask:E.mask?{numBytes:E.mask.numBytes}:null,pixels:{numBlocksX:E.pixels.numBlocksX,numBlocksY:E.pixels.numBlocksY,maxValue:E.headerInfo.zMax,minValue:E.headerInfo.zMin,noDataValue:E.noDataValue}}},constructConstantSurface:function(E,A){var I=E.headerInfo.zMax,a=E.headerInfo.zMin,Q=E.headerInfo.maxValues,g=E.headerInfo.numDims,D=E.headerInfo.height*E.headerInfo.width,B=0,C=0,o=0,r=E.pixels.resultMask,s=E.pixels.resultPixels;if(r)if(g>1){if(A)for(B=0;B<g;B++)for(o=B*D,I=Q[B],C=0;C<D;C++)r[C]&&(s[o+C]=I);else for(C=0;C<D;C++)if(r[C])for(o=C*g,B=0;B<g;B++)s[o+g]=Q[B]}else for(C=0;C<D;C++)r[C]&&(s[C]=I);else if(g>1&&a!==I)if(A)for(B=0;B<g;B++)for(o=B*D,I=Q[B],C=0;C<D;C++)s[o+C]=I;else for(C=0;C<D;C++)for(o=C*g,B=0;B<g;B++)s[o+B]=Q[B];else for(C=0;C<D*g;C++)s[C]=I},getDataTypeArray:function(E){var A;switch(E){case 0:A=Int8Array;break;case 1:A=Uint8Array;break;case 2:A=Int16Array;break;case 3:A=Uint16Array;break;case 4:A=Int32Array;break;case 5:A=Uint32Array;break;case 6:A=Float32Array;break;case 7:A=Float64Array;break;default:A=Float32Array}return A},getPixelType:function(E){var A;switch(E){case 0:A="S8";break;case 1:A="U8";break;case 2:A="S16";break;case 3:A="U16";break;case 4:A="S32";break;case 5:A="U32";break;case 6:A="F32";break;case 7:A="F64";break;default:A="F32"}return A},isValidPixelValue:function(E,A){if(A==null)return!1;var I;switch(E){case 0:I=A>=-128&&A<=127;break;case 1:I=A>=0&&A<=255;break;case 2:I=A>=-32768&&A<=32767;break;case 3:I=A>=0&&A<=65536;break;case 4:I=A>=-2147483648&&A<=2147483647;break;case 5:I=A>=0&&A<=4294967296;break;case 6:I=A>=-34027999387901484e22&&A<=34027999387901484e22;break;case 7:I=A>=-17976931348623157e292&&A<=17976931348623157e292;break;default:I=!1}return I},getDataTypeSize:function(E){var A=0;switch(E){case 0:case 1:A=1;break;case 2:case 3:A=2;break;case 4:case 5:case 6:A=4;break;case 7:A=8;break;default:A=E}return A},getDataTypeUsed:function(E,A){var I=E;switch(E){case 2:case 4:I=E-A;break;case 3:case 5:I=E-2*A;break;case 6:A===0?I=E:A===1?I=2:I=1;break;case 7:A===0?I=E:I=E-2*A+1;break;default:I=E;break}return I},getOnePixel:function(E,A,I,a){var Q=0;switch(I){case 0:Q=a.getInt8(A);break;case 1:Q=a.getUint8(A);break;case 2:Q=a.getInt16(A,!0);break;case 3:Q=a.getUint16(A,!0);break;case 4:Q=a.getInt32(A,!0);break;case 5:Q=a.getUInt32(A,!0);break;case 6:Q=a.getFloat32(A,!0);break;case 7:Q=a.getFloat64(A,!0);break;default:throw"the decoder does not understand this pixel type"}return Q},swapDimensionOrder:function(E,A,I,a,Q){var g=0,D=0,B=0,C=0,o=E;if(I>1)if(o=new a(A*I),Q)for(g=0;g<A;g++)for(C=g,B=0;B<I;B++,C+=A)o[C]=E[D++];else for(g=0;g<A;g++)for(C=g,B=0;B<I;B++,C+=A)o[D++]=E[C];return o}},m=function(E,A,I){this.val=E,this.left=A,this.right=I},z={decode:function(E,A){A=A||{};var I=A.noDataValue,a=0,Q={};if(Q.ptr=A.inputOffset||0,Q.pixels={},!!L.readHeaderInfo(E,Q)){var g=Q.headerInfo,D=g.fileVersion,B=L.getDataTypeArray(g.imageType);if(D>5)throw"unsupported lerc version 2."+D;L.readMask(E,Q),g.numValidPixel!==g.width*g.height&&!Q.pixels.resultMask&&(Q.pixels.resultMask=A.maskData);var C=g.width*g.height;Q.pixels.resultPixels=new B(C*g.numDims),Q.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var o=!A.returnPixelInterleavedDims;if(g.numValidPixel!==0)if(g.zMax===g.zMin)L.constructConstantSurface(Q,o);else if(D>=4&&L.checkMinMaxRanges(E,Q))L.constructConstantSurface(Q,o);else{var r=new DataView(E,Q.ptr,2),s=r.getUint8(0);if(Q.ptr++,s)L.readDataOneSweep(E,Q,B,o);else if(D>1&&g.imageType<=1&&Math.abs(g.maxZError-.5)<1e-5){var f=r.getUint8(1);if(Q.ptr++,Q.encodeMode=f,f>2||D<4&&f>1)throw"Invalid Huffman flag "+f;f?L.readHuffman(E,Q,B,o):L.readTiles(E,Q,B,o)}else L.readTiles(E,Q,B,o)}Q.eofOffset=Q.ptr;var e;A.inputOffset?(e=Q.headerInfo.blobSize+A.inputOffset-Q.ptr,Math.abs(e)>=1&&(Q.eofOffset=A.inputOffset+Q.headerInfo.blobSize)):(e=Q.headerInfo.blobSize-Q.ptr,Math.abs(e)>=1&&(Q.eofOffset=Q.headerInfo.blobSize));var i={width:g.width,height:g.height,pixelData:Q.pixels.resultPixels,minValue:g.zMin,maxValue:g.zMax,validPixelCount:g.numValidPixel,dimCount:g.numDims,dimStats:{minValues:g.minValues,maxValues:g.maxValues},maskData:Q.pixels.resultMask};if(Q.pixels.resultMask&&L.isValidPixelValue(g.imageType,I)){var t=Q.pixels.resultMask;for(a=0;a<C;a++)t[a]||(i.pixelData[a]=I);i.noDataValue=I}return Q.noDataValue=I,A.returnFileInfo&&(i.fileInfo=L.formatFileInfo(Q)),i}},getBandCount:function(E){var A=0,I=0,a={};for(a.ptr=0,a.pixels={};I<E.byteLength-58;)L.readHeaderInfo(E,a),I+=a.headerInfo.blobSize,A++,a.ptr=I;return A}};return z}(),Z=function(){var u=new ArrayBuffer(4),L=new Uint8Array(u),m=new Uint32Array(u);return m[0]=1,L[0]===1}(),O={decode:function(u,L){if(!Z)throw"Big endian system is not supported.";L=L||{};var m=L.inputOffset||0,z=new Uint8Array(u,m,10),E=String.fromCharCode.apply(null,z),A,I;if(E.trim()==="CntZImage")A=J,I=1;else if(E.substring(0,5)==="Lerc2")A=X,I=2;else throw"Unexpected file identifier string: "+E;for(var a=0,Q=u.byteLength-10,g,D=[],B,C,o={width:0,height:0,pixels:[],pixelType:L.pixelType,mask:null,statistics:[]},r=0;m<Q;){var s=A.decode(u,{inputOffset:m,encodedMaskData:g,maskData:C,returnMask:a===0,returnEncodedMask:a===0,returnFileInfo:!0,returnPixelInterleavedDims:L.returnPixelInterleavedDims,pixelType:L.pixelType||null,noDataValue:L.noDataValue||null});m=s.fileInfo.eofOffset,C=s.maskData,a===0&&(g=s.encodedMaskData,o.width=s.width,o.height=s.height,o.dimCount=s.dimCount||1,o.pixelType=s.pixelType||s.fileInfo.pixelType,o.mask=C),I>1&&(C&&D.push(C),s.fileInfo.mask&&s.fileInfo.mask.numBytes>0&&r++),a++,o.pixels.push(s.pixelData),o.statistics.push({minValue:s.minValue,maxValue:s.maxValue,noDataValue:s.noDataValue,dimStats:s.dimStats})}var f,e,i;if(I>1&&r>1){for(i=o.width*o.height,o.bandMasks=D,C=new Uint8Array(i),C.set(D[0]),f=1;f<D.length;f++)for(B=D[f],e=0;e<i;e++)C[e]=C[e]&B[e];o.maskData=C}return o}};T.exports?T.exports=O:this.Lerc=O})()})(DA);let $,x,CA;const BA={env:{emscripten_notify_memory_growth:function(T){CA=new Uint8Array(x.exports.memory.buffer)}}};class nA{init(){return $||(typeof fetch<"u"?$=fetch("data:application/wasm;base64,"+iA).then(J=>J.arrayBuffer()).then(J=>WebAssembly.instantiate(J,BA)).then(this._init):$=WebAssembly.instantiate(Buffer.from(iA,"base64"),BA).then(this._init),$)}_init(J){x=J.instance,BA.env.emscripten_notify_memory_growth(0)}decode(J,X=0){if(!x)throw new Error("ZSTDDecoder: Await .init() before decoding.");const Z=J.byteLength,O=x.exports.malloc(Z);CA.set(J,O),X=X||Number(x.exports.ZSTD_findDecompressedSize(O,Z));const u=x.exports.malloc(X),L=x.exports.ZSTD_decompress(u,X,O,Z),m=CA.slice(u,u+L);return x.exports.free(O),x.exports.free(u),m}}const iA="AGFzbQEAAAABpQEVYAF/AX9gAn9/AGADf39/AX9gBX9/f39/AX9gAX8AYAJ/fwF/YAR/f39/AX9gA39/fwBgBn9/f39/fwF/YAd/f39/f39/AX9gAn9/AX5gAn5+AX5gAABgBX9/f39/AGAGf39/f39/AGAIf39/f39/f38AYAl/f39/f39/f38AYAABf2AIf39/f39/f38Bf2ANf39/f39/f39/f39/fwF/YAF/AX4CJwEDZW52H2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgABANpaAEFAAAFAgEFCwACAQABAgIFBQcAAwABDgsBAQcAEhMHAAUBDAQEAAANBwQCAgYCBAgDAwMDBgEACQkHBgICAAYGAgQUBwYGAwIGAAMCAQgBBwUGCgoEEQAEBAEIAwgDBQgDEA8IAAcABAUBcAECAgUEAQCAAgYJAX8BQaCgwAILB2AHBm1lbW9yeQIABm1hbGxvYwAoBGZyZWUAJgxaU1REX2lzRXJyb3IAaBlaU1REX2ZpbmREZWNvbXByZXNzZWRTaXplAFQPWlNURF9kZWNvbXByZXNzAEoGX3N0YXJ0ACQJBwEAQQELASQKussBaA8AIAAgACgCBCABajYCBAsZACAAKAIAIAAoAgRBH3F0QQAgAWtBH3F2CwgAIABBiH9LC34BBH9BAyEBIAAoAgQiA0EgTQRAIAAoAggiASAAKAIQTwRAIAAQDQ8LIAAoAgwiAiABRgRAQQFBAiADQSBJGw8LIAAgASABIAJrIANBA3YiBCABIARrIAJJIgEbIgJrIgQ2AgggACADIAJBA3RrNgIEIAAgBCgAADYCAAsgAQsUAQF/IAAgARACIQIgACABEAEgAgv3AQECfyACRQRAIABCADcCACAAQQA2AhAgAEIANwIIQbh/DwsgACABNgIMIAAgAUEEajYCECACQQRPBEAgACABIAJqIgFBfGoiAzYCCCAAIAMoAAA2AgAgAUF/ai0AACIBBEAgAEEIIAEQFGs2AgQgAg8LIABBADYCBEF/DwsgACABNgIIIAAgAS0AACIDNgIAIAJBfmoiBEEBTQRAIARBAWtFBEAgACABLQACQRB0IANyIgM2AgALIAAgAS0AAUEIdCADajYCAAsgASACakF/ai0AACIBRQRAIABBADYCBEFsDwsgAEEoIAEQFCACQQN0ams2AgQgAgsWACAAIAEpAAA3AAAgACABKQAINwAICy8BAX8gAUECdEGgHWooAgAgACgCAEEgIAEgACgCBGprQR9xdnEhAiAAIAEQASACCyEAIAFCz9bTvtLHq9lCfiAAfEIfiUKHla+vmLbem55/fgsdAQF/IAAoAgggACgCDEYEfyAAKAIEQSBGBUEACwuCBAEDfyACQYDAAE8EQCAAIAEgAhBnIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAkEBSARAIAAhAgwBCyAAQQNxRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADTw0BIAJBA3ENAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgA0F8aiIEIABJBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAsMACAAIAEpAAA3AAALQQECfyAAKAIIIgEgACgCEEkEQEEDDwsgACAAKAIEIgJBB3E2AgQgACABIAJBA3ZrIgE2AgggACABKAAANgIAQQALDAAgACABKAIANgAAC/cCAQJ/AkAgACABRg0AAkAgASACaiAASwRAIAAgAmoiBCABSw0BCyAAIAEgAhALDwsgACABc0EDcSEDAkACQCAAIAFJBEAgAwRAIAAhAwwDCyAAQQNxRQRAIAAhAwwCCyAAIQMDQCACRQ0EIAMgAS0AADoAACABQQFqIQEgAkF/aiECIANBAWoiA0EDcQ0ACwwBCwJAIAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdBKGogACgCBBATQQAhBCAHQeAAaiEMIAdB5ABqIQoDQCAHQShqEARBAksgBCAXTnJFBEAgBygCQCAHKAI8QQN0aikCACIdQhCIp0H/AXEhCyAHKAJQIAcoAkxBA3RqKQIAIh5CEIinQf8BcSEJIAcoAkggBygCREEDdGopAgAiH0IgiKchCCAeQiCIISAgHUIgiKchAgJAIB9CEIinQf8BcSIDQQJPBEACQCAGRSADQRlJckUEQCAIIAdBKGogA0EgIAcoAixrIg0gDSADSxsiDRAFIAMgDWsiA3RqIQggB0EoahAEGiADRQ0BIAdBKGogAxAFIAhqIQgMAQsgB0EoaiADEAUgCGohCCAHQShqEAQaCyAHKQJUISEgByAINgJUIAcgITcDWAwBCwJAIANFBEAgAgRAIAcoAlQhCAwDCyAHKAJYIQgMAQsCQAJAIAdBKGpBARAFIAggAkVqaiIDQQNGBEAgBygCVEF/aiIDIANFaiEIDAELIANBAnQgB2ooAlQiCCAIRWohCCADQQFGDQELIAcgBygCWDYCXAsLIAcgBygCVDYCWCAHIAg2AlQLICCnIQMgCQRAIAdBKGogCRAFIANqIQMLIAkgC2pBFE8EQCAHQShqEAQaCyALBEAgB0EoaiALEAUgAmohAgsgB0EoahAEGiAHIAcoAmggAmoiCSADajYCaCAKIAwgCCAJSxsoAgAhDSAHIAdBKGogHUIYiKdB/wFxEAggHadB//8DcWo2AjwgByAHQShqIB5CGIinQf8BcRAIIB6nQf//A3FqNgJMIAdBKGoQBBogB0EoaiAfQhiIp0H/AXEQCCEOIAdB8ABqIARBBHRqIgsgCSANaiAIazYCDCALIAg2AgggCyADNgIEIAsgAjYCACAHIA4gH6dB//8DcWo2AkQgBEEBaiEEDAELCyAEIBdIDQEgEkFgaiEYIAdB4ABqIRogB0HkAGohGyABIQMDQCAHQShqEARBAksgBCAFTnJFBEAgBygCQCAHKAI8QQN0aikCACIdQhCIp0H/AXEhCyAHKAJQIAcoAkxBA3RqKQIAIh5CEIinQf8BcSEIIAcoAkggBygCREEDdGopAgAiH0IgiKchCSAeQiCIISAgHUIgiKchDAJAIB9CEIinQf8BcSICQQJPBEACQCAGRSACQRlJckUEQCAJIAdBKGogAkEgIAcoAixrIgogCiACSxsiChAFIAIgCmsiAnRqIQkgB0EoahAEGiACRQ0BIAdBKGogAhAFIAlqIQkMAQsgB0EoaiACEAUgCWohCSAHQShqEAQaCyAHKQJUISEgByAJNgJUIAcgITcDWAwBCwJAIAJFBEAgDARAIAcoAlQhCQwDCyAHKAJYIQkMAQsCQAJAIAdBKGpBARAFIAkgDEVqaiICQQNGBEAgBygCVEF/aiICIAJFaiEJDAELIAJBAnQgB2ooAlQiCSAJRWohCSACQQFGDQELIAcgBygCWDYCXAsLIAcgBygCVDYCWCAHIAk2AlQLICCnIRQgCARAIAdBKGogCBAFIBRqIRQLIAggC2pBFE8EQCAHQShqEAQaCyALBEAgB0EoaiALEAUgDGohDAsgB0EoahAEGiAHIAcoAmggDGoiGSAUajYCaCAbIBogCSAZSxsoAgAhHCAHIAdBKGogHUIYiKdB/wFxEAggHadB//8DcWo2AjwgByAHQShqIB5CGIinQf8BcRAIIB6nQf//A3FqNgJMIAdBKGoQBBogByAHQShqIB9CGIinQf8BcRAIIB+nQf//A3FqNgJEIAcgB0HwAGogBEEDcUEEdGoiDSkDCCIdNwPIASAHIA0pAwAiHjcDwAECQAJAAkAgBygCvAEiDiAepyICaiIWIBNLDQAgAyAHKALEASIKIAJqIgtqIBhLDQAgEiADayALQSBqTw0BCyAHIAcpA8gBNwMQIAcgBykDwAE3AwggAyASIAdBCGogB0G8AWogEyAPIBUgERAeIQsMAQsgAiADaiEIIAMgDhAHIAJBEU8EQCADQRBqIQIDQCACIA5BEGoiDhAHIAJBEGoiAiAISQ0ACwsgCCAdpyIOayECIAcgFjYCvAEgDiAIIA9rSwRAIA4gCCAVa0sEQEFsIQsMAgsgESACIA9rIgJqIhYgCmogEU0EQCAIIBYgChAPGgwCCyAIIBZBACACaxAPIQggByACIApqIgo2AsQBIAggAmshCCAPIQILIA5BEE8EQCAIIApqIQoDQCAIIAIQByACQRBqIQIgCEEQaiIIIApJDQALDAELAkAgDkEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgDkECdCIKQcAeaigCAGoiAhAXIAIgCkHgHmooAgBrIQIgBygCxAEhCgwBCyAIIAIQDAsgCkEJSQ0AIAggCmohCiAIQQhqIgggAkEIaiICa0EPTARAA0AgCCACEAwgAkEIaiECIAhBCGoiCCAKSQ0ADAIACwALA0AgCCACEAcgAkEQaiECIAhBEGoiCCAKSQ0ACwsgCxADBEAgCyEQDAQFIA0gDDYCACANIBkgHGogCWs2AgwgDSAJNgIIIA0gFDYCBCAEQQFqIQQgAyALaiEDDAILAAsLIAQgBUgNASAEIBdrIQtBACEEA0AgCyAFSARAIAcgB0HwAGogC0EDcUEEdGoiAikDCCIdNwPIASAHIAIpAwAiHjcDwAECQAJAAkAgBygCvAEiDCAepyICaiIKIBNLDQAgAyAHKALEASIJIAJqIhBqIBhLDQAgEiADayAQQSBqTw0BCyAHIAcpA8gBNwMgIAcgBykDwAE3AxggAyASIAdBGGogB0G8AWogEyAPIBUgERAeIRAMAQsgAiADaiEIIAMgDBAHIAJBEU8EQCADQRBqIQIDQCACIAxBEGoiDBAHIAJBEGoiAiAISQ0ACwsgCCAdpyIGayECIAcgCjYCvAEgBiAIIA9rSwRAIAYgCCAVa0sEQEFsIRAMAgsgESACIA9rIgJqIgwgCWogEU0EQCAIIAwgCRAPGgwCCyAIIAxBACACaxAPIQggByACIAlqIgk2AsQBIAggAmshCCAPIQILIAZBEE8EQCAIIAlqIQYDQCAIIAIQByACQRBqIQIgCEEQaiIIIAZJDQALDAELAkAgBkEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgBkECdCIGQcAeaigCAGoiAhAXIAIgBkHgHmooAgBrIQIgBygCxAEhCQwBCyAIIAIQDAsgCUEJSQ0AIAggCWohBiAIQQhqIgggAkEIaiICa0EPTARAA0AgCCACEAwgAkEIaiECIAhBCGoiCCAGSQ0ADAIACwALA0AgCCACEAcgAkEQaiECIAhBEGoiCCAGSQ0ACwsgEBADDQMgC0EBaiELIAMgEGohAwwBCwsDQCAEQQNHBEAgACAEQQJ0IgJqQazQAWogAiAHaigCVDYCACAEQQFqIQQMAQsLIAcoArwBIQgLQbp/IRAgEyAIayIAIBIgA2tLDQAgAwR/IAMgCCAAEAsgAGoFQQALIAFrIRALIAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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",eA=new nA;class fA extends sA.BaseDecoder{constructor(J){super(),this.planarConfiguration=typeof J.PlanarConfiguration<"u"?J.PlanarConfiguration:1,this.samplesPerPixel=typeof J.SamplesPerPixel<"u"?J.SamplesPerPixel:1,this.addCompression=J.LercParameters[_.LercParameters.AddCompression]}decodeBlock(J){switch(this.addCompression){case _.LercAddCompression.None:break;case _.LercAddCompression.Deflate:J=_.inflate_1(new Uint8Array(J)).buffer;break;case _.LercAddCompression.Zstandard:J=eA.decode(new Uint8Array(J)).buffer;break;default:throw new Error(`Unsupported LERC additional compression method identifier: ${this.addCompression}`)}return QA.decode(J,{returnPixelInterleavedDims:this.planarConfiguration===1}).pixels[0].buffer}}exports.default=fA;exports.zstd=eA;
|