streamlit-nightly 1.46.1.dev20250624__py3-none-any.whl → 1.46.1.dev20250625__py3-none-any.whl

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.
Files changed (83) hide show
  1. streamlit/elements/arrow.py +5 -5
  2. streamlit/elements/code.py +6 -4
  3. streamlit/elements/metric.py +20 -2
  4. streamlit/elements/widgets/multiselect.py +27 -1
  5. streamlit/static/index.html +1 -1
  6. streamlit/static/manifest.json +214 -214
  7. streamlit/static/static/js/{ErrorOutline.esm.DcGodXA0.js → ErrorOutline.esm.Ca4_C74G.js} +1 -1
  8. streamlit/static/static/js/{FileDownload.esm.BtTSWyv0.js → FileDownload.esm.BEXpx-NN.js} +1 -1
  9. streamlit/static/static/js/{FileHelper.BOV_ijyF.js → FileHelper.B4GGzKqK.js} +1 -1
  10. streamlit/static/static/js/{FormClearHelper.YYlwo10a.js → FormClearHelper.CpsBciie.js} +1 -1
  11. streamlit/static/static/js/{Hooks.BoB69I0K.js → Hooks.DsIXUDOP.js} +1 -1
  12. streamlit/static/static/js/{InputInstructions.B5C3dEon.js → InputInstructions.Dh8ccyYH.js} +1 -1
  13. streamlit/static/static/js/{ProgressBar.2T39z4H_.js → ProgressBar.C57HogTe.js} +2 -2
  14. streamlit/static/static/js/{RenderInPortalIfExists.Dr06opo0.js → RenderInPortalIfExists.JT5A_75h.js} +1 -1
  15. streamlit/static/static/js/{Toolbar.BRouzc5U.js → Toolbar.BZBwHk6r.js} +1 -1
  16. streamlit/static/static/js/{base-input.PyN4CoyX.js → base-input.C3m059Ja.js} +4 -4
  17. streamlit/static/static/js/{checkbox.CpyGalPT.js → checkbox.Bz1HY8hS.js} +1 -1
  18. streamlit/static/static/js/{createSuper.Jon9k3Yt.js → createSuper.BgXZoFPR.js} +1 -1
  19. streamlit/static/static/js/{data-grid-overlay-editor.D4ghymBb.js → data-grid-overlay-editor.DHAXzOWr.js} +1 -1
  20. streamlit/static/static/js/{downloader.FX1msyAN.js → downloader.DXmvN319.js} +1 -1
  21. streamlit/static/static/js/{es6.QGDMdnvM.js → es6.Dg-Jfu-r.js} +2 -2
  22. streamlit/static/static/js/{iframeResizer.contentWindow.t8qLRzyv.js → iframeResizer.contentWindow.BqWlTWPM.js} +1 -1
  23. streamlit/static/static/js/{index.BG2gdqVa.js → index.04JkG8Km.js} +1 -1
  24. streamlit/static/static/js/{index.B_pohBxx.js → index.1o7GFmH9.js} +1 -1
  25. streamlit/static/static/js/{index.Bzp1Qysi.js → index.B-IWkE_m.js} +1 -1
  26. streamlit/static/static/js/{index.PsjpMKwq.js → index.B5HCKYGs.js} +2 -2
  27. streamlit/static/static/js/{index.C-vLCSJp.js → index.BEHais2d.js} +58 -59
  28. streamlit/static/static/js/{index.B5UnBp6n.js → index.BSduVAl-.js} +1 -1
  29. streamlit/static/static/js/{index.CZttj0Fd.js → index.BUpHFScA.js} +1 -1
  30. streamlit/static/static/js/{index.By43fiCF.js → index.B_GGKi7h.js} +1 -1
  31. streamlit/static/static/js/{index.C8r7DD-9.js → index.BgcFXG8Y.js} +1 -1
  32. streamlit/static/static/js/{index.kEHB5PaN.js → index.BgoLThsY.js} +1 -1
  33. streamlit/static/static/js/{index.BJhXUMZ4.js → index.Bpq_TVP8.js} +1 -1
  34. streamlit/static/static/js/{index.Dz6zHKtI.js → index.BqfEAvp0.js} +1 -1
  35. streamlit/static/static/js/{index.Dieu6abC.js → index.C-C4puTW.js} +1 -1
  36. streamlit/static/static/js/{index.BTUUpB01.js → index.C6WBb5UI.js} +1 -1
  37. streamlit/static/static/js/{index.BM1_hMg8.js → index.C8kJiudO.js} +1 -1
  38. streamlit/static/static/js/{index.B2Y8O1Wt.js → index.C9-NSIWy.js} +1 -1
  39. streamlit/static/static/js/{index.DgNa_UKX.js → index.CF7xf0Kc.js} +60 -60
  40. streamlit/static/static/js/{index.CUBt4-Uz.js → index.CIgyykei.js} +2 -2
  41. streamlit/static/static/js/{index.ArgFGqRm.js → index.CL0g79ua.js} +1 -1
  42. streamlit/static/static/js/{index.CdJwjLfQ.js → index.CLutgZmA.js} +1 -1
  43. streamlit/static/static/js/{index.B-vIEt1m.js → index.CWNrL7gF.js} +1 -1
  44. streamlit/static/static/js/{index.B7osuoZN.js → index.Cob2CEOY.js} +2 -2
  45. streamlit/static/static/js/{index.CU45_Nrh.js → index.CuNbzfuD.js} +1 -1
  46. streamlit/static/static/js/{index.BXxgCK9y.js → index.CxdFkXN7.js} +1 -1
  47. streamlit/static/static/js/{index.CuLeR7Zz.js → index.D6NDAr7R.js} +1 -1
  48. streamlit/static/static/js/{index.DdfoIDPC.js → index.D8Opklrn.js} +1 -1
  49. streamlit/static/static/js/{index.DthY-obI.js → index.DPwE86ME.js} +2 -2
  50. streamlit/static/static/js/index.DSVau5_M.js +1 -0
  51. streamlit/static/static/js/{index.IZ-swmmu.js → index.D_AaeKaM.js} +1 -1
  52. streamlit/static/static/js/{index.cLUrTr09.js → index.De84gVwH.js} +1 -1
  53. streamlit/static/static/js/{index.C4qeNI_i.js → index.DkawoLEN.js} +1 -1
  54. streamlit/static/static/js/index.DyESyaCa.js +1 -0
  55. streamlit/static/static/js/index.PYYOff5g.js +1 -0
  56. streamlit/static/static/js/{index.COUW2Eq4.js → index.Q4yOipZt.js} +2 -2
  57. streamlit/static/static/js/{index.D4M62uXW.js → index.lctgkaZQ.js} +1 -1
  58. streamlit/static/static/js/index.tO_5FrTQ.js +1 -0
  59. streamlit/static/static/js/{index.CwKcK2uB.js → index.wwMXYz4o.js} +1 -1
  60. streamlit/static/static/js/{input.mfVbl2I5.js → input.G0_SQaLD.js} +2 -2
  61. streamlit/static/static/js/{memory.B-p09GS3.js → memory.B6tpNh1r.js} +1 -1
  62. streamlit/static/static/js/{mergeWith.D6q7TPdQ.js → mergeWith.BIMOGvX0.js} +1 -1
  63. streamlit/static/static/js/{number-overlay-editor.QOWTlq5z.js → number-overlay-editor.BGVzFv7I.js} +1 -1
  64. streamlit/static/static/js/{possibleConstructorReturn.DO-pRPNX.js → possibleConstructorReturn.Bk9dXD1L.js} +1 -1
  65. streamlit/static/static/js/{sandbox.DREGkhZ5.js → sandbox.DWWQ1lBu.js} +1 -1
  66. streamlit/static/static/js/{textarea.RxMqblTR.js → textarea.FHoad42C.js} +2 -2
  67. streamlit/static/static/js/{timepicker.BSrUPnyZ.js → timepicker.yc5xqDUF.js} +1 -1
  68. streamlit/static/static/js/{toConsumableArray.BkyyIrpf.js → toConsumableArray.DfbSd22b.js} +1 -1
  69. streamlit/static/static/js/{uniqueId.CXqhuYjv.js → uniqueId.C03hvAF0.js} +1 -1
  70. streamlit/static/static/js/{useBasicWidgetState.QQhMYIp5.js → useBasicWidgetState.DxtD7xs-.js} +1 -1
  71. streamlit/static/static/js/{useOnInputChange.DvWbafRm.js → useOnInputChange.DqPkFylT.js} +1 -1
  72. streamlit/static/static/js/{withFullScreenWrapper.CX_bKrfm.js → withFullScreenWrapper.CAwHwFP9.js} +1 -1
  73. streamlit/web/server/server.py +5 -6
  74. {streamlit_nightly-1.46.1.dev20250624.dist-info → streamlit_nightly-1.46.1.dev20250625.dist-info}/METADATA +1 -1
  75. {streamlit_nightly-1.46.1.dev20250624.dist-info → streamlit_nightly-1.46.1.dev20250625.dist-info}/RECORD +79 -79
  76. streamlit/static/static/js/index.2JQx94HQ.js +0 -1
  77. streamlit/static/static/js/index.C78GEvay.js +0 -1
  78. streamlit/static/static/js/index.CvFBPhOY.js +0 -1
  79. streamlit/static/static/js/index.GgMflWG-.js +0 -1
  80. {streamlit_nightly-1.46.1.dev20250624.data → streamlit_nightly-1.46.1.dev20250625.data}/scripts/streamlit.cmd +0 -0
  81. {streamlit_nightly-1.46.1.dev20250624.dist-info → streamlit_nightly-1.46.1.dev20250625.dist-info}/WHEEL +0 -0
  82. {streamlit_nightly-1.46.1.dev20250624.dist-info → streamlit_nightly-1.46.1.dev20250625.dist-info}/entry_points.txt +0 -0
  83. {streamlit_nightly-1.46.1.dev20250624.dist-info → streamlit_nightly-1.46.1.dev20250625.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,4 @@
1
- var FU=Object.defineProperty;var DU=(r,e,t)=>e in r?FU(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var V=(r,e,t)=>DU(r,typeof e!="symbol"?e+"":e,t);import{r as Bt,at as yr,aU as dt,g as ih,aV as OU,aW as Eu,_ as PD,n as RD,B as FD,aD as DD,U as K1,aX as iB,aA as LU,j as Of,F as NU,aE as kU,z as UU,C as sB,aY as zU,aZ as oB}from"./index.C-vLCSJp.js";import{_ as ls,a as GU,C as VU}from"./toConsumableArray.BkyyIrpf.js";import{a as Wu,b as Ju,_ as Wx,c as dA,d as Jx}from"./possibleConstructorReturn.DO-pRPNX.js";import{a as HU,T as jU}from"./Toolbar.BRouzc5U.js";import{E as OD,w as $U}from"./withFullScreenWrapper.CX_bKrfm.js";import{u as WU}from"./useBasicWidgetState.QQhMYIp5.js";import{u as JU,s as XU}from"./threshold.DjX0wlsa.js";import"./FormClearHelper.YYlwo10a.js";import"./value.CgPGBV_l.js";function KU(r,e){for(var t=0;t<e.length;t++){const n=e[t];if(typeof n!="string"&&!Array.isArray(n)){for(const i in n)if(i!=="default"&&!(i in r)){const o=Object.getOwnPropertyDescriptor(n,i);o&&Object.defineProperty(r,i,o.get?o:{enumerable:!0,get:()=>n[i]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}function Vm(r,e){if(!r)throw new Error(e||"loader assertion failed.")}const Xx=!!(typeof process!="object"||String(process)!=="[object process]"||process.browser),aB=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version);aB&&parseFloat(aB[1]);const Pu=globalThis,Ta=globalThis.process||{},YU=globalThis.navigator||{};function LD(r){var n,i;if(typeof window<"u"&&((n=window.process)==null?void 0:n.type)==="renderer"||typeof process<"u"&&((i=process.versions)!=null&&i.electron))return!0;const t=typeof navigator<"u"&&navigator.userAgent;return!!(t&&t.indexOf("Electron")>=0)}function rl(){return!(typeof process=="object"&&String(process)==="[object process]"&&!(process!=null&&process.browser))||LD()}function qU(r){return rl()?LD()?"Electron":(YU.userAgent||"").indexOf("Edge")>-1?"Edge":globalThis.chrome?"Chrome":globalThis.safari?"Safari":globalThis.mozInnerScreenX?"Firefox":"Unknown":"Node"}const ty="4.1.0";function ZU(r){try{const e=window[r],t="__storage_test__";return e.setItem(t,t),e.removeItem(t),e}catch{return null}}let QU=class{constructor(e,t,n="sessionStorage"){this.storage=ZU(n),this.id=e,this.config=t,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){if(Object.assign(this.config,e),this.storage){const t=JSON.stringify(this.config);this.storage.setItem(this.id,t)}}_loadConfiguration(){let e={};if(this.storage){const t=this.storage.getItem(this.id);e=t?JSON.parse(t):{}}return Object.assign(this.config,e),this}};function e5(r){let e;return r<10?e=`${r.toFixed(2)}ms`:r<100?e=`${r.toFixed(1)}ms`:r<1e3?e=`${r.toFixed(0)}ms`:e=`${(r/1e3).toFixed(2)}s`,e}function t5(r,e=8){const t=Math.max(e-r.length,0);return`${" ".repeat(t)}${r}`}var Hm;(function(r){r[r.BLACK=30]="BLACK",r[r.RED=31]="RED",r[r.GREEN=32]="GREEN",r[r.YELLOW=33]="YELLOW",r[r.BLUE=34]="BLUE",r[r.MAGENTA=35]="MAGENTA",r[r.CYAN=36]="CYAN",r[r.WHITE=37]="WHITE",r[r.BRIGHT_BLACK=90]="BRIGHT_BLACK",r[r.BRIGHT_RED=91]="BRIGHT_RED",r[r.BRIGHT_GREEN=92]="BRIGHT_GREEN",r[r.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",r[r.BRIGHT_BLUE=94]="BRIGHT_BLUE",r[r.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",r[r.BRIGHT_CYAN=96]="BRIGHT_CYAN",r[r.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(Hm||(Hm={}));const r5=10;function cB(r){return typeof r!="string"?r:(r=r.toUpperCase(),Hm[r]||Hm.WHITE)}function n5(r,e,t){return!rl&&typeof r=="string"&&(e&&(r=`\x1B[${cB(e)}m${r}\x1B[39m`),t&&(r=`\x1B[${cB(t)+r5}m${r}\x1B[49m`)),r}function i5(r,e=["constructor"]){const t=Object.getPrototypeOf(r),n=Object.getOwnPropertyNames(t),i=r;for(const o of n){const s=i[o];typeof s=="function"&&(e.find(c=>o===c)||(i[o]=s.bind(r)))}}function Kx(r,e){if(!r)throw new Error("Assertion failed")}function id(){var e,t,n;let r;if(rl()&&Pu.performance)r=(t=(e=Pu==null?void 0:Pu.performance)==null?void 0:e.now)==null?void 0:t.call(e);else if("hrtime"in Ta){const i=(n=Ta==null?void 0:Ta.hrtime)==null?void 0:n.call(Ta);r=i[0]*1e3+i[1]/1e6}else r=Date.now();return r}const sd={debug:rl()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},s5={enabled:!0,level:0};function od(){}const lB={},uB={once:!0};let ND=class{constructor({id:e}={id:""}){this.VERSION=ty,this._startTs=id(),this._deltaTs=id(),this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=e,this.userData={},this._storage=new QU(`__probe-${this.id}__`,s5),this.timeStamp(`${this.id} started`),i5(this),Object.seal(this)}set level(e){this.setLevel(e)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((id()-this._startTs).toPrecision(10))}getDelta(){return Number((id()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(e=!0){return this._storage.setConfiguration({enabled:e}),this}setLevel(e){return this._storage.setConfiguration({level:e}),this}get(e){return this._storage.config[e]}set(e,t){this._storage.setConfiguration({[e]:t})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(e,t){if(!e)throw new Error(t||"Assertion failed")}warn(e){return this._getLogFunction(0,e,sd.warn,arguments,uB)}error(e){return this._getLogFunction(0,e,sd.error,arguments)}deprecated(e,t){return this.warn(`\`${e}\` is deprecated and will be removed in a later version. Use \`${t}\` instead`)}removed(e,t){return this.error(`\`${e}\` has been removed. Use \`${t}\` instead`)}probe(e,t){return this._getLogFunction(e,t,sd.log,arguments,{time:!0,once:!0})}log(e,t){return this._getLogFunction(e,t,sd.debug,arguments)}info(e,t){return this._getLogFunction(e,t,console.info,arguments)}once(e,t){return this._getLogFunction(e,t,sd.debug||sd.info,arguments,uB)}table(e,t,n){return t?this._getLogFunction(e,t,console.table||od,n&&[n],{tag:a5(t)}):od}time(e,t){return this._getLogFunction(e,t,console.time?console.time:console.info)}timeEnd(e,t){return this._getLogFunction(e,t,console.timeEnd?console.timeEnd:console.info)}timeStamp(e,t){return this._getLogFunction(e,t,console.timeStamp||od)}group(e,t,n={collapsed:!1}){const i=fB({logLevel:e,message:t,opts:n}),{collapsed:o}=n;return i.method=(o?console.groupCollapsed:console.group)||console.info,this._getLogFunction(i)}groupCollapsed(e,t,n={}){return this.group(e,t,Object.assign({},n,{collapsed:!0}))}groupEnd(e){return this._getLogFunction(e,"",console.groupEnd||od)}withGroup(e,t,n){this.group(e,t)();try{n()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&this.getLevel()>=kD(e)}_getLogFunction(e,t,n,i,o){if(this._shouldLog(e)){o=fB({logLevel:e,message:t,args:i,opts:o}),n=n||o.method,Kx(n),o.total=this.getTotal(),o.delta=this.getDelta(),this._deltaTs=id();const s=o.tag||o.message;if(o.once&&s)if(!lB[s])lB[s]=id();else return od;return t=o5(this.id,o.message,o),n.bind(console,t,...o.args)}return od}};ND.VERSION=ty;function kD(r){if(!r)return 0;let e;switch(typeof r){case"number":e=r;break;case"object":e=r.logLevel||r.priority||0;break;default:return 0}return Kx(Number.isFinite(e)&&e>=0),e}function fB(r){const{logLevel:e,message:t}=r;r.logLevel=kD(e);const n=r.args?Array.from(r.args):[];for(;n.length&&n.shift()!==t;);switch(typeof e){case"string":case"function":t!==void 0&&n.unshift(t),r.message=e;break;case"object":Object.assign(r,e);break}typeof r.message=="function"&&(r.message=r.message());const i=typeof r.message;return Kx(i==="string"||i==="object"),Object.assign(r,{args:n},r.opts)}function o5(r,e,t){if(typeof e=="string"){const n=t.time?t5(e5(t.total)):"";e=t.time?`${r}: ${n} ${e}`:`${r}: ${e}`,e=n5(e,t.color,t.background)}return e}function a5(r){for(const e in r)for(const t in r[e])return t||"untitled";return"empty"}function c5(r,e){return UD(r||{},e)}function UD(r,e,t=0){if(t>3)return e;const n={...r};for(const[i,o]of Object.entries(e))o&&typeof o=="object"&&!Array.isArray(o)?n[i]=UD(n[i]||{},e[i],t+1):n[i]=e[i];return n}const l5="latest";function u5(){var r;return(r=globalThis._loadersgl_)!=null&&r.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.2.4"),globalThis._loadersgl_.version}const f5=u5();function ku(r,e){if(!r)throw new Error(e||"loaders.gl assertion failed.")}const $f=typeof process!="object"||String(process)!=="[object process]"||process.browser,h5=typeof window<"u"&&typeof window.orientation<"u",hB=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version);hB&&parseFloat(hB[1]);let d5=class{constructor(e,t){V(this,"name");V(this,"workerThread");V(this,"isRunning",!0);V(this,"result");V(this,"_resolve",()=>{});V(this,"_reject",()=>{});this.name=e,this.workerThread=t,this.result=new Promise((n,i)=>{this._resolve=n,this._reject=i})}postMessage(e,t){this.workerThread.postMessage({source:"loaders.gl",type:e,payload:t})}done(e){ku(this.isRunning),this.isRunning=!1,this._resolve(e)}error(e){ku(this.isRunning),this.isRunning=!1,this._reject(e)}},Rv=class{terminate(){}};const Fv=new Map;function A5(r){ku(r.source&&!r.url||!r.source&&r.url);let e=Fv.get(r.source||r.url);return e||(r.url&&(e=p5(r.url),Fv.set(r.url,e)),r.source&&(e=zD(r.source),Fv.set(r.source,e))),ku(e),e}function p5(r){if(!r.startsWith("http"))return r;const e=g5(r);return zD(e)}function zD(r){const e=new Blob([r],{type:"application/javascript"});return URL.createObjectURL(e)}function g5(r){return`try {
1
+ var FU=Object.defineProperty;var DU=(r,e,t)=>e in r?FU(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var V=(r,e,t)=>DU(r,typeof e!="symbol"?e+"":e,t);import{r as Bt,au as yr,aV as dt,g as ih,aW as OU,aX as Eu,_ as PD,n as RD,B as FD,aE as DD,U as K1,aY as iB,aB as LU,j as Of,F as NU,aF as kU,z as UU,C as sB,aZ as zU,a_ as oB}from"./index.BEHais2d.js";import{_ as ls,a as GU,C as VU}from"./toConsumableArray.DfbSd22b.js";import{a as Wu,b as Ju,_ as Wx,c as dA,d as Jx}from"./possibleConstructorReturn.Bk9dXD1L.js";import{a as HU,T as jU}from"./Toolbar.BZBwHk6r.js";import{E as OD,w as $U}from"./withFullScreenWrapper.CAwHwFP9.js";import{u as WU}from"./useBasicWidgetState.DxtD7xs-.js";import{u as JU,s as XU}from"./threshold.DjX0wlsa.js";import"./FormClearHelper.CpsBciie.js";import"./value.CgPGBV_l.js";function KU(r,e){for(var t=0;t<e.length;t++){const n=e[t];if(typeof n!="string"&&!Array.isArray(n)){for(const i in n)if(i!=="default"&&!(i in r)){const o=Object.getOwnPropertyDescriptor(n,i);o&&Object.defineProperty(r,i,o.get?o:{enumerable:!0,get:()=>n[i]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}function Vm(r,e){if(!r)throw new Error(e||"loader assertion failed.")}const Xx=!!(typeof process!="object"||String(process)!=="[object process]"||process.browser),aB=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version);aB&&parseFloat(aB[1]);const Pu=globalThis,Ta=globalThis.process||{},YU=globalThis.navigator||{};function LD(r){var n,i;if(typeof window<"u"&&((n=window.process)==null?void 0:n.type)==="renderer"||typeof process<"u"&&((i=process.versions)!=null&&i.electron))return!0;const t=typeof navigator<"u"&&navigator.userAgent;return!!(t&&t.indexOf("Electron")>=0)}function rl(){return!(typeof process=="object"&&String(process)==="[object process]"&&!(process!=null&&process.browser))||LD()}function qU(r){return rl()?LD()?"Electron":(YU.userAgent||"").indexOf("Edge")>-1?"Edge":globalThis.chrome?"Chrome":globalThis.safari?"Safari":globalThis.mozInnerScreenX?"Firefox":"Unknown":"Node"}const ty="4.1.0";function ZU(r){try{const e=window[r],t="__storage_test__";return e.setItem(t,t),e.removeItem(t),e}catch{return null}}let QU=class{constructor(e,t,n="sessionStorage"){this.storage=ZU(n),this.id=e,this.config=t,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){if(Object.assign(this.config,e),this.storage){const t=JSON.stringify(this.config);this.storage.setItem(this.id,t)}}_loadConfiguration(){let e={};if(this.storage){const t=this.storage.getItem(this.id);e=t?JSON.parse(t):{}}return Object.assign(this.config,e),this}};function e5(r){let e;return r<10?e=`${r.toFixed(2)}ms`:r<100?e=`${r.toFixed(1)}ms`:r<1e3?e=`${r.toFixed(0)}ms`:e=`${(r/1e3).toFixed(2)}s`,e}function t5(r,e=8){const t=Math.max(e-r.length,0);return`${" ".repeat(t)}${r}`}var Hm;(function(r){r[r.BLACK=30]="BLACK",r[r.RED=31]="RED",r[r.GREEN=32]="GREEN",r[r.YELLOW=33]="YELLOW",r[r.BLUE=34]="BLUE",r[r.MAGENTA=35]="MAGENTA",r[r.CYAN=36]="CYAN",r[r.WHITE=37]="WHITE",r[r.BRIGHT_BLACK=90]="BRIGHT_BLACK",r[r.BRIGHT_RED=91]="BRIGHT_RED",r[r.BRIGHT_GREEN=92]="BRIGHT_GREEN",r[r.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",r[r.BRIGHT_BLUE=94]="BRIGHT_BLUE",r[r.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",r[r.BRIGHT_CYAN=96]="BRIGHT_CYAN",r[r.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(Hm||(Hm={}));const r5=10;function cB(r){return typeof r!="string"?r:(r=r.toUpperCase(),Hm[r]||Hm.WHITE)}function n5(r,e,t){return!rl&&typeof r=="string"&&(e&&(r=`\x1B[${cB(e)}m${r}\x1B[39m`),t&&(r=`\x1B[${cB(t)+r5}m${r}\x1B[49m`)),r}function i5(r,e=["constructor"]){const t=Object.getPrototypeOf(r),n=Object.getOwnPropertyNames(t),i=r;for(const o of n){const s=i[o];typeof s=="function"&&(e.find(c=>o===c)||(i[o]=s.bind(r)))}}function Kx(r,e){if(!r)throw new Error("Assertion failed")}function id(){var e,t,n;let r;if(rl()&&Pu.performance)r=(t=(e=Pu==null?void 0:Pu.performance)==null?void 0:e.now)==null?void 0:t.call(e);else if("hrtime"in Ta){const i=(n=Ta==null?void 0:Ta.hrtime)==null?void 0:n.call(Ta);r=i[0]*1e3+i[1]/1e6}else r=Date.now();return r}const sd={debug:rl()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},s5={enabled:!0,level:0};function od(){}const lB={},uB={once:!0};let ND=class{constructor({id:e}={id:""}){this.VERSION=ty,this._startTs=id(),this._deltaTs=id(),this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=e,this.userData={},this._storage=new QU(`__probe-${this.id}__`,s5),this.timeStamp(`${this.id} started`),i5(this),Object.seal(this)}set level(e){this.setLevel(e)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((id()-this._startTs).toPrecision(10))}getDelta(){return Number((id()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(e=!0){return this._storage.setConfiguration({enabled:e}),this}setLevel(e){return this._storage.setConfiguration({level:e}),this}get(e){return this._storage.config[e]}set(e,t){this._storage.setConfiguration({[e]:t})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(e,t){if(!e)throw new Error(t||"Assertion failed")}warn(e){return this._getLogFunction(0,e,sd.warn,arguments,uB)}error(e){return this._getLogFunction(0,e,sd.error,arguments)}deprecated(e,t){return this.warn(`\`${e}\` is deprecated and will be removed in a later version. Use \`${t}\` instead`)}removed(e,t){return this.error(`\`${e}\` has been removed. Use \`${t}\` instead`)}probe(e,t){return this._getLogFunction(e,t,sd.log,arguments,{time:!0,once:!0})}log(e,t){return this._getLogFunction(e,t,sd.debug,arguments)}info(e,t){return this._getLogFunction(e,t,console.info,arguments)}once(e,t){return this._getLogFunction(e,t,sd.debug||sd.info,arguments,uB)}table(e,t,n){return t?this._getLogFunction(e,t,console.table||od,n&&[n],{tag:a5(t)}):od}time(e,t){return this._getLogFunction(e,t,console.time?console.time:console.info)}timeEnd(e,t){return this._getLogFunction(e,t,console.timeEnd?console.timeEnd:console.info)}timeStamp(e,t){return this._getLogFunction(e,t,console.timeStamp||od)}group(e,t,n={collapsed:!1}){const i=fB({logLevel:e,message:t,opts:n}),{collapsed:o}=n;return i.method=(o?console.groupCollapsed:console.group)||console.info,this._getLogFunction(i)}groupCollapsed(e,t,n={}){return this.group(e,t,Object.assign({},n,{collapsed:!0}))}groupEnd(e){return this._getLogFunction(e,"",console.groupEnd||od)}withGroup(e,t,n){this.group(e,t)();try{n()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&this.getLevel()>=kD(e)}_getLogFunction(e,t,n,i,o){if(this._shouldLog(e)){o=fB({logLevel:e,message:t,args:i,opts:o}),n=n||o.method,Kx(n),o.total=this.getTotal(),o.delta=this.getDelta(),this._deltaTs=id();const s=o.tag||o.message;if(o.once&&s)if(!lB[s])lB[s]=id();else return od;return t=o5(this.id,o.message,o),n.bind(console,t,...o.args)}return od}};ND.VERSION=ty;function kD(r){if(!r)return 0;let e;switch(typeof r){case"number":e=r;break;case"object":e=r.logLevel||r.priority||0;break;default:return 0}return Kx(Number.isFinite(e)&&e>=0),e}function fB(r){const{logLevel:e,message:t}=r;r.logLevel=kD(e);const n=r.args?Array.from(r.args):[];for(;n.length&&n.shift()!==t;);switch(typeof e){case"string":case"function":t!==void 0&&n.unshift(t),r.message=e;break;case"object":Object.assign(r,e);break}typeof r.message=="function"&&(r.message=r.message());const i=typeof r.message;return Kx(i==="string"||i==="object"),Object.assign(r,{args:n},r.opts)}function o5(r,e,t){if(typeof e=="string"){const n=t.time?t5(e5(t.total)):"";e=t.time?`${r}: ${n} ${e}`:`${r}: ${e}`,e=n5(e,t.color,t.background)}return e}function a5(r){for(const e in r)for(const t in r[e])return t||"untitled";return"empty"}function c5(r,e){return UD(r||{},e)}function UD(r,e,t=0){if(t>3)return e;const n={...r};for(const[i,o]of Object.entries(e))o&&typeof o=="object"&&!Array.isArray(o)?n[i]=UD(n[i]||{},e[i],t+1):n[i]=e[i];return n}const l5="latest";function u5(){var r;return(r=globalThis._loadersgl_)!=null&&r.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.2.4"),globalThis._loadersgl_.version}const f5=u5();function ku(r,e){if(!r)throw new Error(e||"loaders.gl assertion failed.")}const $f=typeof process!="object"||String(process)!=="[object process]"||process.browser,h5=typeof window<"u"&&typeof window.orientation<"u",hB=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version);hB&&parseFloat(hB[1]);let d5=class{constructor(e,t){V(this,"name");V(this,"workerThread");V(this,"isRunning",!0);V(this,"result");V(this,"_resolve",()=>{});V(this,"_reject",()=>{});this.name=e,this.workerThread=t,this.result=new Promise((n,i)=>{this._resolve=n,this._reject=i})}postMessage(e,t){this.workerThread.postMessage({source:"loaders.gl",type:e,payload:t})}done(e){ku(this.isRunning),this.isRunning=!1,this._resolve(e)}error(e){ku(this.isRunning),this.isRunning=!1,this._reject(e)}},Rv=class{terminate(){}};const Fv=new Map;function A5(r){ku(r.source&&!r.url||!r.source&&r.url);let e=Fv.get(r.source||r.url);return e||(r.url&&(e=p5(r.url),Fv.set(r.url,e)),r.source&&(e=zD(r.source),Fv.set(r.source,e))),ku(e),e}function p5(r){if(!r.startsWith("http"))return r;const e=g5(r);return zD(e)}function zD(r){const e=new Blob([r],{type:"application/javascript"});return URL.createObjectURL(e)}function g5(r){return`try {
2
2
  importScripts('${r}');
3
3
  } catch (error) {
4
4
  console.error(error);
@@ -2606,7 +2606,7 @@ License: MIT
2606
2606
  `&&t!=="\r"&&t!==`\r
2607
2607
  `&&(t=`
2608
2608
  `);var y=0,b=!1;this.parse=function(E,S,O){if(typeof E!="string")throw new Error("Input must be a string");var k=E.length,G=e.length,W=t.length,z=n.length,j=lc(i);y=0;var K=[],fe=[],Z=[],ae=0;if(!E)return rt();if(s||s!==!1&&E.indexOf(c)===-1){for(var Be=E.split(t),Ne=0;Ne<Be.length;Ne++){const mt=Be[Ne];if(y+=mt.length,Ne!==Be.length-1)y+=t.length;else if(O)return rt();if(!(n&&mt.substr(0,z)===n)){if(j){if(K=[],Oe(mt.split(e)),ct(),b)return rt()}else Oe(mt.split(e));if(o&&Ne>=o)return K=K.slice(0,o),rt(!0)}}return rt()}for(var de=E.indexOf(e,y),_e=E.indexOf(t,y),pe=new RegExp(fg(f)+fg(c),"g"),J;;){if(E[y]===c){for(J=y,y++;;){if(J=E.indexOf(c,J+1),J===-1)return O||fe.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:K.length,index:y}),et();if(J===k-1){var te=E.substring(y,J).replace(pe,c);return et(te)}if(c===f&&E[J+1]===f){J++;continue}if(!(c!==f&&J!==0&&E[J-1]===f)){var be=_e===-1?de:Math.min(de,_e),Qe=Ge(be);if(E[J+1+Qe]===e){if(Z.push(E.substring(y,J).replace(pe,c)),y=J+1+Qe+G,de=E.indexOf(e,y),_e=E.indexOf(t,y),j&&(ct(),b))return rt();if(o&&K.length>=o)return rt(!0);break}var Te=Ge(_e);if(E.substr(J+1+Te,W)===t){if(Z.push(E.substring(y,J).replace(pe,c)),it(J+1+Te+W),de=E.indexOf(e,y),j&&(ct(),b))return rt();if(o&&K.length>=o)return rt(!0);break}fe.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:K.length,index:y}),J++}}if(j&&(ct(),b))return rt();if(o&&K.length>=o)return rt(!0);continue}if(n&&Z.length===0&&E.substr(y,z)===n){if(_e===-1)return rt();y=_e+W,_e=E.indexOf(t,y),de=E.indexOf(e,y);continue}if(de!==-1&&(de<_e||_e===-1)){Z.push(E.substring(y,de)),y=de+G,de=E.indexOf(e,y);continue}if(_e!==-1){if(Z.push(E.substring(y,_e)),it(_e+W),j&&(ct(),b))return rt();if(o&&K.length>=o)return rt(!0);continue}break}return et();function Oe(mt){K.push(mt),ae=y}function Ge(mt){var Et=0;if(mt!==-1){var tt=E.substring(J+1,mt);tt&&tt.trim()===""&&(Et=tt.length)}return Et}function et(mt){return O||(typeof mt>"u"&&(mt=E.substr(y)),Z.push(mt),y=k,Oe(Z),j&&ct()),rt()}function it(mt){y=mt,Oe(Z),Z=[],_e=E.indexOf(t,y)}function rt(mt,Et){var tt=Et||!1;return{data:tt?K[0]:K,errors:fe,meta:{delimiter:e,linebreak:t,aborted:b,truncated:!!mt,cursor:ae+(S||0)}}}function ct(){i(rt(void 0,!0)),K=[],fe=[]}},this.abort=function(){b=!0},this.getCharIndex=function(){return y}}function k4(r){if(typeof r!="object"||r===null)return r;var e=Array.isArray(r)?[]:{};for(var t in r)e[t]=k4(r[t]);return e}function lc(r){return typeof r=="function"}const Ba={parse:pte,unparse:gte,RECORD_SEP:"",UNIT_SEP:"",BYTE_ORDER_MARK:P3,BAD_DELIMITERS:["\r",`
2609
- `,'"',P3],WORKERS_SUPPORTED:!1,NODE_STREAM_INPUT:1,LocalChunkSize:1024*1024*10,RemoteChunkSize:1024*1024*5,DefaultDelimiter:",",Parser:nx,ParserHandle:N4,ChunkStreamer:L4},{ChunkStreamer:bte}=Ba;class xte extends bte{constructor(t={}){super(t);V(this,"textDecoder",new TextDecoder(this._config.encoding))}async stream(t){this._input=t;try{for await(const n of t)this.parseChunk(this.getStringChunk(n));this._finished=!0,this.parseChunk("")}catch(n){this._sendError(n)}}_nextChunk(){}getStringChunk(t){return typeof t=="string"?t:this.textDecoder.decode(t,{stream:!0})}}const wte="4.3.2",jw="object-row-table",$w={dataType:null,batchType:null,id:"csv",module:"csv",name:"CSV",version:wte,extensions:["csv","tsv","dsv"],mimeTypes:["text/csv","text/tab-separated-values","text/dsv"],category:"table",parse:async(r,e)=>R3(new TextDecoder().decode(r),e),parseText:(r,e)=>R3(r,e),parseInBatches:Cte,options:{csv:{shape:jw,optimizeMemoryUsage:!1,header:"auto",columnPrefix:"column",quoteChar:'"',escapeChar:'"',dynamicTyping:!0,comments:!1,skipEmptyLines:!0,delimitersToGuess:[","," ","|",";"]}}};async function R3(r,e){const t={...$w.options.csv,...e==null?void 0:e.csv},n=Tte(r),o=t.header==="auto"?U4(n):!!t.header,s={...t,header:o,download:!1,transformHeader:o?z4():void 0,error:E=>{throw new Error(E)}},c=Ba.parse(r,s),f=c.data,y=c.meta.fields||G4(t.columnPrefix,n.length),b=t.shape||jw;switch(b){case"object-row-table":return{shape:"object-row-table",data:f.map(E=>Array.isArray(E)?D4(E,y):E)};case"array-row-table":return{shape:"array-row-table",data:f.map(E=>Array.isArray(E)?E:O4(E,y))};default:throw new Error(b)}}function Cte(r,e){e={...e},e.batchSize==="auto"&&(e.batchSize=4e3);const t={...$w.options.csv,...e==null?void 0:e.csv},n=new Ate;let i=!0,o=null,s=null,c=null;const f={...t,header:!1,download:!1,chunkSize:1024*1024*5,skipEmptyLines:!1,step(y){let b=y.data;if(t.skipEmptyLines&&b.flat().join("").trim()==="")return;const E=y.meta.cursor;if(i&&!o&&(t.header==="auto"?U4(b):!!t.header)){o=b.map(z4());return}i&&(i=!1,o||(o=G4(t.columnPrefix,b.length)),c=Ete(b,o)),t.optimizeMemoryUsage&&(b=JSON.parse(JSON.stringify(b)));const S=t.shape||jw;s=s||new rx(c,{shape:S,...e});try{s.addRow(b);const O=s&&s.getFullBatch({bytesUsed:E});O&&n.enqueue(O)}catch(O){n.enqueue(O)}},complete(y){try{const b=y.meta.cursor,E=s&&s.getFinalBatch({bytesUsed:b});E&&n.enqueue(E)}catch(b){n.enqueue(b)}n.close()}};return Ba.parse(r,f,xte),n}function U4(r){return r&&r.every(e=>typeof e=="string")}function Tte(r){return Ba.parse(r,{dynamicTyping:!0,preview:1}).data[0]}function z4(){const r=new Set;return e=>{let t=e,n=1;for(;r.has(t);)t=`${e}.${n}`,n++;return r.add(t),t}}function G4(r,e=0){const t=[];for(let n=0;n<e;n++)t.push(`${r}${n+1}`);return t}function Ete(r,e){const t=e?{}:[];for(let n=0;n<r.length;n++){const i=e&&e[n]||n;switch(typeof r[n]){case"number":case"boolean":t[i]={name:String(i),index:n,type:Float32Array};break;case"string":default:t[i]={name:String(i),index:n,type:Array}}}return t}const Bte="4.3.2";async function V4(r,e,t,n){return n._parse(r,e,t,n)}function Qf(r,e){if(!r)throw new Error("loader assertion failed.")}const H4=!!(typeof process!="object"||String(process)!=="[object process]"||process.browser),F3=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version);F3&&parseFloat(F3[1]);const H0=globalThis,_d=globalThis.process||{};function Ste(r){var n,i;if(typeof window<"u"&&((n=window.process)==null?void 0:n.type)==="renderer"||typeof process<"u"&&((i=process.versions)!=null&&i.electron))return!0;const t=typeof navigator<"u"&&navigator.userAgent;return!!(t&&t.indexOf("Electron")>=0)}function Ww(){return!(typeof process=="object"&&String(process)==="[object process]"&&!(process!=null&&process.browser))||Ste()}const j4="4.0.7";function Ite(r){try{const e=window[r],t="__storage_test__";return e.setItem(t,t),e.removeItem(t),e}catch{return null}}class Mte{constructor(e,t,n="sessionStorage"){this.storage=Ite(n),this.id=e,this.config=t,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){if(Object.assign(this.config,e),this.storage){const t=JSON.stringify(this.config);this.storage.setItem(this.id,t)}}_loadConfiguration(){let e={};if(this.storage){const t=this.storage.getItem(this.id);e=t?JSON.parse(t):{}}return Object.assign(this.config,e),this}}function Pte(r){let e;return r<10?e=`${r.toFixed(2)}ms`:r<100?e=`${r.toFixed(1)}ms`:r<1e3?e=`${r.toFixed(0)}ms`:e=`${(r/1e3).toFixed(2)}s`,e}function Rte(r,e=8){const t=Math.max(e-r.length,0);return`${" ".repeat(t)}${r}`}var p_;(function(r){r[r.BLACK=30]="BLACK",r[r.RED=31]="RED",r[r.GREEN=32]="GREEN",r[r.YELLOW=33]="YELLOW",r[r.BLUE=34]="BLUE",r[r.MAGENTA=35]="MAGENTA",r[r.CYAN=36]="CYAN",r[r.WHITE=37]="WHITE",r[r.BRIGHT_BLACK=90]="BRIGHT_BLACK",r[r.BRIGHT_RED=91]="BRIGHT_RED",r[r.BRIGHT_GREEN=92]="BRIGHT_GREEN",r[r.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",r[r.BRIGHT_BLUE=94]="BRIGHT_BLUE",r[r.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",r[r.BRIGHT_CYAN=96]="BRIGHT_CYAN",r[r.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(p_||(p_={}));const Fte=10;function D3(r){return typeof r!="string"?r:(r=r.toUpperCase(),p_[r]||p_.WHITE)}function Dte(r,e,t){return!Ww&&typeof r=="string"&&(e&&(r=`\x1B[${D3(e)}m${r}\x1B[39m`),t&&(r=`\x1B[${D3(t)+Fte}m${r}\x1B[49m`)),r}function Ote(r,e=["constructor"]){const t=Object.getPrototypeOf(r),n=Object.getOwnPropertyNames(t),i=r;for(const o of n){const s=i[o];typeof s=="function"&&(e.find(c=>o===c)||(i[o]=s.bind(r)))}}function Jw(r,e){if(!r)throw new Error("Assertion failed")}function yd(){var e,t,n;let r;if(Ww()&&H0.performance)r=(t=(e=H0==null?void 0:H0.performance)==null?void 0:e.now)==null?void 0:t.call(e);else if("hrtime"in _d){const i=(n=_d==null?void 0:_d.hrtime)==null?void 0:n.call(_d);r=i[0]*1e3+i[1]/1e6}else r=Date.now();return r}const vd={debug:Ww()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},Lte={enabled:!0,level:0};function bd(){}const O3={},L3={once:!0};class py{constructor({id:e}={id:""}){this.VERSION=j4,this._startTs=yd(),this._deltaTs=yd(),this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=e,this.userData={},this._storage=new Mte(`__probe-${this.id}__`,Lte),this.timeStamp(`${this.id} started`),Ote(this),Object.seal(this)}set level(e){this.setLevel(e)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((yd()-this._startTs).toPrecision(10))}getDelta(){return Number((yd()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(e=!0){return this._storage.setConfiguration({enabled:e}),this}setLevel(e){return this._storage.setConfiguration({level:e}),this}get(e){return this._storage.config[e]}set(e,t){this._storage.setConfiguration({[e]:t})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(e,t){if(!e)throw new Error(t||"Assertion failed")}warn(e){return this._getLogFunction(0,e,vd.warn,arguments,L3)}error(e){return this._getLogFunction(0,e,vd.error,arguments)}deprecated(e,t){return this.warn(`\`${e}\` is deprecated and will be removed in a later version. Use \`${t}\` instead`)}removed(e,t){return this.error(`\`${e}\` has been removed. Use \`${t}\` instead`)}probe(e,t){return this._getLogFunction(e,t,vd.log,arguments,{time:!0,once:!0})}log(e,t){return this._getLogFunction(e,t,vd.debug,arguments)}info(e,t){return this._getLogFunction(e,t,console.info,arguments)}once(e,t){return this._getLogFunction(e,t,vd.debug||vd.info,arguments,L3)}table(e,t,n){return t?this._getLogFunction(e,t,console.table||bd,n&&[n],{tag:kte(t)}):bd}time(e,t){return this._getLogFunction(e,t,console.time?console.time:console.info)}timeEnd(e,t){return this._getLogFunction(e,t,console.timeEnd?console.timeEnd:console.info)}timeStamp(e,t){return this._getLogFunction(e,t,console.timeStamp||bd)}group(e,t,n={collapsed:!1}){const i=N3({logLevel:e,message:t,opts:n}),{collapsed:o}=n;return i.method=(o?console.groupCollapsed:console.group)||console.info,this._getLogFunction(i)}groupCollapsed(e,t,n={}){return this.group(e,t,Object.assign({},n,{collapsed:!0}))}groupEnd(e){return this._getLogFunction(e,"",console.groupEnd||bd)}withGroup(e,t,n){this.group(e,t)();try{n()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&this.getLevel()>=$4(e)}_getLogFunction(e,t,n,i,o){if(this._shouldLog(e)){o=N3({logLevel:e,message:t,args:i,opts:o}),n=n||o.method,Jw(n),o.total=this.getTotal(),o.delta=this.getDelta(),this._deltaTs=yd();const s=o.tag||o.message;if(o.once&&s)if(!O3[s])O3[s]=yd();else return bd;return t=Nte(this.id,o.message,o),n.bind(console,t,...o.args)}return bd}}py.VERSION=j4;function $4(r){if(!r)return 0;let e;switch(typeof r){case"number":e=r;break;case"object":e=r.logLevel||r.priority||0;break;default:return 0}return Jw(Number.isFinite(e)&&e>=0),e}function N3(r){const{logLevel:e,message:t}=r;r.logLevel=$4(e);const n=r.args?Array.from(r.args):[];for(;n.length&&n.shift()!==t;);switch(typeof e){case"string":case"function":t!==void 0&&n.unshift(t),r.message=e;break;case"object":Object.assign(r,e);break}typeof r.message=="function"&&(r.message=r.message());const i=typeof r.message;return Jw(i==="string"||i==="object"),Object.assign(r,{args:n},r.opts)}function Nte(r,e,t){if(typeof e=="string"){const n=t.time?Rte(Pte(t.total)):"";e=t.time?`${r}: ${n} ${e}`:`${r}: ${e}`,e=Dte(e,t.color,t.background)}return e}function kte(r){for(const e in r)for(const t in r[e])return t||"untitled";return"empty"}globalThis.probe={};const W4=new py({id:"@probe.gl/log"});function Ute(r){var e;globalThis.loaders||(globalThis.loaders={}),(e=globalThis.loaders).modules||(e.modules={}),Object.assign(globalThis.loaders.modules,r)}function zte(r){var t,n;return((n=(t=globalThis.loaders)==null?void 0:t.modules)==null?void 0:n[r])||null}function Gte(){var r;return(r=globalThis._loadersgl_)!=null&&r.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.3.2"),globalThis._loadersgl_.version}const Vte=Gte();function Hte(r,e){if(!r)throw new Error("loaders.gl assertion failed.")}const Cg=typeof process!="object"||String(process)!=="[object process]"||process.browser,Xw=typeof importScripts=="function",k3=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version);k3&&parseFloat(k3[1]);const _b={};async function Kf(r,e=null,t={},n=null){return e&&(r=jte(r,e,t,n)),_b[r]=_b[r]||$te(r),await _b[r]}function jte(r,e,t={},n=null){if(!t.useLocalLibraries&&r.startsWith("http"))return r;n=n||r;const i=t.modules||{};return i[n]?i[n]:Cg?t.CDN?(Hte(t.CDN.startsWith("http")),`${t.CDN}/${e}@${Vte}/dist/libs/${n}`):Xw?`../src/libs/${n}`:`modules/${e}/src/libs/${n}`:`modules/${e}/dist/libs/${n}`}async function $te(r){if(r.endsWith("wasm"))return await Jte(r);if(!Cg)try{const{requireFromFile:t}=globalThis.loaders||{};return await(t==null?void 0:t(r))}catch(t){return console.error(t),null}if(Xw)return importScripts(r);const e=await Xte(r);return Wte(e,r)}function Wte(r,e){if(!Cg){const{requireFromString:n}=globalThis.loaders||{};return n==null?void 0:n(r,e)}if(Xw)return eval.call(globalThis,r),null;const t=document.createElement("script");t.id=e;try{t.appendChild(document.createTextNode(r))}catch{t.text=r}return document.body.appendChild(t),null}async function Jte(r){const{readFileAsArrayBuffer:e}=globalThis.loaders||{};return Cg||!e||r.startsWith("http")?await(await fetch(r)).arrayBuffer():await e(r)}async function Xte(r){const{readFileAsText:e}=globalThis.loaders||{};return Cg||!e||r.startsWith("http")?await(await fetch(r)).text():await e(r)}function Kte(r,e=5){return typeof r=="string"?r.slice(0,e):ArrayBuffer.isView(r)?U3(r.buffer,r.byteOffset,e):r instanceof ArrayBuffer?U3(r,0,e):""}function U3(r,e,t){if(r.byteLength<=e+t)return"";const n=new DataView(r);let i="";for(let o=0;o<t;o++)i+=String.fromCharCode(n.getUint8(e+o));return i}function Yte(r){try{return JSON.parse(r)}catch{throw new Error(`Failed to parse JSON from data starting with "${Kte(r)}"`)}}function J4(r,e,t){const n=t!==void 0?new Uint8Array(r).subarray(e,e+t):new Uint8Array(r).subarray(e);return new Uint8Array(n).buffer}function Tg(r,e){return Qf(r>=0),Qf(e>0),r+(e-1)&-4}function qte(r,e,t){let n;if(r instanceof ArrayBuffer)n=new Uint8Array(r);else{const i=r.byteOffset,o=r.byteLength;n=new Uint8Array(r.buffer||r.arrayBuffer,i,o)}return e.set(n,t),t+Tg(n.byteLength,4)}function z3(){let r;if(typeof window<"u"&&window.performance)r=window.performance.now();else if(typeof process<"u"&&process.hrtime){const e=process.hrtime();r=e[0]*1e3+e[1]/1e6}else r=Date.now();return r}class G3{constructor(e,t){this.sampleSize=1,this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this.name=e,this.type=t,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(e){return this.sampleSize=e,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(e){return this._count+=e,this._samples++,this._checkSampling(),this}subtractCount(e){return this._count-=e,this._samples++,this._checkSampling(),this}addTime(e){return this._time+=e,this.lastTiming=e,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=z3(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(z3()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}}class X4{constructor(e){this.stats={},this.id=e.id,this.stats={},this._initializeStats(e.stats),Object.seal(this)}get(e,t="count"){return this._getOrCreate({name:e,type:t})}get size(){return Object.keys(this.stats).length}reset(){for(const e of Object.values(this.stats))e.reset();return this}forEach(e){for(const t of Object.values(this.stats))e(t)}getTable(){const e={};return this.forEach(t=>{e[t.name]={time:t.time||0,count:t.count||0,average:t.getAverageTime()||0,hz:t.getHz()||0}}),e}_initializeStats(e=[]){e.forEach(t=>this._getOrCreate(t))}_getOrCreate(e){const{name:t,type:n}=e;let i=this.stats[t];return i||(e instanceof G3?i=e:i=new G3(t,n),this.stats[t]=i),i}}var ID;const Zte=(ID=globalThis.loaders)==null?void 0:ID.parseImageNode,ix=typeof Image<"u",sx=typeof ImageBitmap<"u",Qte=!!Zte,ox=H4?!0:Qte;function ere(r){switch(r){case"auto":return sx||ix||ox;case"imagebitmap":return sx;case"image":return ix;case"data":return ox;default:throw new Error(`@loaders.gl/images: image ${r} not supported in this environment`)}}function tre(){if(sx)return"imagebitmap";if(ix)return"image";if(ox)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function rre(r){const e=nre(r);if(!e)throw new Error("Not an image");return e}function K4(r){switch(rre(r)){case"data":return r;case"image":case"imagebitmap":const e=document.createElement("canvas"),t=e.getContext("2d");if(!t)throw new Error("getImageData");return e.width=r.width,e.height=r.height,t.drawImage(r,0,0),t.getImageData(0,0,r.width,r.height);default:throw new Error("getImageData")}}function nre(r){return typeof ImageBitmap<"u"&&r instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&r instanceof Image?"image":r&&typeof r=="object"&&r.data&&r.width&&r.height?"data":null}const ire=/^data:image\/svg\+xml/,sre=/\.svg((\?|#).*)?$/;function Kw(r){return r&&(ire.test(r)||sre.test(r))}function ore(r,e){if(Kw(e)){let n=new TextDecoder().decode(r);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(n=unescape(encodeURIComponent(n)))}catch(o){throw new Error(o.message)}return`data:image/svg+xml;base64,${btoa(n)}`}return Y4(r,e)}function Y4(r,e){if(Kw(e))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(r)])}async function q4(r,e,t){const n=ore(r,t),i=self.URL||self.webkitURL,o=typeof n!="string"&&i.createObjectURL(n);try{return await are(o||n,e)}finally{o&&i.revokeObjectURL(o)}}async function are(r,e){const t=new Image;return t.src=r,e.image&&e.image.decode&&t.decode?(await t.decode(),t):await new Promise((n,i)=>{try{t.onload=()=>n(t),t.onerror=o=>{const s=o instanceof Error?o.message:"error";i(new Error(s))}}catch(o){i(o)}})}const cre={};let V3=!0;async function lre(r,e,t){let n;Kw(t)?n=await q4(r,e,t):n=Y4(r,t);const i=e&&e.imagebitmap;return await ure(n,i)}async function ure(r,e=null){if((fre(e)||!V3)&&(e=null),e)try{return await createImageBitmap(r,e)}catch(t){console.warn(t),V3=!1}return await createImageBitmap(r)}function fre(r){for(const e in r||cre)return!1;return!0}function hre(r){return!gre(r,"ftyp",4)||(r[8]&96)===0?null:dre(r)}function dre(r){switch(Are(r,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function Are(r,e,t){return String.fromCharCode(...r.slice(e,t))}function pre(r){return[...r].map(e=>e.charCodeAt(0))}function gre(r,e,t=0){const n=pre(e);for(let i=0;i<n.length;++i)if(n[i]!==r[i+t])return!1;return!0}const Jc=!1,Xp=!0;function Yw(r){const e=Eg(r);return _re(e)||bre(e)||yre(e)||vre(e)||mre(e)}function mre(r){const e=new Uint8Array(r instanceof DataView?r.buffer:r),t=hre(e);return t?{mimeType:t.mimeType,width:0,height:0}:null}function _re(r){const e=Eg(r);return e.byteLength>=24&&e.getUint32(0,Jc)===2303741511?{mimeType:"image/png",width:e.getUint32(16,Jc),height:e.getUint32(20,Jc)}:null}function yre(r){const e=Eg(r);return e.byteLength>=10&&e.getUint32(0,Jc)===1195984440?{mimeType:"image/gif",width:e.getUint16(6,Xp),height:e.getUint16(8,Xp)}:null}function vre(r){const e=Eg(r);return e.byteLength>=14&&e.getUint16(0,Jc)===16973&&e.getUint32(2,Xp)===e.byteLength?{mimeType:"image/bmp",width:e.getUint32(18,Xp),height:e.getUint32(22,Xp)}:null}function bre(r){const e=Eg(r);if(!(e.byteLength>=3&&e.getUint16(0,Jc)===65496&&e.getUint8(2)===255))return null;const{tableMarkers:n,sofMarkers:i}=xre();let o=2;for(;o+9<e.byteLength;){const s=e.getUint16(o,Jc);if(i.has(s))return{mimeType:"image/jpeg",height:e.getUint16(o+5,Jc),width:e.getUint16(o+7,Jc)};if(!n.has(s))return null;o+=2,o+=e.getUint16(o,Jc)}return null}function xre(){const r=new Set([65499,65476,65484,65501,65534]);for(let t=65504;t<65520;++t)r.add(t);return{tableMarkers:r,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function Eg(r){if(r instanceof DataView)return r;if(ArrayBuffer.isView(r))return new DataView(r.buffer);if(r instanceof ArrayBuffer)return new DataView(r);throw new Error("toDataView")}async function wre(r,e){var i;const{mimeType:t}=Yw(r)||{},n=(i=globalThis.loaders)==null?void 0:i.parseImageNode;return Qf(n),await n(r,t)}async function Cre(r,e,t){e=e||{};const i=(e.image||{}).type||"auto",{url:o}=t||{},s=Tre(i);let c;switch(s){case"imagebitmap":c=await lre(r,e,o);break;case"image":c=await q4(r,e,o);break;case"data":c=await wre(r);break;default:Qf(!1)}return i==="data"&&(c=K4(c)),c}function Tre(r){switch(r){case"auto":case"data":return tre();default:return ere(r),r}}const Ere=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],Bre=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],Sre={image:{type:"auto",decode:!0}},Ire={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:Bte,mimeTypes:Bre,extensions:Ere,parse:Cre,tests:[r=>!!Yw(new DataView(r))],options:Sre},yb={};function Mre(r){if(yb[r]===void 0){const e=H4?Rre(r):Pre(r);yb[r]=e}return yb[r]}function Pre(r){var i,o;const e=["image/png","image/jpeg","image/gif"],t=((i=globalThis.loaders)==null?void 0:i.imageFormatsNode)||e;return!!((o=globalThis.loaders)==null?void 0:o.parseImageNode)&&t.includes(r)}function Rre(r){switch(r){case"image/avif":case"image/webp":return Fre(r);default:return!0}}function Fre(r){try{return document.createElement("canvas").toDataURL(r).indexOf(`data:${r}`)===0}catch{return!1}}function Sa(r,e){if(!r)throw new Error(e||"assert failed: gltf")}const Z4={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Q4={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},H3=["SCALAR","VEC2","VEC3","VEC4"],Dre=[[Int8Array,5120],[Uint8Array,5121],[Int16Array,5122],[Uint16Array,5123],[Uint32Array,5125],[Float32Array,5126],[Float64Array,5130]],Ore=new Map(Dre),Lre={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Nre={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},kre={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function eL(r){return H3[r-1]||H3[0]}function gy(r){const e=Ore.get(r.constructor);if(!e)throw new Error("Illegal typed array");return e}function tL(r,e){const t=kre[r.componentType],n=Lre[r.type],i=Nre[r.componentType],o=r.count*n,s=r.count*n*i;Sa(s>=0&&s<=e.byteLength);const c=Q4[r.componentType],f=Z4[r.type];return{ArrayType:t,length:o,byteLength:s,componentByteSize:c,numberOfComponentsInElement:f}}function Ure(r,e,t){const n=r.bufferViews[t];Sa(n);const i=n.buffer,o=e[i];Sa(o);const s=(n.byteOffset||0)+o.byteOffset;return new Uint8Array(o.arrayBuffer,s,n.byteLength)}function zre(r,e,t){var G,W;const n=typeof t=="number"?(G=r.accessors)==null?void 0:G[t]:t;if(!n)throw new Error(`No gltf accessor ${JSON.stringify(t)}`);const i=(W=r.bufferViews)==null?void 0:W[n.bufferView||0];if(!i)throw new Error(`No gltf buffer view for accessor ${i}`);const{arrayBuffer:o,byteOffset:s}=e[i.buffer],c=(s||0)+(n.byteOffset||0)+(i.byteOffset||0),{ArrayType:f,length:y,componentByteSize:b,numberOfComponentsInElement:E}=tL(n,i),S=b*E,O=i.byteStride||S;if(typeof i.byteStride>"u"||i.byteStride===S)return new f(o,c,y);const k=new f(y);for(let z=0;z<n.count;z++){const j=new f(o,c+z*O,E);k.set(j,z*E)}return k}function Gre(){return{asset:{version:"2.0",generator:"loaders.gl"},buffers:[],extensions:{},extensionsRequired:[],extensionsUsed:[]}}let Is=class{constructor(e){V(this,"gltf");V(this,"sourceBuffers");V(this,"byteLength");this.gltf={json:(e==null?void 0:e.json)||Gre(),buffers:(e==null?void 0:e.buffers)||[],images:(e==null?void 0:e.images)||[]},this.sourceBuffers=[],this.byteLength=0,this.gltf.buffers&&this.gltf.buffers[0]&&(this.byteLength=this.gltf.buffers[0].byteLength,this.sourceBuffers=[this.gltf.buffers[0]])}get json(){return this.gltf.json}getApplicationData(e){return this.json[e]}getExtraData(e){return(this.json.extras||{})[e]}hasExtension(e){const t=this.getUsedExtensions().find(i=>i===e),n=this.getRequiredExtensions().find(i=>i===e);return typeof t=="string"||typeof n=="string"}getExtension(e){const t=this.getUsedExtensions().find(i=>i===e),n=this.json.extensions||{};return t?n[e]:null}getRequiredExtension(e){return this.getRequiredExtensions().find(n=>n===e)?this.getExtension(e):null}getRequiredExtensions(){return this.json.extensionsRequired||[]}getUsedExtensions(){return this.json.extensionsUsed||[]}getRemovedExtensions(){return this.json.extensionsRemoved||[]}getObjectExtension(e,t){return(e.extensions||{})[t]}getScene(e){return this.getObject("scenes",e)}getNode(e){return this.getObject("nodes",e)}getSkin(e){return this.getObject("skins",e)}getMesh(e){return this.getObject("meshes",e)}getMaterial(e){return this.getObject("materials",e)}getAccessor(e){return this.getObject("accessors",e)}getTexture(e){return this.getObject("textures",e)}getSampler(e){return this.getObject("samplers",e)}getImage(e){return this.getObject("images",e)}getBufferView(e){return this.getObject("bufferViews",e)}getBuffer(e){return this.getObject("buffers",e)}getObject(e,t){if(typeof t=="object")return t;const n=this.json[e]&&this.json[e][t];if(!n)throw new Error(`glTF file error: Could not find ${e}[${t}]`);return n}getTypedArrayForBufferView(e){e=this.getBufferView(e);const t=e.buffer,n=this.gltf.buffers[t];Sa(n);const i=(e.byteOffset||0)+n.byteOffset;return new Uint8Array(n.arrayBuffer,i,e.byteLength)}getTypedArrayForAccessor(e){const t=this.getAccessor(e);return zre(this.gltf.json,this.gltf.buffers,t)}getTypedArrayForImageData(e){e=this.getAccessor(e);const t=this.getBufferView(e.bufferView),i=this.getBuffer(t.buffer).data,o=t.byteOffset||0;return new Uint8Array(i,o,t.byteLength)}addApplicationData(e,t){return this.json[e]=t,this}addExtraData(e,t){return this.json.extras=this.json.extras||{},this.json.extras[e]=t,this}addObjectExtension(e,t,n){return e.extensions=e.extensions||{},e.extensions[t]=n,this.registerUsedExtension(t),this}setObjectExtension(e,t,n){const i=e.extensions||{};i[t]=n}removeObjectExtension(e,t){const n=(e==null?void 0:e.extensions)||{};if(n[t]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];const i=this.json.extensionsRemoved;i.includes(t)||i.push(t)}delete n[t]}addExtension(e,t={}){return Sa(t),this.json.extensions=this.json.extensions||{},this.json.extensions[e]=t,this.registerUsedExtension(e),t}addRequiredExtension(e,t={}){return Sa(t),this.addExtension(e,t),this.registerRequiredExtension(e),t}registerUsedExtension(e){this.json.extensionsUsed=this.json.extensionsUsed||[],this.json.extensionsUsed.find(t=>t===e)||this.json.extensionsUsed.push(e)}registerRequiredExtension(e){this.registerUsedExtension(e),this.json.extensionsRequired=this.json.extensionsRequired||[],this.json.extensionsRequired.find(t=>t===e)||this.json.extensionsRequired.push(e)}removeExtension(e){var t;if((t=this.json.extensions)!=null&&t[e]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];const n=this.json.extensionsRemoved;n.includes(e)||n.push(e)}this.json.extensions&&delete this.json.extensions[e],this.json.extensionsRequired&&this._removeStringFromArray(this.json.extensionsRequired,e),this.json.extensionsUsed&&this._removeStringFromArray(this.json.extensionsUsed,e)}setDefaultScene(e){this.json.scene=e}addScene(e){const{nodeIndices:t}=e;return this.json.scenes=this.json.scenes||[],this.json.scenes.push({nodes:t}),this.json.scenes.length-1}addNode(e){const{meshIndex:t,matrix:n}=e;this.json.nodes=this.json.nodes||[];const i={mesh:t};return n&&(i.matrix=n),this.json.nodes.push(i),this.json.nodes.length-1}addMesh(e){const{attributes:t,indices:n,material:i,mode:o=4}=e,c={primitives:[{attributes:this._addAttributes(t),mode:o}]};if(n){const f=this._addIndices(n);c.primitives[0].indices=f}return Number.isFinite(i)&&(c.primitives[0].material=i),this.json.meshes=this.json.meshes||[],this.json.meshes.push(c),this.json.meshes.length-1}addPointCloud(e){const n={primitives:[{attributes:this._addAttributes(e),mode:0}]};return this.json.meshes=this.json.meshes||[],this.json.meshes.push(n),this.json.meshes.length-1}addImage(e,t){const n=Yw(e),i=t||(n==null?void 0:n.mimeType),s={bufferView:this.addBufferView(e),mimeType:i};return this.json.images=this.json.images||[],this.json.images.push(s),this.json.images.length-1}addBufferView(e,t=0,n=this.byteLength){const i=e.byteLength;Sa(Number.isFinite(i)),this.sourceBuffers=this.sourceBuffers||[],this.sourceBuffers.push(e);const o={buffer:t,byteOffset:n,byteLength:i};return this.byteLength+=Tg(i,4),this.json.bufferViews=this.json.bufferViews||[],this.json.bufferViews.push(o),this.json.bufferViews.length-1}addAccessor(e,t){const n={bufferView:e,type:eL(t.size),componentType:t.componentType,count:t.count,max:t.max,min:t.min};return this.json.accessors=this.json.accessors||[],this.json.accessors.push(n),this.json.accessors.length-1}addBinaryBuffer(e,t={size:3}){const n=this.addBufferView(e);let i={min:t.min,max:t.max};(!i.min||!i.max)&&(i=this._getAccessorMinMax(e,t.size));const o={size:t.size,componentType:gy(e),count:Math.round(e.length/t.size),min:i.min,max:i.max};return this.addAccessor(n,Object.assign(o,t))}addTexture(e){const{imageIndex:t}=e,n={source:t};return this.json.textures=this.json.textures||[],this.json.textures.push(n),this.json.textures.length-1}addMaterial(e){return this.json.materials=this.json.materials||[],this.json.materials.push(e),this.json.materials.length-1}createBinaryChunk(){var o,s;const e=this.byteLength,t=new ArrayBuffer(e),n=new Uint8Array(t);let i=0;for(const c of this.sourceBuffers||[])i=qte(c,n,i);(s=(o=this.json)==null?void 0:o.buffers)!=null&&s[0]?this.json.buffers[0].byteLength=e:this.json.buffers=[{byteLength:e}],this.gltf.binary=t,this.sourceBuffers=[t],this.gltf.buffers=[{arrayBuffer:t,byteOffset:0,byteLength:t.byteLength}]}_removeStringFromArray(e,t){let n=!0;for(;n;){const i=e.indexOf(t);i>-1?e.splice(i,1):n=!1}}_addAttributes(e={}){const t={};for(const n in e){const i=e[n],o=this._getGltfAttributeName(n),s=this.addBinaryBuffer(i.value,i);t[o]=s}return t}_addIndices(e){return this.addBinaryBuffer(e,{size:1})}_getGltfAttributeName(e){switch(e.toLowerCase()){case"position":case"positions":case"vertices":return"POSITION";case"normal":case"normals":return"NORMAL";case"color":case"colors":return"COLOR_0";case"texcoord":case"texcoords":return"TEXCOORD_0";default:return e}}_getAccessorMinMax(e,t){const n={min:null,max:null};if(e.length<t)return n;n.min=[],n.max=[];const i=e.subarray(0,t);for(const o of i)n.min.push(o),n.max.push(o);for(let o=t;o<e.length;o+=t)for(let s=0;s<t;s++)n.min[0+s]=Math.min(n.min[0+s],e[o+s]),n.max[0+s]=Math.max(n.max[0+s],e[o+s]);return n}};function j3(r){return(r%1+1)%1}const rL={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16,BOOLEAN:1,STRING:1,ENUM:1},Vre={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:BigInt64Array,UINT64:BigUint64Array,FLOAT32:Float32Array,FLOAT64:Float64Array},nL={INT8:1,UINT8:1,INT16:2,UINT16:2,INT32:4,UINT32:4,INT64:8,UINT64:8,FLOAT32:4,FLOAT64:8};function qw(r,e){return nL[e]*rL[r]}function my(r,e,t,n){if(t!=="UINT8"&&t!=="UINT16"&&t!=="UINT32"&&t!=="UINT64")return null;const i=r.getTypedArrayForBufferView(e),o=_y(i,"SCALAR",t,n+1);return o instanceof BigInt64Array||o instanceof BigUint64Array?null:o}function _y(r,e,t,n=1){const i=rL[e],o=Vre[t],s=nL[t],c=n*i,f=c*s;let y=r.buffer,b=r.byteOffset;return b%s!==0&&(y=new Uint8Array(y).slice(b,b+f).buffer,b=0),new o(y,b,c)}function Zw(r,e,t){var y,b,E,S,O;const n=`TEXCOORD_${e.texCoord||0}`,i=t.attributes[n],o=r.getTypedArrayForAccessor(i),s=r.gltf.json,c=e.index,f=(b=(y=s.textures)==null?void 0:y[c])==null?void 0:b.source;if(typeof f<"u"){const k=(S=(E=s.images)==null?void 0:E[f])==null?void 0:S.mimeType,G=(O=r.gltf.images)==null?void 0:O[f];if(G&&typeof G.width<"u"){const W=[];for(let z=0;z<o.length;z+=2){const j=Hre(G,k,o,z,e.channels);W.push(j)}return W}}return[]}function iL(r,e,t,n,i){if(!(t!=null&&t.length))return;const o=[];for(const b of t){let E=n.findIndex(S=>S===b);E===-1&&(E=n.push(b)-1),o.push(E)}const s=new Uint32Array(o),c=r.gltf.buffers.push({arrayBuffer:s.buffer,byteOffset:s.byteOffset,byteLength:s.byteLength})-1,f=r.addBufferView(s,c,0),y=r.addAccessor(f,{size:1,componentType:gy(s),count:s.length});i.attributes[e]=y}function Hre(r,e,t,n,i=[0]){const o={r:{offset:0,shift:0},g:{offset:1,shift:8},b:{offset:2,shift:16},a:{offset:3,shift:24}},s=t[n],c=t[n+1];let f=1;e&&(e.indexOf("image/jpeg")!==-1||e.indexOf("image/png")!==-1)&&(f=4);const y=jre(s,c,r,f);let b=0;for(const E of i){const S=typeof E=="number"?Object.values(o)[E]:o[E],O=y+S.offset,k=K4(r);if(k.data.length<=O)throw new Error(`${k.data.length} <= ${O}`);const G=k.data[O];b|=G<<S.shift}return b}function jre(r,e,t,n=1){const i=t.width,o=j3(r)*(i-1),s=Math.round(o),c=t.height,f=j3(e)*(c-1),y=Math.round(f),b=t.components?t.components:n;return(y*i+s)*b}function sL(r,e,t,n,i){const o=[];for(let s=0;s<e;s++){const c=t[s],f=t[s+1]-t[s];if(f+c>n)break;const y=c/i,b=f/i;o.push(r.slice(y,y+b))}return o}function oL(r,e,t){const n=[];for(let i=0;i<e;i++){const o=i*t;n.push(r.slice(o,o+t))}return n}function aL(r,e,t,n){if(t)throw new Error("Not implemented - arrayOffsets for strings is specified");if(n){const i=[],o=new TextDecoder("utf8");let s=0;for(let c=0;c<r;c++){const f=n[c+1]-n[c];if(f+s<=e.length){const y=e.subarray(s,f+s),b=o.decode(y);i.push(b),s+=f}}return i}return[]}const lA="EXT_mesh_features",$re=lA;async function Wre(r,e){const t=new Is(r);Xre(t,e)}function Jre(r,e){const t=new Is(r);return Yre(t),t.createBinaryChunk(),t.gltf}function Xre(r,e){const t=r.gltf.json;if(t.meshes)for(const n of t.meshes)for(const i of n.primitives)Kre(r,i,e)}function Kre(r,e,t){var o,s,c;if(!((o=t==null?void 0:t.gltf)!=null&&o.loadBuffers))return;const n=(s=e.extensions)==null?void 0:s[lA],i=n==null?void 0:n.featureIds;if(i)for(const f of i){let y;if(typeof f.attribute<"u"){const b=`_FEATURE_ID_${f.attribute}`,E=e.attributes[b];y=r.getTypedArrayForAccessor(E)}else typeof f.texture<"u"&&((c=t==null?void 0:t.gltf)!=null&&c.loadImages)?y=Zw(r,f.texture,e):y=[];f.data=y}}function Yre(r,e){const t=r.gltf.json.meshes;if(t)for(const n of t)for(const i of n.primitives)Zre(r,i)}function qre(r,e,t,n){e.extensions||(e.extensions={});let i=e.extensions[lA];i||(i={featureIds:[]},e.extensions[lA]=i);const{featureIds:o}=i,s={featureCount:t.length,propertyTable:n,data:t};o.push(s),r.addObjectExtension(e,lA,i)}function Zre(r,e){var i;const t=(i=e.extensions)==null?void 0:i[lA];if(!t)return;const n=t.featureIds;n.forEach((o,s)=>{if(o.data){const{accessorKey:c,index:f}=Qre(e.attributes),y=new Uint32Array(o.data);n[s]={featureCount:y.length,propertyTable:o.propertyTable,attribute:f},r.gltf.buffers.push({arrayBuffer:y.buffer,byteOffset:y.byteOffset,byteLength:y.byteLength});const b=r.addBufferView(y),E=r.addAccessor(b,{size:1,componentType:gy(y),count:y.length});e.attributes[c]=E}})}function Qre(r){const e="_FEATURE_ID_",t=Object.keys(r).filter(o=>o.indexOf(e)===0);let n=-1;for(const o of t){const s=Number(o.substring(e.length));s>n&&(n=s)}return n++,{accessorKey:`${e}${n}`,index:n}}const ene=Object.freeze(Object.defineProperty({__proto__:null,createExtMeshFeatures:qre,decode:Wre,encode:Jre,name:$re},Symbol.toStringTag,{value:"Module"})),xA="EXT_structural_metadata",tne=xA;async function rne(r,e){const t=new Is(r);ine(t,e)}function nne(r,e){const t=new Is(r);return vne(t),t.createBinaryChunk(),t.gltf}function ine(r,e){var n,i;if(!((n=e.gltf)!=null&&n.loadBuffers))return;const t=r.getExtension(xA);t&&((i=e.gltf)!=null&&i.loadImages&&sne(r,t),one(r,t))}function sne(r,e){const t=e.propertyTextures,n=r.gltf.json;if(t&&n.meshes)for(const i of n.meshes)for(const o of i.primitives)cne(r,t,o,e)}function one(r,e){const t=e.schema;if(!t)return;const n=t.classes,i=e.propertyTables;if(n&&i)for(const o in n){const s=ane(i,o);s&&une(r,t,s)}}function ane(r,e){for(const t of r)if(t.class===e)return t;return null}function cne(r,e,t,n){var s;if(!e)return;const i=(s=t.extensions)==null?void 0:s[xA],o=i==null?void 0:i.propertyTextures;if(o)for(const c of o){const f=e[c];lne(r,f,t,n)}}function lne(r,e,t,n){var o;if(!e.properties)return;n.dataAttributeNames||(n.dataAttributeNames=[]);const i=e.class;for(const s in e.properties){const c=`${i}_${s}`,f=(o=e.properties)==null?void 0:o[s];if(!f)continue;f.data||(f.data=[]);const y=f.data,b=Zw(r,f,t);b!==null&&(iL(r,c,b,y,t),f.data=y,n.dataAttributeNames.push(c))}}function une(r,e,t){var o,s;const n=(o=e.classes)==null?void 0:o[t.class];if(!n)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${t.class}`);const i=t.count;for(const c in n.properties){const f=n.properties[c],y=(s=t.properties)==null?void 0:s[c];if(y){const b=fne(r,e,f,i,y);y.data=b}}}function fne(r,e,t,n,i){let o=[];const s=i.values,c=r.getTypedArrayForBufferView(s),f=hne(r,t,i,n),y=dne(r,i,n);switch(t.type){case"SCALAR":case"VEC2":case"VEC3":case"VEC4":case"MAT2":case"MAT3":case"MAT4":{o=Ane(t,n,c,f);break}case"BOOLEAN":throw new Error(`Not implemented - classProperty.type=${t.type}`);case"STRING":{o=aL(n,c,f,y);break}case"ENUM":{o=pne(e,t,n,c,f);break}default:throw new Error(`Unknown classProperty type ${t.type}`)}return o}function hne(r,e,t,n){return e.array&&typeof e.count>"u"&&typeof t.arrayOffsets<"u"?my(r,t.arrayOffsets,t.arrayOffsetType||"UINT32",n):null}function dne(r,e,t){return typeof e.stringOffsets<"u"?my(r,e.stringOffsets,e.stringOffsetType||"UINT32",t):null}function Ane(r,e,t,n){const i=r.array,o=r.count,s=qw(r.type,r.componentType),c=t.byteLength/s;let f;return r.componentType?f=_y(t,r.type,r.componentType,c):f=t,i?n?sL(f,e,n,t.length,s):o?oL(f,e,o):[]:f}function pne(r,e,t,n,i){var E;const o=e.enumType;if(!o)throw new Error("Incorrect data in the EXT_structural_metadata extension: classProperty.enumType is not set for type ENUM");const s=(E=r.enums)==null?void 0:E[o];if(!s)throw new Error(`Incorrect data in the EXT_structural_metadata extension: schema.enums does't contain ${o}`);const c=s.valueType||"UINT16",f=qw(e.type,c),y=n.byteLength/f;let b=_y(n,e.type,c,y);if(b||(b=n),e.array){if(i)return gne({valuesData:b,numberOfElements:t,arrayOffsets:i,valuesDataBytesLength:n.length,elementSize:f,enumEntry:s});const S=e.count;return S?mne(b,t,S,s):[]}return Qw(b,0,t,s)}function gne(r){const{valuesData:e,numberOfElements:t,arrayOffsets:n,valuesDataBytesLength:i,elementSize:o,enumEntry:s}=r,c=[];for(let f=0;f<t;f++){const y=n[f],b=n[f+1]-n[f];if(b+y>i)break;const E=y/o,S=b/o,O=Qw(e,E,S,s);c.push(O)}return c}function mne(r,e,t,n){const i=[];for(let o=0;o<e;o++){const s=t*o,c=Qw(r,s,t,n);i.push(c)}return i}function Qw(r,e,t,n){const i=[];for(let o=0;o<t;o++)if(r instanceof BigInt64Array||r instanceof BigUint64Array)i.push("");else{const s=r[e+o],c=_ne(n,s);c?i.push(c.name):i.push("")}return i}function _ne(r,e){for(const t of r.values)if(t.value===e)return t;return null}const yne="schemaClassId";function vne(r,e){var n,i;const t=r.getExtension(xA);if(t&&t.propertyTables)for(const o of t.propertyTables){const s=o.class,c=(i=(n=t.schema)==null?void 0:n.classes)==null?void 0:i[s];o.properties&&c&&bne(o,c,r)}}function bne(r,e,t){for(const n in r.properties){const i=r.properties[n].data;if(i){const o=e.properties[n];if(o){const s=Tne(i,o,t);r.properties[n]=s}}}}function xne(r,e,t=yne){let n=r.getExtension(xA);n||(n=r.addExtension(xA)),n.schema=wne(e,t,n.schema);const i=Cne(e,t,n.schema);return n.propertyTables||(n.propertyTables=[]),n.propertyTables.push(i)-1}function wne(r,e,t){const n=t??{id:"schema_id"},i={properties:{}};for(const o of r){const s={type:o.elementType,componentType:o.componentType};i.properties[o.name]=s}return n.classes={},n.classes[e]=i,n}function Cne(r,e,t){var s;const n={class:e,count:0};let i=0;const o=(s=t.classes)==null?void 0:s[e];for(const c of r){if(i===0&&(i=c.values.length),i!==c.values.length&&c.values.length)throw new Error("Illegal values in attributes");(o==null?void 0:o.properties[c.name])&&(n.properties||(n.properties={}),n.properties[c.name]={values:0,data:c.values})}return n.count=i,n}function Tne(r,e,t){const n={values:0};if(e.type==="STRING"){const{stringData:i,stringOffsets:o}=Sne(r);n.stringOffsets=vb(o,t),n.values=vb(i,t)}else if(e.type==="SCALAR"&&e.componentType){const i=Bne(r,e.componentType);n.values=vb(i,t)}return n}const Ene={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:Int32Array,UINT64:Uint32Array,FLOAT32:Float32Array,FLOAT64:Float64Array};function Bne(r,e){const t=[];for(const i of r)t.push(Number(i));const n=Ene[e];if(!n)throw new Error("Illegal component type");return new n(t)}function Sne(r){const e=new TextEncoder,t=[];let n=0;for(const f of r){const y=e.encode(f);n+=y.length,t.push(y)}const i=new Uint8Array(n),o=[];let s=0;for(const f of t)i.set(f,s),o.push(s),s+=f.length;o.push(s);const c=new Uint32Array(o);return{stringData:i,stringOffsets:c}}function vb(r,e){return e.gltf.buffers.push({arrayBuffer:r.buffer,byteOffset:r.byteOffset,byteLength:r.byteLength}),e.addBufferView(r)}const Ine=Object.freeze(Object.defineProperty({__proto__:null,createExtStructuralMetadata:xne,decode:rne,encode:nne,name:tne},Symbol.toStringTag,{value:"Module"})),cL="EXT_feature_metadata",Mne=cL;async function Pne(r,e){const t=new Is(r);Rne(t,e)}function Rne(r,e){var n,i;if(!((n=e.gltf)!=null&&n.loadBuffers))return;const t=r.getExtension(cL);t&&((i=e.gltf)!=null&&i.loadImages&&Fne(r,t),Dne(r,t))}function Fne(r,e){const t=e.schema;if(!t)return;const n=t.classes,{featureTextures:i}=e;if(n&&i)for(const o in n){const s=n[o],c=Lne(i,o);c&&kne(r,c,s)}}function Dne(r,e){const t=e.schema;if(!t)return;const n=t.classes,i=e.featureTables;if(n&&i)for(const o in n){const s=One(i,o);s&&Nne(r,t,s)}}function One(r,e){for(const t in r){const n=r[t];if(n.class===e)return n}return null}function Lne(r,e){for(const t in r){const n=r[t];if(n.class===e)return n}return null}function Nne(r,e,t){var o,s;if(!t.class)return;const n=(o=e.classes)==null?void 0:o[t.class];if(!n)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${t.class}`);const i=t.count;for(const c in n.properties){const f=n.properties[c],y=(s=t.properties)==null?void 0:s[c];if(y){const b=Une(r,e,f,i,y);y.data=b}}}function kne(r,e,t){var i;const n=e.class;for(const o in t.properties){const s=(i=e==null?void 0:e.properties)==null?void 0:i[o];if(s){const c=jne(r,s,n);s.data=c}}}function Une(r,e,t,n,i){let o=[];const s=i.bufferView,c=r.getTypedArrayForBufferView(s),f=zne(r,t,i,n),y=Gne(r,t,i,n);return t.type==="STRING"||t.componentType==="STRING"?o=aL(n,c,f,y):Vne(t)&&(o=Hne(t,n,c,f)),o}function zne(r,e,t,n){return e.type==="ARRAY"&&typeof e.componentCount>"u"&&typeof t.arrayOffsetBufferView<"u"?my(r,t.arrayOffsetBufferView,t.offsetType||"UINT32",n):null}function Gne(r,e,t,n){return typeof t.stringOffsetBufferView<"u"?my(r,t.stringOffsetBufferView,t.offsetType||"UINT32",n):null}function Vne(r){const e=["UINT8","INT16","UINT16","INT32","UINT32","INT64","UINT64","FLOAT32","FLOAT64"];return e.includes(r.type)||typeof r.componentType<"u"&&e.includes(r.componentType)}function Hne(r,e,t,n){const i=r.type==="ARRAY",o=r.componentCount,s="SCALAR",c=r.componentType||r.type,f=qw(s,c),y=t.byteLength/f,b=_y(t,s,c,y);return i?n?sL(b,e,n,t.length,f):o?oL(b,e,o):[]:b}function jne(r,e,t){const n=r.gltf.json;if(!n.meshes)return[];const i=[];for(const o of n.meshes)for(const s of o.primitives)$ne(r,t,e,i,s);return i}function $ne(r,e,t,n,i){const o={channels:t.channels,...t.texture},s=Zw(r,o,i);s&&iL(r,e,s,n,i)}const Wne=Object.freeze(Object.defineProperty({__proto__:null,decode:Pne,name:Mne},Symbol.toStringTag,{value:"Module"})),Jne="4.3.2",Xne="4.3.2",g_={TRANSCODER:"basis_transcoder.js",TRANSCODER_WASM:"basis_transcoder.wasm",ENCODER:"basis_encoder.js",ENCODER_WASM:"basis_encoder.wasm"};let $3;async function W3(r){Ute(r.modules);const e=zte("basis");return e||($3||($3=Kne(r)),await $3)}async function Kne(r){let e=null,t=null;return[e,t]=await Promise.all([await Kf(g_.TRANSCODER,"textures",r),await Kf(g_.TRANSCODER_WASM,"textures",r)]),e=e||globalThis.BASIS,await Yne(e,t)}function Yne(r,e){const t={};return e&&(t.wasmBinary=e),new Promise(n=>{r(t).then(i=>{const{BasisFile:o,initializeBasis:s}=i;s(),n({BasisFile:o})})})}let bb;async function J3(r){const e=r.modules||{};return e.basisEncoder?e.basisEncoder:(bb=bb||qne(r),await bb)}async function qne(r){let e=null,t=null;return[e,t]=await Promise.all([await Kf(g_.ENCODER,"textures",r),await Kf(g_.ENCODER_WASM,"textures",r)]),e=e||globalThis.BASIS,await Zne(e,t)}function Zne(r,e){const t={};return e&&(t.wasmBinary=e),new Promise(n=>{r(t).then(i=>{const{BasisFile:o,KTX2File:s,initializeBasis:c,BasisEncoder:f}=i;c(),n({BasisFile:o,KTX2File:s,BasisEncoder:f})})})}const xd={COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGB_ETC1_WEBGL:36196,COMPRESSED_RGBA_ASTC_4X4_KHR:37808},Qne=["","WEBKIT_","MOZ_"],X3={WEBGL_compressed_texture_s3tc:"dxt",WEBGL_compressed_texture_s3tc_srgb:"dxt-srgb",WEBGL_compressed_texture_etc1:"etc1",WEBGL_compressed_texture_etc:"etc2",WEBGL_compressed_texture_pvrtc:"pvrtc",WEBGL_compressed_texture_atc:"atc",WEBGL_compressed_texture_astc:"astc",EXT_texture_compression_rgtc:"rgtc"};let j0=null;function eie(r){if(!j0){r=r||tie()||void 0,j0=new Set;for(const e of Qne)for(const t in X3)if(r&&r.getExtension(`${e}${t}`)){const n=X3[t];j0.add(n)}}return j0}function tie(){try{return document.createElement("canvas").getContext("webgl")}catch{return null}}const Qo=[171,75,84,88,32,50,48,187,13,10,26,10];function rie(r){const e=new Uint8Array(r);return!(e.byteLength<Qo.length||e[0]!==Qo[0]||e[1]!==Qo[1]||e[2]!==Qo[2]||e[3]!==Qo[3]||e[4]!==Qo[4]||e[5]!==Qo[5]||e[6]!==Qo[6]||e[7]!==Qo[7]||e[8]!==Qo[8]||e[9]!==Qo[9]||e[10]!==Qo[10]||e[11]!==Qo[11])}const nie={etc1:{basisFormat:0,compressed:!0,format:xd.COMPRESSED_RGB_ETC1_WEBGL},etc2:{basisFormat:1,compressed:!0},bc1:{basisFormat:2,compressed:!0,format:xd.COMPRESSED_RGB_S3TC_DXT1_EXT},bc3:{basisFormat:3,compressed:!0,format:xd.COMPRESSED_RGBA_S3TC_DXT5_EXT},bc4:{basisFormat:4,compressed:!0},bc5:{basisFormat:5,compressed:!0},"bc7-m6-opaque-only":{basisFormat:6,compressed:!0},"bc7-m5":{basisFormat:7,compressed:!0},"pvrtc1-4-rgb":{basisFormat:8,compressed:!0,format:xd.COMPRESSED_RGB_PVRTC_4BPPV1_IMG},"pvrtc1-4-rgba":{basisFormat:9,compressed:!0,format:xd.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG},"astc-4x4":{basisFormat:10,compressed:!0,format:xd.COMPRESSED_RGBA_ASTC_4X4_KHR},"atc-rgb":{basisFormat:11,compressed:!0},"atc-rgba-interpolated-alpha":{basisFormat:12,compressed:!0},rgba32:{basisFormat:13,compressed:!1},rgb565:{basisFormat:14,compressed:!1},bgr565:{basisFormat:15,compressed:!1},rgba4444:{basisFormat:16,compressed:!1}};async function iie(r,e){if(e.basis.containerFormat==="auto"){if(rie(r)){const n=await J3(e);return K3(n.KTX2File,r,e)}const{BasisFile:t}=await W3(e);return xb(t,r,e)}switch(e.basis.module){case"encoder":const t=await J3(e);switch(e.basis.containerFormat){case"ktx2":return K3(t.KTX2File,r,e);case"basis":default:return xb(t.BasisFile,r,e)}case"transcoder":default:const{BasisFile:n}=await W3(e);return xb(n,r,e)}}function xb(r,e,t){const n=new r(new Uint8Array(e));try{if(!n.startTranscoding())throw new Error("Failed to start basis transcoding");const i=n.getNumImages(),o=[];for(let s=0;s<i;s++){const c=n.getNumLevels(s),f=[];for(let y=0;y<c;y++)f.push(sie(n,s,y,t));o.push(f)}return o}finally{n.close(),n.delete()}}function sie(r,e,t,n){const i=r.getImageWidth(e,t),o=r.getImageHeight(e,t),s=r.getHasAlpha(),{compressed:c,format:f,basisFormat:y}=lL(n,s),b=r.getImageTranscodedSizeInBytes(e,t,y),E=new Uint8Array(b);if(!r.transcodeImage(E,e,t,y,0,0))throw new Error("failed to start Basis transcoding");return{width:i,height:o,data:E,compressed:c,format:f,hasAlpha:s}}function K3(r,e,t){const n=new r(new Uint8Array(e));try{if(!n.startTranscoding())throw new Error("failed to start KTX2 transcoding");const i=n.getLevels(),o=[];for(let s=0;s<i;s++)o.push(oie(n,s,t));return[o]}finally{n.close(),n.delete()}}function oie(r,e,t){const{alphaFlag:n,height:i,width:o}=r.getImageLevelInfo(e,0,0),{compressed:s,format:c,basisFormat:f}=lL(t,n),y=r.getImageTranscodedSizeInBytes(e,0,0,f),b=new Uint8Array(y);if(!r.transcodeImage(b,e,0,0,f,0,-1,-1))throw new Error("Failed to transcode KTX2 image");return{width:o,height:i,data:b,compressed:s,levelSize:y,hasAlpha:n,format:c}}function lL(r,e){let t=r&&r.basis&&r.basis.format;return t==="auto"&&(t=uL()),typeof t=="object"&&(t=e?t.alpha:t.noAlpha),t=t.toLowerCase(),nie[t]}function uL(){const r=eie();return r.has("astc")?"astc-4x4":r.has("dxt")?{alpha:"bc3",noAlpha:"bc1"}:r.has("pvrtc")?{alpha:"pvrtc1-4-rgba",noAlpha:"pvrtc1-4-rgb"}:r.has("etc1")?"etc1":r.has("etc2")?"etc2":"rgb565"}const aie={dataType:null,batchType:null,name:"Basis",id:"basis",module:"textures",version:Xne,worker:!0,extensions:["basis","ktx2"],mimeTypes:["application/octet-stream","image/ktx2"],tests:["sB"],binary:!0,options:{basis:{format:"auto",libraryPath:"libs/",containerFormat:"auto",module:"transcoder"}}},cie={...aie,parse:iie},wA=!0,Y3=1735152710,eC=12,m_=8,lie=1313821514,uie=5130562,fie=0,hie=0,die=1;function Aie(r,e=0){return`${String.fromCharCode(r.getUint8(e+0))}${String.fromCharCode(r.getUint8(e+1))}${String.fromCharCode(r.getUint8(e+2))}${String.fromCharCode(r.getUint8(e+3))}`}function pie(r,e=0,t={}){const n=new DataView(r),{magic:i=Y3}=t,o=n.getUint32(e,!1);return o===i||o===Y3}function gie(r,e,t=0,n={}){const i=new DataView(e),o=Aie(i,t+0),s=i.getUint32(t+4,wA),c=i.getUint32(t+8,wA);switch(Object.assign(r,{header:{byteOffset:t,byteLength:c,hasBinChunk:!1},type:o,version:s,json:{},binChunks:[]}),t+=eC,r.version){case 1:return mie(r,i,t);case 2:return _ie(r,i,t,n={});default:throw new Error(`Invalid GLB version ${r.version}. Only supports version 1 and 2.`)}}function mie(r,e,t){Qf(r.header.byteLength>eC+m_);const n=e.getUint32(t+0,wA),i=e.getUint32(t+4,wA);return t+=m_,Qf(i===fie),ax(r,e,t,n),t+=n,t+=cx(r,e,t,r.header.byteLength),t}function _ie(r,e,t,n){return Qf(r.header.byteLength>eC+m_),yie(r,e,t,n),t+r.header.byteLength}function yie(r,e,t,n){for(;t+8<=r.header.byteLength;){const i=e.getUint32(t+0,wA),o=e.getUint32(t+4,wA);switch(t+=m_,o){case lie:ax(r,e,t,i);break;case uie:cx(r,e,t,i);break;case hie:n.strict||ax(r,e,t,i);break;case die:n.strict||cx(r,e,t,i);break}t+=Tg(i,4)}return t}function ax(r,e,t,n){const i=new Uint8Array(e.buffer,t,n),s=new TextDecoder("utf8").decode(i);return r.json=JSON.parse(s),Tg(n,4)}function cx(r,e,t,n){return r.header.hasBinChunk=!0,r.binChunks.push({byteOffset:t,byteLength:n,arrayBuffer:e.buffer}),Tg(n,4)}function fL(r,e){if(r.startsWith("data:")||r.startsWith("http:")||r.startsWith("https:"))return r;const n=e.baseUri||e.uri;if(!n)throw new Error(`'baseUri' must be provided to resolve relative url ${r}`);return n.substr(0,n.lastIndexOf("/")+1)+r}const vie="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",bie="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",xie=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),wie=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]),Cie={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},Tie={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};async function Eie(r,e,t,n,i,o="NONE"){const s=await Bie();Mie(s,s.exports[Tie[i]],r,e,t,n,s.exports[Cie[o||"NONE"]])}let wb;async function Bie(){return wb||(wb=Sie()),wb}async function Sie(){let r=vie;WebAssembly.validate(xie)&&(r=bie,console.log("Warning: meshopt_decoder is using experimental SIMD support"));const e=await WebAssembly.instantiate(Iie(r),{});return await e.instance.exports.__wasm_call_ctors(),e.instance}function Iie(r){const e=new Uint8Array(r.length);for(let n=0;n<r.length;++n){const i=r.charCodeAt(n);e[n]=i>96?i-71:i>64?i-65:i>47?i+4:i>46?63:62}let t=0;for(let n=0;n<r.length;++n)e[t++]=e[n]<60?wie[e[n]]:(e[n]-60)*64+e[++n];return e.buffer.slice(0,t)}function Mie(r,e,t,n,i,o,s){const c=r.exports.sbrk,f=n+3&-4,y=c(f*i),b=c(o.length),E=new Uint8Array(r.exports.memory.buffer);E.set(o,b);const S=e(y,n,i,b,o.length);if(S===0&&s&&s(y,f,i),t.set(E.subarray(y,y+n*i)),c(y-c(0)),S!==0)throw new Error(`Malformed buffer data: ${S}`)}const __="EXT_meshopt_compression",Pie=__;async function Rie(r,e){var i,o;const t=new Is(r);if(!((i=e==null?void 0:e.gltf)!=null&&i.decompressMeshes)||!((o=e.gltf)!=null&&o.loadBuffers))return;const n=[];for(const s of r.json.bufferViews||[])n.push(Fie(t,s));await Promise.all(n),t.removeExtension(__)}async function Fie(r,e){const t=r.getObjectExtension(e,__);if(t){const{byteOffset:n=0,byteLength:i=0,byteStride:o,count:s,mode:c,filter:f="NONE",buffer:y}=t,b=r.gltf.buffers[y],E=new Uint8Array(b.arrayBuffer,b.byteOffset+n,i),S=new Uint8Array(r.gltf.buffers[e.buffer].arrayBuffer,e.byteOffset,e.byteLength);await Eie(S,s,o,E,c,f),r.removeObjectExtension(e,__)}}const Die=Object.freeze(Object.defineProperty({__proto__:null,decode:Rie,name:Pie},Symbol.toStringTag,{value:"Module"})),zd="EXT_texture_webp",Oie=zd;function Lie(r,e){const t=new Is(r);if(!Mre("image/webp")){if(t.getRequiredExtensions().includes(zd))throw new Error(`gltf: Required extension ${zd} not supported by browser`);return}const{json:n}=t;for(const i of n.textures||[]){const o=t.getObjectExtension(i,zd);o&&(i.source=o.source),t.removeObjectExtension(i,zd)}t.removeExtension(zd)}const Nie=Object.freeze(Object.defineProperty({__proto__:null,name:Oie,preprocess:Lie},Symbol.toStringTag,{value:"Module"})),Mm="KHR_texture_basisu",kie=Mm;function Uie(r,e){const t=new Is(r),{json:n}=t;for(const i of n.textures||[]){const o=t.getObjectExtension(i,Mm);o&&(i.source=o.source,t.removeObjectExtension(i,Mm))}t.removeExtension(Mm)}const zie=Object.freeze(Object.defineProperty({__proto__:null,name:kie,preprocess:Uie},Symbol.toStringTag,{value:"Module"})),Gie="4.3.2",Vie={dataType:null,batchType:null,name:"Draco",id:"draco",module:"draco",version:Gie,worker:!0,extensions:["drc"],mimeTypes:["application/octet-stream"],binary:!0,tests:["DRACO"],options:{draco:{decoderType:typeof WebAssembly=="object"?"wasm":"js",libraryPath:"libs/",extraAttributes:{},attributeNameEntry:void 0}}};function Hie(r){switch(r.constructor){case Int8Array:return"int8";case Uint8Array:case Uint8ClampedArray:return"uint8";case Int16Array:return"int16";case Uint16Array:return"uint16";case Int32Array:return"int32";case Uint32Array:return"uint32";case Float32Array:return"float32";case Float64Array:return"float64";default:return"null"}}function jie(r){let e=1/0,t=1/0,n=1/0,i=-1/0,o=-1/0,s=-1/0;const c=r.POSITION?r.POSITION.value:[],f=c&&c.length;for(let y=0;y<f;y+=3){const b=c[y],E=c[y+1],S=c[y+2];e=b<e?b:e,t=E<t?E:t,n=S<n?S:n,i=b>i?b:i,o=E>o?E:o,s=S>s?S:s}return[[e,t,n],[i,o,s]]}function $ie(r,e,t){const n=Hie(e.value),i=t||Wie(e);return{name:r,type:{type:"fixed-size-list",listSize:e.size,children:[{name:"value",type:n}]},nullable:!1,metadata:i}}function Wie(r){const e={};return"byteOffset"in r&&(e.byteOffset=r.byteOffset.toString(10)),"byteStride"in r&&(e.byteStride=r.byteStride.toString(10)),"normalized"in r&&(e.normalized=r.normalized.toString()),e}function Jie(r,e,t){const n=hL(e.metadata),i=[],o=Xie(e.attributes);for(const s in r){const c=r[s],f=q3(s,c,o[s]);i.push(f)}if(t){const s=q3("indices",t);i.push(s)}return{fields:i,metadata:n}}function Xie(r){const e={};for(const t in r){const n=r[t];e[n.name||"undefined"]=n}return e}function q3(r,e,t){const n=t?hL(t.metadata):void 0;return $ie(r,e,n)}function hL(r){Object.entries(r);const e={};for(const t in r)e[`${t}.string`]=JSON.stringify(r[t]);return e}const Z3={POSITION:"POSITION",NORMAL:"NORMAL",COLOR:"COLOR_0",TEX_COORD:"TEXCOORD_0"},Kie={1:Int8Array,2:Uint8Array,3:Int16Array,4:Uint16Array,5:Int32Array,6:Uint32Array,9:Float32Array},Yie=4;let qie=class{constructor(e){V(this,"draco");V(this,"decoder");V(this,"metadataQuerier");this.draco=e,this.decoder=new this.draco.Decoder,this.metadataQuerier=new this.draco.MetadataQuerier}destroy(){this.draco.destroy(this.decoder),this.draco.destroy(this.metadataQuerier)}parseSync(e,t={}){const n=new this.draco.DecoderBuffer;n.Init(new Int8Array(e),e.byteLength),this._disableAttributeTransforms(t);const i=this.decoder.GetEncodedGeometryType(n),o=i===this.draco.TRIANGULAR_MESH?new this.draco.Mesh:new this.draco.PointCloud;try{let s;switch(i){case this.draco.TRIANGULAR_MESH:s=this.decoder.DecodeBufferToMesh(n,o);break;case this.draco.POINT_CLOUD:s=this.decoder.DecodeBufferToPointCloud(n,o);break;default:throw new Error("DRACO: Unknown geometry type.")}if(!s.ok()||!o.ptr){const S=`DRACO decompression failed: ${s.error_msg()}`;throw new Error(S)}const c=this._getDracoLoaderData(o,i,t),f=this._getMeshData(o,c,t),y=jie(f.attributes),b=Jie(f.attributes,c,f.indices);return{loader:"draco",loaderData:c,header:{vertexCount:o.num_points(),boundingBox:y},...f,schema:b}}finally{this.draco.destroy(n),o&&this.draco.destroy(o)}}_getDracoLoaderData(e,t,n){const i=this._getTopLevelMetadata(e),o=this._getDracoAttributes(e,n);return{geometry_type:t,num_attributes:e.num_attributes(),num_points:e.num_points(),num_faces:e instanceof this.draco.Mesh?e.num_faces():0,metadata:i,attributes:o}}_getDracoAttributes(e,t){const n={};for(let i=0;i<e.num_attributes();i++){const o=this.decoder.GetAttribute(e,i),s=this._getAttributeMetadata(e,i);n[o.unique_id()]={unique_id:o.unique_id(),attribute_type:o.attribute_type(),data_type:o.data_type(),num_components:o.num_components(),byte_offset:o.byte_offset(),byte_stride:o.byte_stride(),normalized:o.normalized(),attribute_index:i,metadata:s};const c=this._getQuantizationTransform(o,t);c&&(n[o.unique_id()].quantization_transform=c);const f=this._getOctahedronTransform(o,t);f&&(n[o.unique_id()].octahedron_transform=f)}return n}_getMeshData(e,t,n){const i=this._getMeshAttributes(t,e,n);if(!i.POSITION)throw new Error("DRACO: No position attribute found.");if(e instanceof this.draco.Mesh)switch(n.topology){case"triangle-strip":return{topology:"triangle-strip",mode:4,attributes:i,indices:{value:this._getTriangleStripIndices(e),size:1}};case"triangle-list":default:return{topology:"triangle-list",mode:5,attributes:i,indices:{value:this._getTriangleListIndices(e),size:1}}}return{topology:"point-list",mode:0,attributes:i}}_getMeshAttributes(e,t,n){const i={};for(const o of Object.values(e.attributes)){const s=this._deduceAttributeName(o,n);o.name=s;const c=this._getAttributeValues(t,o);if(c){const{value:f,size:y}=c;i[s]={value:f,size:y,byteOffset:o.byte_offset,byteStride:o.byte_stride,normalized:o.normalized}}}return i}_getTriangleListIndices(e){const n=e.num_faces()*3,i=n*Yie,o=this.draco._malloc(i);try{return this.decoder.GetTrianglesUInt32Array(e,i,o),new Uint32Array(this.draco.HEAPF32.buffer,o,n).slice()}finally{this.draco._free(o)}}_getTriangleStripIndices(e){const t=new this.draco.DracoInt32Array;try{return this.decoder.GetTriangleStripsFromMesh(e,t),ese(t)}finally{this.draco.destroy(t)}}_getAttributeValues(e,t){const n=Kie[t.data_type];if(!n)return console.warn(`DRACO: Unsupported attribute type ${t.data_type}`),null;const i=t.num_components,s=e.num_points()*i,c=s*n.BYTES_PER_ELEMENT,f=Zie(this.draco,n);let y;const b=this.draco._malloc(c);try{const E=this.decoder.GetAttribute(e,t.attribute_index);this.decoder.GetAttributeDataArrayForAllPoints(e,E,f,c,b),y=new n(this.draco.HEAPF32.buffer,b,s).slice()}finally{this.draco._free(b)}return{value:y,size:i}}_deduceAttributeName(e,t){const n=e.unique_id;for(const[s,c]of Object.entries(t.extraAttributes||{}))if(c===n)return s;const i=e.attribute_type;for(const s in Z3)if(this.draco[s]===i)return Z3[s];const o=t.attributeNameEntry||"name";return e.metadata[o]?e.metadata[o].string:`CUSTOM_ATTRIBUTE_${n}`}_getTopLevelMetadata(e){const t=this.decoder.GetMetadata(e);return this._getDracoMetadata(t)}_getAttributeMetadata(e,t){const n=this.decoder.GetAttributeMetadata(e,t);return this._getDracoMetadata(n)}_getDracoMetadata(e){if(!e||!e.ptr)return{};const t={},n=this.metadataQuerier.NumEntries(e);for(let i=0;i<n;i++){const o=this.metadataQuerier.GetEntryName(e,i);t[o]=this._getDracoMetadataField(e,o)}return t}_getDracoMetadataField(e,t){const n=new this.draco.DracoInt32Array;try{this.metadataQuerier.GetIntEntryArray(e,t,n);const i=Qie(n);return{int:this.metadataQuerier.GetIntEntry(e,t),string:this.metadataQuerier.GetStringEntry(e,t),double:this.metadataQuerier.GetDoubleEntry(e,t),intArray:i}}finally{this.draco.destroy(n)}}_disableAttributeTransforms(e){const{quantizedAttributes:t=[],octahedronAttributes:n=[]}=e,i=[...t,...n];for(const o of i)this.decoder.SkipAttributeTransform(this.draco[o])}_getQuantizationTransform(e,t){const{quantizedAttributes:n=[]}=t,i=e.attribute_type();if(n.map(s=>this.decoder[s]).includes(i)){const s=new this.draco.AttributeQuantizationTransform;try{if(s.InitFromAttribute(e))return{quantization_bits:s.quantization_bits(),range:s.range(),min_values:new Float32Array([1,2,3]).map(c=>s.min_value(c))}}finally{this.draco.destroy(s)}}return null}_getOctahedronTransform(e,t){const{octahedronAttributes:n=[]}=t,i=e.attribute_type();if(n.map(s=>this.decoder[s]).includes(i)){const s=new this.draco.AttributeQuantizationTransform;try{if(s.InitFromAttribute(e))return{quantization_bits:s.quantization_bits()}}finally{this.draco.destroy(s)}}return null}};function Zie(r,e){switch(e){case Float32Array:return r.DT_FLOAT32;case Int8Array:return r.DT_INT8;case Int16Array:return r.DT_INT16;case Int32Array:return r.DT_INT32;case Uint8Array:return r.DT_UINT8;case Uint16Array:return r.DT_UINT16;case Uint32Array:return r.DT_UINT32;default:return r.DT_INVALID}}function Qie(r){const e=r.size(),t=new Int32Array(e);for(let n=0;n<e;n++)t[n]=r.GetValue(n);return t}function ese(r){const e=r.size(),t=new Int32Array(e);for(let n=0;n<e;n++)t[n]=r.GetValue(n);return t}const tse="1.5.6",rse="1.4.1",Cb=`https://www.gstatic.com/draco/versioned/decoders/${tse}`,Ro={DECODER:"draco_wasm_wrapper.js",DECODER_WASM:"draco_decoder.wasm",FALLBACK_DECODER:"draco_decoder.js",ENCODER:"draco_encoder.js"},Tb={[Ro.DECODER]:`${Cb}/${Ro.DECODER}`,[Ro.DECODER_WASM]:`${Cb}/${Ro.DECODER_WASM}`,[Ro.FALLBACK_DECODER]:`${Cb}/${Ro.FALLBACK_DECODER}`,[Ro.ENCODER]:`https://raw.githubusercontent.com/google/draco/${rse}/javascript/${Ro.ENCODER}`};let Eb;async function nse(r){const e=r.modules||{};return e.draco3d?Eb||(Eb=e.draco3d.createDecoderModule({}).then(t=>({draco:t}))):Eb||(Eb=ise(r)),await Eb}async function ise(r){let e,t;switch(r.draco&&r.draco.decoderType){case"js":e=await Kf(Tb[Ro.FALLBACK_DECODER],"draco",r,Ro.FALLBACK_DECODER);break;case"wasm":default:[e,t]=await Promise.all([await Kf(Tb[Ro.DECODER],"draco",r,Ro.DECODER),await Kf(Tb[Ro.DECODER_WASM],"draco",r,Ro.DECODER_WASM)])}return e=e||globalThis.DracoDecoderModule,await sse(e,t)}function sse(r,e){const t={};return e&&(t.wasmBinary=e),new Promise(n=>{r({...t,onModuleLoaded:i=>n({draco:i})})})}const ose={...Vie,parse:ase};async function ase(r,e){const{draco:t}=await nse(e),n=new qie(t);try{return n.parseSync(r,e==null?void 0:e.draco)}finally{n.destroy()}}function cse(r){const e={};for(const t in r){const n=r[t];if(t!=="indices"){const i=dL(n);e[t]=i}}return e}function dL(r){const{buffer:e,size:t,count:n}=lse(r);return{value:e,size:t,byteOffset:0,count:n,type:eL(t),componentType:gy(e)}}function lse(r){let e=r,t=1,n=0;return r&&r.value&&(e=r.value,t=r.size||1),e&&(ArrayBuffer.isView(e)||(e=use(e,Float32Array)),n=e.length/t),{buffer:e,size:t,count:n}}function use(r,e,t=!1){return r?Array.isArray(r)?new e(r):t&&!(r instanceof e)?new e(r):r:null}const Gu="KHR_draco_mesh_compression",fse=Gu;function hse(r,e,t){const n=new Is(r);for(const i of AL(n))n.getObjectExtension(i,Gu)}async function dse(r,e,t){var o;if(!((o=e==null?void 0:e.gltf)!=null&&o.decompressMeshes))return;const n=new Is(r),i=[];for(const s of AL(n))n.getObjectExtension(s,Gu)&&i.push(pse(n,s,e,t));await Promise.all(i),n.removeExtension(Gu)}function Ase(r,e={}){const t=new Is(r);for(const n of t.json.meshes||[])gse(n),t.addRequiredExtension(Gu)}async function pse(r,e,t,n){const i=r.getObjectExtension(e,Gu);if(!i)return;const o=r.getTypedArrayForBufferView(i.bufferView),s=J4(o.buffer,o.byteOffset),c={...t};delete c["3d-tiles"];const f=await V4(s,ose,c,n),y=cse(f.attributes);for(const[b,E]of Object.entries(y))if(b in e.attributes){const S=e.attributes[b],O=r.getAccessor(S);O!=null&&O.min&&(O!=null&&O.max)&&(E.min=O.min,E.max=O.max)}e.attributes=y,f.indices&&(e.indices=dL(f.indices)),r.removeObjectExtension(e,Gu),mse(e)}function gse(r,e,t=4,n,i){var b;if(!n.DracoWriter)throw new Error("options.gltf.DracoWriter not provided");const o=n.DracoWriter.encodeSync({attributes:r}),s=(b=i==null?void 0:i.parseSync)==null?void 0:b.call(i,{attributes:r}),c=n._addFauxAttributes(s.attributes),f=n.addBufferView(o);return{primitives:[{attributes:c,mode:t,extensions:{[Gu]:{bufferView:f,attributes:c}}}]}}function mse(r){if(!r.attributes&&Object.keys(r.attributes).length>0)throw new Error("glTF: Empty primitive detected: Draco decompression failure?")}function*AL(r){for(const e of r.json.meshes||[])for(const t of e.primitives)yield t}const _se=Object.freeze(Object.defineProperty({__proto__:null,decode:dse,encode:Ase,name:fse,preprocess:hse},Symbol.toStringTag,{value:"Module"})),yy="KHR_texture_transform",yse=yy,$0=new ft,vse=new ci,bse=new ci;async function xse(r,e){var o;if(!new Is(r).hasExtension(yy)||!((o=e.gltf)!=null&&o.loadBuffers))return;const i=r.json.materials||[];for(let s=0;s<i.length;s++)wse(s,r)}function wse(r,e){var o,s,c,f;const t=(o=e.json.materials)==null?void 0:o[r],n=[(s=t==null?void 0:t.pbrMetallicRoughness)==null?void 0:s.baseColorTexture,t==null?void 0:t.emissiveTexture,t==null?void 0:t.normalTexture,t==null?void 0:t.occlusionTexture,(c=t==null?void 0:t.pbrMetallicRoughness)==null?void 0:c.metallicRoughnessTexture],i=[];for(const y of n)y&&((f=y==null?void 0:y.extensions)!=null&&f[yy])&&Cse(e,r,y,i)}function Cse(r,e,t,n){const i=Tse(t,n);if(!i)return;const o=r.json.meshes||[];for(const s of o)for(const c of s.primitives){const f=c.material;Number.isFinite(f)&&e===f&&Ese(r,c,i)}}function Tse(r,e){var s;const t=(s=r.extensions)==null?void 0:s[yy],{texCoord:n=0}=r,{texCoord:i=n}=t;if(!(e.findIndex(([c,f])=>c===n&&f===i)!==-1)){const c=Ise(t);return n!==i&&(r.texCoord=i),e.push([n,i]),{originalTexCoord:n,texCoord:i,matrix:c}}return null}function Ese(r,e,t){var c,f;const{originalTexCoord:n,texCoord:i,matrix:o}=t,s=e.attributes[`TEXCOORD_${n}`];if(Number.isFinite(s)){const y=(c=r.json.accessors)==null?void 0:c[s];if(y&&y.bufferView){const b=(f=r.json.bufferViews)==null?void 0:f[y.bufferView];if(b){const{arrayBuffer:E,byteOffset:S}=r.buffers[b.buffer],O=(S||0)+(y.byteOffset||0)+(b.byteOffset||0),{ArrayType:k,length:G}=tL(y,b),W=Q4[y.componentType],z=Z4[y.type],j=b.byteStride||W*z,K=new Float32Array(G);for(let fe=0;fe<y.count;fe++){const Z=new k(E,O+fe*j,2);$0.set(Z[0],Z[1],1),$0.transformByMatrix3(o),K.set([$0[0],$0[1]],fe*z)}n===i?Bse(y,b,r.buffers,K):Sse(i,y,e,r,K)}}}}function Bse(r,e,t,n){r.componentType=5126,t.push({arrayBuffer:n.buffer,byteOffset:0,byteLength:n.buffer.byteLength}),e.buffer=t.length-1,e.byteLength=n.buffer.byteLength,e.byteOffset=0,delete e.byteStride}function Sse(r,e,t,n,i){n.buffers.push({arrayBuffer:i.buffer,byteOffset:0,byteLength:i.buffer.byteLength});const o=n.json.bufferViews;if(!o)return;o.push({buffer:n.buffers.length-1,byteLength:i.buffer.byteLength,byteOffset:0});const s=n.json.accessors;s&&(s.push({bufferView:(o==null?void 0:o.length)-1,byteOffset:0,componentType:5126,count:e.count,type:"VEC2"}),t.attributes[`TEXCOORD_${r}`]=s.length-1)}function Ise(r){const{offset:e=[0,0],rotation:t=0,scale:n=[1,1]}=r,i=new ci().set(1,0,0,0,1,0,e[0],e[1],1),o=vse.set(Math.cos(t),Math.sin(t),0,-Math.sin(t),Math.cos(t),0,0,0,1),s=bse.set(n[0],0,0,0,n[1],0,0,0,1);return i.multiplyRight(o).multiplyRight(s)}const Mse=Object.freeze(Object.defineProperty({__proto__:null,decode:xse,name:yse},Symbol.toStringTag,{value:"Module"})),Vf="KHR_lights_punctual",Pse=Vf;async function Rse(r){const e=new Is(r),{json:t}=e,n=e.getExtension(Vf);n&&(e.json.lights=n.lights,e.removeExtension(Vf));for(const i of t.nodes||[]){const o=e.getObjectExtension(i,Vf);o&&(i.light=o.light),e.removeObjectExtension(i,Vf)}}async function Fse(r){const e=new Is(r),{json:t}=e;if(t.lights){const n=e.addExtension(Vf);Sa(!n.lights),n.lights=t.lights,delete t.lights}if(e.json.lights){for(const n of e.json.lights){const i=n.node;e.addObjectExtension(i,Vf,n)}delete e.json.lights}}const Dse=Object.freeze(Object.defineProperty({__proto__:null,decode:Rse,encode:Fse,name:Pse},Symbol.toStringTag,{value:"Module"})),hg="KHR_materials_unlit",Ose=hg;async function Lse(r){const e=new Is(r),{json:t}=e;for(const n of t.materials||[])n.extensions&&n.extensions.KHR_materials_unlit&&(n.unlit=!0),e.removeObjectExtension(n,hg);e.removeExtension(hg)}function Nse(r){const e=new Is(r),{json:t}=e;if(e.materials)for(const n of t.materials||[])n.unlit&&(delete n.unlit,e.addObjectExtension(n,hg,{}),e.addExtension(hg))}const kse=Object.freeze(Object.defineProperty({__proto__:null,decode:Lse,encode:Nse,name:Ose},Symbol.toStringTag,{value:"Module"})),Fp="KHR_techniques_webgl",Use=Fp;async function zse(r){const e=new Is(r),{json:t}=e,n=e.getExtension(Fp);if(n){const i=Vse(n,e);for(const o of t.materials||[]){const s=e.getObjectExtension(o,Fp);s&&(o.technique=Object.assign({},s,i[s.technique]),o.technique.values=Hse(o.technique,e)),e.removeObjectExtension(o,Fp)}e.removeExtension(Fp)}}async function Gse(r,e){}function Vse(r,e){const{programs:t=[],shaders:n=[],techniques:i=[]}=r,o=new TextDecoder;return n.forEach(s=>{if(Number.isFinite(s.bufferView))s.code=o.decode(e.getTypedArrayForBufferView(s.bufferView));else throw new Error("KHR_techniques_webgl: no shader code")}),t.forEach(s=>{s.fragmentShader=n[s.fragmentShader],s.vertexShader=n[s.vertexShader]}),i.forEach(s=>{s.program=t[s.program]}),i}function Hse(r,e){const t=Object.assign({},r.values);return Object.keys(r.uniforms||{}).forEach(n=>{r.uniforms[n].value&&!(n in t)&&(t[n]=r.uniforms[n].value)}),Object.keys(t).forEach(n=>{typeof t[n]=="object"&&t[n].index!==void 0&&(t[n].texture=e.getTexture(t[n].index))}),t}const jse=Object.freeze(Object.defineProperty({__proto__:null,decode:zse,encode:Gse,name:Use},Symbol.toStringTag,{value:"Module"})),pL=[Ine,ene,Die,Nie,zie,_se,Dse,kse,jse,Mse,Wne];function $se(r,e={},t){var i;const n=pL.filter(o=>gL(o.name,e));for(const o of n)(i=o.preprocess)==null||i.call(o,r,e,t)}async function Wse(r,e={},t){var i;const n=pL.filter(o=>gL(o.name,e));for(const o of n)await((i=o.decode)==null?void 0:i.call(o,r,e,t))}function gL(r,e){var i;const t=((i=e==null?void 0:e.gltf)==null?void 0:i.excludeExtensions)||{};return!(r in t&&!t[r])}const Bb="KHR_binary_glTF";function Jse(r){const e=new Is(r),{json:t}=e;for(const n of t.images||[]){const i=e.getObjectExtension(n,Bb);i&&Object.assign(n,i),e.removeObjectExtension(n,Bb)}t.buffers&&t.buffers[0]&&delete t.buffers[0].uri,e.removeExtension(Bb)}const Q3={accessors:"accessor",animations:"animation",buffers:"buffer",bufferViews:"bufferView",images:"image",materials:"material",meshes:"mesh",nodes:"node",samplers:"sampler",scenes:"scene",skins:"skin",textures:"texture"},Xse={accessor:"accessors",animations:"animation",buffer:"buffers",bufferView:"bufferViews",image:"images",material:"materials",mesh:"meshes",node:"nodes",sampler:"samplers",scene:"scenes",skin:"skins",texture:"textures"};let Kse=class{constructor(){V(this,"idToIndexMap",{animations:{},accessors:{},buffers:{},bufferViews:{},images:{},materials:{},meshes:{},nodes:{},samplers:{},scenes:{},skins:{},textures:{}});V(this,"json")}normalize(e,t){this.json=e.json;const n=e.json;switch(n.asset&&n.asset.version){case"2.0":return;case void 0:case"1.0":break;default:console.warn(`glTF: Unknown version ${n.asset.version}`);return}if(!t.normalize)throw new Error("glTF v1 is not supported.");console.warn("Converting glTF v1 to glTF v2 format. This is experimental and may fail."),this._addAsset(n),this._convertTopLevelObjectsToArrays(n),Jse(e),this._convertObjectIdsToArrayIndices(n),this._updateObjects(n),this._updateMaterial(n)}_addAsset(e){e.asset=e.asset||{},e.asset.version="2.0",e.asset.generator=e.asset.generator||"Normalized to glTF 2.0 by loaders.gl"}_convertTopLevelObjectsToArrays(e){for(const t in Q3)this._convertTopLevelObjectToArray(e,t)}_convertTopLevelObjectToArray(e,t){const n=e[t];if(!(!n||Array.isArray(n))){e[t]=[];for(const i in n){const o=n[i];o.id=o.id||i;const s=e[t].length;e[t].push(o),this.idToIndexMap[t][i]=s}}}_convertObjectIdsToArrayIndices(e){for(const t in Q3)this._convertIdsToIndices(e,t);"scene"in e&&(e.scene=this._convertIdToIndex(e.scene,"scene"));for(const t of e.textures)this._convertTextureIds(t);for(const t of e.meshes)this._convertMeshIds(t);for(const t of e.nodes)this._convertNodeIds(t);for(const t of e.scenes)this._convertSceneIds(t)}_convertTextureIds(e){e.source&&(e.source=this._convertIdToIndex(e.source,"image"))}_convertMeshIds(e){for(const t of e.primitives){const{attributes:n,indices:i,material:o}=t;for(const s in n)n[s]=this._convertIdToIndex(n[s],"accessor");i&&(t.indices=this._convertIdToIndex(i,"accessor")),o&&(t.material=this._convertIdToIndex(o,"material"))}}_convertNodeIds(e){e.children&&(e.children=e.children.map(t=>this._convertIdToIndex(t,"node"))),e.meshes&&(e.meshes=e.meshes.map(t=>this._convertIdToIndex(t,"mesh")))}_convertSceneIds(e){e.nodes&&(e.nodes=e.nodes.map(t=>this._convertIdToIndex(t,"node")))}_convertIdsToIndices(e,t){e[t]||(console.warn(`gltf v1: json doesn't contain attribute ${t}`),e[t]=[]);for(const n of e[t])for(const i in n){const o=n[i],s=this._convertIdToIndex(o,i);n[i]=s}}_convertIdToIndex(e,t){const n=Xse[t];if(n in this.idToIndexMap){const i=this.idToIndexMap[n][e];if(!Number.isFinite(i))throw new Error(`gltf v1: failed to resolve ${t} with id ${e}`);return i}return e}_updateObjects(e){for(const t of this.json.buffers)delete t.type}_updateMaterial(e){var t,n,i;for(const o of e.materials){o.pbrMetallicRoughness={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1};const s=((t=o.values)==null?void 0:t.tex)||((n=o.values)==null?void 0:n.texture2d_0)||((i=o.values)==null?void 0:i.diffuseTex),c=e.textures.findIndex(f=>f.id===s);c!==-1&&(o.pbrMetallicRoughness.baseColorTexture={index:c})}}};function Yse(r,e={}){return new Kse().normalize(r,e)}async function qse(r,e,t=0,n,i){var o,s,c;return Zse(r,e,t,n),Yse(r,{normalize:(o=n==null?void 0:n.gltf)==null?void 0:o.normalize}),$se(r,n,i),(s=n==null?void 0:n.gltf)!=null&&s.loadBuffers&&r.json.buffers&&await Qse(r,n,i),(c=n==null?void 0:n.gltf)!=null&&c.loadImages&&await eoe(r,n,i),await Wse(r,n,i),r}function Zse(r,e,t,n){if(n.uri&&(r.baseUri=n.uri),e instanceof ArrayBuffer&&!pie(e,t,n)&&(e=new TextDecoder().decode(e)),typeof e=="string")r.json=Yte(e);else if(e instanceof ArrayBuffer){const s={};t=gie(s,e,t,n.glb),Sa(s.type==="glTF",`Invalid GLB magic string ${s.type}`),r._glb=s,r.json=s.json}else Sa(!1,"GLTF: must be ArrayBuffer or string");const i=r.json.buffers||[];if(r.buffers=new Array(i.length).fill(null),r._glb&&r._glb.header.hasBinChunk){const{binChunks:s}=r._glb;r.buffers[0]={arrayBuffer:s[0].arrayBuffer,byteOffset:s[0].byteOffset,byteLength:s[0].byteLength}}const o=r.json.images||[];r.images=new Array(o.length).fill({})}async function Qse(r,e,t){var i,o;const n=r.json.buffers||[];for(let s=0;s<n.length;++s){const c=n[s];if(c.uri){const{fetch:f}=t;Sa(f);const y=fL(c.uri,e),b=await((i=t==null?void 0:t.fetch)==null?void 0:i.call(t,y)),E=await((o=b==null?void 0:b.arrayBuffer)==null?void 0:o.call(b));r.buffers[s]={arrayBuffer:E,byteOffset:0,byteLength:E.byteLength},delete c.uri}else r.buffers[s]===null&&(r.buffers[s]={arrayBuffer:new ArrayBuffer(c.byteLength),byteOffset:0,byteLength:c.byteLength})}}async function eoe(r,e,t){const n=toe(r),i=r.json.images||[],o=[];for(const s of n)o.push(roe(r,i[s],s,e,t));return await Promise.all(o)}function toe(r){const e=new Set,t=r.json.textures||[];for(const n of t)n.source!==void 0&&e.add(n.source);return Array.from(e).sort()}async function roe(r,e,t,n,i){let o;if(e.uri&&!e.hasOwnProperty("bufferView")){const c=fL(e.uri,n),{fetch:f}=i;o=await(await f(c)).arrayBuffer(),e.bufferView={data:o}}if(Number.isFinite(e.bufferView)){const c=Ure(r.json,r.buffers,e.bufferView);o=J4(c.buffer,c.byteOffset,c.byteLength)}Sa(o,"glTF image has no data");let s=await V4(o,[Ire,cie],{...n,mimeType:e.mimeType,basis:n.basis||{format:uL()}},i);s&&s[0]&&(s={compressed:!0,mipmaps:!1,width:s[0].width,height:s[0].height,data:s[0]}),r.images=r.images||[],r.images[t]=s}const lx={dataType:null,batchType:null,name:"glTF",id:"gltf",module:"gltf",version:Jne,extensions:["gltf","glb"],mimeTypes:["model/gltf+json","model/gltf-binary"],text:!0,binary:!0,tests:["glTF"],parse:noe,options:{gltf:{normalize:!0,loadBuffers:!0,loadImages:!0,decompressMeshes:!0},log:console}};async function noe(r,e={},t){e={...lx.options,...e},e.gltf={...lx.options.gltf,...e.gltf};const{byteOffset:n=0}=e;return await qse({},r,n,e,t)}function eM(r,e){if(!r)throw new Error(e||"loader assertion failed.")}const mL=!!(typeof process!="object"||String(process)!=="[object process]"||process.browser),tM=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version);tM&&parseFloat(tM[1]);const Sb="4.3.2",ioe=Sb[0]>="0"&&Sb[0]<="9"?`v${Sb}`:"";function soe(){const r=new py({id:"loaders.gl"});return globalThis.loaders=globalThis.loaders||{},globalThis.loaders.log=r,globalThis.loaders.version=ioe,globalThis.probe=globalThis.probe||{},globalThis.probe.loaders=r,r}const ooe=soe();function aoe(r,e){return _L(r||{},e)}function _L(r,e,t=0){if(t>3)return e;const n={...r};for(const[i,o]of Object.entries(e))o&&typeof o=="object"&&!Array.isArray(o)?n[i]=_L(n[i]||{},e[i],t+1):n[i]=e[i];return n}const coe="latest";function loe(){var r;return(r=globalThis._loadersgl_)!=null&&r.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.3.2"),globalThis._loadersgl_.version}const uoe=loe();function Vu(r,e){if(!r)throw new Error(e||"loaders.gl assertion failed.")}const Yf=typeof process!="object"||String(process)!=="[object process]"||process.browser,foe=typeof window<"u"&&typeof window.orientation<"u",rM=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version);rM&&parseFloat(rM[1]);class hoe{constructor(e,t){V(this,"name");V(this,"workerThread");V(this,"isRunning",!0);V(this,"result");V(this,"_resolve",()=>{});V(this,"_reject",()=>{});this.name=e,this.workerThread=t,this.result=new Promise((n,i)=>{this._resolve=n,this._reject=i})}postMessage(e,t){this.workerThread.postMessage({source:"loaders.gl",type:e,payload:t})}done(e){Vu(this.isRunning),this.isRunning=!1,this._resolve(e)}error(e){Vu(this.isRunning),this.isRunning=!1,this._reject(e)}}class Ib{terminate(){}}const Mb=new Map;function doe(r){Vu(r.source&&!r.url||!r.source&&r.url);let e=Mb.get(r.source||r.url);return e||(r.url&&(e=Aoe(r.url),Mb.set(r.url,e)),r.source&&(e=yL(r.source),Mb.set(r.source,e))),Vu(e),e}function Aoe(r){if(!r.startsWith("http"))return r;const e=poe(r);return yL(e)}function yL(r){const e=new Blob([r],{type:"application/javascript"});return URL.createObjectURL(e)}function poe(r){return`try {
2609
+ `,'"',P3],WORKERS_SUPPORTED:!1,NODE_STREAM_INPUT:1,LocalChunkSize:1024*1024*10,RemoteChunkSize:1024*1024*5,DefaultDelimiter:",",Parser:nx,ParserHandle:N4,ChunkStreamer:L4},{ChunkStreamer:bte}=Ba;class xte extends bte{constructor(t={}){super(t);V(this,"textDecoder",new TextDecoder(this._config.encoding))}async stream(t){this._input=t;try{for await(const n of t)this.parseChunk(this.getStringChunk(n));this._finished=!0,this.parseChunk("")}catch(n){this._sendError(n)}}_nextChunk(){}getStringChunk(t){return typeof t=="string"?t:this.textDecoder.decode(t,{stream:!0})}}const wte="4.3.3",jw="object-row-table",$w={dataType:null,batchType:null,id:"csv",module:"csv",name:"CSV",version:wte,extensions:["csv","tsv","dsv"],mimeTypes:["text/csv","text/tab-separated-values","text/dsv"],category:"table",parse:async(r,e)=>R3(new TextDecoder().decode(r),e),parseText:(r,e)=>R3(r,e),parseInBatches:Cte,options:{csv:{shape:jw,optimizeMemoryUsage:!1,header:"auto",columnPrefix:"column",quoteChar:'"',escapeChar:'"',dynamicTyping:!0,comments:!1,skipEmptyLines:!0,delimitersToGuess:[","," ","|",";"]}}};async function R3(r,e){const t={...$w.options.csv,...e==null?void 0:e.csv},n=Tte(r),o=t.header==="auto"?U4(n):!!t.header,s={...t,header:o,download:!1,transformHeader:o?z4():void 0,error:E=>{throw new Error(E)}},c=Ba.parse(r,s),f=c.data,y=c.meta.fields||G4(t.columnPrefix,n.length),b=t.shape||jw;switch(b){case"object-row-table":return{shape:"object-row-table",data:f.map(E=>Array.isArray(E)?D4(E,y):E)};case"array-row-table":return{shape:"array-row-table",data:f.map(E=>Array.isArray(E)?E:O4(E,y))};default:throw new Error(b)}}function Cte(r,e){e={...e},e.batchSize==="auto"&&(e.batchSize=4e3);const t={...$w.options.csv,...e==null?void 0:e.csv},n=new Ate;let i=!0,o=null,s=null,c=null;const f={...t,header:!1,download:!1,chunkSize:1024*1024*5,skipEmptyLines:!1,step(y){let b=y.data;if(t.skipEmptyLines&&b.flat().join("").trim()==="")return;const E=y.meta.cursor;if(i&&!o&&(t.header==="auto"?U4(b):!!t.header)){o=b.map(z4());return}i&&(i=!1,o||(o=G4(t.columnPrefix,b.length)),c=Ete(b,o)),t.optimizeMemoryUsage&&(b=JSON.parse(JSON.stringify(b)));const S=t.shape||jw;s=s||new rx(c,{shape:S,...e});try{s.addRow(b);const O=s&&s.getFullBatch({bytesUsed:E});O&&n.enqueue(O)}catch(O){n.enqueue(O)}},complete(y){try{const b=y.meta.cursor,E=s&&s.getFinalBatch({bytesUsed:b});E&&n.enqueue(E)}catch(b){n.enqueue(b)}n.close()}};return Ba.parse(r,f,xte),n}function U4(r){return r&&r.every(e=>typeof e=="string")}function Tte(r){return Ba.parse(r,{dynamicTyping:!0,preview:1}).data[0]}function z4(){const r=new Set;return e=>{let t=e,n=1;for(;r.has(t);)t=`${e}.${n}`,n++;return r.add(t),t}}function G4(r,e=0){const t=[];for(let n=0;n<e;n++)t.push(`${r}${n+1}`);return t}function Ete(r,e){const t=e?{}:[];for(let n=0;n<r.length;n++){const i=e&&e[n]||n;switch(typeof r[n]){case"number":case"boolean":t[i]={name:String(i),index:n,type:Float32Array};break;case"string":default:t[i]={name:String(i),index:n,type:Array}}}return t}const Bte="4.3.3";async function V4(r,e,t,n){return n._parse(r,e,t,n)}function Qf(r,e){if(!r)throw new Error("loader assertion failed.")}const H4=!!(typeof process!="object"||String(process)!=="[object process]"||process.browser),F3=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version);F3&&parseFloat(F3[1]);const H0=globalThis,_d=globalThis.process||{};function Ste(r){var n,i;if(typeof window<"u"&&((n=window.process)==null?void 0:n.type)==="renderer"||typeof process<"u"&&((i=process.versions)!=null&&i.electron))return!0;const t=typeof navigator<"u"&&navigator.userAgent;return!!(t&&t.indexOf("Electron")>=0)}function Ww(){return!(typeof process=="object"&&String(process)==="[object process]"&&!(process!=null&&process.browser))||Ste()}const j4="4.0.7";function Ite(r){try{const e=window[r],t="__storage_test__";return e.setItem(t,t),e.removeItem(t),e}catch{return null}}class Mte{constructor(e,t,n="sessionStorage"){this.storage=Ite(n),this.id=e,this.config=t,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){if(Object.assign(this.config,e),this.storage){const t=JSON.stringify(this.config);this.storage.setItem(this.id,t)}}_loadConfiguration(){let e={};if(this.storage){const t=this.storage.getItem(this.id);e=t?JSON.parse(t):{}}return Object.assign(this.config,e),this}}function Pte(r){let e;return r<10?e=`${r.toFixed(2)}ms`:r<100?e=`${r.toFixed(1)}ms`:r<1e3?e=`${r.toFixed(0)}ms`:e=`${(r/1e3).toFixed(2)}s`,e}function Rte(r,e=8){const t=Math.max(e-r.length,0);return`${" ".repeat(t)}${r}`}var p_;(function(r){r[r.BLACK=30]="BLACK",r[r.RED=31]="RED",r[r.GREEN=32]="GREEN",r[r.YELLOW=33]="YELLOW",r[r.BLUE=34]="BLUE",r[r.MAGENTA=35]="MAGENTA",r[r.CYAN=36]="CYAN",r[r.WHITE=37]="WHITE",r[r.BRIGHT_BLACK=90]="BRIGHT_BLACK",r[r.BRIGHT_RED=91]="BRIGHT_RED",r[r.BRIGHT_GREEN=92]="BRIGHT_GREEN",r[r.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",r[r.BRIGHT_BLUE=94]="BRIGHT_BLUE",r[r.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",r[r.BRIGHT_CYAN=96]="BRIGHT_CYAN",r[r.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(p_||(p_={}));const Fte=10;function D3(r){return typeof r!="string"?r:(r=r.toUpperCase(),p_[r]||p_.WHITE)}function Dte(r,e,t){return!Ww&&typeof r=="string"&&(e&&(r=`\x1B[${D3(e)}m${r}\x1B[39m`),t&&(r=`\x1B[${D3(t)+Fte}m${r}\x1B[49m`)),r}function Ote(r,e=["constructor"]){const t=Object.getPrototypeOf(r),n=Object.getOwnPropertyNames(t),i=r;for(const o of n){const s=i[o];typeof s=="function"&&(e.find(c=>o===c)||(i[o]=s.bind(r)))}}function Jw(r,e){if(!r)throw new Error("Assertion failed")}function yd(){var e,t,n;let r;if(Ww()&&H0.performance)r=(t=(e=H0==null?void 0:H0.performance)==null?void 0:e.now)==null?void 0:t.call(e);else if("hrtime"in _d){const i=(n=_d==null?void 0:_d.hrtime)==null?void 0:n.call(_d);r=i[0]*1e3+i[1]/1e6}else r=Date.now();return r}const vd={debug:Ww()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},Lte={enabled:!0,level:0};function bd(){}const O3={},L3={once:!0};class py{constructor({id:e}={id:""}){this.VERSION=j4,this._startTs=yd(),this._deltaTs=yd(),this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=e,this.userData={},this._storage=new Mte(`__probe-${this.id}__`,Lte),this.timeStamp(`${this.id} started`),Ote(this),Object.seal(this)}set level(e){this.setLevel(e)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((yd()-this._startTs).toPrecision(10))}getDelta(){return Number((yd()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(e=!0){return this._storage.setConfiguration({enabled:e}),this}setLevel(e){return this._storage.setConfiguration({level:e}),this}get(e){return this._storage.config[e]}set(e,t){this._storage.setConfiguration({[e]:t})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(e,t){if(!e)throw new Error(t||"Assertion failed")}warn(e){return this._getLogFunction(0,e,vd.warn,arguments,L3)}error(e){return this._getLogFunction(0,e,vd.error,arguments)}deprecated(e,t){return this.warn(`\`${e}\` is deprecated and will be removed in a later version. Use \`${t}\` instead`)}removed(e,t){return this.error(`\`${e}\` has been removed. Use \`${t}\` instead`)}probe(e,t){return this._getLogFunction(e,t,vd.log,arguments,{time:!0,once:!0})}log(e,t){return this._getLogFunction(e,t,vd.debug,arguments)}info(e,t){return this._getLogFunction(e,t,console.info,arguments)}once(e,t){return this._getLogFunction(e,t,vd.debug||vd.info,arguments,L3)}table(e,t,n){return t?this._getLogFunction(e,t,console.table||bd,n&&[n],{tag:kte(t)}):bd}time(e,t){return this._getLogFunction(e,t,console.time?console.time:console.info)}timeEnd(e,t){return this._getLogFunction(e,t,console.timeEnd?console.timeEnd:console.info)}timeStamp(e,t){return this._getLogFunction(e,t,console.timeStamp||bd)}group(e,t,n={collapsed:!1}){const i=N3({logLevel:e,message:t,opts:n}),{collapsed:o}=n;return i.method=(o?console.groupCollapsed:console.group)||console.info,this._getLogFunction(i)}groupCollapsed(e,t,n={}){return this.group(e,t,Object.assign({},n,{collapsed:!0}))}groupEnd(e){return this._getLogFunction(e,"",console.groupEnd||bd)}withGroup(e,t,n){this.group(e,t)();try{n()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&this.getLevel()>=$4(e)}_getLogFunction(e,t,n,i,o){if(this._shouldLog(e)){o=N3({logLevel:e,message:t,args:i,opts:o}),n=n||o.method,Jw(n),o.total=this.getTotal(),o.delta=this.getDelta(),this._deltaTs=yd();const s=o.tag||o.message;if(o.once&&s)if(!O3[s])O3[s]=yd();else return bd;return t=Nte(this.id,o.message,o),n.bind(console,t,...o.args)}return bd}}py.VERSION=j4;function $4(r){if(!r)return 0;let e;switch(typeof r){case"number":e=r;break;case"object":e=r.logLevel||r.priority||0;break;default:return 0}return Jw(Number.isFinite(e)&&e>=0),e}function N3(r){const{logLevel:e,message:t}=r;r.logLevel=$4(e);const n=r.args?Array.from(r.args):[];for(;n.length&&n.shift()!==t;);switch(typeof e){case"string":case"function":t!==void 0&&n.unshift(t),r.message=e;break;case"object":Object.assign(r,e);break}typeof r.message=="function"&&(r.message=r.message());const i=typeof r.message;return Jw(i==="string"||i==="object"),Object.assign(r,{args:n},r.opts)}function Nte(r,e,t){if(typeof e=="string"){const n=t.time?Rte(Pte(t.total)):"";e=t.time?`${r}: ${n} ${e}`:`${r}: ${e}`,e=Dte(e,t.color,t.background)}return e}function kte(r){for(const e in r)for(const t in r[e])return t||"untitled";return"empty"}globalThis.probe={};const W4=new py({id:"@probe.gl/log"});function Ute(r){var e;globalThis.loaders||(globalThis.loaders={}),(e=globalThis.loaders).modules||(e.modules={}),Object.assign(globalThis.loaders.modules,r)}function zte(r){var t,n;return((n=(t=globalThis.loaders)==null?void 0:t.modules)==null?void 0:n[r])||null}function Gte(){var r;return(r=globalThis._loadersgl_)!=null&&r.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.3.3"),globalThis._loadersgl_.version}const Vte=Gte();function Hte(r,e){if(!r)throw new Error("loaders.gl assertion failed.")}const Cg=typeof process!="object"||String(process)!=="[object process]"||process.browser,Xw=typeof importScripts=="function",k3=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version);k3&&parseFloat(k3[1]);const _b={};async function Kf(r,e=null,t={},n=null){return e&&(r=jte(r,e,t,n)),_b[r]=_b[r]||$te(r),await _b[r]}function jte(r,e,t={},n=null){if(!t.useLocalLibraries&&r.startsWith("http"))return r;n=n||r;const i=t.modules||{};return i[n]?i[n]:Cg?t.CDN?(Hte(t.CDN.startsWith("http")),`${t.CDN}/${e}@${Vte}/dist/libs/${n}`):Xw?`../src/libs/${n}`:`modules/${e}/src/libs/${n}`:`modules/${e}/dist/libs/${n}`}async function $te(r){if(r.endsWith("wasm"))return await Jte(r);if(!Cg)try{const{requireFromFile:t}=globalThis.loaders||{};return await(t==null?void 0:t(r))}catch(t){return console.error(t),null}if(Xw)return importScripts(r);const e=await Xte(r);return Wte(e,r)}function Wte(r,e){if(!Cg){const{requireFromString:n}=globalThis.loaders||{};return n==null?void 0:n(r,e)}if(Xw)return eval.call(globalThis,r),null;const t=document.createElement("script");t.id=e;try{t.appendChild(document.createTextNode(r))}catch{t.text=r}return document.body.appendChild(t),null}async function Jte(r){const{readFileAsArrayBuffer:e}=globalThis.loaders||{};return Cg||!e||r.startsWith("http")?await(await fetch(r)).arrayBuffer():await e(r)}async function Xte(r){const{readFileAsText:e}=globalThis.loaders||{};return Cg||!e||r.startsWith("http")?await(await fetch(r)).text():await e(r)}function Kte(r,e=5){return typeof r=="string"?r.slice(0,e):ArrayBuffer.isView(r)?U3(r.buffer,r.byteOffset,e):r instanceof ArrayBuffer?U3(r,0,e):""}function U3(r,e,t){if(r.byteLength<=e+t)return"";const n=new DataView(r);let i="";for(let o=0;o<t;o++)i+=String.fromCharCode(n.getUint8(e+o));return i}function Yte(r){try{return JSON.parse(r)}catch{throw new Error(`Failed to parse JSON from data starting with "${Kte(r)}"`)}}function J4(r,e,t){const n=t!==void 0?new Uint8Array(r).subarray(e,e+t):new Uint8Array(r).subarray(e);return new Uint8Array(n).buffer}function Tg(r,e){return Qf(r>=0),Qf(e>0),r+(e-1)&-4}function qte(r,e,t){let n;if(r instanceof ArrayBuffer)n=new Uint8Array(r);else{const i=r.byteOffset,o=r.byteLength;n=new Uint8Array(r.buffer||r.arrayBuffer,i,o)}return e.set(n,t),t+Tg(n.byteLength,4)}function z3(){let r;if(typeof window<"u"&&window.performance)r=window.performance.now();else if(typeof process<"u"&&process.hrtime){const e=process.hrtime();r=e[0]*1e3+e[1]/1e6}else r=Date.now();return r}class G3{constructor(e,t){this.sampleSize=1,this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this.name=e,this.type=t,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(e){return this.sampleSize=e,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(e){return this._count+=e,this._samples++,this._checkSampling(),this}subtractCount(e){return this._count-=e,this._samples++,this._checkSampling(),this}addTime(e){return this._time+=e,this.lastTiming=e,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=z3(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(z3()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}}class X4{constructor(e){this.stats={},this.id=e.id,this.stats={},this._initializeStats(e.stats),Object.seal(this)}get(e,t="count"){return this._getOrCreate({name:e,type:t})}get size(){return Object.keys(this.stats).length}reset(){for(const e of Object.values(this.stats))e.reset();return this}forEach(e){for(const t of Object.values(this.stats))e(t)}getTable(){const e={};return this.forEach(t=>{e[t.name]={time:t.time||0,count:t.count||0,average:t.getAverageTime()||0,hz:t.getHz()||0}}),e}_initializeStats(e=[]){e.forEach(t=>this._getOrCreate(t))}_getOrCreate(e){const{name:t,type:n}=e;let i=this.stats[t];return i||(e instanceof G3?i=e:i=new G3(t,n),this.stats[t]=i),i}}var ID;const Zte=(ID=globalThis.loaders)==null?void 0:ID.parseImageNode,ix=typeof Image<"u",sx=typeof ImageBitmap<"u",Qte=!!Zte,ox=H4?!0:Qte;function ere(r){switch(r){case"auto":return sx||ix||ox;case"imagebitmap":return sx;case"image":return ix;case"data":return ox;default:throw new Error(`@loaders.gl/images: image ${r} not supported in this environment`)}}function tre(){if(sx)return"imagebitmap";if(ix)return"image";if(ox)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function rre(r){const e=nre(r);if(!e)throw new Error("Not an image");return e}function K4(r){switch(rre(r)){case"data":return r;case"image":case"imagebitmap":const e=document.createElement("canvas"),t=e.getContext("2d");if(!t)throw new Error("getImageData");return e.width=r.width,e.height=r.height,t.drawImage(r,0,0),t.getImageData(0,0,r.width,r.height);default:throw new Error("getImageData")}}function nre(r){return typeof ImageBitmap<"u"&&r instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&r instanceof Image?"image":r&&typeof r=="object"&&r.data&&r.width&&r.height?"data":null}const ire=/^data:image\/svg\+xml/,sre=/\.svg((\?|#).*)?$/;function Kw(r){return r&&(ire.test(r)||sre.test(r))}function ore(r,e){if(Kw(e)){let n=new TextDecoder().decode(r);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(n=unescape(encodeURIComponent(n)))}catch(o){throw new Error(o.message)}return`data:image/svg+xml;base64,${btoa(n)}`}return Y4(r,e)}function Y4(r,e){if(Kw(e))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(r)])}async function q4(r,e,t){const n=ore(r,t),i=self.URL||self.webkitURL,o=typeof n!="string"&&i.createObjectURL(n);try{return await are(o||n,e)}finally{o&&i.revokeObjectURL(o)}}async function are(r,e){const t=new Image;return t.src=r,e.image&&e.image.decode&&t.decode?(await t.decode(),t):await new Promise((n,i)=>{try{t.onload=()=>n(t),t.onerror=o=>{const s=o instanceof Error?o.message:"error";i(new Error(s))}}catch(o){i(o)}})}const cre={};let V3=!0;async function lre(r,e,t){let n;Kw(t)?n=await q4(r,e,t):n=Y4(r,t);const i=e&&e.imagebitmap;return await ure(n,i)}async function ure(r,e=null){if((fre(e)||!V3)&&(e=null),e)try{return await createImageBitmap(r,e)}catch(t){console.warn(t),V3=!1}return await createImageBitmap(r)}function fre(r){for(const e in r||cre)return!1;return!0}function hre(r){return!gre(r,"ftyp",4)||(r[8]&96)===0?null:dre(r)}function dre(r){switch(Are(r,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function Are(r,e,t){return String.fromCharCode(...r.slice(e,t))}function pre(r){return[...r].map(e=>e.charCodeAt(0))}function gre(r,e,t=0){const n=pre(e);for(let i=0;i<n.length;++i)if(n[i]!==r[i+t])return!1;return!0}const Jc=!1,Xp=!0;function Yw(r){const e=Eg(r);return _re(e)||bre(e)||yre(e)||vre(e)||mre(e)}function mre(r){const e=new Uint8Array(r instanceof DataView?r.buffer:r),t=hre(e);return t?{mimeType:t.mimeType,width:0,height:0}:null}function _re(r){const e=Eg(r);return e.byteLength>=24&&e.getUint32(0,Jc)===2303741511?{mimeType:"image/png",width:e.getUint32(16,Jc),height:e.getUint32(20,Jc)}:null}function yre(r){const e=Eg(r);return e.byteLength>=10&&e.getUint32(0,Jc)===1195984440?{mimeType:"image/gif",width:e.getUint16(6,Xp),height:e.getUint16(8,Xp)}:null}function vre(r){const e=Eg(r);return e.byteLength>=14&&e.getUint16(0,Jc)===16973&&e.getUint32(2,Xp)===e.byteLength?{mimeType:"image/bmp",width:e.getUint32(18,Xp),height:e.getUint32(22,Xp)}:null}function bre(r){const e=Eg(r);if(!(e.byteLength>=3&&e.getUint16(0,Jc)===65496&&e.getUint8(2)===255))return null;const{tableMarkers:n,sofMarkers:i}=xre();let o=2;for(;o+9<e.byteLength;){const s=e.getUint16(o,Jc);if(i.has(s))return{mimeType:"image/jpeg",height:e.getUint16(o+5,Jc),width:e.getUint16(o+7,Jc)};if(!n.has(s))return null;o+=2,o+=e.getUint16(o,Jc)}return null}function xre(){const r=new Set([65499,65476,65484,65501,65534]);for(let t=65504;t<65520;++t)r.add(t);return{tableMarkers:r,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function Eg(r){if(r instanceof DataView)return r;if(ArrayBuffer.isView(r))return new DataView(r.buffer);if(r instanceof ArrayBuffer)return new DataView(r);throw new Error("toDataView")}async function wre(r,e){var i;const{mimeType:t}=Yw(r)||{},n=(i=globalThis.loaders)==null?void 0:i.parseImageNode;return Qf(n),await n(r,t)}async function Cre(r,e,t){e=e||{};const i=(e.image||{}).type||"auto",{url:o}=t||{},s=Tre(i);let c;switch(s){case"imagebitmap":c=await lre(r,e,o);break;case"image":c=await q4(r,e,o);break;case"data":c=await wre(r);break;default:Qf(!1)}return i==="data"&&(c=K4(c)),c}function Tre(r){switch(r){case"auto":case"data":return tre();default:return ere(r),r}}const Ere=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],Bre=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],Sre={image:{type:"auto",decode:!0}},Ire={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:Bte,mimeTypes:Bre,extensions:Ere,parse:Cre,tests:[r=>!!Yw(new DataView(r))],options:Sre},yb={};function Mre(r){if(yb[r]===void 0){const e=H4?Rre(r):Pre(r);yb[r]=e}return yb[r]}function Pre(r){var i,o;const e=["image/png","image/jpeg","image/gif"],t=((i=globalThis.loaders)==null?void 0:i.imageFormatsNode)||e;return!!((o=globalThis.loaders)==null?void 0:o.parseImageNode)&&t.includes(r)}function Rre(r){switch(r){case"image/avif":case"image/webp":return Fre(r);default:return!0}}function Fre(r){try{return document.createElement("canvas").toDataURL(r).indexOf(`data:${r}`)===0}catch{return!1}}function Sa(r,e){if(!r)throw new Error(e||"assert failed: gltf")}const Z4={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Q4={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},H3=["SCALAR","VEC2","VEC3","VEC4"],Dre=[[Int8Array,5120],[Uint8Array,5121],[Int16Array,5122],[Uint16Array,5123],[Uint32Array,5125],[Float32Array,5126],[Float64Array,5130]],Ore=new Map(Dre),Lre={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Nre={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},kre={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function eL(r){return H3[r-1]||H3[0]}function gy(r){const e=Ore.get(r.constructor);if(!e)throw new Error("Illegal typed array");return e}function tL(r,e){const t=kre[r.componentType],n=Lre[r.type],i=Nre[r.componentType],o=r.count*n,s=r.count*n*i;Sa(s>=0&&s<=e.byteLength);const c=Q4[r.componentType],f=Z4[r.type];return{ArrayType:t,length:o,byteLength:s,componentByteSize:c,numberOfComponentsInElement:f}}function Ure(r,e,t){const n=r.bufferViews[t];Sa(n);const i=n.buffer,o=e[i];Sa(o);const s=(n.byteOffset||0)+o.byteOffset;return new Uint8Array(o.arrayBuffer,s,n.byteLength)}function zre(r,e,t){var G,W;const n=typeof t=="number"?(G=r.accessors)==null?void 0:G[t]:t;if(!n)throw new Error(`No gltf accessor ${JSON.stringify(t)}`);const i=(W=r.bufferViews)==null?void 0:W[n.bufferView||0];if(!i)throw new Error(`No gltf buffer view for accessor ${i}`);const{arrayBuffer:o,byteOffset:s}=e[i.buffer],c=(s||0)+(n.byteOffset||0)+(i.byteOffset||0),{ArrayType:f,length:y,componentByteSize:b,numberOfComponentsInElement:E}=tL(n,i),S=b*E,O=i.byteStride||S;if(typeof i.byteStride>"u"||i.byteStride===S)return new f(o,c,y);const k=new f(y);for(let z=0;z<n.count;z++){const j=new f(o,c+z*O,E);k.set(j,z*E)}return k}function Gre(){return{asset:{version:"2.0",generator:"loaders.gl"},buffers:[],extensions:{},extensionsRequired:[],extensionsUsed:[]}}let Is=class{constructor(e){V(this,"gltf");V(this,"sourceBuffers");V(this,"byteLength");this.gltf={json:(e==null?void 0:e.json)||Gre(),buffers:(e==null?void 0:e.buffers)||[],images:(e==null?void 0:e.images)||[]},this.sourceBuffers=[],this.byteLength=0,this.gltf.buffers&&this.gltf.buffers[0]&&(this.byteLength=this.gltf.buffers[0].byteLength,this.sourceBuffers=[this.gltf.buffers[0]])}get json(){return this.gltf.json}getApplicationData(e){return this.json[e]}getExtraData(e){return(this.json.extras||{})[e]}hasExtension(e){const t=this.getUsedExtensions().find(i=>i===e),n=this.getRequiredExtensions().find(i=>i===e);return typeof t=="string"||typeof n=="string"}getExtension(e){const t=this.getUsedExtensions().find(i=>i===e),n=this.json.extensions||{};return t?n[e]:null}getRequiredExtension(e){return this.getRequiredExtensions().find(n=>n===e)?this.getExtension(e):null}getRequiredExtensions(){return this.json.extensionsRequired||[]}getUsedExtensions(){return this.json.extensionsUsed||[]}getRemovedExtensions(){return this.json.extensionsRemoved||[]}getObjectExtension(e,t){return(e.extensions||{})[t]}getScene(e){return this.getObject("scenes",e)}getNode(e){return this.getObject("nodes",e)}getSkin(e){return this.getObject("skins",e)}getMesh(e){return this.getObject("meshes",e)}getMaterial(e){return this.getObject("materials",e)}getAccessor(e){return this.getObject("accessors",e)}getTexture(e){return this.getObject("textures",e)}getSampler(e){return this.getObject("samplers",e)}getImage(e){return this.getObject("images",e)}getBufferView(e){return this.getObject("bufferViews",e)}getBuffer(e){return this.getObject("buffers",e)}getObject(e,t){if(typeof t=="object")return t;const n=this.json[e]&&this.json[e][t];if(!n)throw new Error(`glTF file error: Could not find ${e}[${t}]`);return n}getTypedArrayForBufferView(e){e=this.getBufferView(e);const t=e.buffer,n=this.gltf.buffers[t];Sa(n);const i=(e.byteOffset||0)+n.byteOffset;return new Uint8Array(n.arrayBuffer,i,e.byteLength)}getTypedArrayForAccessor(e){const t=this.getAccessor(e);return zre(this.gltf.json,this.gltf.buffers,t)}getTypedArrayForImageData(e){e=this.getAccessor(e);const t=this.getBufferView(e.bufferView),i=this.getBuffer(t.buffer).data,o=t.byteOffset||0;return new Uint8Array(i,o,t.byteLength)}addApplicationData(e,t){return this.json[e]=t,this}addExtraData(e,t){return this.json.extras=this.json.extras||{},this.json.extras[e]=t,this}addObjectExtension(e,t,n){return e.extensions=e.extensions||{},e.extensions[t]=n,this.registerUsedExtension(t),this}setObjectExtension(e,t,n){const i=e.extensions||{};i[t]=n}removeObjectExtension(e,t){const n=(e==null?void 0:e.extensions)||{};if(n[t]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];const i=this.json.extensionsRemoved;i.includes(t)||i.push(t)}delete n[t]}addExtension(e,t={}){return Sa(t),this.json.extensions=this.json.extensions||{},this.json.extensions[e]=t,this.registerUsedExtension(e),t}addRequiredExtension(e,t={}){return Sa(t),this.addExtension(e,t),this.registerRequiredExtension(e),t}registerUsedExtension(e){this.json.extensionsUsed=this.json.extensionsUsed||[],this.json.extensionsUsed.find(t=>t===e)||this.json.extensionsUsed.push(e)}registerRequiredExtension(e){this.registerUsedExtension(e),this.json.extensionsRequired=this.json.extensionsRequired||[],this.json.extensionsRequired.find(t=>t===e)||this.json.extensionsRequired.push(e)}removeExtension(e){var t;if((t=this.json.extensions)!=null&&t[e]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];const n=this.json.extensionsRemoved;n.includes(e)||n.push(e)}this.json.extensions&&delete this.json.extensions[e],this.json.extensionsRequired&&this._removeStringFromArray(this.json.extensionsRequired,e),this.json.extensionsUsed&&this._removeStringFromArray(this.json.extensionsUsed,e)}setDefaultScene(e){this.json.scene=e}addScene(e){const{nodeIndices:t}=e;return this.json.scenes=this.json.scenes||[],this.json.scenes.push({nodes:t}),this.json.scenes.length-1}addNode(e){const{meshIndex:t,matrix:n}=e;this.json.nodes=this.json.nodes||[];const i={mesh:t};return n&&(i.matrix=n),this.json.nodes.push(i),this.json.nodes.length-1}addMesh(e){const{attributes:t,indices:n,material:i,mode:o=4}=e,c={primitives:[{attributes:this._addAttributes(t),mode:o}]};if(n){const f=this._addIndices(n);c.primitives[0].indices=f}return Number.isFinite(i)&&(c.primitives[0].material=i),this.json.meshes=this.json.meshes||[],this.json.meshes.push(c),this.json.meshes.length-1}addPointCloud(e){const n={primitives:[{attributes:this._addAttributes(e),mode:0}]};return this.json.meshes=this.json.meshes||[],this.json.meshes.push(n),this.json.meshes.length-1}addImage(e,t){const n=Yw(e),i=t||(n==null?void 0:n.mimeType),s={bufferView:this.addBufferView(e),mimeType:i};return this.json.images=this.json.images||[],this.json.images.push(s),this.json.images.length-1}addBufferView(e,t=0,n=this.byteLength){const i=e.byteLength;Sa(Number.isFinite(i)),this.sourceBuffers=this.sourceBuffers||[],this.sourceBuffers.push(e);const o={buffer:t,byteOffset:n,byteLength:i};return this.byteLength+=Tg(i,4),this.json.bufferViews=this.json.bufferViews||[],this.json.bufferViews.push(o),this.json.bufferViews.length-1}addAccessor(e,t){const n={bufferView:e,type:eL(t.size),componentType:t.componentType,count:t.count,max:t.max,min:t.min};return this.json.accessors=this.json.accessors||[],this.json.accessors.push(n),this.json.accessors.length-1}addBinaryBuffer(e,t={size:3}){const n=this.addBufferView(e);let i={min:t.min,max:t.max};(!i.min||!i.max)&&(i=this._getAccessorMinMax(e,t.size));const o={size:t.size,componentType:gy(e),count:Math.round(e.length/t.size),min:i.min,max:i.max};return this.addAccessor(n,Object.assign(o,t))}addTexture(e){const{imageIndex:t}=e,n={source:t};return this.json.textures=this.json.textures||[],this.json.textures.push(n),this.json.textures.length-1}addMaterial(e){return this.json.materials=this.json.materials||[],this.json.materials.push(e),this.json.materials.length-1}createBinaryChunk(){var o,s;const e=this.byteLength,t=new ArrayBuffer(e),n=new Uint8Array(t);let i=0;for(const c of this.sourceBuffers||[])i=qte(c,n,i);(s=(o=this.json)==null?void 0:o.buffers)!=null&&s[0]?this.json.buffers[0].byteLength=e:this.json.buffers=[{byteLength:e}],this.gltf.binary=t,this.sourceBuffers=[t],this.gltf.buffers=[{arrayBuffer:t,byteOffset:0,byteLength:t.byteLength}]}_removeStringFromArray(e,t){let n=!0;for(;n;){const i=e.indexOf(t);i>-1?e.splice(i,1):n=!1}}_addAttributes(e={}){const t={};for(const n in e){const i=e[n],o=this._getGltfAttributeName(n),s=this.addBinaryBuffer(i.value,i);t[o]=s}return t}_addIndices(e){return this.addBinaryBuffer(e,{size:1})}_getGltfAttributeName(e){switch(e.toLowerCase()){case"position":case"positions":case"vertices":return"POSITION";case"normal":case"normals":return"NORMAL";case"color":case"colors":return"COLOR_0";case"texcoord":case"texcoords":return"TEXCOORD_0";default:return e}}_getAccessorMinMax(e,t){const n={min:null,max:null};if(e.length<t)return n;n.min=[],n.max=[];const i=e.subarray(0,t);for(const o of i)n.min.push(o),n.max.push(o);for(let o=t;o<e.length;o+=t)for(let s=0;s<t;s++)n.min[0+s]=Math.min(n.min[0+s],e[o+s]),n.max[0+s]=Math.max(n.max[0+s],e[o+s]);return n}};function j3(r){return(r%1+1)%1}const rL={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16,BOOLEAN:1,STRING:1,ENUM:1},Vre={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:BigInt64Array,UINT64:BigUint64Array,FLOAT32:Float32Array,FLOAT64:Float64Array},nL={INT8:1,UINT8:1,INT16:2,UINT16:2,INT32:4,UINT32:4,INT64:8,UINT64:8,FLOAT32:4,FLOAT64:8};function qw(r,e){return nL[e]*rL[r]}function my(r,e,t,n){if(t!=="UINT8"&&t!=="UINT16"&&t!=="UINT32"&&t!=="UINT64")return null;const i=r.getTypedArrayForBufferView(e),o=_y(i,"SCALAR",t,n+1);return o instanceof BigInt64Array||o instanceof BigUint64Array?null:o}function _y(r,e,t,n=1){const i=rL[e],o=Vre[t],s=nL[t],c=n*i,f=c*s;let y=r.buffer,b=r.byteOffset;return b%s!==0&&(y=new Uint8Array(y).slice(b,b+f).buffer,b=0),new o(y,b,c)}function Zw(r,e,t){var y,b,E,S,O;const n=`TEXCOORD_${e.texCoord||0}`,i=t.attributes[n],o=r.getTypedArrayForAccessor(i),s=r.gltf.json,c=e.index,f=(b=(y=s.textures)==null?void 0:y[c])==null?void 0:b.source;if(typeof f<"u"){const k=(S=(E=s.images)==null?void 0:E[f])==null?void 0:S.mimeType,G=(O=r.gltf.images)==null?void 0:O[f];if(G&&typeof G.width<"u"){const W=[];for(let z=0;z<o.length;z+=2){const j=Hre(G,k,o,z,e.channels);W.push(j)}return W}}return[]}function iL(r,e,t,n,i){if(!(t!=null&&t.length))return;const o=[];for(const b of t){let E=n.findIndex(S=>S===b);E===-1&&(E=n.push(b)-1),o.push(E)}const s=new Uint32Array(o),c=r.gltf.buffers.push({arrayBuffer:s.buffer,byteOffset:s.byteOffset,byteLength:s.byteLength})-1,f=r.addBufferView(s,c,0),y=r.addAccessor(f,{size:1,componentType:gy(s),count:s.length});i.attributes[e]=y}function Hre(r,e,t,n,i=[0]){const o={r:{offset:0,shift:0},g:{offset:1,shift:8},b:{offset:2,shift:16},a:{offset:3,shift:24}},s=t[n],c=t[n+1];let f=1;e&&(e.indexOf("image/jpeg")!==-1||e.indexOf("image/png")!==-1)&&(f=4);const y=jre(s,c,r,f);let b=0;for(const E of i){const S=typeof E=="number"?Object.values(o)[E]:o[E],O=y+S.offset,k=K4(r);if(k.data.length<=O)throw new Error(`${k.data.length} <= ${O}`);const G=k.data[O];b|=G<<S.shift}return b}function jre(r,e,t,n=1){const i=t.width,o=j3(r)*(i-1),s=Math.round(o),c=t.height,f=j3(e)*(c-1),y=Math.round(f),b=t.components?t.components:n;return(y*i+s)*b}function sL(r,e,t,n,i){const o=[];for(let s=0;s<e;s++){const c=t[s],f=t[s+1]-t[s];if(f+c>n)break;const y=c/i,b=f/i;o.push(r.slice(y,y+b))}return o}function oL(r,e,t){const n=[];for(let i=0;i<e;i++){const o=i*t;n.push(r.slice(o,o+t))}return n}function aL(r,e,t,n){if(t)throw new Error("Not implemented - arrayOffsets for strings is specified");if(n){const i=[],o=new TextDecoder("utf8");let s=0;for(let c=0;c<r;c++){const f=n[c+1]-n[c];if(f+s<=e.length){const y=e.subarray(s,f+s),b=o.decode(y);i.push(b),s+=f}}return i}return[]}const lA="EXT_mesh_features",$re=lA;async function Wre(r,e){const t=new Is(r);Xre(t,e)}function Jre(r,e){const t=new Is(r);return Yre(t),t.createBinaryChunk(),t.gltf}function Xre(r,e){const t=r.gltf.json;if(t.meshes)for(const n of t.meshes)for(const i of n.primitives)Kre(r,i,e)}function Kre(r,e,t){var o,s,c;if(!((o=t==null?void 0:t.gltf)!=null&&o.loadBuffers))return;const n=(s=e.extensions)==null?void 0:s[lA],i=n==null?void 0:n.featureIds;if(i)for(const f of i){let y;if(typeof f.attribute<"u"){const b=`_FEATURE_ID_${f.attribute}`,E=e.attributes[b];y=r.getTypedArrayForAccessor(E)}else typeof f.texture<"u"&&((c=t==null?void 0:t.gltf)!=null&&c.loadImages)?y=Zw(r,f.texture,e):y=[];f.data=y}}function Yre(r,e){const t=r.gltf.json.meshes;if(t)for(const n of t)for(const i of n.primitives)Zre(r,i)}function qre(r,e,t,n){e.extensions||(e.extensions={});let i=e.extensions[lA];i||(i={featureIds:[]},e.extensions[lA]=i);const{featureIds:o}=i,s={featureCount:t.length,propertyTable:n,data:t};o.push(s),r.addObjectExtension(e,lA,i)}function Zre(r,e){var i;const t=(i=e.extensions)==null?void 0:i[lA];if(!t)return;const n=t.featureIds;n.forEach((o,s)=>{if(o.data){const{accessorKey:c,index:f}=Qre(e.attributes),y=new Uint32Array(o.data);n[s]={featureCount:y.length,propertyTable:o.propertyTable,attribute:f},r.gltf.buffers.push({arrayBuffer:y.buffer,byteOffset:y.byteOffset,byteLength:y.byteLength});const b=r.addBufferView(y),E=r.addAccessor(b,{size:1,componentType:gy(y),count:y.length});e.attributes[c]=E}})}function Qre(r){const e="_FEATURE_ID_",t=Object.keys(r).filter(o=>o.indexOf(e)===0);let n=-1;for(const o of t){const s=Number(o.substring(e.length));s>n&&(n=s)}return n++,{accessorKey:`${e}${n}`,index:n}}const ene=Object.freeze(Object.defineProperty({__proto__:null,createExtMeshFeatures:qre,decode:Wre,encode:Jre,name:$re},Symbol.toStringTag,{value:"Module"})),xA="EXT_structural_metadata",tne=xA;async function rne(r,e){const t=new Is(r);ine(t,e)}function nne(r,e){const t=new Is(r);return vne(t),t.createBinaryChunk(),t.gltf}function ine(r,e){var n,i;if(!((n=e.gltf)!=null&&n.loadBuffers))return;const t=r.getExtension(xA);t&&((i=e.gltf)!=null&&i.loadImages&&sne(r,t),one(r,t))}function sne(r,e){const t=e.propertyTextures,n=r.gltf.json;if(t&&n.meshes)for(const i of n.meshes)for(const o of i.primitives)cne(r,t,o,e)}function one(r,e){const t=e.schema;if(!t)return;const n=t.classes,i=e.propertyTables;if(n&&i)for(const o in n){const s=ane(i,o);s&&une(r,t,s)}}function ane(r,e){for(const t of r)if(t.class===e)return t;return null}function cne(r,e,t,n){var s;if(!e)return;const i=(s=t.extensions)==null?void 0:s[xA],o=i==null?void 0:i.propertyTextures;if(o)for(const c of o){const f=e[c];lne(r,f,t,n)}}function lne(r,e,t,n){var o;if(!e.properties)return;n.dataAttributeNames||(n.dataAttributeNames=[]);const i=e.class;for(const s in e.properties){const c=`${i}_${s}`,f=(o=e.properties)==null?void 0:o[s];if(!f)continue;f.data||(f.data=[]);const y=f.data,b=Zw(r,f,t);b!==null&&(iL(r,c,b,y,t),f.data=y,n.dataAttributeNames.push(c))}}function une(r,e,t){var o,s;const n=(o=e.classes)==null?void 0:o[t.class];if(!n)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${t.class}`);const i=t.count;for(const c in n.properties){const f=n.properties[c],y=(s=t.properties)==null?void 0:s[c];if(y){const b=fne(r,e,f,i,y);y.data=b}}}function fne(r,e,t,n,i){let o=[];const s=i.values,c=r.getTypedArrayForBufferView(s),f=hne(r,t,i,n),y=dne(r,i,n);switch(t.type){case"SCALAR":case"VEC2":case"VEC3":case"VEC4":case"MAT2":case"MAT3":case"MAT4":{o=Ane(t,n,c,f);break}case"BOOLEAN":throw new Error(`Not implemented - classProperty.type=${t.type}`);case"STRING":{o=aL(n,c,f,y);break}case"ENUM":{o=pne(e,t,n,c,f);break}default:throw new Error(`Unknown classProperty type ${t.type}`)}return o}function hne(r,e,t,n){return e.array&&typeof e.count>"u"&&typeof t.arrayOffsets<"u"?my(r,t.arrayOffsets,t.arrayOffsetType||"UINT32",n):null}function dne(r,e,t){return typeof e.stringOffsets<"u"?my(r,e.stringOffsets,e.stringOffsetType||"UINT32",t):null}function Ane(r,e,t,n){const i=r.array,o=r.count,s=qw(r.type,r.componentType),c=t.byteLength/s;let f;return r.componentType?f=_y(t,r.type,r.componentType,c):f=t,i?n?sL(f,e,n,t.length,s):o?oL(f,e,o):[]:f}function pne(r,e,t,n,i){var E;const o=e.enumType;if(!o)throw new Error("Incorrect data in the EXT_structural_metadata extension: classProperty.enumType is not set for type ENUM");const s=(E=r.enums)==null?void 0:E[o];if(!s)throw new Error(`Incorrect data in the EXT_structural_metadata extension: schema.enums does't contain ${o}`);const c=s.valueType||"UINT16",f=qw(e.type,c),y=n.byteLength/f;let b=_y(n,e.type,c,y);if(b||(b=n),e.array){if(i)return gne({valuesData:b,numberOfElements:t,arrayOffsets:i,valuesDataBytesLength:n.length,elementSize:f,enumEntry:s});const S=e.count;return S?mne(b,t,S,s):[]}return Qw(b,0,t,s)}function gne(r){const{valuesData:e,numberOfElements:t,arrayOffsets:n,valuesDataBytesLength:i,elementSize:o,enumEntry:s}=r,c=[];for(let f=0;f<t;f++){const y=n[f],b=n[f+1]-n[f];if(b+y>i)break;const E=y/o,S=b/o,O=Qw(e,E,S,s);c.push(O)}return c}function mne(r,e,t,n){const i=[];for(let o=0;o<e;o++){const s=t*o,c=Qw(r,s,t,n);i.push(c)}return i}function Qw(r,e,t,n){const i=[];for(let o=0;o<t;o++)if(r instanceof BigInt64Array||r instanceof BigUint64Array)i.push("");else{const s=r[e+o],c=_ne(n,s);c?i.push(c.name):i.push("")}return i}function _ne(r,e){for(const t of r.values)if(t.value===e)return t;return null}const yne="schemaClassId";function vne(r,e){var n,i;const t=r.getExtension(xA);if(t&&t.propertyTables)for(const o of t.propertyTables){const s=o.class,c=(i=(n=t.schema)==null?void 0:n.classes)==null?void 0:i[s];o.properties&&c&&bne(o,c,r)}}function bne(r,e,t){for(const n in r.properties){const i=r.properties[n].data;if(i){const o=e.properties[n];if(o){const s=Tne(i,o,t);r.properties[n]=s}}}}function xne(r,e,t=yne){let n=r.getExtension(xA);n||(n=r.addExtension(xA)),n.schema=wne(e,t,n.schema);const i=Cne(e,t,n.schema);return n.propertyTables||(n.propertyTables=[]),n.propertyTables.push(i)-1}function wne(r,e,t){const n=t??{id:"schema_id"},i={properties:{}};for(const o of r){const s={type:o.elementType,componentType:o.componentType};i.properties[o.name]=s}return n.classes={},n.classes[e]=i,n}function Cne(r,e,t){var s;const n={class:e,count:0};let i=0;const o=(s=t.classes)==null?void 0:s[e];for(const c of r){if(i===0&&(i=c.values.length),i!==c.values.length&&c.values.length)throw new Error("Illegal values in attributes");(o==null?void 0:o.properties[c.name])&&(n.properties||(n.properties={}),n.properties[c.name]={values:0,data:c.values})}return n.count=i,n}function Tne(r,e,t){const n={values:0};if(e.type==="STRING"){const{stringData:i,stringOffsets:o}=Sne(r);n.stringOffsets=vb(o,t),n.values=vb(i,t)}else if(e.type==="SCALAR"&&e.componentType){const i=Bne(r,e.componentType);n.values=vb(i,t)}return n}const Ene={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:Int32Array,UINT64:Uint32Array,FLOAT32:Float32Array,FLOAT64:Float64Array};function Bne(r,e){const t=[];for(const i of r)t.push(Number(i));const n=Ene[e];if(!n)throw new Error("Illegal component type");return new n(t)}function Sne(r){const e=new TextEncoder,t=[];let n=0;for(const f of r){const y=e.encode(f);n+=y.length,t.push(y)}const i=new Uint8Array(n),o=[];let s=0;for(const f of t)i.set(f,s),o.push(s),s+=f.length;o.push(s);const c=new Uint32Array(o);return{stringData:i,stringOffsets:c}}function vb(r,e){return e.gltf.buffers.push({arrayBuffer:r.buffer,byteOffset:r.byteOffset,byteLength:r.byteLength}),e.addBufferView(r)}const Ine=Object.freeze(Object.defineProperty({__proto__:null,createExtStructuralMetadata:xne,decode:rne,encode:nne,name:tne},Symbol.toStringTag,{value:"Module"})),cL="EXT_feature_metadata",Mne=cL;async function Pne(r,e){const t=new Is(r);Rne(t,e)}function Rne(r,e){var n,i;if(!((n=e.gltf)!=null&&n.loadBuffers))return;const t=r.getExtension(cL);t&&((i=e.gltf)!=null&&i.loadImages&&Fne(r,t),Dne(r,t))}function Fne(r,e){const t=e.schema;if(!t)return;const n=t.classes,{featureTextures:i}=e;if(n&&i)for(const o in n){const s=n[o],c=Lne(i,o);c&&kne(r,c,s)}}function Dne(r,e){const t=e.schema;if(!t)return;const n=t.classes,i=e.featureTables;if(n&&i)for(const o in n){const s=One(i,o);s&&Nne(r,t,s)}}function One(r,e){for(const t in r){const n=r[t];if(n.class===e)return n}return null}function Lne(r,e){for(const t in r){const n=r[t];if(n.class===e)return n}return null}function Nne(r,e,t){var o,s;if(!t.class)return;const n=(o=e.classes)==null?void 0:o[t.class];if(!n)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${t.class}`);const i=t.count;for(const c in n.properties){const f=n.properties[c],y=(s=t.properties)==null?void 0:s[c];if(y){const b=Une(r,e,f,i,y);y.data=b}}}function kne(r,e,t){var i;const n=e.class;for(const o in t.properties){const s=(i=e==null?void 0:e.properties)==null?void 0:i[o];if(s){const c=jne(r,s,n);s.data=c}}}function Une(r,e,t,n,i){let o=[];const s=i.bufferView,c=r.getTypedArrayForBufferView(s),f=zne(r,t,i,n),y=Gne(r,t,i,n);return t.type==="STRING"||t.componentType==="STRING"?o=aL(n,c,f,y):Vne(t)&&(o=Hne(t,n,c,f)),o}function zne(r,e,t,n){return e.type==="ARRAY"&&typeof e.componentCount>"u"&&typeof t.arrayOffsetBufferView<"u"?my(r,t.arrayOffsetBufferView,t.offsetType||"UINT32",n):null}function Gne(r,e,t,n){return typeof t.stringOffsetBufferView<"u"?my(r,t.stringOffsetBufferView,t.offsetType||"UINT32",n):null}function Vne(r){const e=["UINT8","INT16","UINT16","INT32","UINT32","INT64","UINT64","FLOAT32","FLOAT64"];return e.includes(r.type)||typeof r.componentType<"u"&&e.includes(r.componentType)}function Hne(r,e,t,n){const i=r.type==="ARRAY",o=r.componentCount,s="SCALAR",c=r.componentType||r.type,f=qw(s,c),y=t.byteLength/f,b=_y(t,s,c,y);return i?n?sL(b,e,n,t.length,f):o?oL(b,e,o):[]:b}function jne(r,e,t){const n=r.gltf.json;if(!n.meshes)return[];const i=[];for(const o of n.meshes)for(const s of o.primitives)$ne(r,t,e,i,s);return i}function $ne(r,e,t,n,i){const o={channels:t.channels,...t.texture},s=Zw(r,o,i);s&&iL(r,e,s,n,i)}const Wne=Object.freeze(Object.defineProperty({__proto__:null,decode:Pne,name:Mne},Symbol.toStringTag,{value:"Module"})),Jne="4.3.3",Xne="4.3.3",g_={TRANSCODER:"basis_transcoder.js",TRANSCODER_WASM:"basis_transcoder.wasm",ENCODER:"basis_encoder.js",ENCODER_WASM:"basis_encoder.wasm"};let $3;async function W3(r){Ute(r.modules);const e=zte("basis");return e||($3||($3=Kne(r)),await $3)}async function Kne(r){let e=null,t=null;return[e,t]=await Promise.all([await Kf(g_.TRANSCODER,"textures",r),await Kf(g_.TRANSCODER_WASM,"textures",r)]),e=e||globalThis.BASIS,await Yne(e,t)}function Yne(r,e){const t={};return e&&(t.wasmBinary=e),new Promise(n=>{r(t).then(i=>{const{BasisFile:o,initializeBasis:s}=i;s(),n({BasisFile:o})})})}let bb;async function J3(r){const e=r.modules||{};return e.basisEncoder?e.basisEncoder:(bb=bb||qne(r),await bb)}async function qne(r){let e=null,t=null;return[e,t]=await Promise.all([await Kf(g_.ENCODER,"textures",r),await Kf(g_.ENCODER_WASM,"textures",r)]),e=e||globalThis.BASIS,await Zne(e,t)}function Zne(r,e){const t={};return e&&(t.wasmBinary=e),new Promise(n=>{r(t).then(i=>{const{BasisFile:o,KTX2File:s,initializeBasis:c,BasisEncoder:f}=i;c(),n({BasisFile:o,KTX2File:s,BasisEncoder:f})})})}const xd={COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGB_ETC1_WEBGL:36196,COMPRESSED_RGBA_ASTC_4X4_KHR:37808},Qne=["","WEBKIT_","MOZ_"],X3={WEBGL_compressed_texture_s3tc:"dxt",WEBGL_compressed_texture_s3tc_srgb:"dxt-srgb",WEBGL_compressed_texture_etc1:"etc1",WEBGL_compressed_texture_etc:"etc2",WEBGL_compressed_texture_pvrtc:"pvrtc",WEBGL_compressed_texture_atc:"atc",WEBGL_compressed_texture_astc:"astc",EXT_texture_compression_rgtc:"rgtc"};let j0=null;function eie(r){if(!j0){r=r||tie()||void 0,j0=new Set;for(const e of Qne)for(const t in X3)if(r&&r.getExtension(`${e}${t}`)){const n=X3[t];j0.add(n)}}return j0}function tie(){try{return document.createElement("canvas").getContext("webgl")}catch{return null}}const Qo=[171,75,84,88,32,50,48,187,13,10,26,10];function rie(r){const e=new Uint8Array(r);return!(e.byteLength<Qo.length||e[0]!==Qo[0]||e[1]!==Qo[1]||e[2]!==Qo[2]||e[3]!==Qo[3]||e[4]!==Qo[4]||e[5]!==Qo[5]||e[6]!==Qo[6]||e[7]!==Qo[7]||e[8]!==Qo[8]||e[9]!==Qo[9]||e[10]!==Qo[10]||e[11]!==Qo[11])}const nie={etc1:{basisFormat:0,compressed:!0,format:xd.COMPRESSED_RGB_ETC1_WEBGL},etc2:{basisFormat:1,compressed:!0},bc1:{basisFormat:2,compressed:!0,format:xd.COMPRESSED_RGB_S3TC_DXT1_EXT},bc3:{basisFormat:3,compressed:!0,format:xd.COMPRESSED_RGBA_S3TC_DXT5_EXT},bc4:{basisFormat:4,compressed:!0},bc5:{basisFormat:5,compressed:!0},"bc7-m6-opaque-only":{basisFormat:6,compressed:!0},"bc7-m5":{basisFormat:7,compressed:!0},"pvrtc1-4-rgb":{basisFormat:8,compressed:!0,format:xd.COMPRESSED_RGB_PVRTC_4BPPV1_IMG},"pvrtc1-4-rgba":{basisFormat:9,compressed:!0,format:xd.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG},"astc-4x4":{basisFormat:10,compressed:!0,format:xd.COMPRESSED_RGBA_ASTC_4X4_KHR},"atc-rgb":{basisFormat:11,compressed:!0},"atc-rgba-interpolated-alpha":{basisFormat:12,compressed:!0},rgba32:{basisFormat:13,compressed:!1},rgb565:{basisFormat:14,compressed:!1},bgr565:{basisFormat:15,compressed:!1},rgba4444:{basisFormat:16,compressed:!1}};async function iie(r,e){if(e.basis.containerFormat==="auto"){if(rie(r)){const n=await J3(e);return K3(n.KTX2File,r,e)}const{BasisFile:t}=await W3(e);return xb(t,r,e)}switch(e.basis.module){case"encoder":const t=await J3(e);switch(e.basis.containerFormat){case"ktx2":return K3(t.KTX2File,r,e);case"basis":default:return xb(t.BasisFile,r,e)}case"transcoder":default:const{BasisFile:n}=await W3(e);return xb(n,r,e)}}function xb(r,e,t){const n=new r(new Uint8Array(e));try{if(!n.startTranscoding())throw new Error("Failed to start basis transcoding");const i=n.getNumImages(),o=[];for(let s=0;s<i;s++){const c=n.getNumLevels(s),f=[];for(let y=0;y<c;y++)f.push(sie(n,s,y,t));o.push(f)}return o}finally{n.close(),n.delete()}}function sie(r,e,t,n){const i=r.getImageWidth(e,t),o=r.getImageHeight(e,t),s=r.getHasAlpha(),{compressed:c,format:f,basisFormat:y}=lL(n,s),b=r.getImageTranscodedSizeInBytes(e,t,y),E=new Uint8Array(b);if(!r.transcodeImage(E,e,t,y,0,0))throw new Error("failed to start Basis transcoding");return{width:i,height:o,data:E,compressed:c,format:f,hasAlpha:s}}function K3(r,e,t){const n=new r(new Uint8Array(e));try{if(!n.startTranscoding())throw new Error("failed to start KTX2 transcoding");const i=n.getLevels(),o=[];for(let s=0;s<i;s++)o.push(oie(n,s,t));return[o]}finally{n.close(),n.delete()}}function oie(r,e,t){const{alphaFlag:n,height:i,width:o}=r.getImageLevelInfo(e,0,0),{compressed:s,format:c,basisFormat:f}=lL(t,n),y=r.getImageTranscodedSizeInBytes(e,0,0,f),b=new Uint8Array(y);if(!r.transcodeImage(b,e,0,0,f,0,-1,-1))throw new Error("Failed to transcode KTX2 image");return{width:o,height:i,data:b,compressed:s,levelSize:y,hasAlpha:n,format:c}}function lL(r,e){let t=r&&r.basis&&r.basis.format;return t==="auto"&&(t=uL()),typeof t=="object"&&(t=e?t.alpha:t.noAlpha),t=t.toLowerCase(),nie[t]}function uL(){const r=eie();return r.has("astc")?"astc-4x4":r.has("dxt")?{alpha:"bc3",noAlpha:"bc1"}:r.has("pvrtc")?{alpha:"pvrtc1-4-rgba",noAlpha:"pvrtc1-4-rgb"}:r.has("etc1")?"etc1":r.has("etc2")?"etc2":"rgb565"}const aie={dataType:null,batchType:null,name:"Basis",id:"basis",module:"textures",version:Xne,worker:!0,extensions:["basis","ktx2"],mimeTypes:["application/octet-stream","image/ktx2"],tests:["sB"],binary:!0,options:{basis:{format:"auto",libraryPath:"libs/",containerFormat:"auto",module:"transcoder"}}},cie={...aie,parse:iie},wA=!0,Y3=1735152710,eC=12,m_=8,lie=1313821514,uie=5130562,fie=0,hie=0,die=1;function Aie(r,e=0){return`${String.fromCharCode(r.getUint8(e+0))}${String.fromCharCode(r.getUint8(e+1))}${String.fromCharCode(r.getUint8(e+2))}${String.fromCharCode(r.getUint8(e+3))}`}function pie(r,e=0,t={}){const n=new DataView(r),{magic:i=Y3}=t,o=n.getUint32(e,!1);return o===i||o===Y3}function gie(r,e,t=0,n={}){const i=new DataView(e),o=Aie(i,t+0),s=i.getUint32(t+4,wA),c=i.getUint32(t+8,wA);switch(Object.assign(r,{header:{byteOffset:t,byteLength:c,hasBinChunk:!1},type:o,version:s,json:{},binChunks:[]}),t+=eC,r.version){case 1:return mie(r,i,t);case 2:return _ie(r,i,t,n={});default:throw new Error(`Invalid GLB version ${r.version}. Only supports version 1 and 2.`)}}function mie(r,e,t){Qf(r.header.byteLength>eC+m_);const n=e.getUint32(t+0,wA),i=e.getUint32(t+4,wA);return t+=m_,Qf(i===fie),ax(r,e,t,n),t+=n,t+=cx(r,e,t,r.header.byteLength),t}function _ie(r,e,t,n){return Qf(r.header.byteLength>eC+m_),yie(r,e,t,n),t+r.header.byteLength}function yie(r,e,t,n){for(;t+8<=r.header.byteLength;){const i=e.getUint32(t+0,wA),o=e.getUint32(t+4,wA);switch(t+=m_,o){case lie:ax(r,e,t,i);break;case uie:cx(r,e,t,i);break;case hie:n.strict||ax(r,e,t,i);break;case die:n.strict||cx(r,e,t,i);break}t+=Tg(i,4)}return t}function ax(r,e,t,n){const i=new Uint8Array(e.buffer,t,n),s=new TextDecoder("utf8").decode(i);return r.json=JSON.parse(s),Tg(n,4)}function cx(r,e,t,n){return r.header.hasBinChunk=!0,r.binChunks.push({byteOffset:t,byteLength:n,arrayBuffer:e.buffer}),Tg(n,4)}function fL(r,e){if(r.startsWith("data:")||r.startsWith("http:")||r.startsWith("https:"))return r;const n=e.baseUri||e.uri;if(!n)throw new Error(`'baseUri' must be provided to resolve relative url ${r}`);return n.substr(0,n.lastIndexOf("/")+1)+r}const vie="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",bie="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",xie=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),wie=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]),Cie={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},Tie={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};async function Eie(r,e,t,n,i,o="NONE"){const s=await Bie();Mie(s,s.exports[Tie[i]],r,e,t,n,s.exports[Cie[o||"NONE"]])}let wb;async function Bie(){return wb||(wb=Sie()),wb}async function Sie(){let r=vie;WebAssembly.validate(xie)&&(r=bie,console.log("Warning: meshopt_decoder is using experimental SIMD support"));const e=await WebAssembly.instantiate(Iie(r),{});return await e.instance.exports.__wasm_call_ctors(),e.instance}function Iie(r){const e=new Uint8Array(r.length);for(let n=0;n<r.length;++n){const i=r.charCodeAt(n);e[n]=i>96?i-71:i>64?i-65:i>47?i+4:i>46?63:62}let t=0;for(let n=0;n<r.length;++n)e[t++]=e[n]<60?wie[e[n]]:(e[n]-60)*64+e[++n];return e.buffer.slice(0,t)}function Mie(r,e,t,n,i,o,s){const c=r.exports.sbrk,f=n+3&-4,y=c(f*i),b=c(o.length),E=new Uint8Array(r.exports.memory.buffer);E.set(o,b);const S=e(y,n,i,b,o.length);if(S===0&&s&&s(y,f,i),t.set(E.subarray(y,y+n*i)),c(y-c(0)),S!==0)throw new Error(`Malformed buffer data: ${S}`)}const __="EXT_meshopt_compression",Pie=__;async function Rie(r,e){var i,o;const t=new Is(r);if(!((i=e==null?void 0:e.gltf)!=null&&i.decompressMeshes)||!((o=e.gltf)!=null&&o.loadBuffers))return;const n=[];for(const s of r.json.bufferViews||[])n.push(Fie(t,s));await Promise.all(n),t.removeExtension(__)}async function Fie(r,e){const t=r.getObjectExtension(e,__);if(t){const{byteOffset:n=0,byteLength:i=0,byteStride:o,count:s,mode:c,filter:f="NONE",buffer:y}=t,b=r.gltf.buffers[y],E=new Uint8Array(b.arrayBuffer,b.byteOffset+n,i),S=new Uint8Array(r.gltf.buffers[e.buffer].arrayBuffer,e.byteOffset,e.byteLength);await Eie(S,s,o,E,c,f),r.removeObjectExtension(e,__)}}const Die=Object.freeze(Object.defineProperty({__proto__:null,decode:Rie,name:Pie},Symbol.toStringTag,{value:"Module"})),zd="EXT_texture_webp",Oie=zd;function Lie(r,e){const t=new Is(r);if(!Mre("image/webp")){if(t.getRequiredExtensions().includes(zd))throw new Error(`gltf: Required extension ${zd} not supported by browser`);return}const{json:n}=t;for(const i of n.textures||[]){const o=t.getObjectExtension(i,zd);o&&(i.source=o.source),t.removeObjectExtension(i,zd)}t.removeExtension(zd)}const Nie=Object.freeze(Object.defineProperty({__proto__:null,name:Oie,preprocess:Lie},Symbol.toStringTag,{value:"Module"})),Mm="KHR_texture_basisu",kie=Mm;function Uie(r,e){const t=new Is(r),{json:n}=t;for(const i of n.textures||[]){const o=t.getObjectExtension(i,Mm);o&&(i.source=o.source,t.removeObjectExtension(i,Mm))}t.removeExtension(Mm)}const zie=Object.freeze(Object.defineProperty({__proto__:null,name:kie,preprocess:Uie},Symbol.toStringTag,{value:"Module"})),Gie="4.3.3",Vie={dataType:null,batchType:null,name:"Draco",id:"draco",module:"draco",version:Gie,worker:!0,extensions:["drc"],mimeTypes:["application/octet-stream"],binary:!0,tests:["DRACO"],options:{draco:{decoderType:typeof WebAssembly=="object"?"wasm":"js",libraryPath:"libs/",extraAttributes:{},attributeNameEntry:void 0}}};function Hie(r){switch(r.constructor){case Int8Array:return"int8";case Uint8Array:case Uint8ClampedArray:return"uint8";case Int16Array:return"int16";case Uint16Array:return"uint16";case Int32Array:return"int32";case Uint32Array:return"uint32";case Float32Array:return"float32";case Float64Array:return"float64";default:return"null"}}function jie(r){let e=1/0,t=1/0,n=1/0,i=-1/0,o=-1/0,s=-1/0;const c=r.POSITION?r.POSITION.value:[],f=c&&c.length;for(let y=0;y<f;y+=3){const b=c[y],E=c[y+1],S=c[y+2];e=b<e?b:e,t=E<t?E:t,n=S<n?S:n,i=b>i?b:i,o=E>o?E:o,s=S>s?S:s}return[[e,t,n],[i,o,s]]}function $ie(r,e,t){const n=Hie(e.value),i=t||Wie(e);return{name:r,type:{type:"fixed-size-list",listSize:e.size,children:[{name:"value",type:n}]},nullable:!1,metadata:i}}function Wie(r){const e={};return"byteOffset"in r&&(e.byteOffset=r.byteOffset.toString(10)),"byteStride"in r&&(e.byteStride=r.byteStride.toString(10)),"normalized"in r&&(e.normalized=r.normalized.toString()),e}function Jie(r,e,t){const n=hL(e.metadata),i=[],o=Xie(e.attributes);for(const s in r){const c=r[s],f=q3(s,c,o[s]);i.push(f)}if(t){const s=q3("indices",t);i.push(s)}return{fields:i,metadata:n}}function Xie(r){const e={};for(const t in r){const n=r[t];e[n.name||"undefined"]=n}return e}function q3(r,e,t){const n=t?hL(t.metadata):void 0;return $ie(r,e,n)}function hL(r){Object.entries(r);const e={};for(const t in r)e[`${t}.string`]=JSON.stringify(r[t]);return e}const Z3={POSITION:"POSITION",NORMAL:"NORMAL",COLOR:"COLOR_0",TEX_COORD:"TEXCOORD_0"},Kie={1:Int8Array,2:Uint8Array,3:Int16Array,4:Uint16Array,5:Int32Array,6:Uint32Array,9:Float32Array},Yie=4;let qie=class{constructor(e){V(this,"draco");V(this,"decoder");V(this,"metadataQuerier");this.draco=e,this.decoder=new this.draco.Decoder,this.metadataQuerier=new this.draco.MetadataQuerier}destroy(){this.draco.destroy(this.decoder),this.draco.destroy(this.metadataQuerier)}parseSync(e,t={}){const n=new this.draco.DecoderBuffer;n.Init(new Int8Array(e),e.byteLength),this._disableAttributeTransforms(t);const i=this.decoder.GetEncodedGeometryType(n),o=i===this.draco.TRIANGULAR_MESH?new this.draco.Mesh:new this.draco.PointCloud;try{let s;switch(i){case this.draco.TRIANGULAR_MESH:s=this.decoder.DecodeBufferToMesh(n,o);break;case this.draco.POINT_CLOUD:s=this.decoder.DecodeBufferToPointCloud(n,o);break;default:throw new Error("DRACO: Unknown geometry type.")}if(!s.ok()||!o.ptr){const S=`DRACO decompression failed: ${s.error_msg()}`;throw new Error(S)}const c=this._getDracoLoaderData(o,i,t),f=this._getMeshData(o,c,t),y=jie(f.attributes),b=Jie(f.attributes,c,f.indices);return{loader:"draco",loaderData:c,header:{vertexCount:o.num_points(),boundingBox:y},...f,schema:b}}finally{this.draco.destroy(n),o&&this.draco.destroy(o)}}_getDracoLoaderData(e,t,n){const i=this._getTopLevelMetadata(e),o=this._getDracoAttributes(e,n);return{geometry_type:t,num_attributes:e.num_attributes(),num_points:e.num_points(),num_faces:e instanceof this.draco.Mesh?e.num_faces():0,metadata:i,attributes:o}}_getDracoAttributes(e,t){const n={};for(let i=0;i<e.num_attributes();i++){const o=this.decoder.GetAttribute(e,i),s=this._getAttributeMetadata(e,i);n[o.unique_id()]={unique_id:o.unique_id(),attribute_type:o.attribute_type(),data_type:o.data_type(),num_components:o.num_components(),byte_offset:o.byte_offset(),byte_stride:o.byte_stride(),normalized:o.normalized(),attribute_index:i,metadata:s};const c=this._getQuantizationTransform(o,t);c&&(n[o.unique_id()].quantization_transform=c);const f=this._getOctahedronTransform(o,t);f&&(n[o.unique_id()].octahedron_transform=f)}return n}_getMeshData(e,t,n){const i=this._getMeshAttributes(t,e,n);if(!i.POSITION)throw new Error("DRACO: No position attribute found.");if(e instanceof this.draco.Mesh)switch(n.topology){case"triangle-strip":return{topology:"triangle-strip",mode:4,attributes:i,indices:{value:this._getTriangleStripIndices(e),size:1}};case"triangle-list":default:return{topology:"triangle-list",mode:5,attributes:i,indices:{value:this._getTriangleListIndices(e),size:1}}}return{topology:"point-list",mode:0,attributes:i}}_getMeshAttributes(e,t,n){const i={};for(const o of Object.values(e.attributes)){const s=this._deduceAttributeName(o,n);o.name=s;const c=this._getAttributeValues(t,o);if(c){const{value:f,size:y}=c;i[s]={value:f,size:y,byteOffset:o.byte_offset,byteStride:o.byte_stride,normalized:o.normalized}}}return i}_getTriangleListIndices(e){const n=e.num_faces()*3,i=n*Yie,o=this.draco._malloc(i);try{return this.decoder.GetTrianglesUInt32Array(e,i,o),new Uint32Array(this.draco.HEAPF32.buffer,o,n).slice()}finally{this.draco._free(o)}}_getTriangleStripIndices(e){const t=new this.draco.DracoInt32Array;try{return this.decoder.GetTriangleStripsFromMesh(e,t),ese(t)}finally{this.draco.destroy(t)}}_getAttributeValues(e,t){const n=Kie[t.data_type];if(!n)return console.warn(`DRACO: Unsupported attribute type ${t.data_type}`),null;const i=t.num_components,s=e.num_points()*i,c=s*n.BYTES_PER_ELEMENT,f=Zie(this.draco,n);let y;const b=this.draco._malloc(c);try{const E=this.decoder.GetAttribute(e,t.attribute_index);this.decoder.GetAttributeDataArrayForAllPoints(e,E,f,c,b),y=new n(this.draco.HEAPF32.buffer,b,s).slice()}finally{this.draco._free(b)}return{value:y,size:i}}_deduceAttributeName(e,t){const n=e.unique_id;for(const[s,c]of Object.entries(t.extraAttributes||{}))if(c===n)return s;const i=e.attribute_type;for(const s in Z3)if(this.draco[s]===i)return Z3[s];const o=t.attributeNameEntry||"name";return e.metadata[o]?e.metadata[o].string:`CUSTOM_ATTRIBUTE_${n}`}_getTopLevelMetadata(e){const t=this.decoder.GetMetadata(e);return this._getDracoMetadata(t)}_getAttributeMetadata(e,t){const n=this.decoder.GetAttributeMetadata(e,t);return this._getDracoMetadata(n)}_getDracoMetadata(e){if(!e||!e.ptr)return{};const t={},n=this.metadataQuerier.NumEntries(e);for(let i=0;i<n;i++){const o=this.metadataQuerier.GetEntryName(e,i);t[o]=this._getDracoMetadataField(e,o)}return t}_getDracoMetadataField(e,t){const n=new this.draco.DracoInt32Array;try{this.metadataQuerier.GetIntEntryArray(e,t,n);const i=Qie(n);return{int:this.metadataQuerier.GetIntEntry(e,t),string:this.metadataQuerier.GetStringEntry(e,t),double:this.metadataQuerier.GetDoubleEntry(e,t),intArray:i}}finally{this.draco.destroy(n)}}_disableAttributeTransforms(e){const{quantizedAttributes:t=[],octahedronAttributes:n=[]}=e,i=[...t,...n];for(const o of i)this.decoder.SkipAttributeTransform(this.draco[o])}_getQuantizationTransform(e,t){const{quantizedAttributes:n=[]}=t,i=e.attribute_type();if(n.map(s=>this.decoder[s]).includes(i)){const s=new this.draco.AttributeQuantizationTransform;try{if(s.InitFromAttribute(e))return{quantization_bits:s.quantization_bits(),range:s.range(),min_values:new Float32Array([1,2,3]).map(c=>s.min_value(c))}}finally{this.draco.destroy(s)}}return null}_getOctahedronTransform(e,t){const{octahedronAttributes:n=[]}=t,i=e.attribute_type();if(n.map(s=>this.decoder[s]).includes(i)){const s=new this.draco.AttributeQuantizationTransform;try{if(s.InitFromAttribute(e))return{quantization_bits:s.quantization_bits()}}finally{this.draco.destroy(s)}}return null}};function Zie(r,e){switch(e){case Float32Array:return r.DT_FLOAT32;case Int8Array:return r.DT_INT8;case Int16Array:return r.DT_INT16;case Int32Array:return r.DT_INT32;case Uint8Array:return r.DT_UINT8;case Uint16Array:return r.DT_UINT16;case Uint32Array:return r.DT_UINT32;default:return r.DT_INVALID}}function Qie(r){const e=r.size(),t=new Int32Array(e);for(let n=0;n<e;n++)t[n]=r.GetValue(n);return t}function ese(r){const e=r.size(),t=new Int32Array(e);for(let n=0;n<e;n++)t[n]=r.GetValue(n);return t}const tse="1.5.6",rse="1.4.1",Cb=`https://www.gstatic.com/draco/versioned/decoders/${tse}`,Ro={DECODER:"draco_wasm_wrapper.js",DECODER_WASM:"draco_decoder.wasm",FALLBACK_DECODER:"draco_decoder.js",ENCODER:"draco_encoder.js"},Tb={[Ro.DECODER]:`${Cb}/${Ro.DECODER}`,[Ro.DECODER_WASM]:`${Cb}/${Ro.DECODER_WASM}`,[Ro.FALLBACK_DECODER]:`${Cb}/${Ro.FALLBACK_DECODER}`,[Ro.ENCODER]:`https://raw.githubusercontent.com/google/draco/${rse}/javascript/${Ro.ENCODER}`};let Eb;async function nse(r){const e=r.modules||{};return e.draco3d?Eb||(Eb=e.draco3d.createDecoderModule({}).then(t=>({draco:t}))):Eb||(Eb=ise(r)),await Eb}async function ise(r){let e,t;switch(r.draco&&r.draco.decoderType){case"js":e=await Kf(Tb[Ro.FALLBACK_DECODER],"draco",r,Ro.FALLBACK_DECODER);break;case"wasm":default:[e,t]=await Promise.all([await Kf(Tb[Ro.DECODER],"draco",r,Ro.DECODER),await Kf(Tb[Ro.DECODER_WASM],"draco",r,Ro.DECODER_WASM)])}return e=e||globalThis.DracoDecoderModule,await sse(e,t)}function sse(r,e){const t={};return e&&(t.wasmBinary=e),new Promise(n=>{r({...t,onModuleLoaded:i=>n({draco:i})})})}const ose={...Vie,parse:ase};async function ase(r,e){const{draco:t}=await nse(e),n=new qie(t);try{return n.parseSync(r,e==null?void 0:e.draco)}finally{n.destroy()}}function cse(r){const e={};for(const t in r){const n=r[t];if(t!=="indices"){const i=dL(n);e[t]=i}}return e}function dL(r){const{buffer:e,size:t,count:n}=lse(r);return{value:e,size:t,byteOffset:0,count:n,type:eL(t),componentType:gy(e)}}function lse(r){let e=r,t=1,n=0;return r&&r.value&&(e=r.value,t=r.size||1),e&&(ArrayBuffer.isView(e)||(e=use(e,Float32Array)),n=e.length/t),{buffer:e,size:t,count:n}}function use(r,e,t=!1){return r?Array.isArray(r)?new e(r):t&&!(r instanceof e)?new e(r):r:null}const Gu="KHR_draco_mesh_compression",fse=Gu;function hse(r,e,t){const n=new Is(r);for(const i of AL(n))n.getObjectExtension(i,Gu)}async function dse(r,e,t){var o;if(!((o=e==null?void 0:e.gltf)!=null&&o.decompressMeshes))return;const n=new Is(r),i=[];for(const s of AL(n))n.getObjectExtension(s,Gu)&&i.push(pse(n,s,e,t));await Promise.all(i),n.removeExtension(Gu)}function Ase(r,e={}){const t=new Is(r);for(const n of t.json.meshes||[])gse(n),t.addRequiredExtension(Gu)}async function pse(r,e,t,n){const i=r.getObjectExtension(e,Gu);if(!i)return;const o=r.getTypedArrayForBufferView(i.bufferView),s=J4(o.buffer,o.byteOffset),c={...t};delete c["3d-tiles"];const f=await V4(s,ose,c,n),y=cse(f.attributes);for(const[b,E]of Object.entries(y))if(b in e.attributes){const S=e.attributes[b],O=r.getAccessor(S);O!=null&&O.min&&(O!=null&&O.max)&&(E.min=O.min,E.max=O.max)}e.attributes=y,f.indices&&(e.indices=dL(f.indices)),r.removeObjectExtension(e,Gu),mse(e)}function gse(r,e,t=4,n,i){var b;if(!n.DracoWriter)throw new Error("options.gltf.DracoWriter not provided");const o=n.DracoWriter.encodeSync({attributes:r}),s=(b=i==null?void 0:i.parseSync)==null?void 0:b.call(i,{attributes:r}),c=n._addFauxAttributes(s.attributes),f=n.addBufferView(o);return{primitives:[{attributes:c,mode:t,extensions:{[Gu]:{bufferView:f,attributes:c}}}]}}function mse(r){if(!r.attributes&&Object.keys(r.attributes).length>0)throw new Error("glTF: Empty primitive detected: Draco decompression failure?")}function*AL(r){for(const e of r.json.meshes||[])for(const t of e.primitives)yield t}const _se=Object.freeze(Object.defineProperty({__proto__:null,decode:dse,encode:Ase,name:fse,preprocess:hse},Symbol.toStringTag,{value:"Module"})),yy="KHR_texture_transform",yse=yy,$0=new ft,vse=new ci,bse=new ci;async function xse(r,e){var o;if(!new Is(r).hasExtension(yy)||!((o=e.gltf)!=null&&o.loadBuffers))return;const i=r.json.materials||[];for(let s=0;s<i.length;s++)wse(s,r)}function wse(r,e){var o,s,c,f;const t=(o=e.json.materials)==null?void 0:o[r],n=[(s=t==null?void 0:t.pbrMetallicRoughness)==null?void 0:s.baseColorTexture,t==null?void 0:t.emissiveTexture,t==null?void 0:t.normalTexture,t==null?void 0:t.occlusionTexture,(c=t==null?void 0:t.pbrMetallicRoughness)==null?void 0:c.metallicRoughnessTexture],i=[];for(const y of n)y&&((f=y==null?void 0:y.extensions)!=null&&f[yy])&&Cse(e,r,y,i)}function Cse(r,e,t,n){const i=Tse(t,n);if(!i)return;const o=r.json.meshes||[];for(const s of o)for(const c of s.primitives){const f=c.material;Number.isFinite(f)&&e===f&&Ese(r,c,i)}}function Tse(r,e){var s;const t=(s=r.extensions)==null?void 0:s[yy],{texCoord:n=0}=r,{texCoord:i=n}=t;if(!(e.findIndex(([c,f])=>c===n&&f===i)!==-1)){const c=Ise(t);return n!==i&&(r.texCoord=i),e.push([n,i]),{originalTexCoord:n,texCoord:i,matrix:c}}return null}function Ese(r,e,t){var c,f;const{originalTexCoord:n,texCoord:i,matrix:o}=t,s=e.attributes[`TEXCOORD_${n}`];if(Number.isFinite(s)){const y=(c=r.json.accessors)==null?void 0:c[s];if(y&&y.bufferView){const b=(f=r.json.bufferViews)==null?void 0:f[y.bufferView];if(b){const{arrayBuffer:E,byteOffset:S}=r.buffers[b.buffer],O=(S||0)+(y.byteOffset||0)+(b.byteOffset||0),{ArrayType:k,length:G}=tL(y,b),W=Q4[y.componentType],z=Z4[y.type],j=b.byteStride||W*z,K=new Float32Array(G);for(let fe=0;fe<y.count;fe++){const Z=new k(E,O+fe*j,2);$0.set(Z[0],Z[1],1),$0.transformByMatrix3(o),K.set([$0[0],$0[1]],fe*z)}n===i?Bse(y,b,r.buffers,K):Sse(i,y,e,r,K)}}}}function Bse(r,e,t,n){r.componentType=5126,t.push({arrayBuffer:n.buffer,byteOffset:0,byteLength:n.buffer.byteLength}),e.buffer=t.length-1,e.byteLength=n.buffer.byteLength,e.byteOffset=0,delete e.byteStride}function Sse(r,e,t,n,i){n.buffers.push({arrayBuffer:i.buffer,byteOffset:0,byteLength:i.buffer.byteLength});const o=n.json.bufferViews;if(!o)return;o.push({buffer:n.buffers.length-1,byteLength:i.buffer.byteLength,byteOffset:0});const s=n.json.accessors;s&&(s.push({bufferView:(o==null?void 0:o.length)-1,byteOffset:0,componentType:5126,count:e.count,type:"VEC2"}),t.attributes[`TEXCOORD_${r}`]=s.length-1)}function Ise(r){const{offset:e=[0,0],rotation:t=0,scale:n=[1,1]}=r,i=new ci().set(1,0,0,0,1,0,e[0],e[1],1),o=vse.set(Math.cos(t),Math.sin(t),0,-Math.sin(t),Math.cos(t),0,0,0,1),s=bse.set(n[0],0,0,0,n[1],0,0,0,1);return i.multiplyRight(o).multiplyRight(s)}const Mse=Object.freeze(Object.defineProperty({__proto__:null,decode:xse,name:yse},Symbol.toStringTag,{value:"Module"})),Vf="KHR_lights_punctual",Pse=Vf;async function Rse(r){const e=new Is(r),{json:t}=e,n=e.getExtension(Vf);n&&(e.json.lights=n.lights,e.removeExtension(Vf));for(const i of t.nodes||[]){const o=e.getObjectExtension(i,Vf);o&&(i.light=o.light),e.removeObjectExtension(i,Vf)}}async function Fse(r){const e=new Is(r),{json:t}=e;if(t.lights){const n=e.addExtension(Vf);Sa(!n.lights),n.lights=t.lights,delete t.lights}if(e.json.lights){for(const n of e.json.lights){const i=n.node;e.addObjectExtension(i,Vf,n)}delete e.json.lights}}const Dse=Object.freeze(Object.defineProperty({__proto__:null,decode:Rse,encode:Fse,name:Pse},Symbol.toStringTag,{value:"Module"})),hg="KHR_materials_unlit",Ose=hg;async function Lse(r){const e=new Is(r),{json:t}=e;for(const n of t.materials||[])n.extensions&&n.extensions.KHR_materials_unlit&&(n.unlit=!0),e.removeObjectExtension(n,hg);e.removeExtension(hg)}function Nse(r){const e=new Is(r),{json:t}=e;if(e.materials)for(const n of t.materials||[])n.unlit&&(delete n.unlit,e.addObjectExtension(n,hg,{}),e.addExtension(hg))}const kse=Object.freeze(Object.defineProperty({__proto__:null,decode:Lse,encode:Nse,name:Ose},Symbol.toStringTag,{value:"Module"})),Fp="KHR_techniques_webgl",Use=Fp;async function zse(r){const e=new Is(r),{json:t}=e,n=e.getExtension(Fp);if(n){const i=Vse(n,e);for(const o of t.materials||[]){const s=e.getObjectExtension(o,Fp);s&&(o.technique=Object.assign({},s,i[s.technique]),o.technique.values=Hse(o.technique,e)),e.removeObjectExtension(o,Fp)}e.removeExtension(Fp)}}async function Gse(r,e){}function Vse(r,e){const{programs:t=[],shaders:n=[],techniques:i=[]}=r,o=new TextDecoder;return n.forEach(s=>{if(Number.isFinite(s.bufferView))s.code=o.decode(e.getTypedArrayForBufferView(s.bufferView));else throw new Error("KHR_techniques_webgl: no shader code")}),t.forEach(s=>{s.fragmentShader=n[s.fragmentShader],s.vertexShader=n[s.vertexShader]}),i.forEach(s=>{s.program=t[s.program]}),i}function Hse(r,e){const t=Object.assign({},r.values);return Object.keys(r.uniforms||{}).forEach(n=>{r.uniforms[n].value&&!(n in t)&&(t[n]=r.uniforms[n].value)}),Object.keys(t).forEach(n=>{typeof t[n]=="object"&&t[n].index!==void 0&&(t[n].texture=e.getTexture(t[n].index))}),t}const jse=Object.freeze(Object.defineProperty({__proto__:null,decode:zse,encode:Gse,name:Use},Symbol.toStringTag,{value:"Module"})),pL=[Ine,ene,Die,Nie,zie,_se,Dse,kse,jse,Mse,Wne];function $se(r,e={},t){var i;const n=pL.filter(o=>gL(o.name,e));for(const o of n)(i=o.preprocess)==null||i.call(o,r,e,t)}async function Wse(r,e={},t){var i;const n=pL.filter(o=>gL(o.name,e));for(const o of n)await((i=o.decode)==null?void 0:i.call(o,r,e,t))}function gL(r,e){var i;const t=((i=e==null?void 0:e.gltf)==null?void 0:i.excludeExtensions)||{};return!(r in t&&!t[r])}const Bb="KHR_binary_glTF";function Jse(r){const e=new Is(r),{json:t}=e;for(const n of t.images||[]){const i=e.getObjectExtension(n,Bb);i&&Object.assign(n,i),e.removeObjectExtension(n,Bb)}t.buffers&&t.buffers[0]&&delete t.buffers[0].uri,e.removeExtension(Bb)}const Q3={accessors:"accessor",animations:"animation",buffers:"buffer",bufferViews:"bufferView",images:"image",materials:"material",meshes:"mesh",nodes:"node",samplers:"sampler",scenes:"scene",skins:"skin",textures:"texture"},Xse={accessor:"accessors",animations:"animation",buffer:"buffers",bufferView:"bufferViews",image:"images",material:"materials",mesh:"meshes",node:"nodes",sampler:"samplers",scene:"scenes",skin:"skins",texture:"textures"};let Kse=class{constructor(){V(this,"idToIndexMap",{animations:{},accessors:{},buffers:{},bufferViews:{},images:{},materials:{},meshes:{},nodes:{},samplers:{},scenes:{},skins:{},textures:{}});V(this,"json")}normalize(e,t){this.json=e.json;const n=e.json;switch(n.asset&&n.asset.version){case"2.0":return;case void 0:case"1.0":break;default:console.warn(`glTF: Unknown version ${n.asset.version}`);return}if(!t.normalize)throw new Error("glTF v1 is not supported.");console.warn("Converting glTF v1 to glTF v2 format. This is experimental and may fail."),this._addAsset(n),this._convertTopLevelObjectsToArrays(n),Jse(e),this._convertObjectIdsToArrayIndices(n),this._updateObjects(n),this._updateMaterial(n)}_addAsset(e){e.asset=e.asset||{},e.asset.version="2.0",e.asset.generator=e.asset.generator||"Normalized to glTF 2.0 by loaders.gl"}_convertTopLevelObjectsToArrays(e){for(const t in Q3)this._convertTopLevelObjectToArray(e,t)}_convertTopLevelObjectToArray(e,t){const n=e[t];if(!(!n||Array.isArray(n))){e[t]=[];for(const i in n){const o=n[i];o.id=o.id||i;const s=e[t].length;e[t].push(o),this.idToIndexMap[t][i]=s}}}_convertObjectIdsToArrayIndices(e){for(const t in Q3)this._convertIdsToIndices(e,t);"scene"in e&&(e.scene=this._convertIdToIndex(e.scene,"scene"));for(const t of e.textures)this._convertTextureIds(t);for(const t of e.meshes)this._convertMeshIds(t);for(const t of e.nodes)this._convertNodeIds(t);for(const t of e.scenes)this._convertSceneIds(t)}_convertTextureIds(e){e.source&&(e.source=this._convertIdToIndex(e.source,"image"))}_convertMeshIds(e){for(const t of e.primitives){const{attributes:n,indices:i,material:o}=t;for(const s in n)n[s]=this._convertIdToIndex(n[s],"accessor");i&&(t.indices=this._convertIdToIndex(i,"accessor")),o&&(t.material=this._convertIdToIndex(o,"material"))}}_convertNodeIds(e){e.children&&(e.children=e.children.map(t=>this._convertIdToIndex(t,"node"))),e.meshes&&(e.meshes=e.meshes.map(t=>this._convertIdToIndex(t,"mesh")))}_convertSceneIds(e){e.nodes&&(e.nodes=e.nodes.map(t=>this._convertIdToIndex(t,"node")))}_convertIdsToIndices(e,t){e[t]||(console.warn(`gltf v1: json doesn't contain attribute ${t}`),e[t]=[]);for(const n of e[t])for(const i in n){const o=n[i],s=this._convertIdToIndex(o,i);n[i]=s}}_convertIdToIndex(e,t){const n=Xse[t];if(n in this.idToIndexMap){const i=this.idToIndexMap[n][e];if(!Number.isFinite(i))throw new Error(`gltf v1: failed to resolve ${t} with id ${e}`);return i}return e}_updateObjects(e){for(const t of this.json.buffers)delete t.type}_updateMaterial(e){var t,n,i;for(const o of e.materials){o.pbrMetallicRoughness={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1};const s=((t=o.values)==null?void 0:t.tex)||((n=o.values)==null?void 0:n.texture2d_0)||((i=o.values)==null?void 0:i.diffuseTex),c=e.textures.findIndex(f=>f.id===s);c!==-1&&(o.pbrMetallicRoughness.baseColorTexture={index:c})}}};function Yse(r,e={}){return new Kse().normalize(r,e)}async function qse(r,e,t=0,n,i){var o,s,c;return Zse(r,e,t,n),Yse(r,{normalize:(o=n==null?void 0:n.gltf)==null?void 0:o.normalize}),$se(r,n,i),(s=n==null?void 0:n.gltf)!=null&&s.loadBuffers&&r.json.buffers&&await Qse(r,n,i),(c=n==null?void 0:n.gltf)!=null&&c.loadImages&&await eoe(r,n,i),await Wse(r,n,i),r}function Zse(r,e,t,n){if(n.uri&&(r.baseUri=n.uri),e instanceof ArrayBuffer&&!pie(e,t,n)&&(e=new TextDecoder().decode(e)),typeof e=="string")r.json=Yte(e);else if(e instanceof ArrayBuffer){const s={};t=gie(s,e,t,n.glb),Sa(s.type==="glTF",`Invalid GLB magic string ${s.type}`),r._glb=s,r.json=s.json}else Sa(!1,"GLTF: must be ArrayBuffer or string");const i=r.json.buffers||[];if(r.buffers=new Array(i.length).fill(null),r._glb&&r._glb.header.hasBinChunk){const{binChunks:s}=r._glb;r.buffers[0]={arrayBuffer:s[0].arrayBuffer,byteOffset:s[0].byteOffset,byteLength:s[0].byteLength}}const o=r.json.images||[];r.images=new Array(o.length).fill({})}async function Qse(r,e,t){var i,o;const n=r.json.buffers||[];for(let s=0;s<n.length;++s){const c=n[s];if(c.uri){const{fetch:f}=t;Sa(f);const y=fL(c.uri,e),b=await((i=t==null?void 0:t.fetch)==null?void 0:i.call(t,y)),E=await((o=b==null?void 0:b.arrayBuffer)==null?void 0:o.call(b));r.buffers[s]={arrayBuffer:E,byteOffset:0,byteLength:E.byteLength},delete c.uri}else r.buffers[s]===null&&(r.buffers[s]={arrayBuffer:new ArrayBuffer(c.byteLength),byteOffset:0,byteLength:c.byteLength})}}async function eoe(r,e,t){const n=toe(r),i=r.json.images||[],o=[];for(const s of n)o.push(roe(r,i[s],s,e,t));return await Promise.all(o)}function toe(r){const e=new Set,t=r.json.textures||[];for(const n of t)n.source!==void 0&&e.add(n.source);return Array.from(e).sort()}async function roe(r,e,t,n,i){let o;if(e.uri&&!e.hasOwnProperty("bufferView")){const c=fL(e.uri,n),{fetch:f}=i;o=await(await f(c)).arrayBuffer(),e.bufferView={data:o}}if(Number.isFinite(e.bufferView)){const c=Ure(r.json,r.buffers,e.bufferView);o=J4(c.buffer,c.byteOffset,c.byteLength)}Sa(o,"glTF image has no data");let s=await V4(o,[Ire,cie],{...n,mimeType:e.mimeType,basis:n.basis||{format:uL()}},i);s&&s[0]&&(s={compressed:!0,mipmaps:!1,width:s[0].width,height:s[0].height,data:s[0]}),r.images=r.images||[],r.images[t]=s}const lx={dataType:null,batchType:null,name:"glTF",id:"gltf",module:"gltf",version:Jne,extensions:["gltf","glb"],mimeTypes:["model/gltf+json","model/gltf-binary"],text:!0,binary:!0,tests:["glTF"],parse:noe,options:{gltf:{normalize:!0,loadBuffers:!0,loadImages:!0,decompressMeshes:!0},log:console}};async function noe(r,e={},t){e={...lx.options,...e},e.gltf={...lx.options.gltf,...e.gltf};const{byteOffset:n=0}=e;return await qse({},r,n,e,t)}function eM(r,e){if(!r)throw new Error(e||"loader assertion failed.")}const mL=!!(typeof process!="object"||String(process)!=="[object process]"||process.browser),tM=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version);tM&&parseFloat(tM[1]);const Sb="4.3.3",ioe=Sb[0]>="0"&&Sb[0]<="9"?`v${Sb}`:"";function soe(){const r=new py({id:"loaders.gl"});return globalThis.loaders=globalThis.loaders||{},globalThis.loaders.log=r,globalThis.loaders.version=ioe,globalThis.probe=globalThis.probe||{},globalThis.probe.loaders=r,r}const ooe=soe();function aoe(r,e){return _L(r||{},e)}function _L(r,e,t=0){if(t>3)return e;const n={...r};for(const[i,o]of Object.entries(e))o&&typeof o=="object"&&!Array.isArray(o)?n[i]=_L(n[i]||{},e[i],t+1):n[i]=e[i];return n}const coe="latest";function loe(){var r;return(r=globalThis._loadersgl_)!=null&&r.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.3.3"),globalThis._loadersgl_.version}const uoe=loe();function Vu(r,e){if(!r)throw new Error(e||"loaders.gl assertion failed.")}const Yf=typeof process!="object"||String(process)!=="[object process]"||process.browser,foe=typeof window<"u"&&typeof window.orientation<"u",rM=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version);rM&&parseFloat(rM[1]);class hoe{constructor(e,t){V(this,"name");V(this,"workerThread");V(this,"isRunning",!0);V(this,"result");V(this,"_resolve",()=>{});V(this,"_reject",()=>{});this.name=e,this.workerThread=t,this.result=new Promise((n,i)=>{this._resolve=n,this._reject=i})}postMessage(e,t){this.workerThread.postMessage({source:"loaders.gl",type:e,payload:t})}done(e){Vu(this.isRunning),this.isRunning=!1,this._resolve(e)}error(e){Vu(this.isRunning),this.isRunning=!1,this._reject(e)}}class Ib{terminate(){}}const Mb=new Map;function doe(r){Vu(r.source&&!r.url||!r.source&&r.url);let e=Mb.get(r.source||r.url);return e||(r.url&&(e=Aoe(r.url),Mb.set(r.url,e)),r.source&&(e=yL(r.source),Mb.set(r.source,e))),Vu(e),e}function Aoe(r){if(!r.startsWith("http"))return r;const e=poe(r);return yL(e)}function yL(r){const e=new Blob([r],{type:"application/javascript"});return URL.createObjectURL(e)}function poe(r){return`try {
2610
2610
  importScripts('${r}');
2611
2611
  } catch (error) {
2612
2612
  console.error(error);