tangram-core 0.3.0__cp310-cp310-manylinux_2_28_aarch64.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 (162) hide show
  1. tangram_core/App.vue +441 -0
  2. tangram_core/CommandPalette.vue +200 -0
  3. tangram_core/HighlightText.vue +32 -0
  4. tangram_core/__Timeline.vue +300 -0
  5. tangram_core/__init__.py +5 -0
  6. tangram_core/__main__.py +331 -0
  7. tangram_core/_core.cpython-310-aarch64-linux-gnu.so +0 -0
  8. tangram_core/_core.pyi +38 -0
  9. tangram_core/api.ts +652 -0
  10. tangram_core/backend.py +458 -0
  11. tangram_core/components.ts +2 -0
  12. tangram_core/config.py +167 -0
  13. tangram_core/dist-frontend/aggregation-layers.js +521 -0
  14. tangram_core/dist-frontend/aggregation-layers.js.map +1 -0
  15. tangram_core/dist-frontend/assets/_commonjsHelpers-CqkleIqs.js +2 -0
  16. tangram_core/dist-frontend/assets/_commonjsHelpers-CqkleIqs.js.map +1 -0
  17. tangram_core/dist-frontend/assets/array-utils-flat-BBMak426.js +11 -0
  18. tangram_core/dist-frontend/assets/array-utils-flat-BBMak426.js.map +1 -0
  19. tangram_core/dist-frontend/assets/assert-cyW4mg7q.js +3 -0
  20. tangram_core/dist-frontend/assets/assert-cyW4mg7q.js.map +1 -0
  21. tangram_core/dist-frontend/assets/b612-latin-400-italic-DePNXA0a.woff +0 -0
  22. tangram_core/dist-frontend/assets/b612-latin-400-italic-a-4GLPtl.woff2 +0 -0
  23. tangram_core/dist-frontend/assets/b612-latin-400-normal-CC98FVm_.woff2 +0 -0
  24. tangram_core/dist-frontend/assets/b612-latin-400-normal-JbZ7xwUX.woff +0 -0
  25. tangram_core/dist-frontend/assets/b612-latin-700-normal-B_Snq1wd.woff +0 -0
  26. tangram_core/dist-frontend/assets/b612-latin-700-normal-BinQrnoB.woff2 +0 -0
  27. tangram_core/dist-frontend/assets/clip-extension-D-rbmFPj.js +26 -0
  28. tangram_core/dist-frontend/assets/clip-extension-D-rbmFPj.js.map +1 -0
  29. tangram_core/dist-frontend/assets/color-CUNNsFV-.js +17 -0
  30. tangram_core/dist-frontend/assets/color-CUNNsFV-.js.map +1 -0
  31. tangram_core/dist-frontend/assets/cube-geometry-v0HQ793i.js +2 -0
  32. tangram_core/dist-frontend/assets/cube-geometry-v0HQ793i.js.map +1 -0
  33. tangram_core/dist-frontend/assets/deep-equal-BTW2ZN6S.js +2 -0
  34. tangram_core/dist-frontend/assets/deep-equal-BTW2ZN6S.js.map +1 -0
  35. tangram_core/dist-frontend/assets/fly-to-interpolator-CIXGjOdo.js +2 -0
  36. tangram_core/dist-frontend/assets/fly-to-interpolator-CIXGjOdo.js.map +1 -0
  37. tangram_core/dist-frontend/assets/geojson-layer-DgMOQ4Qu.js +1010 -0
  38. tangram_core/dist-frontend/assets/geojson-layer-DgMOQ4Qu.js.map +1 -0
  39. tangram_core/dist-frontend/assets/globe-view-Day_n1iB.js +94 -0
  40. tangram_core/dist-frontend/assets/globe-view-Day_n1iB.js.map +1 -0
  41. tangram_core/dist-frontend/assets/globe-viewport-tqhQW7C4.js +2 -0
  42. tangram_core/dist-frontend/assets/globe-viewport-tqhQW7C4.js.map +1 -0
  43. tangram_core/dist-frontend/assets/image-loader-hHJsndO6.js +2 -0
  44. tangram_core/dist-frontend/assets/image-loader-hHJsndO6.js.map +1 -0
  45. tangram_core/dist-frontend/assets/inconsolata-latin-400-normal-DTZQ6lD6.woff2 +0 -0
  46. tangram_core/dist-frontend/assets/inconsolata-latin-400-normal-HYADljCo.woff +0 -0
  47. tangram_core/dist-frontend/assets/inconsolata-latin-700-normal-ByjKuJjN.woff2 +0 -0
  48. tangram_core/dist-frontend/assets/inconsolata-latin-700-normal-DzgUY3Rl.woff +0 -0
  49. tangram_core/dist-frontend/assets/inconsolata-latin-ext-400-normal-BaHVOdFB.woff2 +0 -0
  50. tangram_core/dist-frontend/assets/inconsolata-latin-ext-400-normal-yvPjCxxx.woff +0 -0
  51. tangram_core/dist-frontend/assets/inconsolata-latin-ext-700-normal-D0Kpgs_9.woff2 +0 -0
  52. tangram_core/dist-frontend/assets/inconsolata-latin-ext-700-normal-Dlt-daqV.woff +0 -0
  53. tangram_core/dist-frontend/assets/inconsolata-vietnamese-400-normal-ByiM2lek.woff +0 -0
  54. tangram_core/dist-frontend/assets/inconsolata-vietnamese-400-normal-DfC_iMic.woff2 +0 -0
  55. tangram_core/dist-frontend/assets/inconsolata-vietnamese-700-normal-DLCFFAUf.woff +0 -0
  56. tangram_core/dist-frontend/assets/inconsolata-vietnamese-700-normal-DuasYmn8.woff2 +0 -0
  57. tangram_core/dist-frontend/assets/index-CcogpxdD.js +824 -0
  58. tangram_core/dist-frontend/assets/index-CcogpxdD.js.map +1 -0
  59. tangram_core/dist-frontend/assets/index-SSLdizTv.css +1 -0
  60. tangram_core/dist-frontend/assets/layer-DPcO4AXQ.js +555 -0
  61. tangram_core/dist-frontend/assets/layer-DPcO4AXQ.js.map +1 -0
  62. tangram_core/dist-frontend/assets/layer-extension-CYwTXf73.js +2 -0
  63. tangram_core/dist-frontend/assets/layer-extension-CYwTXf73.js.map +1 -0
  64. tangram_core/dist-frontend/assets/mesh-layers-wiqredoy.js +1123 -0
  65. tangram_core/dist-frontend/assets/mesh-layers-wiqredoy.js.map +1 -0
  66. tangram_core/dist-frontend/assets/orthographic-viewport-B4nCj5tn.js +2 -0
  67. tangram_core/dist-frontend/assets/orthographic-viewport-B4nCj5tn.js.map +1 -0
  68. tangram_core/dist-frontend/assets/pick-layers-pass-C-3k0wbN.js +2 -0
  69. tangram_core/dist-frontend/assets/pick-layers-pass-C-3k0wbN.js.map +1 -0
  70. tangram_core/dist-frontend/assets/project-BTjD2Imj.js +760 -0
  71. tangram_core/dist-frontend/assets/project-BTjD2Imj.js.map +1 -0
  72. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-400-italic-4qS3_zkX.woff2 +0 -0
  73. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-400-italic-CDK-EZBY.woff +0 -0
  74. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-400-normal-Bgns473E.woff +0 -0
  75. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-400-normal-_T2aQlWs.woff2 +0 -0
  76. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-500-normal-CvEVpWxD.woff +0 -0
  77. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-500-normal-s4PklZE0.woff2 +0 -0
  78. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-700-normal-9RN-Z7cI.woff2 +0 -0
  79. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-700-normal-BGMkBBYx.woff +0 -0
  80. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-400-italic-C7erd-g8.woff +0 -0
  81. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-400-italic-DR5R5TWx.woff2 +0 -0
  82. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-400-normal-DGo1Ayjq.woff2 +0 -0
  83. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-400-normal-WtM1l1qc.woff +0 -0
  84. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-500-normal-C8FNIdXm.woff2 +0 -0
  85. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-500-normal-TLDmfi3Q.woff +0 -0
  86. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-700-normal-CTXjXnze.woff2 +0 -0
  87. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-700-normal-CWPRiRXS.woff +0 -0
  88. tangram_core/dist-frontend/assets/roboto-condensed-greek-400-italic-CR6qj4Z4.woff2 +0 -0
  89. tangram_core/dist-frontend/assets/roboto-condensed-greek-400-italic-DHRaIs10.woff +0 -0
  90. tangram_core/dist-frontend/assets/roboto-condensed-greek-400-normal-D5vBSIyg.woff2 +0 -0
  91. tangram_core/dist-frontend/assets/roboto-condensed-greek-400-normal-FabMgVmk.woff +0 -0
  92. tangram_core/dist-frontend/assets/roboto-condensed-greek-500-normal-BIN62cw9.woff +0 -0
  93. tangram_core/dist-frontend/assets/roboto-condensed-greek-500-normal-Hsn-wDIp.woff2 +0 -0
  94. tangram_core/dist-frontend/assets/roboto-condensed-greek-700-normal-89Up2Xly.woff +0 -0
  95. tangram_core/dist-frontend/assets/roboto-condensed-greek-700-normal-DWMOA2VK.woff2 +0 -0
  96. tangram_core/dist-frontend/assets/roboto-condensed-latin-400-italic-D_BR-3LG.woff2 +0 -0
  97. tangram_core/dist-frontend/assets/roboto-condensed-latin-400-italic-om57GXsO.woff +0 -0
  98. tangram_core/dist-frontend/assets/roboto-condensed-latin-400-normal-BICmKrXV.woff2 +0 -0
  99. tangram_core/dist-frontend/assets/roboto-condensed-latin-400-normal-D2e7XwB1.woff +0 -0
  100. tangram_core/dist-frontend/assets/roboto-condensed-latin-500-normal-3p2daRJW.woff2 +0 -0
  101. tangram_core/dist-frontend/assets/roboto-condensed-latin-500-normal-Dc9bsamC.woff +0 -0
  102. tangram_core/dist-frontend/assets/roboto-condensed-latin-700-normal-BOl6B_hI.woff +0 -0
  103. tangram_core/dist-frontend/assets/roboto-condensed-latin-700-normal-DRbp0YnP.woff2 +0 -0
  104. tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-400-italic-BXrkWnoY.woff +0 -0
  105. tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-400-italic-Bhem1d5z.woff2 +0 -0
  106. tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-400-normal-DT8nEsYA.woff +0 -0
  107. tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-400-normal-OHaX69iP.woff2 +0 -0
  108. tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-500-normal-CcSTXKtO.woff2 +0 -0
  109. tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-500-normal-JgPl2bDS.woff +0 -0
  110. tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-700-normal-B004qtqu.woff2 +0 -0
  111. tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-700-normal-O6H_RRvN.woff +0 -0
  112. tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-400-italic-BwUYFJ2t.woff2 +0 -0
  113. tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-400-italic-DV8QogUk.woff +0 -0
  114. tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-400-normal-0o1laQ-g.woff2 +0 -0
  115. tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-400-normal-CPsdS8_S.woff +0 -0
  116. tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-500-normal-G9shSJ2z.woff +0 -0
  117. tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-500-normal-TFWhjk13.woff2 +0 -0
  118. tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-700-normal-BtNeb9D6.woff +0 -0
  119. tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-700-normal-D35V1G0s.woff2 +0 -0
  120. tangram_core/dist-frontend/assets/shader-Cbdysp2j.js +843 -0
  121. tangram_core/dist-frontend/assets/shader-Cbdysp2j.js.map +1 -0
  122. tangram_core/dist-frontend/assets/solid-polygon-layer-DJFl_7Ca.js +392 -0
  123. tangram_core/dist-frontend/assets/solid-polygon-layer-DJFl_7Ca.js.map +1 -0
  124. tangram_core/dist-frontend/assets/tesselator-CENyUZ2p.js +2 -0
  125. tangram_core/dist-frontend/assets/tesselator-CENyUZ2p.js.map +1 -0
  126. tangram_core/dist-frontend/assets/webgl-developer-tools-utTNOsNf.js +7 -0
  127. tangram_core/dist-frontend/assets/webgl-developer-tools-utTNOsNf.js.map +1 -0
  128. tangram_core/dist-frontend/assets/webgl-device-BYRB-GQX.js +3 -0
  129. tangram_core/dist-frontend/assets/webgl-device-BYRB-GQX.js.map +1 -0
  130. tangram_core/dist-frontend/assets/widget-BjgEeHAL.js +2 -0
  131. tangram_core/dist-frontend/assets/widget-BjgEeHAL.js.map +1 -0
  132. tangram_core/dist-frontend/core.js +60 -0
  133. tangram_core/dist-frontend/core.js.map +1 -0
  134. tangram_core/dist-frontend/extensions.js +609 -0
  135. tangram_core/dist-frontend/extensions.js.map +1 -0
  136. tangram_core/dist-frontend/favicon.ico +0 -0
  137. tangram_core/dist-frontend/favicon.png +0 -0
  138. tangram_core/dist-frontend/geo-layers.js +115 -0
  139. tangram_core/dist-frontend/geo-layers.js.map +1 -0
  140. tangram_core/dist-frontend/index.html +39 -0
  141. tangram_core/dist-frontend/json.js +3 -0
  142. tangram_core/dist-frontend/json.js.map +1 -0
  143. tangram_core/dist-frontend/layers.js +268 -0
  144. tangram_core/dist-frontend/layers.js.map +1 -0
  145. tangram_core/dist-frontend/mapbox.js +2 -0
  146. tangram_core/dist-frontend/mapbox.js.map +1 -0
  147. tangram_core/dist-frontend/mesh-layers.js +2 -0
  148. tangram_core/dist-frontend/mesh-layers.js.map +1 -0
  149. tangram_core/dist-frontend/widgets.js +3 -0
  150. tangram_core/dist-frontend/widgets.js.map +1 -0
  151. tangram_core/main.ts +28 -0
  152. tangram_core/package.json +62 -0
  153. tangram_core/plugin.py +109 -0
  154. tangram_core/plugin.ts +47 -0
  155. tangram_core/redis.py +89 -0
  156. tangram_core/user.css +114 -0
  157. tangram_core/utils.ts +143 -0
  158. tangram_core/vite-plugin-tangram.mjs +155 -0
  159. tangram_core-0.3.0.dist-info/METADATA +101 -0
  160. tangram_core-0.3.0.dist-info/RECORD +162 -0
  161. tangram_core-0.3.0.dist-info/WHEEL +4 -0
  162. tangram_core-0.3.0.dist-info/entry_points.txt +2 -0
@@ -0,0 +1,115 @@
1
+ import{C as lr}from"./assets/tesselator-CENyUZ2p.js";import{a as Bn,B as Ph,A as xh,G as Ti,P as Nh}from"./assets/geojson-layer-DgMOQ4Qu.js";import{ao as Rh,ap as Dh,aq as Oh,H as pn,ar as zr,as as kh,at as Fh,au as Uh,av as Qh,aw as Vh,u as mn,m as J0,i as zh,O as Ct,w as Zs,N as H,ax as Gh,ay as nt,A as St,W as Xs,b as KA,az as qh,aA as Hh,aB as jh,L as Wh,J as Xe,h as Yh,x as vi}from"./assets/deep-equal-BTW2ZN6S.js";import{g as Zh}from"./assets/_commonjsHelpers-CqkleIqs.js";import{M as de,Q as wn,S as K0,p as Xh,a as Jh,b as _i,D as Kh,G as Ja,c as Ka,g as $a,d as $h}from"./assets/mesh-layers-wiqredoy.js";import{G as A2}from"./assets/globe-viewport-tqhQW7C4.js";import{o as e2,f as t2,a as he,l as Cr,p as Al,s as r2,q as n2}from"./assets/webgl-developer-tools-utTNOsNf.js";import{S as el}from"./assets/assert-cyW4mg7q.js";import{P as i2,C as s2}from"./assets/solid-polygon-layer-DJFl_7Ca.js";import{c as tl,G as o2}from"./assets/layer-DPcO4AXQ.js";import{M as a2}from"./assets/shader-Cbdysp2j.js";import{C as l2}from"./assets/clip-extension-D-rbmFPj.js";import{I as Js}from"./assets/image-loader-hHJsndO6.js";import"./assets/color-CUNNsFV-.js";import"./assets/array-utils-flat-BBMak426.js";import"./assets/project-BTjD2Imj.js";import"./assets/webgl-device-BYRB-GQX.js";import"./assets/layer-extension-CYwTXf73.js";globalThis.probe={};const rl=new Rh({id:"@probe.gl/log"}),u2="Queued Requests",c2="Active Requests",f2="Cancelled Requests",h2="Queued Requests Ever",d2="Active Requests Ever",g2={id:"request-scheduler",throttleRequests:!0,maxRequests:6,debounceTime:0};class nl{props;stats;activeRequestCount=0;requestQueue=[];requestMap=new Map;updateTimer=null;constructor(A={}){this.props={...g2,...A},this.stats=new el({id:this.props.id}),this.stats.get(u2),this.stats.get(c2),this.stats.get(f2),this.stats.get(h2),this.stats.get(d2)}scheduleRequest(A,i=()=>0){if(!this.props.throttleRequests)return Promise.resolve({done:()=>{}});if(this.requestMap.has(A))return this.requestMap.get(A);const a={handle:A,priority:0,getPriority:i},c=new Promise(h=>(a.resolve=h,a));return this.requestQueue.push(a),this.requestMap.set(A,c),this._issueNewRequests(),c}_issueRequest(A){const{handle:i,resolve:a}=A;let c=!1;const h=()=>{c||(c=!0,this.requestMap.delete(i),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,a?a({done:h}):Promise.resolve({done:h})}_issueNewRequests(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=setTimeout(()=>this._issueNewRequestsAsync(),this.props.debounceTime)}_issueNewRequestsAsync(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=null;const A=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(A!==0){this._updateAllRequests();for(let i=0;i<A;++i){const a=this.requestQueue.shift();a&&this._issueRequest(a)}}}_updateAllRequests(){const A=this.requestQueue;for(let i=0;i<A.length;++i){const a=A[i];this._updateRequest(a)||(A.splice(i,1),this.requestMap.delete(a.handle),i--)}A.sort((i,a)=>i.priority-a.priority)}_updateRequest(A){return A.priority=A.getPriority(A.handle),A.priority<0?(A.resolve(null),!1):!0}}class p2{fetch;loadOptions;_needsRefresh=!0;props;constructor(A){this.props={...A},this.loadOptions={...A.loadOptions},this.fetch=m2(this.loadOptions)}setProps(A){this.props=Object.assign(this.props,A),this.setNeedsRefresh()}setNeedsRefresh(){this._needsRefresh=!0}getNeedsRefresh(A=!0){const i=this._needsRefresh;return A&&(this._needsRefresh=!1),i}}function m2(e){const A=e?.fetch;if(A&&typeof A=="function")return(a,c)=>A(a,c);const i=e?.fetch;return i&&typeof i!="function"?a=>fetch(a,i):a=>fetch(a)}class Ei extends p2{static type="template";static testURL=A=>!1}class bi extends Dh{constructor(A=0,i=0){super(2),Oh(A)&&arguments.length===1?this.copy(A):(pn.debug&&(zr(A),zr(i)),this[0]=A,this[1]=i)}set(A,i){return this[0]=A,this[1]=i,this.check()}copy(A){return this[0]=A[0],this[1]=A[1],this.check()}fromObject(A){return pn.debug&&(zr(A.x),zr(A.y)),this[0]=A.x,this[1]=A.y,this.check()}toObject(A){return A.x=this[0],A.y=this[1],A}get ELEMENTS(){return 2}horizontalAngle(){return Math.atan2(this.y,this.x)}verticalAngle(){return Math.atan2(this.x,this.y)}transform(A){return this.transformAsPoint(A)}transformAsPoint(A){return kh(this,this,A),this.check()}transformAsVector(A){return Fh(this,this,A),this.check()}transformByMatrix3(A){return Uh(this,this,A),this.check()}transformByMatrix2x3(A){return Qh(this,this,A),this.check()}transformByMatrix2(A){return Vh(this,this,A),this.check()}}const w2=.1,y2=1e-12,il=1e-15,T2=1e-20,v2={...Bn.defaultProps};class Nt extends lr{indexToBounds(){return null}renderLayers(){const{elevationScale:A,extruded:i,wireframe:a,filled:c,stroked:h,lineWidthUnits:g,lineWidthScale:m,lineWidthMinPixels:y,lineWidthMaxPixels:v,lineJointRounded:_,lineMiterLimit:S,lineDashJustified:P,getElevation:N,getFillColor:Y,getLineColor:Z,getLineWidth:tA}=this.props,{updateTriggers:R,material:z,transitions:nA}=this.props,mA=this.getSubLayerClass("cell",Bn),{updateTriggers:G,...j}=this.indexToBounds()||{};return new mA({filled:c,wireframe:a,extruded:i,elevationScale:A,stroked:h,lineWidthUnits:g,lineWidthScale:m,lineWidthMinPixels:y,lineWidthMaxPixels:v,lineJointRounded:_,lineMiterLimit:S,lineDashJustified:P,material:z,transitions:nA,getElevation:N,getFillColor:Y,getLineColor:Z,getLineWidth:tA},this.getSubLayerProps({id:"cell",updateTriggers:R&&{...G,getElevation:R.getElevation,getFillColor:R.getFillColor,getLineColor:R.getLineColor,getLineWidth:R.getLineWidth}}),j)}}Nt.layerName="GeoCellLayer";Nt.defaultProps=v2;var _2=Object.defineProperty,Sr=(e,A)=>{for(var i in A)_2(e,i,{get:A[i],enumerable:!0})},Ee={};Sr(Ee,{ARRAY_TYPE:()=>re,EPSILON:()=>ge,RANDOM:()=>It,equals:()=>C2,setMatrixArrayType:()=>E2,toRadian:()=>M2});var ge=1e-6,re=typeof Float32Array<"u"?Float32Array:Array,It=Math.random;function E2(e){re=e}var b2=Math.PI/180;function M2(e){return e*b2}function C2(e,A){return Math.abs(e-A)<=ge*Math.max(1,Math.abs(e),Math.abs(A))}Math.hypot||(Math.hypot=function(){for(var e=0,A=arguments.length;A--;)e+=arguments[A]*arguments[A];return Math.sqrt(e)});var Bt={};Sr(Bt,{LDU:()=>G2,add:()=>q2,adjoint:()=>D2,clone:()=>I2,copy:()=>B2,create:()=>S2,determinant:()=>O2,equals:()=>j2,exactEquals:()=>H2,frob:()=>z2,fromRotation:()=>U2,fromScaling:()=>Q2,fromValues:()=>P2,identity:()=>L2,invert:()=>R2,mul:()=>Z2,multiply:()=>sl,multiplyScalar:()=>W2,multiplyScalarAndAdd:()=>Y2,rotate:()=>k2,scale:()=>F2,set:()=>x2,str:()=>V2,sub:()=>X2,subtract:()=>ol,transpose:()=>N2});function S2(){var e=new re(4);return re!=Float32Array&&(e[1]=0,e[2]=0),e[0]=1,e[3]=1,e}function I2(e){var A=new re(4);return A[0]=e[0],A[1]=e[1],A[2]=e[2],A[3]=e[3],A}function B2(e,A){return e[0]=A[0],e[1]=A[1],e[2]=A[2],e[3]=A[3],e}function L2(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e}function P2(e,A,i,a){var c=new re(4);return c[0]=e,c[1]=A,c[2]=i,c[3]=a,c}function x2(e,A,i,a,c){return e[0]=A,e[1]=i,e[2]=a,e[3]=c,e}function N2(e,A){if(e===A){var i=A[1];e[1]=A[2],e[2]=i}else e[0]=A[0],e[1]=A[2],e[2]=A[1],e[3]=A[3];return e}function R2(e,A){var i=A[0],a=A[1],c=A[2],h=A[3],g=i*h-c*a;return g?(g=1/g,e[0]=h*g,e[1]=-a*g,e[2]=-c*g,e[3]=i*g,e):null}function D2(e,A){var i=A[0];return e[0]=A[3],e[1]=-A[1],e[2]=-A[2],e[3]=i,e}function O2(e){return e[0]*e[3]-e[2]*e[1]}function sl(e,A,i){var a=A[0],c=A[1],h=A[2],g=A[3],m=i[0],y=i[1],v=i[2],_=i[3];return e[0]=a*m+h*y,e[1]=c*m+g*y,e[2]=a*v+h*_,e[3]=c*v+g*_,e}function k2(e,A,i){var a=A[0],c=A[1],h=A[2],g=A[3],m=Math.sin(i),y=Math.cos(i);return e[0]=a*y+h*m,e[1]=c*y+g*m,e[2]=a*-m+h*y,e[3]=c*-m+g*y,e}function F2(e,A,i){var a=A[0],c=A[1],h=A[2],g=A[3],m=i[0],y=i[1];return e[0]=a*m,e[1]=c*m,e[2]=h*y,e[3]=g*y,e}function U2(e,A){var i=Math.sin(A),a=Math.cos(A);return e[0]=a,e[1]=i,e[2]=-i,e[3]=a,e}function Q2(e,A){return e[0]=A[0],e[1]=0,e[2]=0,e[3]=A[1],e}function V2(e){return"mat2("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}function z2(e){return Math.hypot(e[0],e[1],e[2],e[3])}function G2(e,A,i,a){return e[2]=a[2]/a[0],i[0]=a[0],i[1]=a[1],i[3]=a[3]-e[2]*i[1],[e,A,i]}function q2(e,A,i){return e[0]=A[0]+i[0],e[1]=A[1]+i[1],e[2]=A[2]+i[2],e[3]=A[3]+i[3],e}function ol(e,A,i){return e[0]=A[0]-i[0],e[1]=A[1]-i[1],e[2]=A[2]-i[2],e[3]=A[3]-i[3],e}function H2(e,A){return e[0]===A[0]&&e[1]===A[1]&&e[2]===A[2]&&e[3]===A[3]}function j2(e,A){var i=e[0],a=e[1],c=e[2],h=e[3],g=A[0],m=A[1],y=A[2],v=A[3];return Math.abs(i-g)<=ge*Math.max(1,Math.abs(i),Math.abs(g))&&Math.abs(a-m)<=ge*Math.max(1,Math.abs(a),Math.abs(m))&&Math.abs(c-y)<=ge*Math.max(1,Math.abs(c),Math.abs(y))&&Math.abs(h-v)<=ge*Math.max(1,Math.abs(h),Math.abs(v))}function W2(e,A,i){return e[0]=A[0]*i,e[1]=A[1]*i,e[2]=A[2]*i,e[3]=A[3]*i,e}function Y2(e,A,i,a){return e[0]=A[0]+i[0]*a,e[1]=A[1]+i[1]*a,e[2]=A[2]+i[2]*a,e[3]=A[3]+i[3]*a,e}var Z2=sl,X2=ol;function J2(){var e=new re(9);return re!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}var $0={};Sr($0,{add:()=>ud,calculateW:()=>$1,clone:()=>sd,conjugate:()=>rd,copy:()=>ad,create:()=>ei,dot:()=>El,equals:()=>pd,exactEquals:()=>gd,exp:()=>yl,fromEuler:()=>nd,fromMat3:()=>vl,fromValues:()=>od,getAngle:()=>Z1,getAxisAngle:()=>Y1,identity:()=>W1,invert:()=>td,len:()=>hd,length:()=>bl,lerp:()=>fd,ln:()=>Tl,mul:()=>cd,multiply:()=>wl,normalize:()=>Si,pow:()=>Ad,random:()=>ed,rotateX:()=>X1,rotateY:()=>J1,rotateZ:()=>K1,rotationTo:()=>md,scale:()=>_l,set:()=>ld,setAxes:()=>yd,setAxisAngle:()=>ml,slerp:()=>un,sqlerp:()=>wd,sqrLen:()=>dd,squaredLength:()=>Ml,str:()=>id});var uA={};Sr(uA,{add:()=>e1,angle:()=>v1,bezier:()=>h1,ceil:()=>t1,clone:()=>K2,copy:()=>$2,create:()=>Mi,cross:()=>ln,dist:()=>B1,distance:()=>fl,div:()=>I1,divide:()=>cl,dot:()=>Ci,equals:()=>M1,exactEquals:()=>b1,floor:()=>r1,forEach:()=>x1,fromValues:()=>Ai,hermite:()=>f1,inverse:()=>u1,len:()=>pl,length:()=>al,lerp:()=>c1,max:()=>i1,min:()=>n1,mul:()=>S1,multiply:()=>ul,negate:()=>l1,normalize:()=>gl,random:()=>d1,rotateX:()=>w1,rotateY:()=>y1,rotateZ:()=>T1,round:()=>s1,scale:()=>o1,scaleAndAdd:()=>a1,set:()=>A1,sqrDist:()=>L1,sqrLen:()=>P1,squaredDistance:()=>hl,squaredLength:()=>dl,str:()=>E1,sub:()=>C1,subtract:()=>ll,transformMat3:()=>p1,transformMat4:()=>g1,transformQuat:()=>m1,zero:()=>_1});function Mi(){var e=new re(3);return re!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function K2(e){var A=new re(3);return A[0]=e[0],A[1]=e[1],A[2]=e[2],A}function al(e){var A=e[0],i=e[1],a=e[2];return Math.hypot(A,i,a)}function Ai(e,A,i){var a=new re(3);return a[0]=e,a[1]=A,a[2]=i,a}function $2(e,A){return e[0]=A[0],e[1]=A[1],e[2]=A[2],e}function A1(e,A,i,a){return e[0]=A,e[1]=i,e[2]=a,e}function e1(e,A,i){return e[0]=A[0]+i[0],e[1]=A[1]+i[1],e[2]=A[2]+i[2],e}function ll(e,A,i){return e[0]=A[0]-i[0],e[1]=A[1]-i[1],e[2]=A[2]-i[2],e}function ul(e,A,i){return e[0]=A[0]*i[0],e[1]=A[1]*i[1],e[2]=A[2]*i[2],e}function cl(e,A,i){return e[0]=A[0]/i[0],e[1]=A[1]/i[1],e[2]=A[2]/i[2],e}function t1(e,A){return e[0]=Math.ceil(A[0]),e[1]=Math.ceil(A[1]),e[2]=Math.ceil(A[2]),e}function r1(e,A){return e[0]=Math.floor(A[0]),e[1]=Math.floor(A[1]),e[2]=Math.floor(A[2]),e}function n1(e,A,i){return e[0]=Math.min(A[0],i[0]),e[1]=Math.min(A[1],i[1]),e[2]=Math.min(A[2],i[2]),e}function i1(e,A,i){return e[0]=Math.max(A[0],i[0]),e[1]=Math.max(A[1],i[1]),e[2]=Math.max(A[2],i[2]),e}function s1(e,A){return e[0]=Math.round(A[0]),e[1]=Math.round(A[1]),e[2]=Math.round(A[2]),e}function o1(e,A,i){return e[0]=A[0]*i,e[1]=A[1]*i,e[2]=A[2]*i,e}function a1(e,A,i,a){return e[0]=A[0]+i[0]*a,e[1]=A[1]+i[1]*a,e[2]=A[2]+i[2]*a,e}function fl(e,A){var i=A[0]-e[0],a=A[1]-e[1],c=A[2]-e[2];return Math.hypot(i,a,c)}function hl(e,A){var i=A[0]-e[0],a=A[1]-e[1],c=A[2]-e[2];return i*i+a*a+c*c}function dl(e){var A=e[0],i=e[1],a=e[2];return A*A+i*i+a*a}function l1(e,A){return e[0]=-A[0],e[1]=-A[1],e[2]=-A[2],e}function u1(e,A){return e[0]=1/A[0],e[1]=1/A[1],e[2]=1/A[2],e}function gl(e,A){var i=A[0],a=A[1],c=A[2],h=i*i+a*a+c*c;return h>0&&(h=1/Math.sqrt(h)),e[0]=A[0]*h,e[1]=A[1]*h,e[2]=A[2]*h,e}function Ci(e,A){return e[0]*A[0]+e[1]*A[1]+e[2]*A[2]}function ln(e,A,i){var a=A[0],c=A[1],h=A[2],g=i[0],m=i[1],y=i[2];return e[0]=c*y-h*m,e[1]=h*g-a*y,e[2]=a*m-c*g,e}function c1(e,A,i,a){var c=A[0],h=A[1],g=A[2];return e[0]=c+a*(i[0]-c),e[1]=h+a*(i[1]-h),e[2]=g+a*(i[2]-g),e}function f1(e,A,i,a,c,h){var g=h*h,m=g*(2*h-3)+1,y=g*(h-2)+h,v=g*(h-1),_=g*(3-2*h);return e[0]=A[0]*m+i[0]*y+a[0]*v+c[0]*_,e[1]=A[1]*m+i[1]*y+a[1]*v+c[1]*_,e[2]=A[2]*m+i[2]*y+a[2]*v+c[2]*_,e}function h1(e,A,i,a,c,h){var g=1-h,m=g*g,y=h*h,v=m*g,_=3*h*m,S=3*y*g,P=y*h;return e[0]=A[0]*v+i[0]*_+a[0]*S+c[0]*P,e[1]=A[1]*v+i[1]*_+a[1]*S+c[1]*P,e[2]=A[2]*v+i[2]*_+a[2]*S+c[2]*P,e}function d1(e,A){A=A||1;var i=It()*2*Math.PI,a=It()*2-1,c=Math.sqrt(1-a*a)*A;return e[0]=Math.cos(i)*c,e[1]=Math.sin(i)*c,e[2]=a*A,e}function g1(e,A,i){var a=A[0],c=A[1],h=A[2],g=i[3]*a+i[7]*c+i[11]*h+i[15];return g=g||1,e[0]=(i[0]*a+i[4]*c+i[8]*h+i[12])/g,e[1]=(i[1]*a+i[5]*c+i[9]*h+i[13])/g,e[2]=(i[2]*a+i[6]*c+i[10]*h+i[14])/g,e}function p1(e,A,i){var a=A[0],c=A[1],h=A[2];return e[0]=a*i[0]+c*i[3]+h*i[6],e[1]=a*i[1]+c*i[4]+h*i[7],e[2]=a*i[2]+c*i[5]+h*i[8],e}function m1(e,A,i){var a=i[0],c=i[1],h=i[2],g=i[3],m=A[0],y=A[1],v=A[2],_=c*v-h*y,S=h*m-a*v,P=a*y-c*m,N=c*P-h*S,Y=h*_-a*P,Z=a*S-c*_,tA=g*2;return _*=tA,S*=tA,P*=tA,N*=2,Y*=2,Z*=2,e[0]=m+_+N,e[1]=y+S+Y,e[2]=v+P+Z,e}function w1(e,A,i,a){var c=[],h=[];return c[0]=A[0]-i[0],c[1]=A[1]-i[1],c[2]=A[2]-i[2],h[0]=c[0],h[1]=c[1]*Math.cos(a)-c[2]*Math.sin(a),h[2]=c[1]*Math.sin(a)+c[2]*Math.cos(a),e[0]=h[0]+i[0],e[1]=h[1]+i[1],e[2]=h[2]+i[2],e}function y1(e,A,i,a){var c=[],h=[];return c[0]=A[0]-i[0],c[1]=A[1]-i[1],c[2]=A[2]-i[2],h[0]=c[2]*Math.sin(a)+c[0]*Math.cos(a),h[1]=c[1],h[2]=c[2]*Math.cos(a)-c[0]*Math.sin(a),e[0]=h[0]+i[0],e[1]=h[1]+i[1],e[2]=h[2]+i[2],e}function T1(e,A,i,a){var c=[],h=[];return c[0]=A[0]-i[0],c[1]=A[1]-i[1],c[2]=A[2]-i[2],h[0]=c[0]*Math.cos(a)-c[1]*Math.sin(a),h[1]=c[0]*Math.sin(a)+c[1]*Math.cos(a),h[2]=c[2],e[0]=h[0]+i[0],e[1]=h[1]+i[1],e[2]=h[2]+i[2],e}function v1(e,A){var i=e[0],a=e[1],c=e[2],h=A[0],g=A[1],m=A[2],y=Math.sqrt(i*i+a*a+c*c),v=Math.sqrt(h*h+g*g+m*m),_=y*v,S=_&&Ci(e,A)/_;return Math.acos(Math.min(Math.max(S,-1),1))}function _1(e){return e[0]=0,e[1]=0,e[2]=0,e}function E1(e){return"vec3("+e[0]+", "+e[1]+", "+e[2]+")"}function b1(e,A){return e[0]===A[0]&&e[1]===A[1]&&e[2]===A[2]}function M1(e,A){var i=e[0],a=e[1],c=e[2],h=A[0],g=A[1],m=A[2];return Math.abs(i-h)<=ge*Math.max(1,Math.abs(i),Math.abs(h))&&Math.abs(a-g)<=ge*Math.max(1,Math.abs(a),Math.abs(g))&&Math.abs(c-m)<=ge*Math.max(1,Math.abs(c),Math.abs(m))}var C1=ll,S1=ul,I1=cl,B1=fl,L1=hl,pl=al,P1=dl,x1=(function(){var e=Mi();return function(A,i,a,c,h,g){var m,y;for(i||(i=3),a||(a=0),c?y=Math.min(c*i+a,A.length):y=A.length,m=a;m<y;m+=i)e[0]=A[m],e[1]=A[m+1],e[2]=A[m+2],h(e,e,g),A[m]=e[0],A[m+1]=e[1],A[m+2]=e[2];return A}})();function N1(){var e=new re(4);return re!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}function R1(e){var A=new re(4);return A[0]=e[0],A[1]=e[1],A[2]=e[2],A[3]=e[3],A}function D1(e,A,i,a){var c=new re(4);return c[0]=e,c[1]=A,c[2]=i,c[3]=a,c}function O1(e,A){return e[0]=A[0],e[1]=A[1],e[2]=A[2],e[3]=A[3],e}function k1(e,A,i,a,c){return e[0]=A,e[1]=i,e[2]=a,e[3]=c,e}function F1(e,A,i){return e[0]=A[0]+i[0],e[1]=A[1]+i[1],e[2]=A[2]+i[2],e[3]=A[3]+i[3],e}function U1(e,A,i){return e[0]=A[0]*i,e[1]=A[1]*i,e[2]=A[2]*i,e[3]=A[3]*i,e}function Q1(e){var A=e[0],i=e[1],a=e[2],c=e[3];return Math.hypot(A,i,a,c)}function V1(e){var A=e[0],i=e[1],a=e[2],c=e[3];return A*A+i*i+a*a+c*c}function z1(e,A){var i=A[0],a=A[1],c=A[2],h=A[3],g=i*i+a*a+c*c+h*h;return g>0&&(g=1/Math.sqrt(g)),e[0]=i*g,e[1]=a*g,e[2]=c*g,e[3]=h*g,e}function G1(e,A){return e[0]*A[0]+e[1]*A[1]+e[2]*A[2]+e[3]*A[3]}function q1(e,A,i,a){var c=A[0],h=A[1],g=A[2],m=A[3];return e[0]=c+a*(i[0]-c),e[1]=h+a*(i[1]-h),e[2]=g+a*(i[2]-g),e[3]=m+a*(i[3]-m),e}function H1(e,A){return e[0]===A[0]&&e[1]===A[1]&&e[2]===A[2]&&e[3]===A[3]}function j1(e,A){var i=e[0],a=e[1],c=e[2],h=e[3],g=A[0],m=A[1],y=A[2],v=A[3];return Math.abs(i-g)<=ge*Math.max(1,Math.abs(i),Math.abs(g))&&Math.abs(a-m)<=ge*Math.max(1,Math.abs(a),Math.abs(m))&&Math.abs(c-y)<=ge*Math.max(1,Math.abs(c),Math.abs(y))&&Math.abs(h-v)<=ge*Math.max(1,Math.abs(h),Math.abs(v))}(function(){var e=N1();return function(A,i,a,c,h,g){var m,y;for(i||(i=4),a||(a=0),c?y=Math.min(c*i+a,A.length):y=A.length,m=a;m<y;m+=i)e[0]=A[m],e[1]=A[m+1],e[2]=A[m+2],e[3]=A[m+3],h(e,e,g),A[m]=e[0],A[m+1]=e[1],A[m+2]=e[2],A[m+3]=e[3];return A}})();function ei(){var e=new re(4);return re!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function W1(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e}function ml(e,A,i){i=i*.5;var a=Math.sin(i);return e[0]=a*A[0],e[1]=a*A[1],e[2]=a*A[2],e[3]=Math.cos(i),e}function Y1(e,A){var i=Math.acos(A[3])*2,a=Math.sin(i/2);return a>ge?(e[0]=A[0]/a,e[1]=A[1]/a,e[2]=A[2]/a):(e[0]=1,e[1]=0,e[2]=0),i}function Z1(e,A){var i=El(e,A);return Math.acos(2*i*i-1)}function wl(e,A,i){var a=A[0],c=A[1],h=A[2],g=A[3],m=i[0],y=i[1],v=i[2],_=i[3];return e[0]=a*_+g*m+c*v-h*y,e[1]=c*_+g*y+h*m-a*v,e[2]=h*_+g*v+a*y-c*m,e[3]=g*_-a*m-c*y-h*v,e}function X1(e,A,i){i*=.5;var a=A[0],c=A[1],h=A[2],g=A[3],m=Math.sin(i),y=Math.cos(i);return e[0]=a*y+g*m,e[1]=c*y+h*m,e[2]=h*y-c*m,e[3]=g*y-a*m,e}function J1(e,A,i){i*=.5;var a=A[0],c=A[1],h=A[2],g=A[3],m=Math.sin(i),y=Math.cos(i);return e[0]=a*y-h*m,e[1]=c*y+g*m,e[2]=h*y+a*m,e[3]=g*y-c*m,e}function K1(e,A,i){i*=.5;var a=A[0],c=A[1],h=A[2],g=A[3],m=Math.sin(i),y=Math.cos(i);return e[0]=a*y+c*m,e[1]=c*y-a*m,e[2]=h*y+g*m,e[3]=g*y-h*m,e}function $1(e,A){var i=A[0],a=A[1],c=A[2];return e[0]=i,e[1]=a,e[2]=c,e[3]=Math.sqrt(Math.abs(1-i*i-a*a-c*c)),e}function yl(e,A){var i=A[0],a=A[1],c=A[2],h=A[3],g=Math.sqrt(i*i+a*a+c*c),m=Math.exp(h),y=g>0?m*Math.sin(g)/g:0;return e[0]=i*y,e[1]=a*y,e[2]=c*y,e[3]=m*Math.cos(g),e}function Tl(e,A){var i=A[0],a=A[1],c=A[2],h=A[3],g=Math.sqrt(i*i+a*a+c*c),m=g>0?Math.atan2(g,h)/g:0;return e[0]=i*m,e[1]=a*m,e[2]=c*m,e[3]=.5*Math.log(i*i+a*a+c*c+h*h),e}function Ad(e,A,i){return Tl(e,A),_l(e,e,i),yl(e,e),e}function un(e,A,i,a){var c=A[0],h=A[1],g=A[2],m=A[3],y=i[0],v=i[1],_=i[2],S=i[3],P,N,Y,Z,tA;return N=c*y+h*v+g*_+m*S,N<0&&(N=-N,y=-y,v=-v,_=-_,S=-S),1-N>ge?(P=Math.acos(N),Y=Math.sin(P),Z=Math.sin((1-a)*P)/Y,tA=Math.sin(a*P)/Y):(Z=1-a,tA=a),e[0]=Z*c+tA*y,e[1]=Z*h+tA*v,e[2]=Z*g+tA*_,e[3]=Z*m+tA*S,e}function ed(e){var A=It(),i=It(),a=It(),c=Math.sqrt(1-A),h=Math.sqrt(A);return e[0]=c*Math.sin(2*Math.PI*i),e[1]=c*Math.cos(2*Math.PI*i),e[2]=h*Math.sin(2*Math.PI*a),e[3]=h*Math.cos(2*Math.PI*a),e}function td(e,A){var i=A[0],a=A[1],c=A[2],h=A[3],g=i*i+a*a+c*c+h*h,m=g?1/g:0;return e[0]=-i*m,e[1]=-a*m,e[2]=-c*m,e[3]=h*m,e}function rd(e,A){return e[0]=-A[0],e[1]=-A[1],e[2]=-A[2],e[3]=A[3],e}function vl(e,A){var i=A[0]+A[4]+A[8],a;if(i>0)a=Math.sqrt(i+1),e[3]=.5*a,a=.5/a,e[0]=(A[5]-A[7])*a,e[1]=(A[6]-A[2])*a,e[2]=(A[1]-A[3])*a;else{var c=0;A[4]>A[0]&&(c=1),A[8]>A[c*3+c]&&(c=2);var h=(c+1)%3,g=(c+2)%3;a=Math.sqrt(A[c*3+c]-A[h*3+h]-A[g*3+g]+1),e[c]=.5*a,a=.5/a,e[3]=(A[h*3+g]-A[g*3+h])*a,e[h]=(A[h*3+c]+A[c*3+h])*a,e[g]=(A[g*3+c]+A[c*3+g])*a}return e}function nd(e,A,i,a){var c=.5*Math.PI/180;A*=c,i*=c,a*=c;var h=Math.sin(A),g=Math.cos(A),m=Math.sin(i),y=Math.cos(i),v=Math.sin(a),_=Math.cos(a);return e[0]=h*y*_-g*m*v,e[1]=g*m*_+h*y*v,e[2]=g*y*v-h*m*_,e[3]=g*y*_+h*m*v,e}function id(e){return"quat("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}var sd=R1,od=D1,ad=O1,ld=k1,ud=F1,cd=wl,_l=U1,El=G1,fd=q1,bl=Q1,hd=bl,Ml=V1,dd=Ml,Si=z1,gd=H1,pd=j1,md=(function(){var e=Mi(),A=Ai(1,0,0),i=Ai(0,1,0);return function(a,c,h){var g=Ci(c,h);return g<-.999999?(ln(e,A,c),pl(e)<1e-6&&ln(e,i,c),gl(e,e),ml(a,e,Math.PI),a):g>.999999?(a[0]=0,a[1]=0,a[2]=0,a[3]=1,a):(ln(e,c,h),a[0]=e[0],a[1]=e[1],a[2]=e[2],a[3]=1+g,Si(a,a))}})(),wd=(function(){var e=ei(),A=ei();return function(i,a,c,h,g,m){return un(e,a,g,m),un(A,c,h,m),un(i,e,A,2*m*(1-m)),i}})(),yd=(function(){var e=J2();return function(A,i,a,c){return e[0]=a[0],e[3]=a[1],e[6]=a[2],e[1]=c[0],e[4]=c[1],e[7]=c[2],e[2]=-i[0],e[5]=-i[1],e[8]=-i[2],Si(A,vl(A,e))}})(),LA={};Sr(LA,{add:()=>bd,angle:()=>qd,ceil:()=>Md,clone:()=>Td,copy:()=>_d,create:()=>Cl,cross:()=>Od,dist:()=>$d,distance:()=>Ll,div:()=>Kd,divide:()=>Bl,dot:()=>Dd,equals:()=>Yd,exactEquals:()=>Wd,floor:()=>Cd,forEach:()=>tg,fromValues:()=>vd,inverse:()=>Nd,len:()=>Zd,length:()=>xl,lerp:()=>kd,max:()=>Id,min:()=>Sd,mul:()=>Jd,multiply:()=>Il,negate:()=>xd,normalize:()=>Rd,random:()=>Fd,rotate:()=>Gd,round:()=>Bd,scale:()=>Ld,scaleAndAdd:()=>Pd,set:()=>Ed,sqrDist:()=>Ag,sqrLen:()=>eg,squaredDistance:()=>Pl,squaredLength:()=>Nl,str:()=>jd,sub:()=>Xd,subtract:()=>Sl,transformMat2:()=>Ud,transformMat2d:()=>Qd,transformMat3:()=>Vd,transformMat4:()=>zd,zero:()=>Hd});function Cl(){var e=new re(2);return re!=Float32Array&&(e[0]=0,e[1]=0),e}function Td(e){var A=new re(2);return A[0]=e[0],A[1]=e[1],A}function vd(e,A){var i=new re(2);return i[0]=e,i[1]=A,i}function _d(e,A){return e[0]=A[0],e[1]=A[1],e}function Ed(e,A,i){return e[0]=A,e[1]=i,e}function bd(e,A,i){return e[0]=A[0]+i[0],e[1]=A[1]+i[1],e}function Sl(e,A,i){return e[0]=A[0]-i[0],e[1]=A[1]-i[1],e}function Il(e,A,i){return e[0]=A[0]*i[0],e[1]=A[1]*i[1],e}function Bl(e,A,i){return e[0]=A[0]/i[0],e[1]=A[1]/i[1],e}function Md(e,A){return e[0]=Math.ceil(A[0]),e[1]=Math.ceil(A[1]),e}function Cd(e,A){return e[0]=Math.floor(A[0]),e[1]=Math.floor(A[1]),e}function Sd(e,A,i){return e[0]=Math.min(A[0],i[0]),e[1]=Math.min(A[1],i[1]),e}function Id(e,A,i){return e[0]=Math.max(A[0],i[0]),e[1]=Math.max(A[1],i[1]),e}function Bd(e,A){return e[0]=Math.round(A[0]),e[1]=Math.round(A[1]),e}function Ld(e,A,i){return e[0]=A[0]*i,e[1]=A[1]*i,e}function Pd(e,A,i,a){return e[0]=A[0]+i[0]*a,e[1]=A[1]+i[1]*a,e}function Ll(e,A){var i=A[0]-e[0],a=A[1]-e[1];return Math.hypot(i,a)}function Pl(e,A){var i=A[0]-e[0],a=A[1]-e[1];return i*i+a*a}function xl(e){var A=e[0],i=e[1];return Math.hypot(A,i)}function Nl(e){var A=e[0],i=e[1];return A*A+i*i}function xd(e,A){return e[0]=-A[0],e[1]=-A[1],e}function Nd(e,A){return e[0]=1/A[0],e[1]=1/A[1],e}function Rd(e,A){var i=A[0],a=A[1],c=i*i+a*a;return c>0&&(c=1/Math.sqrt(c)),e[0]=A[0]*c,e[1]=A[1]*c,e}function Dd(e,A){return e[0]*A[0]+e[1]*A[1]}function Od(e,A,i){var a=A[0]*i[1]-A[1]*i[0];return e[0]=e[1]=0,e[2]=a,e}function kd(e,A,i,a){var c=A[0],h=A[1];return e[0]=c+a*(i[0]-c),e[1]=h+a*(i[1]-h),e}function Fd(e,A){A=A||1;var i=It()*2*Math.PI;return e[0]=Math.cos(i)*A,e[1]=Math.sin(i)*A,e}function Ud(e,A,i){var a=A[0],c=A[1];return e[0]=i[0]*a+i[2]*c,e[1]=i[1]*a+i[3]*c,e}function Qd(e,A,i){var a=A[0],c=A[1];return e[0]=i[0]*a+i[2]*c+i[4],e[1]=i[1]*a+i[3]*c+i[5],e}function Vd(e,A,i){var a=A[0],c=A[1];return e[0]=i[0]*a+i[3]*c+i[6],e[1]=i[1]*a+i[4]*c+i[7],e}function zd(e,A,i){var a=A[0],c=A[1];return e[0]=i[0]*a+i[4]*c+i[12],e[1]=i[1]*a+i[5]*c+i[13],e}function Gd(e,A,i,a){var c=A[0]-i[0],h=A[1]-i[1],g=Math.sin(a),m=Math.cos(a);return e[0]=c*m-h*g+i[0],e[1]=c*g+h*m+i[1],e}function qd(e,A){var i=e[0],a=e[1],c=A[0],h=A[1],g=Math.sqrt(i*i+a*a)*Math.sqrt(c*c+h*h),m=g&&(i*c+a*h)/g;return Math.acos(Math.min(Math.max(m,-1),1))}function Hd(e){return e[0]=0,e[1]=0,e}function jd(e){return"vec2("+e[0]+", "+e[1]+")"}function Wd(e,A){return e[0]===A[0]&&e[1]===A[1]}function Yd(e,A){var i=e[0],a=e[1],c=A[0],h=A[1];return Math.abs(i-c)<=ge*Math.max(1,Math.abs(i),Math.abs(c))&&Math.abs(a-h)<=ge*Math.max(1,Math.abs(a),Math.abs(h))}var Zd=xl,Xd=Sl,Jd=Il,Kd=Bl,$d=Ll,Ag=Pl,eg=Nl,tg=(function(){var e=Cl();return function(A,i,a,c,h,g){var m,y;for(i||(i=2),a||(a=0),c?y=Math.min(c*i+a,A.length):y=A.length,m=a;m<y;m+=i)e[0]=A[m],e[1]=A[m+1],h(e,e,g),A[m]=e[0],A[m+1]=e[1];return A}})(),rg=(1+Math.sqrt(5))/2,yn=2*Math.PI/5,$e=Math.PI/5,Ks=Math.PI/10,ng=2*Math.atan(rg),ti=Math.PI-ng,Ln=(Math.sqrt(5)-1)/2,ig=3-Math.sqrt(5);Ee.setMatrixArrayType(Float64Array);var Ii=class ri{constructor(A){this.vertices=A,this.isWindingCorrect()||this.vertices.reverse()}getArea(){let A=0;const i=this.vertices.length;for(let a=0;a<i;a++){const c=(a+1)%i;A+=(this.vertices[c][0]-this.vertices[a][0])*(this.vertices[c][1]+this.vertices[a][1])}return A}isWindingCorrect(){return this.getArea()>=0}getVertices(){return this.vertices}scale(A){for(const i of this.vertices)LA.scale(i,i,A);return this}rotate180(){for(const A of this.vertices)LA.negate(A,A);return this}reflectY(){for(const A of this.vertices)A[1]=-A[1];return this.vertices.reverse(),this}translate(A){for(const i of this.vertices)LA.add(i,i,A);return this}transform(A){for(const i of this.vertices)LA.transformMat2(i,i,A);return this}transform2d(A){for(const i of this.vertices)LA.transformMat2d(i,i,A);return this}clone(){return new ri(this.vertices.map(i=>LA.clone(i)))}getCenter(){const A=this.vertices.length;return this.vertices.reduce((a,c)=>[a[0]+c[0]/A,a[1]+c[1]/A],[0,0])}containsPoint(A){if(!this.isWindingCorrect())throw new Error("Pentagon is not counter-clockwise");const i=this.vertices.length;let a=1;for(let c=0;c<i;c++){const h=this.vertices[c],g=this.vertices[(c+1)%i],m=h[0]-g[0],y=h[1]-g[1],v=A[0]-h[0],_=A[1]-h[1],S=m*_-y*v;if(S<0){const P=Math.sqrt(v*v+_*_);a=Math.min(a,S/P)}}return a}splitEdges(A){if(A<=1)return this;const i=[],a=this.vertices.length;for(let c=0;c<a;c++){const h=this.vertices[c],g=this.vertices[(c+1)%a];i.push(LA.clone(h));for(let m=1;m<A;m++){const y=m/A,v=LA.create();LA.lerp(v,h,g,y),i.push(v)}}return new ri(i)}};Ee.setMatrixArrayType(Float64Array);var Rl=[0,0],Dl=[0,1],Lt=[.7885966681787006,1.6149108024237764],Ol=[1.6171013659387945,1.054928690397459],kl=[Math.cos(Ks),Math.sin(Ks)],sg=2*LA.length(Lt)*Math.cos($e),og=$e-Math.atan2(Lt[1],Lt[0]),ag=2*Ln/sg;[Rl,Dl,Lt,Ol,kl].forEach(e=>{LA.scale(e,e,ag),LA.rotate(e,e,[0,0],og)});var lg=new Ii([Rl,Dl,Lt,Ol,kl]),Fl=Math.atan2(Lt[1],Lt[0])-$e,ug=[0,0],Tn=Ln/Math.cos($e),$s=Fl+$e,vn=[Tn*Math.cos($s),Tn*Math.sin($s)],Ao=Fl-$e,Mr=[Tn*Math.cos(Ao),Tn*Math.sin(Ao)],cg=new Ii([ug,vn,Mr]),Ul=Bt.fromValues(vn[0],vn[1],Mr[0],Mr[1]);Bt.invert(Bt.create(),Ul);var fg=new Float64Array([-.0022392098386786394,21308606513250217e-22,-2559257686421274e-24,33701965267802837e-28,-4667545312611249e-30,667492870384816e-32]),hg=new Float64Array([.0022392089963541657,28831978048607556e-22,508622073997266e-23,102018123778161e-25,21912872306767718e-30,49284235482523806e-33]),dg=class{applyCoefficients(e,A){const i=Math.sin(e),a=Math.cos(e),c=2*(a-i)*(a+i);let h,g;return h=c*A[5]+A[4],g=c*h+A[3],h=c*g-h+A[2],g=c*h-g+A[1],h=c*g-h+A[0],e+2*i*a*h}forward(e){return this.applyCoefficients(e,fg)}inverse(e){return this.applyCoefficients(e,hg)}};Ee.setMatrixArrayType(Float64Array);var Ql=new dg;function eo(e){return e*(Math.PI/180)}function to(e){return e*(180/Math.PI)}function ro(e){const A=LA.length(e),i=Math.atan2(e[1],e[0]);return[A,i]}function gg([e,A]){const i=e*Math.cos(A),a=e*Math.sin(A);return[i,a]}function pg(e,[A,i,a]){const c=[A[0]-a[0],A[1]-a[1]],h=[a[0]-i[0],a[1]-i[1]],g=[e[0]-a[0],e[1]-a[1]],m=h[0]*c[1]-h[1]*c[0],y=(h[0]*g[1]-h[1]*g[0])/m,v=(c[0]*g[1]-c[1]*g[0])/m,_=1-(y+v);return[y,v,_]}function mg(e,[A,i,a]){return[e[0]*A[0]+e[1]*i[0]+e[2]*a[0],e[0]*A[1]+e[1]*i[1]+e[2]*a[1]]}function ni(e){const A=Math.atan2(e[1],e[0]),i=Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]),a=Math.acos(e[2]/i);return[A,a]}function tr([e,A]){const i=Math.sin(A),a=i*Math.cos(e),c=i*Math.sin(e),h=Math.cos(A);return[a,c,h]}var Vl=93;function wg([e,A]){const i=eo(e+Vl),a=eo(A),c=Ql.forward(a),h=Math.PI/2-c;return[i,h]}function zl([e,A]){const i=to(e)-Vl,a=Math.PI/2-A,c=Ql.inverse(a),h=to(c);return[i,h]}function yg(e){const A=e.map(h=>tr(wg(h))),i=uA.create();for(const h of A)uA.add(i,i,h);uA.normalize(i,i);let[a,c]=zl(ni(i));return(c>89.99||c<-89.99)&&(a=e[0][0]),a=((a+180)%360+360)%360-180,e.map(h=>{let[g,m]=h;for(;g-a>180;)g=g-360;for(;g-a<-180;)g=g+360;return[g,m]})}Ee.setMatrixArrayType(Float64Array);var Pn=Math.sqrt(5),xn=Math.sqrt(.2),Gl=Math.sqrt((1-xn)/2),ql=Math.sqrt((1+xn)/2),Gr=.5,no=Math.sqrt((2.5-Pn)/10),io=Math.sqrt((2.5+Pn)/10),so=Math.sqrt((1+xn)/8),oo=Math.sqrt((1-xn)/8),ao=Math.sqrt((3-Pn)/8),lo=Math.sqrt((3+Pn)/8),Tg=[[0,0],[Gl,0],[no,Gr],[-so,ao],[-so,-ao],[no,-Gr],[-ql,0],[-oo,-lo],[io,-Gr],[io,Gr],[-oo,lo],[0,0]],vg=Tg.map(([e,A])=>[-A,e]),qr=vg.map((e,A)=>A===0?[0,0,0,1]:A===11?[0,-1,0,0]:[...e,0,A<6?ql:Gl]);Ee.setMatrixArrayType(Float64Array);var Hl=["vu","uw","vw","vw","vw"],Er=["wu","uw","vw","vu","uw"],w0=["wu","uv","wv","wu","uw"],Hr=["vu","uv","wv","wu","uw"],_g=[Hl,Hr,w0,Er,w0,Hr,w0,Er,Er,Er,Hr,Hr],Eg=[4,2,3,2,0,4,3,2,2,0,3,0],uo=[0,1,2,4,3,5,7,8,6,11,10,9],qe=[];function bg(){jr([0,0],0,qr[0]);for(let e=0;e<5;e++){const A=e*yn,i=A+$e;jr([A,ti],$e,qr[e+1]),jr([i,Math.PI-ti],$e,qr[(e+3)%5+6])}jr([0,Math.PI],0,qr[11])}var Ht=0;function jr(e,A,i){if(Ht>11)throw new Error(`Too many origins: ${Ht}`);const a=$0.create();$0.conjugate(a,i);const c={id:Ht,axis:e,quat:i,inverseQuat:a,angle:A,orientation:_g[Ht],firstQuintant:Eg[Ht]};qe.push(c),Ht++}bg();qe.sort((e,A)=>uo.indexOf(e.id)-uo.indexOf(A.id));qe.forEach((e,A)=>e.id=A);function Mg(e,A){const i=A.orientation,a=i===Hl||i===Er?-1:1,c=(e-A.firstQuintant+5)%5,h=i[c];return{quintant:(A.firstQuintant+a*c+5)%5,orientation:h}}var Cg=class{forward([e,A]){return[Math.tan(A),e]}inverse([e,A]){return[A,Math.atan(e)]}},jt=uA.create(),br=uA.create(),co=uA.create(),fo=uA.create();function y0(e,A){uA.lerp(jt,e,A,.5),uA.normalize(jt,jt),uA.cross(jt,e,jt);const i=uA.length(jt);if(i<1e-8){const a=uA.subtract(uA.create(),e,A);return .5*uA.length(a)}return i}function Sg(e,A,i){return uA.cross(br,A,i),uA.dot(e,br)}function Ig(e,A,i,a,c){uA.cross(br,a,c);const h=uA.dot(A,br),g=uA.dot(i,br);return uA.scale(co,A,g),uA.scale(fo,i,h),uA.sub(e,fo,co)}function ii(e,A,i,a){const c=uA.angle(A,i);if(c<1e-12)return uA.lerp(e,A,i,a);const h=Math.sin((1-a)*c)/Math.sin(c),g=Math.sin(a*c)/Math.sin(c),m=uA.scale(uA.create(),A,h),y=uA.scale(uA.create(),i,g);return uA.add(e,m,y)}Ee.setMatrixArrayType(Float64Array);var Wr=uA.create(),Yr=uA.create(),Zr=uA.create(),Wt=uA.create(),Bg=class{constructor(e){this._area=null,this.vertices=e,Object.freeze(this.vertices)}getBoundary(e=1,A=!0){const i=[],a=this.vertices.length;for(let c=0;c<a*e;c++){const h=c/e;i.push(this.slerp(h))}return A&&i.push(i[0]),i}slerp(e){const A=this.vertices.length,i=e%1,a=Math.floor(e%A),c=(a+1)%A;return ii(uA.create(),this.vertices[a],this.vertices[c],i)}getTransformedVertices(e){const A=this.vertices.length,i=Math.floor(e%A),a=(i+1)%A,c=(i+A-1)%A,h=uA.clone(this.vertices[i]),g=uA.clone(this.vertices[a]),m=uA.clone(this.vertices[c]);return uA.sub(g,g,h),uA.sub(m,m,h),[h,g,m]}containsPoint(e){const A=this.vertices.length;let i=1/0;for(let a=0;a<A;a++){const[c,h,g]=this.getTransformedVertices(a),m=uA.sub(uA.create(),e,c);uA.normalize(m,m),uA.normalize(h,h),uA.normalize(g,g);const y=uA.cross(uA.create(),h,m),v=uA.cross(uA.create(),m,g),_=uA.dot(c,y),S=uA.dot(c,v);i=Math.min(i,_,S)}return i}getTriangleArea(e,A,i){uA.lerp(Wr,A,i,.5),uA.lerp(Yr,i,e,.5),uA.lerp(Zr,e,A,.5),uA.normalize(Wr,Wr),uA.normalize(Yr,Yr),uA.normalize(Zr,Zr);const a=Sg(Wr,Yr,Zr),c=Math.max(-1,Math.min(1,a));return Math.abs(c)<1e-8?2*c:Math.asin(c)*2}getArea(){return this._area===null&&(this._area=this._getArea()),this._area}_getArea(){if(this.vertices.length<3)return 0;if(this.vertices.length===3)return this._area=this.getTriangleArea(this.vertices[0],this.vertices[1],this.vertices[2]),this._area;uA.set(Wt,0,0,0);for(const A of this.vertices)uA.add(Wt,Wt,A);uA.normalize(Wt,Wt);let e=0;for(let A=0;A<this.vertices.length;A++){const i=this.vertices[A],a=this.vertices[(A+1)%this.vertices.length],c=this.getTriangleArea(Wt,i,a);isNaN(c)||(e+=c)}return this._area=e,this._area}isWindingCorrect(){if(!(this.getArea()>0))debugger}};Ee.setMatrixArrayType(Float64Array);var Xr=class extends Bg{constructor(e){if(e.length!==3)throw new Error("SphericalTriangleShape requires exactly 3 vertices");super(e)}};Ee.setMatrixArrayType(Float64Array);var Lg=class{forward(e,A,i){const[a,c,h]=A,g=new Xr([a,c,h]),m=uA.subtract(uA.create(),e,a);uA.normalize(m,m);const y=Ig(uA.create(),a,m,c,h);uA.normalize(y,y);const v=y0(a,e)/y0(a,y),_=g.getArea(),S=v/_,P=[1-v,S*new Xr([a,y,h]).getArea(),S*new Xr([a,c,y]).getArea()];return mg(P,i)}inverse(e,A,i){const[a,c,h]=i,g=new Xr([a,c,h]),m=pg(e,A),y=1-1e-14;if(m[0]>y)return a;if(m[1]>y)return c;if(m[2]>y)return h;const v=uA.create();uA.cross(v,c,h);const _=g.getArea(),S=1-m[0],N=m[2]/S*_,Y=Math.sin(N),Z=Math.sin(N/2),tA=2*Z*Z,R=uA.dot(a,c),z=uA.dot(c,h),nA=uA.dot(h,a),mA=uA.length(v),G=uA.dot(a,v),j=Y*G+tA*(R*z-nA),eA=tA*mA*(1+R),lA=2/Math.acos(z)*Math.atan2(eA,j),U=ii(uA.create(),c,h,lA),k=y0(a,U),x=this.safeAcos(S*k)/this.safeAcos(k);return ii([0,0,0],a,U,x)}safeAcos(e){return e<.001?2*e+e*e*e/3:Math.acos(1-2*e*e)}};Ee.setMatrixArrayType(Float64Array);var Pe=-1,_e=1,Pg=([e,A])=>LA.fromValues(e-A,A),si=LA.fromValues(1,0),oi=LA.fromValues(0,1),ho=LA.negate(LA.create(),si),go=LA.negate(LA.create(),oi),T0=LA.fromValues(0,0),xg=(e,[A,i])=>{let a=T0,c=T0;switch(A===_e&&i===_e?(a=si,c=oi):A===Pe&&i===_e?(a=go,c=ho):A===_e&&i===Pe?(a=oi,c=si):A===Pe&&i===Pe&&(a=ho,c=go),e){case 0:return T0;case 1:return a;case 2:return LA.add(LA.create(),c,a);case 3:return LA.scaleAndAdd(LA.create(),c,a,2);default:throw new Error(`Invalid Quaternary value: ${e}`)}},po=e=>[[_e,_e],[_e,Pe],[_e,_e],[Pe,_e]][e],mo=LA.fromValues(-1,1);function jl(e){return Array.from({length:e.length},(A,i)=>e.indexOf(i))}var Wl=[0,1,3,4,5,6,7,2],Yl=[0,1,2,7,3,4,5,6];jl(Wl);jl(Yl);var Ng=(e,A,i,a,c)=>{if(A<=0)return;const h=e[A]||0,g=e[A-1],m=i[0]+i[1];let y=!0,v=!0;if(a!==(m===0)?(y=h===1||h===2,v=h===1):(y=h<2,v=h===0),!y)return;const _=v?g:g+4,S=c[_];e[A-1]=S%4,e[A]=(h+4+Math.floor(S/4)-Math.floor(_/4))%4},Rg=(e,A,i)=>{let a=BigInt(e);const c=i==="vu"||i==="wu"||i==="vw",h=i==="wv"||i==="vw",g=i==="wu"||i==="uw";c&&(a=(1n<<BigInt(2*A))-a-1n);const m=Dg(a,A,h,g);if(g){const{offset:[y,v],flips:[_,S]}=m;m.offset=[v,y],_===Pe&&LA.add(m.offset,m.offset,mo),S===Pe&&LA.subtract(m.offset,m.offset,mo)}if(h){const{offset:[y,v],flips:_}=m,S=(1<<A)-(y+v);_[0]=-_[0],m.offset[1]=S,m.flips=_}return m},Dg=(e,A,i,a)=>{const c=LA.create(),h=[_e,_e];let g=BigInt(e);const m=[];for(;g>0n||m.length<A;)m.push(Number(g%4n)),g=g>>2n;const y=a?Yl:Wl;for(let _=m.length-1;_>=0;_--)Ng(m,_,h,i,y),LA.multiply(h,h,po(m[_]));h[0]=_e,h[1]=_e;for(let _=m.length-1;_>=0;_--){LA.scale(c,c,2);const S=xg(m[_],h);LA.add(c,c,S),LA.multiply(h,h,po(m[_]))}const v=m[0]||0;return{flips:h,k:v,offset:Pg(c)}};Ee.setMatrixArrayType(Float64Array);var Og=LA.clone(Mr),kg=LA.negate(LA.create(),Mr),Bi=[0,1,2,3,4].map(e=>{const A=Bt.create();return Bt.fromRotation(A,yn*e),A}),wo=LA.create();function Fg(e,A,i){const a=lg.clone();LA.transformMat2(wo,i.offset,Ul),i.flips[0]===_e&&i.flips[1]===Pe&&a.rotate180();const{k:c}=i,h=i.flips[0]+i.flips[1];return((h===-2||h===2)&&c>1||h===0&&(c===0||c===3))&&a.reflectY(),i.flips[0]===Pe&&i.flips[1]===Pe?a.rotate180():i.flips[0]===Pe?a.translate(kg):i.flips[1]===Pe&&a.translate(Og),a.translate(wo),a.scale(1/2**e),a.transform(Bi[A]),a}function Zl(e){const A=cg.clone();return A.transform(Bi[e]),A}function Ug(){const e=[];for(const A of Bi)e.push(LA.transformMat2(LA.create(),vn,A));return e.reverse(),new Ii(e)}Ee.setMatrixArrayType(Float64Array);var Qg=class{constructor(){if(this.vertices=[],this.invocations=0,this.addFaceCenters(),this.addVertices(),this.addMidpoints(),this.vertices.length!==62)throw new Error("Failed to construct CRS: vertices length is not 62");Object.freeze(this.vertices)}getVertex(e){this.invocations++,this.invocations===1e4&&console.warn("Too many CRS invocations, results should be cached");for(const A of this.vertices)if(uA.distance(e,A)<1e-5)return A;throw new Error("Failed to find vertex in CRS")}addFaceCenters(){qe.forEach(e=>this.add(tr(e.axis)))}addVertices(){const e=Math.atan(ig);for(const A of qe)for(let i=0;i<5;i++){const a=(2*i+1)*Math.PI/5,c=tr([a+A.angle,e]);uA.transformQuat(c,c,A.quat),this.add(c)}}addMidpoints(){const e=Math.atan(Ln);for(const A of qe)for(let i=0;i<5;i++){const a=2*i*Math.PI/5,c=tr([a+A.angle,e]);uA.transformQuat(c,c,A.quat),this.add(c)}}add(e){const A=uA.normalize(uA.create(),e);return this.vertices.find(a=>uA.distance(A,a)<1e-5)?!1:(this.vertices.push(A),!0)}};Ee.setMatrixArrayType(Float64Array);var Vg=new Qg,zg=class{constructor(){this.faceTriangles=[],this.sphericalTriangles=[],this.polyhedral=new Lg,this.gnomonic=new Cg}forward(e,A){const i=qe[A],a=tr(e),c=uA.create();uA.transformQuat(c,a,i.inverseQuat);const h=ni(c),g=this.gnomonic.forward(h);g[1]=g[1]-i.angle;const m=this.getFaceTriangleIndex(g),y=this.shouldReflect(g);let v=this.getFaceTriangle(m,y,!1),_=this.getSphericalTriangle(m,A,y);return this.polyhedral.forward(a,_,v)}inverse(e,A){const i=ro(e),a=this.getFaceTriangleIndex(i),c=this.shouldReflect(i),h=this.getFaceTriangle(a,c,!1),g=this.getSphericalTriangle(a,A,c),m=this.polyhedral.inverse(e,h,g);return ni(m)}shouldReflect(e){const[A,i]=e;return gg([A,this.normalizeGamma(i)])[0]>Ln}getFaceTriangleIndex([e,A]){return(Math.floor(A/$e)+10)%10}getFaceTriangle(e,A=!1,i=!1){let a=e;return A&&(a+=i?20:10),this.faceTriangles[a]?this.faceTriangles[a]:(this.faceTriangles[a]=A?this._getReflectedFaceTriangle(e,i):this._getFaceTriangle(e),Object.freeze(this.faceTriangles[a]),this.faceTriangles[a])}_getFaceTriangle(e){const A=Math.floor((e+1)/2)%5,[i,a,c]=Zl(A).getVertices(),h=LA.create();return LA.lerp(h,a,c,.5),e%2===0?[i,h,a]:[i,c,h]}_getReflectedFaceTriangle(e,A=!1){let[i,a,c]=this._getFaceTriangle(e).map(m=>LA.clone(m));const h=e%2===0;LA.negate(i,i);const g=h?a:c;return LA.scaleAndAdd(i,i,g,A?1+1/Math.cos(ti):2),[i,c,a]}getSphericalTriangle(e,A,i=!1){let a=10*A+e;return i&&(a+=120),this.sphericalTriangles[a]?this.sphericalTriangles[a]:(this.sphericalTriangles[a]=this._getSphericalTriangle(e,A,i),Object.freeze(this.sphericalTriangles[a]),this.sphericalTriangles[a])}_getSphericalTriangle(e,A,i=!1){const a=qe[A];return this.getFaceTriangle(e,i,!0).map(g=>{const[m,y]=ro(g),v=[m,y+a.angle],_=tr(this.gnomonic.inverse(v));return uA.transformQuat(_,_,a.quat),Vg.getVertex(_)})}normalizeGamma(e){const A=e/yn,i=Math.round(A);return(A-i)*yn}},rr=2,Gg=30,qg=58n,Hg=0x3ffffffffffffffn;function jg(e){let A=Gg-1,i=e>>1n;for(;A>-1&&(i&0b1n)===0n;)A-=1,i=i>>(A<rr?1n:2n);return A}function Wg(e){const A=jg(e);if(A===-1)return{origin:qe[0],segment:0,S:0n,resolution:A};const i=Number(e>>58n);let a,c;if(A===0)a=qe[i],c=0;else{const v=Math.floor(i/5);a=qe[v],c=(i+a.firstQuintant)%5}if(!a)throw new Error(`Could not parse origin: ${i}`);if(A<rr)return{origin:a,segment:c,S:0n,resolution:A};const h=A-rr+1,g=BigInt(2*h),m=qg-g,y=(e&Hg)>>m;return{origin:a,segment:c,S:y,resolution:A}}Ee.setMatrixArrayType(Float64Array);Bt.create();var Yg=new zg;function Zg({S:e,segment:A,origin:i,resolution:a}){const{quintant:c,orientation:h}=Mg(A,i);if(a===rr-1)return Zl(c);if(a===rr-2)return Ug();const g=a-rr+1,m=Rg(e,g,h);return Fg(g,c,m)}function Xg(e,{closedRing:A=!0,segments:i="auto"}={closedRing:!0,segments:"auto"}){const{S:a,segment:c,origin:h,resolution:g}=Wg(e);i==="auto"&&(i=Math.max(1,Math.pow(2,6-g)));const S=Zg({S:a,segment:c,origin:h,resolution:g}).splitEdges(i).getVertices().map(N=>Yg.inverse(N,h.id)).map(N=>zl(N)),P=yg(S);return A&&P.push(P[0]),P.reverse(),P}function Jg(e){return BigInt(`0x${e}`)}Ee.setMatrixArrayType(Float64Array);var qA=(function(e){e=e||{};var A=typeof e<"u"?e:{},i={},a;for(a in A)A.hasOwnProperty(a)&&(i[a]=A[a]);var c="";function h(W){return A.locateFile?A.locateFile(W,c):c+W}var g;typeof document<"u"&&document.currentScript&&(c=document.currentScript.src),c.indexOf("blob:")!==0?c=c.substr(0,c.lastIndexOf("/")+1):c="",g=function($,cA,AA){var n=new XMLHttpRequest;n.open("GET",$,!0),n.responseType="arraybuffer",n.onload=function(){if(n.status==200||n.status==0&&n.response){cA(n.response);return}var kA=Vn($);if(kA){cA(kA.buffer);return}AA()},n.onerror=AA,n.send(null)};var m=A.print||console.log.bind(console),y=A.printErr||console.warn.bind(console);for(a in i)i.hasOwnProperty(a)&&(A[a]=i[a]);i=null,A.arguments&&A.arguments;var v=0,_=function(W){v=W},S=function(){return v},P=8;function N(W,$,cA,AA){switch(cA=cA||"i8",cA.charAt(cA.length-1)==="*"&&(cA="i32"),cA){case"i1":X[W>>0]=$;break;case"i8":X[W>>0]=$;break;case"i16":yA[W>>1]=$;break;case"i32":dA[W>>2]=$;break;case"i64":Qn=[$>>>0,(Dt=$,+gc(Dt)>=1?Dt>0?(wc(+mc(Dt/4294967296),4294967295)|0)>>>0:~~+pc((Dt-+(~~Dt>>>0))/4294967296)>>>0:0)],dA[W>>2]=Qn[0],dA[W+4>>2]=Qn[1];break;case"float":OA[W>>2]=$;break;case"double":XA[W>>3]=$;break;default:Ot("invalid type for setValue: "+cA)}}function Y(W,$,cA){switch($=$||"i8",$.charAt($.length-1)==="*"&&($="i32"),$){case"i1":return X[W>>0];case"i8":return X[W>>0];case"i16":return yA[W>>1];case"i32":return dA[W>>2];case"i64":return dA[W>>2];case"float":return OA[W>>2];case"double":return XA[W>>3];default:Ot("invalid type for getValue: "+$)}return null}var Z=!1;function tA(W,$){W||Ot("Assertion failed: "+$)}function R(W){var $=A["_"+W];return tA($,"Cannot call unknown function "+W+", make sure it is exported"),$}function z(W,$,cA,AA,n){var E={string:function(RA){var Re=0;if(RA!=null&&RA!==0){var xr=(RA.length<<2)+1;Re=Ji(xr),lA(RA,Re,xr)}return Re},array:function(RA){var Re=Ji(RA.length);return U(RA,Re),Re}};function kA(RA){return $==="string"?j(RA):$==="boolean"?!!RA:RA}var WA=R(W),ae=[],NA=0;if(AA)for(var FA=0;FA<AA.length;FA++){var at=E[cA[FA]];at?(NA===0&&(NA=Rc()),ae[FA]=at(AA[FA])):ae[FA]=AA[FA]}var GA=WA.apply(null,ae);return GA=kA(GA),NA!==0&&Nc(NA),GA}function nA(W,$,cA,AA){cA=cA||[];var n=cA.every(function(kA){return kA==="number"}),E=$!=="string";return E&&n&&!AA?R(W):function(){return z(W,$,cA,arguments)}}var mA=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function G(W,$,cA){for(var AA=$+cA,n=$;W[n]&&!(n>=AA);)++n;if(n-$>16&&W.subarray&&mA)return mA.decode(W.subarray($,n));for(var E="";$<n;){var kA=W[$++];if(!(kA&128)){E+=String.fromCharCode(kA);continue}var WA=W[$++]&63;if((kA&224)==192){E+=String.fromCharCode((kA&31)<<6|WA);continue}var ae=W[$++]&63;if((kA&240)==224?kA=(kA&15)<<12|WA<<6|ae:kA=(kA&7)<<18|WA<<12|ae<<6|W[$++]&63,kA<65536)E+=String.fromCharCode(kA);else{var NA=kA-65536;E+=String.fromCharCode(55296|NA>>10,56320|NA&1023)}}return E}function j(W,$){return W?G(J,W,$):""}function eA(W,$,cA,AA){if(!(AA>0))return 0;for(var n=cA,E=cA+AA-1,kA=0;kA<W.length;++kA){var WA=W.charCodeAt(kA);if(WA>=55296&&WA<=57343){var ae=W.charCodeAt(++kA);WA=65536+((WA&1023)<<10)|ae&1023}if(WA<=127){if(cA>=E)break;$[cA++]=WA}else if(WA<=2047){if(cA+1>=E)break;$[cA++]=192|WA>>6,$[cA++]=128|WA&63}else if(WA<=65535){if(cA+2>=E)break;$[cA++]=224|WA>>12,$[cA++]=128|WA>>6&63,$[cA++]=128|WA&63}else{if(cA+3>=E)break;$[cA++]=240|WA>>18,$[cA++]=128|WA>>12&63,$[cA++]=128|WA>>6&63,$[cA++]=128|WA&63}}return $[cA]=0,cA-n}function lA(W,$,cA){return eA(W,J,$,cA)}typeof TextDecoder<"u"&&new TextDecoder("utf-16le");function U(W,$){X.set(W,$)}function k(W,$){return W%$>0&&(W+=$-W%$),W}var x,X,J,yA,dA,OA,XA;function Ae(W){x=W,A.HEAP8=X=new Int8Array(W),A.HEAP16=yA=new Int16Array(W),A.HEAP32=dA=new Int32Array(W),A.HEAPU8=J=new Uint8Array(W),A.HEAPU16=new Uint16Array(W),A.HEAPU32=new Uint32Array(W),A.HEAPF32=OA=new Float32Array(W),A.HEAPF64=XA=new Float64Array(W)}var UA=5271536,QA=28624,jA=A.TOTAL_MEMORY||33554432;A.buffer?x=A.buffer:x=new ArrayBuffer(jA),jA=x.byteLength,Ae(x),dA[QA>>2]=UA;function te(W){for(;W.length>0;){var $=W.shift();if(typeof $=="function"){$();continue}var cA=$.func;typeof cA=="number"?$.arg===void 0?A.dynCall_v(cA):A.dynCall_vi(cA,$.arg):cA($.arg===void 0?null:$.arg)}}var Ne=[],oc=[],ac=[],Yi=[];function lc(){if(A.preRun)for(typeof A.preRun=="function"&&(A.preRun=[A.preRun]);A.preRun.length;)hc(A.preRun.shift());te(Ne)}function uc(){te(oc)}function cc(){te(ac)}function fc(){if(A.postRun)for(typeof A.postRun=="function"&&(A.postRun=[A.postRun]);A.postRun.length;)dc(A.postRun.shift());te(Yi)}function hc(W){Ne.unshift(W)}function dc(W){Yi.unshift(W)}var gc=Math.abs,pc=Math.ceil,mc=Math.floor,wc=Math.min,wt=0,cr=null;function yc(W){wt++,A.monitorRunDependencies&&A.monitorRunDependencies(wt)}function Tc(W){if(wt--,A.monitorRunDependencies&&A.monitorRunDependencies(wt),wt==0&&cr){var $=cr;cr=null,$()}}A.preloadedImages={},A.preloadedAudios={};var At=null,Un="data:application/octet-stream;base64,";function Zi(W){return String.prototype.startsWith?W.startsWith(Un):W.indexOf(Un)===0}var Dt,Qn;At="data:application/octet-stream;base64,AAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAAAQAAAAQAAAADAAAABgAAAAUAAAACAAAAAAAAAAIAAAADAAAAAQAAAAQAAAAGAAAAAAAAAAUAAAADAAAABgAAAAQAAAAFAAAAAAAAAAEAAAACAAAABAAAAAUAAAAGAAAAAAAAAAIAAAADAAAAAQAAAAUAAAACAAAAAAAAAAEAAAADAAAABgAAAAQAAAAGAAAAAAAAAAUAAAACAAAAAQAAAAQAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAAAAAAEAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAYAAAAAAAAABQAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAYAAAAAAAAAAwAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAFAAAABAAAAAAAAAABAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAgAAAAQAAAADAAAACAAAAAEAAAAHAAAABgAAAAkAAAAAAAAAAwAAAAIAAAACAAAABgAAAAoAAAALAAAAAAAAAAEAAAAFAAAAAwAAAA0AAAABAAAABwAAAAQAAAAMAAAAAAAAAAQAAAB/AAAADwAAAAgAAAADAAAAAAAAAAwAAAAFAAAAAgAAABIAAAAKAAAACAAAAAAAAAAQAAAABgAAAA4AAAALAAAAEQAAAAEAAAAJAAAAAgAAAAcAAAAVAAAACQAAABMAAAADAAAADQAAAAEAAAAIAAAABQAAABYAAAAQAAAABAAAAAAAAAAPAAAACQAAABMAAAAOAAAAFAAAAAEAAAAHAAAABgAAAAoAAAALAAAAGAAAABcAAAAFAAAAAgAAABIAAAALAAAAEQAAABcAAAAZAAAAAgAAAAYAAAAKAAAADAAAABwAAAANAAAAGgAAAAQAAAAPAAAAAwAAAA0AAAAaAAAAFQAAAB0AAAADAAAADAAAAAcAAAAOAAAAfwAAABEAAAAbAAAACQAAABQAAAAGAAAADwAAABYAAAAcAAAAHwAAAAQAAAAIAAAADAAAABAAAAASAAAAIQAAAB4AAAAIAAAABQAAABYAAAARAAAACwAAAA4AAAAGAAAAIwAAABkAAAAbAAAAEgAAABgAAAAeAAAAIAAAAAUAAAAKAAAAEAAAABMAAAAiAAAAFAAAACQAAAAHAAAAFQAAAAkAAAAUAAAADgAAABMAAAAJAAAAKAAAABsAAAAkAAAAFQAAACYAAAATAAAAIgAAAA0AAAAdAAAABwAAABYAAAAQAAAAKQAAACEAAAAPAAAACAAAAB8AAAAXAAAAGAAAAAsAAAAKAAAAJwAAACUAAAAZAAAAGAAAAH8AAAAgAAAAJQAAAAoAAAAXAAAAEgAAABkAAAAXAAAAEQAAAAsAAAAtAAAAJwAAACMAAAAaAAAAKgAAAB0AAAArAAAADAAAABwAAAANAAAAGwAAACgAAAAjAAAALgAAAA4AAAAUAAAAEQAAABwAAAAfAAAAKgAAACwAAAAMAAAADwAAABoAAAAdAAAAKwAAACYAAAAvAAAADQAAABoAAAAVAAAAHgAAACAAAAAwAAAAMgAAABAAAAASAAAAIQAAAB8AAAApAAAALAAAADUAAAAPAAAAFgAAABwAAAAgAAAAHgAAABgAAAASAAAANAAAADIAAAAlAAAAIQAAAB4AAAAxAAAAMAAAABYAAAAQAAAAKQAAACIAAAATAAAAJgAAABUAAAA2AAAAJAAAADMAAAAjAAAALgAAAC0AAAA4AAAAEQAAABsAAAAZAAAAJAAAABQAAAAiAAAAEwAAADcAAAAoAAAANgAAACUAAAAnAAAANAAAADkAAAAYAAAAFwAAACAAAAAmAAAAfwAAACIAAAAzAAAAHQAAAC8AAAAVAAAAJwAAACUAAAAZAAAAFwAAADsAAAA5AAAALQAAACgAAAAbAAAAJAAAABQAAAA8AAAALgAAADcAAAApAAAAMQAAADUAAAA9AAAAFgAAACEAAAAfAAAAKgAAADoAAAArAAAAPgAAABwAAAAsAAAAGgAAACsAAAA+AAAALwAAAEAAAAAaAAAAKgAAAB0AAAAsAAAANQAAADoAAABBAAAAHAAAAB8AAAAqAAAALQAAACcAAAAjAAAAGQAAAD8AAAA7AAAAOAAAAC4AAAA8AAAAOAAAAEQAAAAbAAAAKAAAACMAAAAvAAAAJgAAACsAAAAdAAAARQAAADMAAABAAAAAMAAAADEAAAAeAAAAIQAAAEMAAABCAAAAMgAAADEAAAB/AAAAPQAAAEIAAAAhAAAAMAAAACkAAAAyAAAAMAAAACAAAAAeAAAARgAAAEMAAAA0AAAAMwAAAEUAAAA2AAAARwAAACYAAAAvAAAAIgAAADQAAAA5AAAARgAAAEoAAAAgAAAAJQAAADIAAAA1AAAAPQAAAEEAAABLAAAAHwAAACkAAAAsAAAANgAAAEcAAAA3AAAASQAAACIAAAAzAAAAJAAAADcAAAAoAAAANgAAACQAAABIAAAAPAAAAEkAAAA4AAAARAAAAD8AAABNAAAAIwAAAC4AAAAtAAAAOQAAADsAAABKAAAATgAAACUAAAAnAAAANAAAADoAAAB/AAAAPgAAAEwAAAAsAAAAQQAAACoAAAA7AAAAPwAAAE4AAABPAAAAJwAAAC0AAAA5AAAAPAAAAEgAAABEAAAAUAAAACgAAAA3AAAALgAAAD0AAAA1AAAAMQAAACkAAABRAAAASwAAAEIAAAA+AAAAKwAAADoAAAAqAAAAUgAAAEAAAABMAAAAPwAAAH8AAAA4AAAALQAAAE8AAAA7AAAATQAAAEAAAAAvAAAAPgAAACsAAABUAAAARQAAAFIAAABBAAAAOgAAADUAAAAsAAAAVgAAAEwAAABLAAAAQgAAAEMAAABRAAAAVQAAADEAAAAwAAAAPQAAAEMAAABCAAAAMgAAADAAAABXAAAAVQAAAEYAAABEAAAAOAAAADwAAAAuAAAAWgAAAE0AAABQAAAARQAAADMAAABAAAAALwAAAFkAAABHAAAAVAAAAEYAAABDAAAANAAAADIAAABTAAAAVwAAAEoAAABHAAAAWQAAAEkAAABbAAAAMwAAAEUAAAA2AAAASAAAAH8AAABJAAAANwAAAFAAAAA8AAAAWAAAAEkAAABbAAAASAAAAFgAAAA2AAAARwAAADcAAABKAAAATgAAAFMAAABcAAAANAAAADkAAABGAAAASwAAAEEAAAA9AAAANQAAAF4AAABWAAAAUQAAAEwAAABWAAAAUgAAAGAAAAA6AAAAQQAAAD4AAABNAAAAPwAAAEQAAAA4AAAAXQAAAE8AAABaAAAATgAAAEoAAAA7AAAAOQAAAF8AAABcAAAATwAAAE8AAABOAAAAPwAAADsAAABdAAAAXwAAAE0AAABQAAAARAAAAEgAAAA8AAAAYwAAAFoAAABYAAAAUQAAAFUAAABeAAAAZQAAAD0AAABCAAAASwAAAFIAAABgAAAAVAAAAGIAAAA+AAAATAAAAEAAAABTAAAAfwAAAEoAAABGAAAAZAAAAFcAAABcAAAAVAAAAEUAAABSAAAAQAAAAGEAAABZAAAAYgAAAFUAAABXAAAAZQAAAGYAAABCAAAAQwAAAFEAAABWAAAATAAAAEsAAABBAAAAaAAAAGAAAABeAAAAVwAAAFMAAABmAAAAZAAAAEMAAABGAAAAVQAAAFgAAABIAAAAWwAAAEkAAABjAAAAUAAAAGkAAABZAAAAYQAAAFsAAABnAAAARQAAAFQAAABHAAAAWgAAAE0AAABQAAAARAAAAGoAAABdAAAAYwAAAFsAAABJAAAAWQAAAEcAAABpAAAAWAAAAGcAAABcAAAAUwAAAE4AAABKAAAAbAAAAGQAAABfAAAAXQAAAE8AAABaAAAATQAAAG0AAABfAAAAagAAAF4AAABWAAAAUQAAAEsAAABrAAAAaAAAAGUAAABfAAAAXAAAAE8AAABOAAAAbQAAAGwAAABdAAAAYAAAAGgAAABiAAAAbgAAAEwAAABWAAAAUgAAAGEAAAB/AAAAYgAAAFQAAABnAAAAWQAAAG8AAABiAAAAbgAAAGEAAABvAAAAUgAAAGAAAABUAAAAYwAAAFAAAABpAAAAWAAAAGoAAABaAAAAcQAAAGQAAABmAAAAUwAAAFcAAABsAAAAcgAAAFwAAABlAAAAZgAAAGsAAABwAAAAUQAAAFUAAABeAAAAZgAAAGUAAABXAAAAVQAAAHIAAABwAAAAZAAAAGcAAABbAAAAYQAAAFkAAAB0AAAAaQAAAG8AAABoAAAAawAAAG4AAABzAAAAVgAAAF4AAABgAAAAaQAAAFgAAABnAAAAWwAAAHEAAABjAAAAdAAAAGoAAABdAAAAYwAAAFoAAAB1AAAAbQAAAHEAAABrAAAAfwAAAGUAAABeAAAAcwAAAGgAAABwAAAAbAAAAGQAAABfAAAAXAAAAHYAAAByAAAAbQAAAG0AAABsAAAAXQAAAF8AAAB1AAAAdgAAAGoAAABuAAAAYgAAAGgAAABgAAAAdwAAAG8AAABzAAAAbwAAAGEAAABuAAAAYgAAAHQAAABnAAAAdwAAAHAAAABrAAAAZgAAAGUAAAB4AAAAcwAAAHIAAABxAAAAYwAAAHQAAABpAAAAdQAAAGoAAAB5AAAAcgAAAHAAAABkAAAAZgAAAHYAAAB4AAAAbAAAAHMAAABuAAAAawAAAGgAAAB4AAAAdwAAAHAAAAB0AAAAZwAAAHcAAABvAAAAcQAAAGkAAAB5AAAAdQAAAH8AAABtAAAAdgAAAHEAAAB5AAAAagAAAHYAAAB4AAAAbAAAAHIAAAB1AAAAeQAAAG0AAAB3AAAAbwAAAHMAAABuAAAAeQAAAHQAAAB4AAAAeAAAAHMAAAByAAAAcAAAAHkAAAB3AAAAdgAAAHkAAAB0AAAAeAAAAHcAAAB1AAAAcQAAAHYAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAABAAAABQAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAACAAAABQAAAAEAAAAAAAAA/////wEAAAAAAAAAAwAAAAQAAAACAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAABQAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAEAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAAAAAABAAAAAwAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAUAAAABAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAAUAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAIAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAD/////AQAAAAAAAAADAAAABAAAAAIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAUAAAABAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAEAAAD//////////wEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAACAAAAAAAAAAAAAAABAAAAAgAAAAYAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAKAAAAAgAAAAAAAAAAAAAAAQAAAAEAAAAFAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAACAAAAAAAAAAAAAAABAAAAAwAAAAcAAAAGAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABwAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAADgAAAAIAAAAAAAAAAAAAAAEAAAAAAAAACQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAMAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAIAAAAAAAAAAAAAAAEAAAAEAAAACAAAAAoAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAACQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAAAAAAAAAAAAQAAAAsAAAAPAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAIAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAgAAAAAAAAAAAAAAAQAAAAwAAAAQAAAADAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAADwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAAAAAAAAAAAAABAAAACgAAABMAAAAIAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAACQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAIAAAAAAAAAAAAAAAEAAAANAAAAEQAAAA0AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAACAAAAAAAAAAAAAAABAAAADgAAABIAAAAPAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAADwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABIAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAgAAAAAAAAAAAAAAAQAAAP//////////EwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAASAAAAAAAAABgAAAAAAAAAIQAAAAAAAAAeAAAAAAAAACAAAAADAAAAMQAAAAEAAAAwAAAAAwAAADIAAAADAAAACAAAAAAAAAAFAAAABQAAAAoAAAAFAAAAFgAAAAAAAAAQAAAAAAAAABIAAAAAAAAAKQAAAAEAAAAhAAAAAAAAAB4AAAAAAAAABAAAAAAAAAAAAAAABQAAAAIAAAAFAAAADwAAAAEAAAAIAAAAAAAAAAUAAAAFAAAAHwAAAAEAAAAWAAAAAAAAABAAAAAAAAAAAgAAAAAAAAAGAAAAAAAAAA4AAAAAAAAACgAAAAAAAAALAAAAAAAAABEAAAADAAAAGAAAAAEAAAAXAAAAAwAAABkAAAADAAAAAAAAAAAAAAABAAAABQAAAAkAAAAFAAAABQAAAAAAAAACAAAAAAAAAAYAAAAAAAAAEgAAAAEAAAAKAAAAAAAAAAsAAAAAAAAABAAAAAEAAAADAAAABQAAAAcAAAAFAAAACAAAAAEAAAAAAAAAAAAAAAEAAAAFAAAAEAAAAAEAAAAFAAAAAAAAAAIAAAAAAAAABwAAAAAAAAAVAAAAAAAAACYAAAAAAAAACQAAAAAAAAATAAAAAAAAACIAAAADAAAADgAAAAEAAAAUAAAAAwAAACQAAAADAAAAAwAAAAAAAAANAAAABQAAAB0AAAAFAAAAAQAAAAAAAAAHAAAAAAAAABUAAAAAAAAABgAAAAEAAAAJAAAAAAAAABMAAAAAAAAABAAAAAIAAAAMAAAABQAAABoAAAAFAAAAAAAAAAEAAAADAAAAAAAAAA0AAAAFAAAAAgAAAAEAAAABAAAAAAAAAAcAAAAAAAAAGgAAAAAAAAAqAAAAAAAAADoAAAAAAAAAHQAAAAAAAAArAAAAAAAAAD4AAAADAAAAJgAAAAEAAAAvAAAAAwAAAEAAAAADAAAADAAAAAAAAAAcAAAABQAAACwAAAAFAAAADQAAAAAAAAAaAAAAAAAAACoAAAAAAAAAFQAAAAEAAAAdAAAAAAAAACsAAAAAAAAABAAAAAMAAAAPAAAABQAAAB8AAAAFAAAAAwAAAAEAAAAMAAAAAAAAABwAAAAFAAAABwAAAAEAAAANAAAAAAAAABoAAAAAAAAAHwAAAAAAAAApAAAAAAAAADEAAAAAAAAALAAAAAAAAAA1AAAAAAAAAD0AAAADAAAAOgAAAAEAAABBAAAAAwAAAEsAAAADAAAADwAAAAAAAAAWAAAABQAAACEAAAAFAAAAHAAAAAAAAAAfAAAAAAAAACkAAAAAAAAAKgAAAAEAAAAsAAAAAAAAADUAAAAAAAAABAAAAAQAAAAIAAAABQAAABAAAAAFAAAADAAAAAEAAAAPAAAAAAAAABYAAAAFAAAAGgAAAAEAAAAcAAAAAAAAAB8AAAAAAAAAMgAAAAAAAAAwAAAAAAAAADEAAAADAAAAIAAAAAAAAAAeAAAAAwAAACEAAAADAAAAGAAAAAMAAAASAAAAAwAAABAAAAADAAAARgAAAAAAAABDAAAAAAAAAEIAAAADAAAANAAAAAMAAAAyAAAAAAAAADAAAAAAAAAAJQAAAAMAAAAgAAAAAAAAAB4AAAADAAAAUwAAAAAAAABXAAAAAwAAAFUAAAADAAAASgAAAAMAAABGAAAAAAAAAEMAAAAAAAAAOQAAAAEAAAA0AAAAAwAAADIAAAAAAAAAGQAAAAAAAAAXAAAAAAAAABgAAAADAAAAEQAAAAAAAAALAAAAAwAAAAoAAAADAAAADgAAAAMAAAAGAAAAAwAAAAIAAAADAAAALQAAAAAAAAAnAAAAAAAAACUAAAADAAAAIwAAAAMAAAAZAAAAAAAAABcAAAAAAAAAGwAAAAMAAAARAAAAAAAAAAsAAAADAAAAPwAAAAAAAAA7AAAAAwAAADkAAAADAAAAOAAAAAMAAAAtAAAAAAAAACcAAAAAAAAALgAAAAMAAAAjAAAAAwAAABkAAAAAAAAAJAAAAAAAAAAUAAAAAAAAAA4AAAADAAAAIgAAAAAAAAATAAAAAwAAAAkAAAADAAAAJgAAAAMAAAAVAAAAAwAAAAcAAAADAAAANwAAAAAAAAAoAAAAAAAAABsAAAADAAAANgAAAAMAAAAkAAAAAAAAABQAAAAAAAAAMwAAAAMAAAAiAAAAAAAAABMAAAADAAAASAAAAAAAAAA8AAAAAwAAAC4AAAADAAAASQAAAAMAAAA3AAAAAAAAACgAAAAAAAAARwAAAAMAAAA2AAAAAwAAACQAAAAAAAAAQAAAAAAAAAAvAAAAAAAAACYAAAADAAAAPgAAAAAAAAArAAAAAwAAAB0AAAADAAAAOgAAAAMAAAAqAAAAAwAAABoAAAADAAAAVAAAAAAAAABFAAAAAAAAADMAAAADAAAAUgAAAAMAAABAAAAAAAAAAC8AAAAAAAAATAAAAAMAAAA+AAAAAAAAACsAAAADAAAAYQAAAAAAAABZAAAAAwAAAEcAAAADAAAAYgAAAAMAAABUAAAAAAAAAEUAAAAAAAAAYAAAAAMAAABSAAAAAwAAAEAAAAAAAAAASwAAAAAAAABBAAAAAAAAADoAAAADAAAAPQAAAAAAAAA1AAAAAwAAACwAAAADAAAAMQAAAAMAAAApAAAAAwAAAB8AAAADAAAAXgAAAAAAAABWAAAAAAAAAEwAAAADAAAAUQAAAAMAAABLAAAAAAAAAEEAAAAAAAAAQgAAAAMAAAA9AAAAAAAAADUAAAADAAAAawAAAAAAAABoAAAAAwAAAGAAAAADAAAAZQAAAAMAAABeAAAAAAAAAFYAAAAAAAAAVQAAAAMAAABRAAAAAwAAAEsAAAAAAAAAOQAAAAAAAAA7AAAAAAAAAD8AAAADAAAASgAAAAAAAABOAAAAAwAAAE8AAAADAAAAUwAAAAMAAABcAAAAAwAAAF8AAAADAAAAJQAAAAAAAAAnAAAAAwAAAC0AAAADAAAANAAAAAAAAAA5AAAAAAAAADsAAAAAAAAARgAAAAMAAABKAAAAAAAAAE4AAAADAAAAGAAAAAAAAAAXAAAAAwAAABkAAAADAAAAIAAAAAMAAAAlAAAAAAAAACcAAAADAAAAMgAAAAMAAAA0AAAAAAAAADkAAAAAAAAALgAAAAAAAAA8AAAAAAAAAEgAAAADAAAAOAAAAAAAAABEAAAAAwAAAFAAAAADAAAAPwAAAAMAAABNAAAAAwAAAFoAAAADAAAAGwAAAAAAAAAoAAAAAwAAADcAAAADAAAAIwAAAAAAAAAuAAAAAAAAADwAAAAAAAAALQAAAAMAAAA4AAAAAAAAAEQAAAADAAAADgAAAAAAAAAUAAAAAwAAACQAAAADAAAAEQAAAAMAAAAbAAAAAAAAACgAAAADAAAAGQAAAAMAAAAjAAAAAAAAAC4AAAAAAAAARwAAAAAAAABZAAAAAAAAAGEAAAADAAAASQAAAAAAAABbAAAAAwAAAGcAAAADAAAASAAAAAMAAABYAAAAAwAAAGkAAAADAAAAMwAAAAAAAABFAAAAAwAAAFQAAAADAAAANgAAAAAAAABHAAAAAAAAAFkAAAAAAAAANwAAAAMAAABJAAAAAAAAAFsAAAADAAAAJgAAAAAAAAAvAAAAAwAAAEAAAAADAAAAIgAAAAMAAAAzAAAAAAAAAEUAAAADAAAAJAAAAAMAAAA2AAAAAAAAAEcAAAAAAAAAYAAAAAAAAABoAAAAAAAAAGsAAAADAAAAYgAAAAAAAABuAAAAAwAAAHMAAAADAAAAYQAAAAMAAABvAAAAAwAAAHcAAAADAAAATAAAAAAAAABWAAAAAwAAAF4AAAADAAAAUgAAAAAAAABgAAAAAAAAAGgAAAAAAAAAVAAAAAMAAABiAAAAAAAAAG4AAAADAAAAOgAAAAAAAABBAAAAAwAAAEsAAAADAAAAPgAAAAMAAABMAAAAAAAAAFYAAAADAAAAQAAAAAMAAABSAAAAAAAAAGAAAAAAAAAAVQAAAAAAAABXAAAAAAAAAFMAAAADAAAAZQAAAAAAAABmAAAAAwAAAGQAAAADAAAAawAAAAMAAABwAAAAAwAAAHIAAAADAAAAQgAAAAAAAABDAAAAAwAAAEYAAAADAAAAUQAAAAAAAABVAAAAAAAAAFcAAAAAAAAAXgAAAAMAAABlAAAAAAAAAGYAAAADAAAAMQAAAAAAAAAwAAAAAwAAADIAAAADAAAAPQAAAAMAAABCAAAAAAAAAEMAAAADAAAASwAAAAMAAABRAAAAAAAAAFUAAAAAAAAAXwAAAAAAAABcAAAAAAAAAFMAAAAAAAAATwAAAAAAAABOAAAAAAAAAEoAAAADAAAAPwAAAAEAAAA7AAAAAwAAADkAAAADAAAAbQAAAAAAAABsAAAAAAAAAGQAAAAFAAAAXQAAAAEAAABfAAAAAAAAAFwAAAAAAAAATQAAAAEAAABPAAAAAAAAAE4AAAAAAAAAdQAAAAQAAAB2AAAABQAAAHIAAAAFAAAAagAAAAEAAABtAAAAAAAAAGwAAAAAAAAAWgAAAAEAAABdAAAAAQAAAF8AAAAAAAAAWgAAAAAAAABNAAAAAAAAAD8AAAAAAAAAUAAAAAAAAABEAAAAAAAAADgAAAADAAAASAAAAAEAAAA8AAAAAwAAAC4AAAADAAAAagAAAAAAAABdAAAAAAAAAE8AAAAFAAAAYwAAAAEAAABaAAAAAAAAAE0AAAAAAAAAWAAAAAEAAABQAAAAAAAAAEQAAAAAAAAAdQAAAAMAAABtAAAABQAAAF8AAAAFAAAAcQAAAAEAAABqAAAAAAAAAF0AAAAAAAAAaQAAAAEAAABjAAAAAQAAAFoAAAAAAAAAaQAAAAAAAABYAAAAAAAAAEgAAAAAAAAAZwAAAAAAAABbAAAAAAAAAEkAAAADAAAAYQAAAAEAAABZAAAAAwAAAEcAAAADAAAAcQAAAAAAAABjAAAAAAAAAFAAAAAFAAAAdAAAAAEAAABpAAAAAAAAAFgAAAAAAAAAbwAAAAEAAABnAAAAAAAAAFsAAAAAAAAAdQAAAAIAAABqAAAABQAAAFoAAAAFAAAAeQAAAAEAAABxAAAAAAAAAGMAAAAAAAAAdwAAAAEAAAB0AAAAAQAAAGkAAAAAAAAAdwAAAAAAAABvAAAAAAAAAGEAAAAAAAAAcwAAAAAAAABuAAAAAAAAAGIAAAADAAAAawAAAAEAAABoAAAAAwAAAGAAAAADAAAAeQAAAAAAAAB0AAAAAAAAAGcAAAAFAAAAeAAAAAEAAAB3AAAAAAAAAG8AAAAAAAAAcAAAAAEAAABzAAAAAAAAAG4AAAAAAAAAdQAAAAEAAABxAAAABQAAAGkAAAAFAAAAdgAAAAEAAAB5AAAAAAAAAHQAAAAAAAAAcgAAAAEAAAB4AAAAAQAAAHcAAAAAAAAAcgAAAAAAAABwAAAAAAAAAGsAAAAAAAAAZAAAAAAAAABmAAAAAAAAAGUAAAADAAAAUwAAAAEAAABXAAAAAwAAAFUAAAADAAAAdgAAAAAAAAB4AAAAAAAAAHMAAAAFAAAAbAAAAAEAAAByAAAAAAAAAHAAAAAAAAAAXAAAAAEAAABkAAAAAAAAAGYAAAAAAAAAdQAAAAAAAAB5AAAABQAAAHcAAAAFAAAAbQAAAAEAAAB2AAAAAAAAAHgAAAAAAAAAXwAAAAEAAABsAAAAAQAAAHIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAGAAAAAgAAAAUAAAABAAAABAAAAAAAAAAAAAAABQAAAAMAAAABAAAABgAAAAQAAAACAAAAAAAAAH6iBfbytuk/Gq6akm/58z/Xrm0Liez0P5doSdOpSwRAWs602ULg8D/dT7Rcbo/1v1N1RQHFNOM/g9Snx7HW3L8HWsP8Q3jfP6VwOLosutk/9rjk1YQcxj+gnmKMsNn6P/HDeuPFY+M/YHwDjqKhB0Ci19/fCVrbP4UxKkDWOP6/pvljWa09tL9wi7wrQXjnv/Z6yLImkM2/3yTlOzY14D+m+WNZrT20PzwKVQnrQwNA9nrIsiaQzT/g40rFrRQFwPa45NWEHMa/kbslHEZq97/xw3rjxWPjv4cLC2SMBci/otff3wla27+rKF5oIAv0P1N1RQHFNOO/iDJPGyWHBUAHWsP8Q3jfvwQf/by16gXAfqIF9vK26b8XrO0Vh0r+v9eubQuJ7PS/BxLrA0ZZ479azrTZQuDwv1MK1EuItPw/yscgV9Z6FkAwHBR2WjQMQJNRzXsQ5vY/GlUHVJYKF0DONuFv2lMNQNCGZ28QJfk/0WUwoIL36D8ggDOMQuATQNqMOeAy/wZAWFYOYM+M2z/LWC4uH3oSQDE+LyTsMgRAkJzhRGWFGEDd4soovCQQQKqk0DJMEP8/rGmNdwOLBUAW2X/9xCbjP4hu3dcqJhNAzuYItRvdB0CgzW3zJW/sPxotm/Y2TxRAQAk9XmdDDEC1Kx9MKgT3P1M+NctcghZAFVqcLlb0C0Bgzd3sB2b2P77mZDPUWhZAFROHJpUGCEDAfma5CxXtPz1DWq/zYxRAmhYY5824F0DOuQKWSbAOQNCMqrvu3fs/L6DR22K2wT9nAAxPBU8RQGiN6mW43AFAZhu25b633D8c1YgmzowSQNM25BRKWARArGS08/lNxD+LFssHwmMRQLC5aNcxBgJABL9HT0WRF0CjCmJmOGEOQHsuaVzMP/s/TWJCaGGwBUCeu1PAPLzjP9nqN9DZOBNAKE4JcydbCkCGtbd1qjPzP8dgm9U8jhVAtPeKTkVwDkCeCLss5l37P401XMPLmBdAFd29VMVQDUBg0yA55h75Pz6odcYLCRdApBM4rBrkAkDyAVWgQxbRP4XDMnK20hFAymLlF7EmzD8GUgo9XBHlP3lbK7T9COc/k+OhPthhy7+YGEpnrOvCPzBFhLs15u4/epbqB6H4uz9IuuLF5svev6lzLKY31es/CaQ0envF5z8ZY0xlUADXv7zaz7HYEuI/CfbK1sn16T8uAQfWwxLWPzKn/YuFN94/5KdbC1AFu793fyCSnlfvPzK2y4doAMY/NRg5t1/X6b/shq4QJaHDP5yNIAKPOeI/vpn7BSE30r/X4YQrO6nrv78Ziv/Thto/DqJ1Y6+y5z9l51NaxFrlv8QlA65HOLS/86dxiEc96z+Hj0+LFjneP6LzBZ8LTc2/DaJ1Y6+y579l51NaxFrlP8QlA65HOLQ/8qdxiEc967+Jj0+LFjnev6LzBZ8LTc0/1qdbC1AFuz93fyCSnlfvvzK2y4doAMa/NRg5t1/X6T/vhq4QJaHDv5yNIAKPOeK/wJn7BSE30j/W4YQrO6nrP78Ziv/Thtq/CaQ0envF578XY0xlUADXP7zaz7HYEuK/CvbK1sn16b8rAQfWwxLWvzKn/YuFN96/zWLlF7EmzL8GUgo9XBHlv3lbK7T9COe/kOOhPthhyz+cGEpnrOvCvzBFhLs15u6/c5bqB6H4u79IuuLF5sveP6lzLKY31eu/AQAAAP////8HAAAA/////zEAAAD/////VwEAAP////9hCQAA/////6dBAAD/////kcsBAP/////3kAwA/////8H2VwAAAAAAAAAAAAAAAAACAAAA/////w4AAAD/////YgAAAP////+uAgAA/////8ISAAD/////ToMAAP////8ilwMA/////+4hGQD/////gu2vAAAAAAAAAAAAAAAAAAAAAAACAAAA//////////8BAAAAAwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////AgAAAP//////////AQAAAAAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD/////////////////////AQAAAP///////////////wIAAAD///////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP///////////////////////////////wIAAAD///////////////8BAAAA/////////////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAABAAAA//////////8CAAAA//////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAAAQAAAP//////////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAACAAAAAAAAAAIAAAABAAAAAQAAAAIAAAACAAAAAAAAAAUAAAAFAAAAAAAAAAIAAAACAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAEAAAACAAAAAgAAAAIAAAAAAAAABQAAAAYAAAAAAAAAAgAAAAIAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAAAAAACAAAAAQAAAAMAAAACAAAAAgAAAAAAAAAFAAAABwAAAAAAAAACAAAAAgAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAAAAAAIAAAABAAAABAAAAAIAAAACAAAAAAAAAAUAAAAIAAAAAAAAAAIAAAACAAAAAwAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAgAAAAEAAAAAAAAAAgAAAAIAAAAAAAAABQAAAAkAAAAAAAAAAgAAAAIAAAADAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAgAAAAIAAAAAAAAAAwAAAA4AAAACAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAgAAAAMAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAACAAAAAgAAAAAAAAADAAAACgAAAAIAAAAAAAAAAgAAAAMAAAABAAAAAAAAAAIAAAACAAAAAwAAAAcAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAIAAAACAAAAAAAAAAMAAAALAAAAAgAAAAAAAAACAAAAAwAAAAIAAAAAAAAAAgAAAAIAAAADAAAACAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAgAAAAIAAAAAAAAAAwAAAAwAAAACAAAAAAAAAAIAAAADAAAAAwAAAAAAAAACAAAAAgAAAAMAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAACAAAAAgAAAAAAAAADAAAADQAAAAIAAAAAAAAAAgAAAAMAAAAEAAAAAAAAAAIAAAACAAAAAwAAAAoAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAIAAAACAAAAAAAAAAMAAAAGAAAAAgAAAAAAAAACAAAAAwAAAA8AAAAAAAAAAgAAAAIAAAADAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAIAAAAAAAAAAwAAAAcAAAACAAAAAAAAAAIAAAADAAAAEAAAAAAAAAACAAAAAgAAAAMAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAACAAAAAgAAAAAAAAADAAAACAAAAAIAAAAAAAAAAgAAAAMAAAARAAAAAAAAAAIAAAACAAAAAwAAAA0AAAAAAAAAAAAAAAAAAAAAAAAACAAAAAIAAAACAAAAAAAAAAMAAAAJAAAAAgAAAAAAAAACAAAAAwAAABIAAAAAAAAAAgAAAAIAAAADAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAgAAAAIAAAAAAAAAAwAAAAUAAAACAAAA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ZV0gPT0gS0kAZmFjZWlqay5jAF9mYWNlSWprUGVudFRvQ2VsbEJvdW5kYXJ5AGFkamFjZW50RmFjZURpcltjZW50ZXJJSksuZmFjZV1bZmFjZTJdID09IEtJAF9mYWNlSWprVG9DZWxsQm91bmRhcnkAaDNJbmRleC5jAGNvbXBhY3RDZWxscwBsYXRMbmdUb0NlbGwAY2VsbFRvQ2hpbGRQb3MAdmFsaWRhdGVDaGlsZFBvcwBsYXRMbmcuYwBjZWxsQXJlYVJhZHMyAHBvbHlnb24tPm5leHQgPT0gTlVMTABsaW5rZWRHZW8uYwBhZGROZXdMaW5rZWRQb2x5Z29uAG5leHQgIT0gTlVMTABsb29wICE9IE5VTEwAYWRkTmV3TGlua2VkTG9vcABwb2x5Z29uLT5maXJzdCA9PSBOVUxMAGFkZExpbmtlZExvb3AAY29vcmQgIT0gTlVMTABhZGRMaW5rZWRDb29yZABsb29wLT5maXJzdCA9PSBOVUxMAGlubmVyTG9vcHMgIT0gTlVMTABub3JtYWxpemVNdWx0aVBvbHlnb24AYmJveGVzICE9IE5VTEwAY2FuZGlkYXRlcyAhPSBOVUxMAGZpbmRQb2x5Z29uRm9ySG9sZQBjYW5kaWRhdGVCQm94ZXMgIT0gTlVMTAByZXZEaXIgIT0gSU5WQUxJRF9ESUdJVABsb2NhbGlqLmMAY2VsbFRvTG9jYWxJamsAYmFzZUNlbGwgIT0gb3JpZ2luQmFzZUNlbGwAIShvcmlnaW5PblBlbnQgJiYgaW5kZXhPblBlbnQpAGJhc2VDZWxsID09IG9yaWdpbkJhc2VDZWxsAGJhc2VDZWxsICE9IElOVkFMSURfQkFTRV9DRUxMAGxvY2FsSWprVG9DZWxsACFfaXNCYXNlQ2VsbFBlbnRhZ29uKGJhc2VDZWxsKQBiYXNlQ2VsbFJvdGF0aW9ucyA+PSAwAGdyaWRQYXRoQ2VsbHMAcG9seWZpbGwuYwBpdGVyU3RlcFBvbHlnb25Db21wYWN0ADAAdmVydGV4LmMAdmVydGV4Um90YXRpb25zAGNlbGxUb1ZlcnRleABncmFwaC0+YnVja2V0cyAhPSBOVUxMAHZlcnRleEdyYXBoLmMAaW5pdFZlcnRleEdyYXBoAG5vZGUgIT0gTlVMTABhZGRWZXJ0ZXhOb2Rl";var vc=28640;function _c(W,$,cA,AA){Ot("Assertion failed: "+j(W)+", at: "+[$?j($):"unknown filename",cA,AA?j(AA):"unknown function"])}function Xi(){return X.length}function Ec(W,$,cA){J.set(J.subarray($,$+cA),W)}function bc(W){return A.___errno_location&&(dA[A.___errno_location()>>2]=W),W}function Mc(W){Ot("OOM")}function Cc(W){try{var $=new ArrayBuffer(W);return $.byteLength!=W?void 0:(new Int8Array($).set(X),xc($),Ae($),1)}catch{}}function Sc(W){var $=Xi(),cA=16777216,AA=2147483648-cA;if(W>AA)return!1;for(var n=16777216,E=Math.max($,n);E<W;)E<=536870912?E=k(2*E,cA):E=Math.min(k((3*E+2147483648)/4,cA),AA);var kA=Cc(E);return!!kA}var Ic=typeof atob=="function"?atob:function(W){var $="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",cA="",AA,n,E,kA,WA,ae,NA,FA=0;W=W.replace(/[^A-Za-z0-9\+\/\=]/g,"");do kA=$.indexOf(W.charAt(FA++)),WA=$.indexOf(W.charAt(FA++)),ae=$.indexOf(W.charAt(FA++)),NA=$.indexOf(W.charAt(FA++)),AA=kA<<2|WA>>4,n=(WA&15)<<4|ae>>2,E=(ae&3)<<6|NA,cA=cA+String.fromCharCode(AA),ae!==64&&(cA=cA+String.fromCharCode(n)),NA!==64&&(cA=cA+String.fromCharCode(E));while(FA<W.length);return cA};function Bc(W){try{for(var $=Ic(W),cA=new Uint8Array($.length),AA=0;AA<$.length;++AA)cA[AA]=$.charCodeAt(AA);return cA}catch{throw new Error("Converting base64 string to bytes failed.")}}function Vn(W){if(Zi(W))return Bc(W.slice(Un.length))}var Lc={Math,Int8Array,Int32Array,Uint8Array,Float32Array,Float64Array},Pc={b:_,c:S,d:_c,e:bc,f:Xi,g:Ec,h:Sc,i:Mc,o:vc,p:QA},rA=(function(W,$,cA){"almost asm";var AA=new W.Int8Array(cA),n=new W.Int32Array(cA);new W.Uint8Array(cA),new W.Float32Array(cA);var E=new W.Float64Array(cA),kA=$.o|0,WA=$.p|0,ae=W.Math.floor,NA=W.Math.abs,FA=W.Math.sqrt,at=W.Math.pow,GA=W.Math.cos,RA=W.Math.sin,Re=W.Math.tan,xr=W.Math.acos,Dc=W.Math.asin,qn=W.Math.atan,De=W.Math.atan2,kt=W.Math.ceil,je=W.Math.imul,Hn=W.Math.min,Oc=W.Math.max,et=W.Math.clz32,IA=$.b,C=$.c,bA=$.d,es=$.e,kc=$.f,Fc=$.g,Uc=$.h,Qc=$.i,b=28656;function Vc(r){return AA=new Int8Array(r),n=new Int32Array(r),E=new Float64Array(r),cA=r,!0}function zc(r){r=r|0;var t=0;return t=b,b=b+r|0,b=b+15&-16,t|0}function Gc(){return b|0}function qc(r){r=r|0,b=r}function Hc(r,t){r=r|0,b=r}function jc(r,t){r=r|0,t=t|0;var s=0,o=0,l=0;return(r|0)<0?(t=2,t|0):(r|0)>13780509?(t=kr(15,t)|0,t|0):(s=((r|0)<0)<<31>>31,l=ce(r|0,s|0,3,0)|0,o=C()|0,s=wA(r|0,s|0,1,0)|0,s=ce(l|0,o|0,s|0,C()|0)|0,s=wA(s|0,C()|0,1,0)|0,r=C()|0,n[t>>2]=s,n[t+4>>2]=r,t=0,t|0)}function ts(r,t,s,o){return r=r|0,t=t|0,s=s|0,o=o|0,rs(r,t,s,o,0)|0}function rs(r,t,s,o,l){r=r|0,t=t|0,s=s|0,o=o|0,l=l|0;var u=0,f=0,d=0,p=0,w=0;if(p=b,b=b+16|0,f=p,!(ns(r,t,s,o,l)|0))return o=0,b=p,o|0;do if((s|0)>=0){if((s|0)>13780509){if(u=kr(15,f)|0,u|0)break;d=f,f=n[d>>2]|0,d=n[d+4>>2]|0}else u=((s|0)<0)<<31>>31,w=ce(s|0,u|0,3,0)|0,d=C()|0,u=wA(s|0,u|0,1,0)|0,u=ce(w|0,d|0,u|0,C()|0)|0,u=wA(u|0,C()|0,1,0)|0,d=C()|0,n[f>>2]=u,n[f+4>>2]=d,f=u;if(ht(o|0,0,f<<3|0)|0,l|0){ht(l|0,0,f<<2|0)|0,u=We(r,t,s,o,l,f,d,0)|0;break}u=Me(f,4)|0,u?(w=We(r,t,s,o,u,f,d,0)|0,TA(u),u=w):u=13}else u=2;while(!1);return w=u,b=p,w|0}function ns(r,t,s,o,l){r=r|0,t=t|0,s=s|0,o=o|0,l=l|0;var u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0,B=0,L=0,D=0;if(D=b,b=b+16|0,B=D,L=D+8|0,I=B,n[I>>2]=r,n[I+4>>2]=t,(s|0)<0)return L=2,b=D,L|0;if(u=o,n[u>>2]=r,n[u+4>>2]=t,u=(l|0)!=0,u&&(n[l>>2]=0),JA(r,t)|0)return L=9,b=D,L|0;n[L>>2]=0;A:do if((s|0)>=1)if(u)for(T=1,w=0,M=0,I=1,u=r;;){if(!(w|M)){if(u=le(u,t,4,L,B)|0,u|0)break A;if(t=B,u=n[t>>2]|0,t=n[t+4>>2]|0,JA(u,t)|0){u=9;break A}}if(u=le(u,t,n[26800+(M<<2)>>2]|0,L,B)|0,u|0)break A;if(t=B,u=n[t>>2]|0,t=n[t+4>>2]|0,r=o+(T<<3)|0,n[r>>2]=u,n[r+4>>2]=t,n[l+(T<<2)>>2]=I,r=w+1|0,f=(r|0)==(I|0),d=M+1|0,p=(d|0)==6,JA(u,t)|0){u=9;break A}if(I=I+(p&f&1)|0,(I|0)>(s|0)){u=0;break}else T=T+1|0,w=f?0:r,M=f?p?0:d:M}else for(T=1,w=0,M=0,I=1,u=r;;){if(!(w|M)){if(u=le(u,t,4,L,B)|0,u|0)break A;if(t=B,u=n[t>>2]|0,t=n[t+4>>2]|0,JA(u,t)|0){u=9;break A}}if(u=le(u,t,n[26800+(M<<2)>>2]|0,L,B)|0,u|0)break A;if(t=B,u=n[t>>2]|0,t=n[t+4>>2]|0,r=o+(T<<3)|0,n[r>>2]=u,n[r+4>>2]=t,r=w+1|0,f=(r|0)==(I|0),d=M+1|0,p=(d|0)==6,JA(u,t)|0){u=9;break A}if(I=I+(p&f&1)|0,(I|0)>(s|0)){u=0;break}else T=T+1|0,w=f?0:r,M=f?p?0:d:M}else u=0;while(!1);return L=u,b=D,L|0}function We(r,t,s,o,l,u,f,d){r=r|0,t=t|0,s=s|0,o=o|0,l=l|0,u=u|0,f=f|0,d=d|0;var p=0,w=0,T=0,M=0,I=0,B=0,L=0,D=0,F=0,q=0;if(D=b,b=b+16|0,B=D+8|0,L=D,p=Gt(r|0,t|0,u|0,f|0)|0,T=C()|0,M=o+(p<<3)|0,F=M,q=n[F>>2]|0,F=n[F+4>>2]|0,w=(q|0)==(r|0)&(F|0)==(t|0),!((q|0)==0&(F|0)==0|w))do p=wA(p|0,T|0,1,0)|0,p=zt(p|0,C()|0,u|0,f|0)|0,T=C()|0,M=o+(p<<3)|0,q=M,F=n[q>>2]|0,q=n[q+4>>2]|0,w=(F|0)==(r|0)&(q|0)==(t|0);while(!((F|0)==0&(q|0)==0|w));if(p=l+(p<<2)|0,w&&(n[p>>2]|0)<=(d|0)||(q=M,n[q>>2]=r,n[q+4>>2]=t,n[p>>2]=d,(d|0)>=(s|0)))return q=0,b=D,q|0;switch(w=d+1|0,n[B>>2]=0,p=le(r,t,2,B,L)|0,p|0){case 9:{I=9;break}case 0:{p=L,p=We(n[p>>2]|0,n[p+4>>2]|0,s,o,l,u,f,w)|0,p||(I=9);break}}A:do if((I|0)==9){switch(n[B>>2]=0,p=le(r,t,3,B,L)|0,p|0){case 9:break;case 0:{if(p=L,p=We(n[p>>2]|0,n[p+4>>2]|0,s,o,l,u,f,w)|0,p|0)break A;break}default:break A}switch(n[B>>2]=0,p=le(r,t,1,B,L)|0,p|0){case 9:break;case 0:{if(p=L,p=We(n[p>>2]|0,n[p+4>>2]|0,s,o,l,u,f,w)|0,p|0)break A;break}default:break A}switch(n[B>>2]=0,p=le(r,t,5,B,L)|0,p|0){case 9:break;case 0:{if(p=L,p=We(n[p>>2]|0,n[p+4>>2]|0,s,o,l,u,f,w)|0,p|0)break A;break}default:break A}switch(n[B>>2]=0,p=le(r,t,4,B,L)|0,p|0){case 9:break;case 0:{if(p=L,p=We(n[p>>2]|0,n[p+4>>2]|0,s,o,l,u,f,w)|0,p|0)break A;break}default:break A}switch(n[B>>2]=0,p=le(r,t,6,B,L)|0,p|0){case 9:break;case 0:{if(p=L,p=We(n[p>>2]|0,n[p+4>>2]|0,s,o,l,u,f,w)|0,p|0)break A;break}default:break A}return q=0,b=D,q|0}while(!1);return q=p,b=D,q|0}function le(r,t,s,o,l){r=r|0,t=t|0,s=s|0,o=o|0,l=l|0;var u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0,B=0,L=0;if(s>>>0>6)return l=1,l|0;if(M=(n[o>>2]|0)%6|0,n[o>>2]=M,(M|0)>0){u=0;do s=vt(s)|0,u=u+1|0;while((u|0)<(n[o>>2]|0))}if(M=K(r|0,t|0,45)|0,C()|0,T=M&127,T>>>0>121)return l=5,l|0;p=be(r,t)|0,u=K(r|0,t|0,52)|0,C()|0,u=u&15;A:do if(!u)w=8;else{for(;;){if(f=(15-u|0)*3|0,d=K(r|0,t|0,f|0)|0,C()|0,d=d&7,(d|0)==7){t=5;break}if(L=(Oe(u)|0)==0,u=u+-1|0,I=iA(7,0,f|0)|0,t=t&~(C()|0),B=iA(n[(L?432:16)+(d*28|0)+(s<<2)>>2]|0,0,f|0)|0,f=C()|0,s=n[(L?640:224)+(d*28|0)+(s<<2)>>2]|0,r=B|r&~I,t=f|t,!s){s=0;break A}if(!u){w=8;break A}}return t|0}while(!1);(w|0)==8&&(L=n[848+(T*28|0)+(s<<2)>>2]|0,B=iA(L|0,0,45)|0,r=B|r,t=C()|0|t&-1040385,s=n[4272+(T*28|0)+(s<<2)>>2]|0,(L&127|0)==127&&(L=iA(n[848+(T*28|0)+20>>2]|0,0,45)|0,t=C()|0|t&-1040385,s=n[4272+(T*28|0)+20>>2]|0,r=_t(L|r,t)|0,t=C()|0,n[o>>2]=(n[o>>2]|0)+1)),d=K(r|0,t|0,45)|0,C()|0,d=d&127;A:do if(ee(d)|0){e:do if((be(r,t)|0)==1){if((T|0)!=(d|0))if(as(d,n[7696+(T*28|0)>>2]|0)|0){r=s0(r,t)|0,f=1,t=C()|0;break}else bA(27795,26864,533,26872);switch(p|0){case 3:{r=_t(r,t)|0,t=C()|0,n[o>>2]=(n[o>>2]|0)+1,f=0;break e}case 5:{r=s0(r,t)|0,t=C()|0,n[o>>2]=(n[o>>2]|0)+5,f=0;break e}case 0:return L=9,L|0;default:return L=1,L|0}}else f=0;while(!1);if((s|0)>0){u=0;do r=i0(r,t)|0,t=C()|0,u=u+1|0;while((u|0)!=(s|0))}if((T|0)!=(d|0)){if(!(Wn(d)|0)){if((f|0)!=0|(be(r,t)|0)!=5)break;n[o>>2]=(n[o>>2]|0)+1;break}switch(M&127){case 8:case 118:break A}(be(r,t)|0)!=3&&(n[o>>2]=(n[o>>2]|0)+1)}}else if((s|0)>0){u=0;do r=_t(r,t)|0,t=C()|0,u=u+1|0;while((u|0)!=(s|0))}while(!1);return n[o>>2]=((n[o>>2]|0)+s|0)%6|0,L=l,n[L>>2]=r,n[L+4>>2]=t,L=0,L|0}function Wc(r,t,s,o){return r=r|0,t=t|0,s=s|0,o=o|0,is(r,t,s,o)|0?(ht(o|0,0,s*48|0)|0,o=Yc(r,t,s,o)|0,o|0):(o=0,o|0)}function is(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0,B=0,L=0;if(L=b,b=b+16|0,I=L,B=L+8|0,M=I,n[M>>2]=r,n[M+4>>2]=t,(s|0)<0)return B=2,b=L,B|0;if(!s)return B=o,n[B>>2]=r,n[B+4>>2]=t,B=0,b=L,B|0;n[B>>2]=0;A:do if(JA(r,t)|0)r=9;else{l=0,M=r;do{if(r=le(M,t,4,B,I)|0,r|0)break A;if(t=I,M=n[t>>2]|0,t=n[t+4>>2]|0,l=l+1|0,JA(M,t)|0){r=9;break A}}while((l|0)<(s|0));T=o,n[T>>2]=M,n[T+4>>2]=t,T=s+-1|0,w=0,r=1;do{if(l=26800+(w<<2)|0,(w|0)==5)for(f=n[l>>2]|0,u=0,l=r;;){if(r=I,r=le(n[r>>2]|0,n[r+4>>2]|0,f,B,I)|0,r|0)break A;if((u|0)!=(T|0))if(p=I,d=n[p>>2]|0,p=n[p+4>>2]|0,r=o+(l<<3)|0,n[r>>2]=d,n[r+4>>2]=p,!(JA(d,p)|0))r=l+1|0;else{r=9;break A}else r=l;if(u=u+1|0,(u|0)>=(s|0))break;l=r}else for(f=I,p=n[l>>2]|0,d=0,l=r,u=n[f>>2]|0,f=n[f+4>>2]|0;;){if(r=le(u,f,p,B,I)|0,r|0)break A;if(f=I,u=n[f>>2]|0,f=n[f+4>>2]|0,r=o+(l<<3)|0,n[r>>2]=u,n[r+4>>2]=f,r=l+1|0,JA(u,f)|0){r=9;break A}if(d=d+1|0,(d|0)>=(s|0))break;l=r}w=w+1|0}while(w>>>0<6);r=I,r=(M|0)==(n[r>>2]|0)&&(t|0)==(n[r+4>>2]|0)?0:9}while(!1);return B=r,b=L,B|0}function Yc(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0;if(M=b,b=b+16|0,f=M,!s)return n[o>>2]=r,n[o+4>>2]=t,o=0,b=M,o|0;do if((s|0)>=0){if((s|0)>13780509){if(l=kr(15,f)|0,l|0)break;u=f,l=n[u>>2]|0,u=n[u+4>>2]|0}else l=((s|0)<0)<<31>>31,T=ce(s|0,l|0,3,0)|0,u=C()|0,l=wA(s|0,l|0,1,0)|0,l=ce(T|0,u|0,l|0,C()|0)|0,l=wA(l|0,C()|0,1,0)|0,u=C()|0,T=f,n[T>>2]=l,n[T+4>>2]=u;if(w=Me(l,8)|0,!w)l=13;else{if(T=Me(l,4)|0,!T){TA(w),l=13;break}if(l=We(r,t,s,w,T,l,u,0)|0,l|0){TA(w),TA(T);break}if(t=n[f>>2]|0,f=n[f+4>>2]|0,(f|0)>0|(f|0)==0&t>>>0>0){l=0,d=0,p=0;do r=w+(d<<3)|0,u=n[r>>2]|0,r=n[r+4>>2]|0,!((u|0)==0&(r|0)==0)&&(n[T+(d<<2)>>2]|0)==(s|0)&&(I=o+(l<<3)|0,n[I>>2]=u,n[I+4>>2]=r,l=l+1|0),d=wA(d|0,p|0,1,0)|0,p=C()|0;while((p|0)<(f|0)|(p|0)==(f|0)&d>>>0<t>>>0)}TA(w),TA(T),l=0}}else l=2;while(!1);return I=l,b=M,I|0}function jn(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0,d=0,p=0,w=0;for(d=b,b=b+16|0,u=d,f=d+8|0,l=(JA(r,t)|0)==0,l=l?1:2;;){if(n[f>>2]=0,w=(le(r,t,l,f,u)|0)==0,p=u,w&((n[p>>2]|0)==(s|0)?(n[p+4>>2]|0)==(o|0):0)){r=4;break}if(l=l+1|0,l>>>0>=7){l=7,r=4;break}}return(r|0)==4?(b=d,l|0):0}function Zc(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0,d=0,p=0,w=0;if(d=b,b=b+48|0,l=d+16|0,u=d+8|0,f=d,s=mr(s)|0,s|0)return f=s,b=d,f|0;if(w=r,p=n[w+4>>2]|0,s=u,n[s>>2]=n[w>>2],n[s+4>>2]=p,Rs(u,l),s=fs(l,t,f)|0,!s){if(t=n[u>>2]|0,u=n[r+8>>2]|0,(u|0)>0){l=n[r+12>>2]|0,s=0;do t=(n[l+(s<<3)>>2]|0)+t|0,s=s+1|0;while((s|0)<(u|0))}s=f,l=n[s>>2]|0,s=n[s+4>>2]|0,u=((t|0)<0)<<31>>31,(s|0)<(u|0)|(s|0)==(u|0)&l>>>0<t>>>0?(s=f,n[s>>2]=t,n[s+4>>2]=u,s=u):t=l,p=wA(t|0,s|0,12,0)|0,w=C()|0,s=f,n[s>>2]=p,n[s+4>>2]=w,s=o,n[s>>2]=p,n[s+4>>2]=w,s=0}return w=s,b=d,w|0}function ss(r,t,s,o,l,u,f){r=r|0,t=t|0,s=s|0,o=o|0,l=l|0,u=u|0,f=f|0;var d=0,p=0,w=0,T=0,M=0,I=0,B=0,L=0,D=0,F=0,q=0,V=0,Q=0,O=0,oA=0,gA=0,hA=0,SA=0,BA=0,DA=0,EA=0,pA=0,sA=0,xA=0,YA=0,PA=0,ZA=0,ve=0,Ys=0;if(YA=b,b=b+64|0,EA=YA+48|0,pA=YA+32|0,sA=YA+24|0,oA=YA+8|0,gA=YA,p=n[r>>2]|0,(p|0)<=0)return xA=0,b=YA,xA|0;for(hA=r+4|0,SA=EA+8|0,BA=pA+8|0,DA=oA+8|0,d=0,Q=0;;){w=n[hA>>2]|0,V=w+(Q<<4)|0,n[EA>>2]=n[V>>2],n[EA+4>>2]=n[V+4>>2],n[EA+8>>2]=n[V+8>>2],n[EA+12>>2]=n[V+12>>2],(Q|0)==(p+-1|0)?(n[pA>>2]=n[w>>2],n[pA+4>>2]=n[w+4>>2],n[pA+8>>2]=n[w+8>>2],n[pA+12>>2]=n[w+12>>2]):(V=w+(Q+1<<4)|0,n[pA>>2]=n[V>>2],n[pA+4>>2]=n[V+4>>2],n[pA+8>>2]=n[V+8>>2],n[pA+12>>2]=n[V+12>>2]),p=af(EA,pA,o,sA)|0;A:do if(p)w=0,d=p;else if(p=sA,w=n[p>>2]|0,p=n[p+4>>2]|0,(p|0)>0|(p|0)==0&w>>>0>0){q=0,V=0;e:for(;;){if(ZA=1/(+(w>>>0)+4294967296*+(p|0)),Ys=+E[EA>>3],p=ue(w|0,p|0,q|0,V|0)|0,ve=+(p>>>0)+4294967296*+(C()|0),PA=+(q>>>0)+4294967296*+(V|0),E[oA>>3]=ZA*(Ys*ve)+ZA*(+E[pA>>3]*PA),E[DA>>3]=ZA*(+E[SA>>3]*ve)+ZA*(+E[BA>>3]*PA),p=o0(oA,o,gA)|0,p|0){d=p;break}F=gA,D=n[F>>2]|0,F=n[F+4>>2]|0,I=Gt(D|0,F|0,t|0,s|0)|0,T=C()|0,p=f+(I<<3)|0,M=p,w=n[M>>2]|0,M=n[M+4>>2]|0;t:do if((w|0)==0&(M|0)==0)O=p,xA=16;else for(B=0,L=0;;){if((B|0)>(s|0)|(B|0)==(s|0)&L>>>0>t>>>0){d=1;break e}if((w|0)==(D|0)&(M|0)==(F|0))break t;if(p=wA(I|0,T|0,1,0)|0,I=zt(p|0,C()|0,t|0,s|0)|0,T=C()|0,L=wA(L|0,B|0,1,0)|0,B=C()|0,p=f+(I<<3)|0,M=p,w=n[M>>2]|0,M=n[M+4>>2]|0,(w|0)==0&(M|0)==0){O=p,xA=16;break}}while(!1);if((xA|0)==16&&(xA=0,!((D|0)==0&(F|0)==0))&&(L=O,n[L>>2]=D,n[L+4>>2]=F,L=u+(n[l>>2]<<3)|0,n[L>>2]=D,n[L+4>>2]=F,L=l,L=wA(n[L>>2]|0,n[L+4>>2]|0,1,0)|0,D=C()|0,F=l,n[F>>2]=L,n[F+4>>2]=D),q=wA(q|0,V|0,1,0)|0,V=C()|0,p=sA,w=n[p>>2]|0,p=n[p+4>>2]|0,!((p|0)>(V|0)|(p|0)==(V|0)&w>>>0>q>>>0)){w=1;break A}}w=0}else w=1;while(!1);if(Q=Q+1|0,!w){xA=21;break}if(p=n[r>>2]|0,(Q|0)>=(p|0)){d=0,xA=21;break}}return(xA|0)==21?(b=YA,d|0):0}function Xc(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0,B=0,L=0,D=0,F=0,q=0,V=0,Q=0,O=0,oA=0,gA=0,hA=0,SA=0,BA=0,DA=0,EA=0,pA=0,sA=0,xA=0,YA=0,PA=0,ZA=0,ve=0;if(ve=b,b=b+112|0,xA=ve+80|0,p=ve+72|0,YA=ve,PA=ve+56|0,l=mr(s)|0,l|0)return ZA=l,b=ve,ZA|0;if(w=r+8|0,ZA=Ye((n[w>>2]<<5)+32|0)|0,!ZA)return ZA=13,b=ve,ZA|0;if(d0(r,ZA),l=mr(s)|0,!l){if(pA=r,sA=n[pA+4>>2]|0,l=p,n[l>>2]=n[pA>>2],n[l+4>>2]=sA,Rs(p,xA),l=fs(xA,t,YA)|0,l)pA=0,sA=0;else{if(l=n[p>>2]|0,u=n[w>>2]|0,(u|0)>0){f=n[r+12>>2]|0,s=0;do l=(n[f+(s<<3)>>2]|0)+l|0,s=s+1|0;while((s|0)!=(u|0));s=l}else s=l;l=YA,u=n[l>>2]|0,l=n[l+4>>2]|0,f=((s|0)<0)<<31>>31,(l|0)<(f|0)|(l|0)==(f|0)&u>>>0<s>>>0?(l=YA,n[l>>2]=s,n[l+4>>2]=f,l=f):s=u,pA=wA(s|0,l|0,12,0)|0,sA=C()|0,l=YA,n[l>>2]=pA,n[l+4>>2]=sA,l=0}if(!l){if(s=Me(pA,8)|0,!s)return TA(ZA),ZA=13,b=ve,ZA|0;if(d=Me(pA,8)|0,!d)return TA(ZA),TA(s),ZA=13,b=ve,ZA|0;DA=xA,n[DA>>2]=0,n[DA+4>>2]=0,DA=r,EA=n[DA+4>>2]|0,l=p,n[l>>2]=n[DA>>2],n[l+4>>2]=EA,l=ss(p,pA,sA,t,xA,s,d)|0;A:do if(l)TA(s),TA(d),TA(ZA);else{e:do if((n[w>>2]|0)>0){for(f=r+12|0,u=0;l=ss((n[f>>2]|0)+(u<<3)|0,pA,sA,t,xA,s,d)|0,u=u+1|0,!(l|0);)if((u|0)>=(n[w>>2]|0))break e;TA(s),TA(d),TA(ZA);break A}while(!1);(sA|0)>0|(sA|0)==0&pA>>>0>0&&ht(d|0,0,pA<<3|0)|0,EA=xA,DA=n[EA+4>>2]|0;e:do if((DA|0)>0|(DA|0)==0&(n[EA>>2]|0)>>>0>0){hA=s,SA=d,BA=s,DA=d,EA=s,l=s,O=s,oA=d,gA=d,s=d;t:for(;;){for(F=0,q=0,V=0,Q=0,u=0,f=0;;){d=YA,p=d+56|0;do n[d>>2]=0,d=d+4|0;while((d|0)<(p|0));if(t=hA+(F<<3)|0,w=n[t>>2]|0,t=n[t+4>>2]|0,ns(w,t,1,YA,0)|0){d=YA,p=d+56|0;do n[d>>2]=0,d=d+4|0;while((d|0)<(p|0));d=Me(7,4)|0,d|0&&(We(w,t,1,YA,d,7,0,0)|0,TA(d))}for(D=0;;){L=YA+(D<<3)|0,B=n[L>>2]|0,L=n[L+4>>2]|0;r:do if((B|0)==0&(L|0)==0)d=u,p=f;else{if(T=Gt(B|0,L|0,pA|0,sA|0)|0,w=C()|0,d=o+(T<<3)|0,t=d,p=n[t>>2]|0,t=n[t+4>>2]|0,!((p|0)==0&(t|0)==0)){M=0,I=0;do{if((M|0)>(sA|0)|(M|0)==(sA|0)&I>>>0>pA>>>0)break t;if((p|0)==(B|0)&(t|0)==(L|0)){d=u,p=f;break r}d=wA(T|0,w|0,1,0)|0,T=zt(d|0,C()|0,pA|0,sA|0)|0,w=C()|0,I=wA(I|0,M|0,1,0)|0,M=C()|0,d=o+(T<<3)|0,t=d,p=n[t>>2]|0,t=n[t+4>>2]|0}while(!((p|0)==0&(t|0)==0))}if((B|0)==0&(L|0)==0){d=u,p=f;break}Et(B,L,PA)|0,g0(r,ZA,PA)|0&&(I=wA(u|0,f|0,1,0)|0,f=C()|0,M=d,n[M>>2]=B,n[M+4>>2]=L,u=SA+(u<<3)|0,n[u>>2]=B,n[u+4>>2]=L,u=I),d=u,p=f}while(!1);if(D=D+1|0,D>>>0>=7)break;u=d,f=p}if(F=wA(F|0,q|0,1,0)|0,q=C()|0,V=wA(V|0,Q|0,1,0)|0,Q=C()|0,f=xA,u=n[f>>2]|0,f=n[f+4>>2]|0,(Q|0)<(f|0)|(Q|0)==(f|0)&V>>>0<u>>>0)u=d,f=p;else break}if((f|0)>0|(f|0)==0&u>>>0>0){u=0,f=0;do Q=hA+(u<<3)|0,n[Q>>2]=0,n[Q+4>>2]=0,u=wA(u|0,f|0,1,0)|0,f=C()|0,Q=xA,V=n[Q+4>>2]|0;while((f|0)<(V|0)|((f|0)==(V|0)?u>>>0<(n[Q>>2]|0)>>>0:0))}if(Q=xA,n[Q>>2]=d,n[Q+4>>2]=p,(p|0)>0|(p|0)==0&d>>>0>0)D=s,F=gA,q=EA,V=oA,Q=SA,s=O,gA=l,oA=BA,O=D,l=F,EA=DA,DA=q,BA=V,SA=hA,hA=Q;else break e}TA(BA),TA(DA),TA(ZA),l=1;break A}else l=d;while(!1);TA(ZA),TA(s),TA(l),l=0}while(!1);return ZA=l,b=ve,ZA|0}}return TA(ZA),ZA=l,b=ve,ZA|0}function Jc(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0,f=0,d=0,p=0,w=0,T=0;if(T=b,b=b+176|0,p=T,(t|0)<1)return Qs(s,0,0),w=0,b=T,w|0;for(d=r,d=K(n[d>>2]|0,n[d+4>>2]|0,52)|0,C()|0,Qs(s,(t|0)>6?t:6,d&15),d=0;o=r+(d<<3)|0,o=Qt(n[o>>2]|0,n[o+4>>2]|0,p)|0,!(o|0);){if(o=n[p>>2]|0,(o|0)>0){f=0;do u=p+8+(f<<4)|0,f=f+1|0,o=p+8+(((f|0)%(o|0)|0)<<4)|0,l=Sh(s,o,u)|0,l?Gs(s,l)|0:Ch(s,u,o)|0,o=n[p>>2]|0;while((f|0)<(o|0))}if(d=d+1|0,(d|0)>=(t|0)){o=0,w=13;break}}return(w|0)==13?(b=T,o|0):(Vs(s),w=o,b=T,w|0)}function Kc(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0,f=0;if(u=b,b=b+32|0,o=u,l=u+16|0,r=Jc(r,t,l)|0,r|0)return s=r,b=u,s|0;if(n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,r=zs(l)|0,r|0)do{t=th(s)|0;do rh(t,r)|0,f=r+16|0,n[o>>2]=n[f>>2],n[o+4>>2]=n[f+4>>2],n[o+8>>2]=n[f+8>>2],n[o+12>>2]=n[f+12>>2],Gs(l,r)|0,r=Ih(l,o)|0;while((r|0)!=0);r=zs(l)|0}while((r|0)!=0);return Vs(l),r=nh(s)|0,r?(Ls(s),f=r,b=u,f|0):(f=0,b=u,f|0)}function ee(r){return r=r|0,r>>>0>121?(r=0,r|0):(r=n[7696+(r*28|0)+16>>2]|0,r|0)}function Wn(r){return r=r|0,(r|0)==4|(r|0)==117|0}function os(r){return r=r|0,n[11120+((n[r>>2]|0)*216|0)+((n[r+4>>2]|0)*72|0)+((n[r+8>>2]|0)*24|0)+(n[r+12>>2]<<3)>>2]|0}function $c(r){return r=r|0,n[11120+((n[r>>2]|0)*216|0)+((n[r+4>>2]|0)*72|0)+((n[r+8>>2]|0)*24|0)+(n[r+12>>2]<<3)+4>>2]|0}function Af(r,t){r=r|0,t=t|0,r=7696+(r*28|0)|0,n[t>>2]=n[r>>2],n[t+4>>2]=n[r+4>>2],n[t+8>>2]=n[r+8>>2],n[t+12>>2]=n[r+12>>2]}function ef(r,t){r=r|0,t=t|0;var s=0,o=0;if(t>>>0>20)return t=-1,t|0;do if((n[11120+(t*216|0)>>2]|0)!=(r|0))if((n[11120+(t*216|0)+8>>2]|0)!=(r|0))if((n[11120+(t*216|0)+16>>2]|0)!=(r|0))if((n[11120+(t*216|0)+24>>2]|0)!=(r|0))if((n[11120+(t*216|0)+32>>2]|0)!=(r|0))if((n[11120+(t*216|0)+40>>2]|0)!=(r|0))if((n[11120+(t*216|0)+48>>2]|0)!=(r|0))if((n[11120+(t*216|0)+56>>2]|0)!=(r|0))if((n[11120+(t*216|0)+64>>2]|0)!=(r|0))if((n[11120+(t*216|0)+72>>2]|0)!=(r|0))if((n[11120+(t*216|0)+80>>2]|0)!=(r|0))if((n[11120+(t*216|0)+88>>2]|0)!=(r|0))if((n[11120+(t*216|0)+96>>2]|0)!=(r|0))if((n[11120+(t*216|0)+104>>2]|0)!=(r|0))if((n[11120+(t*216|0)+112>>2]|0)!=(r|0))if((n[11120+(t*216|0)+120>>2]|0)!=(r|0))if((n[11120+(t*216|0)+128>>2]|0)!=(r|0))if((n[11120+(t*216|0)+136>>2]|0)==(r|0))r=2,s=1,o=2;else{if((n[11120+(t*216|0)+144>>2]|0)==(r|0)){r=0,s=2,o=0;break}if((n[11120+(t*216|0)+152>>2]|0)==(r|0)){r=0,s=2,o=1;break}if((n[11120+(t*216|0)+160>>2]|0)==(r|0)){r=0,s=2,o=2;break}if((n[11120+(t*216|0)+168>>2]|0)==(r|0)){r=1,s=2,o=0;break}if((n[11120+(t*216|0)+176>>2]|0)==(r|0)){r=1,s=2,o=1;break}if((n[11120+(t*216|0)+184>>2]|0)==(r|0)){r=1,s=2,o=2;break}if((n[11120+(t*216|0)+192>>2]|0)==(r|0)){r=2,s=2,o=0;break}if((n[11120+(t*216|0)+200>>2]|0)==(r|0)){r=2,s=2,o=1;break}if((n[11120+(t*216|0)+208>>2]|0)==(r|0)){r=2,s=2,o=2;break}else r=-1;return r|0}else r=2,s=1,o=1;else r=2,s=1,o=0;else r=1,s=1,o=2;else r=1,s=1,o=1;else r=1,s=1,o=0;else r=0,s=1,o=2;else r=0,s=1,o=1;else r=0,s=1,o=0;else r=2,s=0,o=2;else r=2,s=0,o=1;else r=2,s=0,o=0;else r=1,s=0,o=2;else r=1,s=0,o=1;else r=1,s=0,o=0;else r=0,s=0,o=2;else r=0,s=0,o=1;else r=0,s=0,o=0;while(!1);return t=n[11120+(t*216|0)+(s*72|0)+(r*24|0)+(o<<3)+4>>2]|0,t|0}function as(r,t){return r=r|0,t=t|0,(n[7696+(r*28|0)+20>>2]|0)==(t|0)?(t=1,t|0):(t=(n[7696+(r*28|0)+24>>2]|0)==(t|0),t|0)}function Yn(r,t){return r=r|0,t=t|0,n[848+(r*28|0)+(t<<2)>>2]|0}function Zn(r,t){return r=r|0,t=t|0,(n[848+(r*28|0)>>2]|0)==(t|0)?(t=0,t|0):(n[848+(r*28|0)+4>>2]|0)==(t|0)?(t=1,t|0):(n[848+(r*28|0)+8>>2]|0)==(t|0)?(t=2,t|0):(n[848+(r*28|0)+12>>2]|0)==(t|0)?(t=3,t|0):(n[848+(r*28|0)+16>>2]|0)==(t|0)?(t=4,t|0):(n[848+(r*28|0)+20>>2]|0)==(t|0)?(t=5,t|0):((n[848+(r*28|0)+24>>2]|0)==(t|0)?6:7)|0}function tf(){return 122}function rf(r){r=r|0;var t=0,s=0,o=0;t=0;do iA(t|0,0,45)|0,o=C()|0|134225919,s=r+(t<<3)|0,n[s>>2]=-1,n[s+4>>2]=o,t=t+1|0;while((t|0)!=122);return 0}function nf(r){r=r|0;var t=0,s=0,o=0;return o=+E[r+16>>3],s=+E[r+24>>3],t=o-s,+(o<s?t+6.283185307179586:t)}function ls(r){return r=r|0,+E[r+16>>3]<+E[r+24>>3]|0}function sf(r){return r=r|0,+(+E[r>>3]-+E[r+8>>3])}function Xn(r,t){r=r|0,t=t|0;var s=0,o=0,l=0;return s=+E[t>>3],!(s>=+E[r+8>>3])||!(s<=+E[r>>3])?(t=0,t|0):(o=+E[r+16>>3],s=+E[r+24>>3],l=+E[t+8>>3],t=l>=s,r=l<=o&1,o<s?t&&(r=1):t||(r=0),t=(r|0)!=0,t|0)}function Jn(r,t){r=r|0,t=t|0;var s=0,o=0,l=0,u=0,f=0,d=0,p=0,w=0,T=0;return+E[r>>3]<+E[t+8>>3]||+E[r+8>>3]>+E[t>>3]?(o=0,o|0):(u=+E[r+16>>3],s=r+24|0,T=+E[s>>3],f=u<T,o=t+16|0,w=+E[o>>3],l=t+24|0,p=+E[l>>3],d=w<p,t=T-w<p-u,r=f?d|t?1:2:0,t=d?f?1:t?2:1:0,u=+Be(u,r),u<+Be(+E[l>>3],t)||(T=+Be(+E[s>>3],r),T>+Be(+E[o>>3],t))?(d=0,d|0):(d=1,d|0))}function of(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0,d=0,p=0;u=+E[r+16>>3],p=+E[r+24>>3],r=u<p,d=+E[t+16>>3],f=+E[t+24>>3],l=d<f,t=p-d<f-u,n[s>>2]=r?l|t?1:2:0,n[o>>2]=l?r?1:t?2:1:0}function us(r,t){r=r|0,t=t|0;var s=0,o=0,l=0,u=0,f=0,d=0,p=0,w=0,T=0;return+E[r>>3]<+E[t>>3]||+E[r+8>>3]>+E[t+8>>3]?(o=0,o|0):(o=r+16|0,p=+E[o>>3],u=+E[r+24>>3],f=p<u,s=t+16|0,T=+E[s>>3],l=t+24|0,w=+E[l>>3],d=T<w,t=u-T<w-p,r=f?d|t?1:2:0,t=d?f?1:t?2:1:0,u=+Be(u,r),u<=+Be(+E[l>>3],t)?(T=+Be(+E[o>>3],r),d=T>=+Be(+E[s>>3],t),d|0):(d=0,d|0))}function cs(r,t){r=r|0,t=t|0;var s=0,o=0,l=0,u=0,f=0,d=0;l=b,b=b+176|0,o=l,n[o>>2]=4,d=+E[t>>3],E[o+8>>3]=d,u=+E[t+16>>3],E[o+16>>3]=u,E[o+24>>3]=d,d=+E[t+24>>3],E[o+32>>3]=d,f=+E[t+8>>3],E[o+40>>3]=f,E[o+48>>3]=d,E[o+56>>3]=f,E[o+64>>3]=u,t=o+72|0,s=t+96|0;do n[t>>2]=0,t=t+4|0;while((t|0)<(s|0));qt(r|0,o|0,168)|0,b=l}function fs(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0,B=0,L=0,D=0,F=0;L=b,b=b+288|0,T=L+264|0,M=L+96|0,w=L,d=w,p=d+96|0;do n[d>>2]=0,d=d+4|0;while((d|0)<(p|0));return t=l0(t,w)|0,t|0?(B=t,b=L,B|0):(p=w,w=n[p>>2]|0,p=n[p+4>>2]|0,Et(w,p,T)|0,Qt(w,p,M)|0,f=+gr(T,M+8|0),E[T>>3]=+E[r>>3],p=T+8|0,E[p>>3]=+E[r+16>>3],E[M>>3]=+E[r+8>>3],w=M+8|0,E[w>>3]=+E[r+24>>3],l=+gr(T,M),F=+E[p>>3]-+E[w>>3],u=+NA(+F),D=+E[T>>3]-+E[M>>3],o=+NA(+D),!(F==0|D==0)&&(F=+js(+u,+o),F=+kt(+(l*l/+Qr(+(F/+Qr(+u,+o)),3)/(f*(f*2.59807621135)*.8))),E[kA>>3]=F,I=~~F>>>0,B=+NA(F)>=1?F>0?~~+Hn(+ae(F/4294967296),4294967295)>>>0:~~+kt((F-+(~~F>>>0))/4294967296)>>>0:0,(n[kA+4>>2]&2146435072|0)!=2146435072)?(M=(I|0)==0&(B|0)==0,t=s,n[t>>2]=M?1:I,n[t+4>>2]=M?0:B,t=0):t=1,B=t,b=L,B|0)}function af(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0,d=0,p=0,w=0,T=0;w=b,b=b+288|0,f=w+264|0,d=w+96|0,p=w,l=p,u=l+96|0;do n[l>>2]=0,l=l+4|0;while((l|0)<(u|0));return s=l0(s,p)|0,s|0?(o=s,b=w,o|0):(s=p,l=n[s>>2]|0,s=n[s+4>>2]|0,Et(l,s,f)|0,Qt(l,s,d)|0,T=+gr(f,d+8|0),T=+kt(+(+gr(r,t)/(T*2))),E[kA>>3]=T,s=~~T>>>0,l=+NA(T)>=1?T>0?~~+Hn(+ae(T/4294967296),4294967295)>>>0:~~+kt((T-+(~~T>>>0))/4294967296)>>>0:0,(n[kA+4>>2]&2146435072|0)==2146435072?(o=1,b=w,o|0):(p=(s|0)==0&(l|0)==0,n[o>>2]=p?1:s,n[o+4>>2]=p?0:l,o=0,b=w,o|0))}function lf(r,t){r=r|0,t=+t;var s=0,o=0,l=0,u=0,f=0,d=0,p=0,w=0,T=0;u=r+16|0,f=+E[u>>3],s=r+24|0,l=+E[s>>3],o=f-l,o=f<l?o+6.283185307179586:o,w=+E[r>>3],d=r+8|0,p=+E[d>>3],T=w-p,o=(o*t-o)*.5,t=(T*t-T)*.5,w=w+t,E[r>>3]=w>1.5707963267948966?1.5707963267948966:w,t=p-t,E[d>>3]=t<-1.5707963267948966?-1.5707963267948966:t,t=f+o,t=t>3.141592653589793?t+-6.283185307179586:t,E[u>>3]=t<-3.141592653589793?t+6.283185307179586:t,t=l-o,t=t>3.141592653589793?t+-6.283185307179586:t,E[s>>3]=t<-3.141592653589793?t+6.283185307179586:t}function uf(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0,n[r>>2]=t,n[r+4>>2]=s,n[r+8>>2]=o}function cf(r,t){r=r|0,t=t|0;var s=0,o=0,l=0,u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0;M=t+8|0,n[M>>2]=0,p=+E[r>>3],f=+NA(+p),w=+E[r+8>>3],d=+NA(+w)*1.1547005383792515,f=f+d*.5,s=~~f,r=~~d,f=f-+(s|0),d=d-+(r|0);do if(f<.5)if(f<.3333333333333333)if(n[t>>2]=s,d<(f+1)*.5){n[t+4>>2]=r;break}else{r=r+1|0,n[t+4>>2]=r;break}else if(I=1-f,r=(!(d<I)&1)+r|0,n[t+4>>2]=r,I<=d&d<f*2){s=s+1|0,n[t>>2]=s;break}else{n[t>>2]=s;break}else{if(!(f<.6666666666666666))if(s=s+1|0,n[t>>2]=s,d<f*.5){n[t+4>>2]=r;break}else{r=r+1|0,n[t+4>>2]=r;break}if(d<1-f){if(n[t+4>>2]=r,f*2+-1<d){n[t>>2]=s;break}}else r=r+1|0,n[t+4>>2]=r;s=s+1|0,n[t>>2]=s}while(!1);do if(p<0)if(r&1){T=(r+1|0)/2|0,T=ue(s|0,((s|0)<0)<<31>>31|0,T|0,((T|0)<0)<<31>>31|0)|0,s=~~(+(s|0)-((+(T>>>0)+4294967296*+(C()|0))*2+1)),n[t>>2]=s;break}else{T=(r|0)/2|0,T=ue(s|0,((s|0)<0)<<31>>31|0,T|0,((T|0)<0)<<31>>31|0)|0,s=~~(+(s|0)-(+(T>>>0)+4294967296*+(C()|0))*2),n[t>>2]=s;break}while(!1);T=t+4|0,w<0&&(s=s-((r<<1|1|0)/2|0)|0,n[t>>2]=s,r=0-r|0,n[T>>2]=r),o=r-s|0,(s|0)<0?(l=0-s|0,n[T>>2]=o,n[M>>2]=l,n[t>>2]=0,r=o,s=0):l=0,(r|0)<0&&(s=s-r|0,n[t>>2]=s,l=l-r|0,n[M>>2]=l,n[T>>2]=0,r=0),u=s-l|0,o=r-l|0,(l|0)<0&&(n[t>>2]=u,n[T>>2]=o,n[M>>2]=0,r=o,s=u,l=0),o=(r|0)<(s|0)?r:s,o=(l|0)<(o|0)?l:o,!((o|0)<=0)&&(n[t>>2]=s-o,n[T>>2]=r-o,n[M>>2]=l-o)}function pe(r){r=r|0;var t=0,s=0,o=0,l=0,u=0,f=0;t=n[r>>2]|0,f=r+4|0,s=n[f>>2]|0,(t|0)<0&&(s=s-t|0,n[f>>2]=s,u=r+8|0,n[u>>2]=(n[u>>2]|0)-t,n[r>>2]=0,t=0),(s|0)<0?(t=t-s|0,n[r>>2]=t,u=r+8|0,l=(n[u>>2]|0)-s|0,n[u>>2]=l,n[f>>2]=0,s=0):(l=r+8|0,u=l,l=n[l>>2]|0),(l|0)<0&&(t=t-l|0,n[r>>2]=t,s=s-l|0,n[f>>2]=s,n[u>>2]=0,l=0),o=(s|0)<(t|0)?s:t,o=(l|0)<(o|0)?l:o,!((o|0)<=0)&&(n[r>>2]=t-o,n[f>>2]=s-o,n[u>>2]=l-o)}function yt(r,t){r=r|0,t=t|0;var s=0,o=0;o=n[r+8>>2]|0,s=+((n[r+4>>2]|0)-o|0),E[t>>3]=+((n[r>>2]|0)-o|0)-s*.5,E[t+8>>3]=s*.8660254037844386}function Te(r,t,s){r=r|0,t=t|0,s=s|0,n[s>>2]=(n[t>>2]|0)+(n[r>>2]|0),n[s+4>>2]=(n[t+4>>2]|0)+(n[r+4>>2]|0),n[s+8>>2]=(n[t+8>>2]|0)+(n[r+8>>2]|0)}function Kn(r,t,s){r=r|0,t=t|0,s=s|0,n[s>>2]=(n[r>>2]|0)-(n[t>>2]|0),n[s+4>>2]=(n[r+4>>2]|0)-(n[t+4>>2]|0),n[s+8>>2]=(n[r+8>>2]|0)-(n[t+8>>2]|0)}function hs(r,t){r=r|0,t=t|0;var s=0,o=0;s=je(n[r>>2]|0,t)|0,n[r>>2]=s,s=r+4|0,o=je(n[s>>2]|0,t)|0,n[s>>2]=o,r=r+8|0,t=je(n[r>>2]|0,t)|0,n[r>>2]=t}function Nr(r){r=r|0;var t=0,s=0,o=0,l=0,u=0,f=0,d=0;f=n[r>>2]|0,d=(f|0)<0,o=(n[r+4>>2]|0)-(d?f:0)|0,u=(o|0)<0,l=(u?0-o|0:0)+((n[r+8>>2]|0)-(d?f:0))|0,s=(l|0)<0,r=s?0:l,t=(u?0:o)-(s?l:0)|0,l=(d?0:f)-(u?o:0)-(s?l:0)|0,s=(t|0)<(l|0)?t:l,s=(r|0)<(s|0)?r:s,o=(s|0)>0,r=r-(o?s:0)|0,t=t-(o?s:0)|0;A:do switch(l-(o?s:0)|0){case 0:switch(t|0){case 0:return d=(r|0)==0?0:(r|0)==1?1:7,d|0;case 1:return d=(r|0)==0?2:(r|0)==1?3:7,d|0;default:break A}case 1:switch(t|0){case 0:return d=(r|0)==0?4:(r|0)==1?5:7,d|0;case 1:{if(!r)r=6;else break A;return r|0}default:break A}}while(!1);return d=7,d|0}function ff(r){r=r|0;var t=0,s=0,o=0,l=0,u=0,f=0,d=0,p=0,w=0;if(p=r+8|0,f=n[p>>2]|0,d=(n[r>>2]|0)-f|0,w=r+4|0,f=(n[w>>2]|0)-f|0,d>>>0>715827881|f>>>0>715827881){if(o=(d|0)>0,l=2147483647-d|0,u=-2147483648-d|0,(o?(l|0)<(d|0):(u|0)>(d|0))||(s=d<<1,o?(2147483647-s|0)<(d|0):(-2147483648-s|0)>(d|0))||((f|0)>0?(2147483647-f|0)<(f|0):(-2147483648-f|0)>(f|0))||(t=d*3|0,s=f<<1,(o?(l|0)<(s|0):(u|0)>(s|0))||((d|0)>-1?(t|-2147483648|0)>=(f|0):(t^-2147483648|0)<(f|0))))return w=1,w|0}else s=f<<1,t=d*3|0;return o=ct(+(t-f|0)*.14285714285714285)|0,n[r>>2]=o,l=ct(+(s+d|0)*.14285714285714285)|0,n[w>>2]=l,n[p>>2]=0,s=(l|0)<(o|0),t=s?o:l,s=s?l:o,(s|0)<0&&(((s|0)==-2147483648||((t|0)>0?(2147483647-t|0)<(s|0):(-2147483648-t|0)>(s|0)))&&bA(27795,26892,354,26903),((t|0)>-1?(t|-2147483648|0)>=(s|0):(t^-2147483648|0)<(s|0))&&bA(27795,26892,354,26903)),t=l-o|0,(o|0)<0?(s=0-o|0,n[w>>2]=t,n[p>>2]=s,n[r>>2]=0,o=0):(t=l,s=0),(t|0)<0&&(o=o-t|0,n[r>>2]=o,s=s-t|0,n[p>>2]=s,n[w>>2]=0,t=0),u=o-s|0,l=t-s|0,(s|0)<0?(n[r>>2]=u,n[w>>2]=l,n[p>>2]=0,t=l,l=u,s=0):l=o,o=(t|0)<(l|0)?t:l,o=(s|0)<(o|0)?s:o,(o|0)<=0?(w=0,w|0):(n[r>>2]=l-o,n[w>>2]=t-o,n[p>>2]=s-o,w=0,w|0)}function hf(r){r=r|0;var t=0,s=0,o=0,l=0,u=0,f=0,d=0,p=0;if(f=r+8|0,l=n[f>>2]|0,u=(n[r>>2]|0)-l|0,d=r+4|0,l=(n[d>>2]|0)-l|0,u>>>0>715827881|l>>>0>715827881){if(s=(u|0)>0,(s?(2147483647-u|0)<(u|0):(-2147483648-u|0)>(u|0))||(t=u<<1,o=(l|0)>0,o?(2147483647-l|0)<(l|0):(-2147483648-l|0)>(l|0)))return d=1,d|0;if(p=l<<1,(o?(2147483647-p|0)<(l|0):(-2147483648-p|0)>(l|0))||(s?(2147483647-t|0)<(l|0):(-2147483648-t|0)>(l|0))||(s=l*3|0,(l|0)>-1?(s|-2147483648|0)>=(u|0):(s^-2147483648|0)<(u|0)))return p=1,p|0}else s=l*3|0,t=u<<1;return o=ct(+(t+l|0)*.14285714285714285)|0,n[r>>2]=o,l=ct(+(s-u|0)*.14285714285714285)|0,n[d>>2]=l,n[f>>2]=0,s=(l|0)<(o|0),t=s?o:l,s=s?l:o,(s|0)<0&&(((s|0)==-2147483648||((t|0)>0?(2147483647-t|0)<(s|0):(-2147483648-t|0)>(s|0)))&&bA(27795,26892,402,26917),((t|0)>-1?(t|-2147483648|0)>=(s|0):(t^-2147483648|0)<(s|0))&&bA(27795,26892,402,26917)),t=l-o|0,(o|0)<0?(s=0-o|0,n[d>>2]=t,n[f>>2]=s,n[r>>2]=0,o=0):(t=l,s=0),(t|0)<0&&(o=o-t|0,n[r>>2]=o,s=s-t|0,n[f>>2]=s,n[d>>2]=0,t=0),u=o-s|0,l=t-s|0,(s|0)<0?(n[r>>2]=u,n[d>>2]=l,n[f>>2]=0,t=l,l=u,s=0):l=o,o=(t|0)<(l|0)?t:l,o=(s|0)<(o|0)?s:o,(o|0)<=0?(p=0,p|0):(n[r>>2]=l-o,n[d>>2]=t-o,n[f>>2]=s-o,p=0,p|0)}function df(r){r=r|0;var t=0,s=0,o=0,l=0,u=0,f=0,d=0;f=r+8|0,s=n[f>>2]|0,t=(n[r>>2]|0)-s|0,d=r+4|0,s=(n[d>>2]|0)-s|0,o=ct(+((t*3|0)-s|0)*.14285714285714285)|0,n[r>>2]=o,t=ct(+((s<<1)+t|0)*.14285714285714285)|0,n[d>>2]=t,n[f>>2]=0,s=t-o|0,(o|0)<0?(u=0-o|0,n[d>>2]=s,n[f>>2]=u,n[r>>2]=0,t=s,o=0,s=u):s=0,(t|0)<0&&(o=o-t|0,n[r>>2]=o,s=s-t|0,n[f>>2]=s,n[d>>2]=0,t=0),u=o-s|0,l=t-s|0,(s|0)<0?(n[r>>2]=u,n[d>>2]=l,n[f>>2]=0,t=l,l=u,s=0):l=o,o=(t|0)<(l|0)?t:l,o=(s|0)<(o|0)?s:o,!((o|0)<=0)&&(n[r>>2]=l-o,n[d>>2]=t-o,n[f>>2]=s-o)}function ds(r){r=r|0;var t=0,s=0,o=0,l=0,u=0,f=0,d=0;f=r+8|0,s=n[f>>2]|0,t=(n[r>>2]|0)-s|0,d=r+4|0,s=(n[d>>2]|0)-s|0,o=ct(+((t<<1)+s|0)*.14285714285714285)|0,n[r>>2]=o,t=ct(+((s*3|0)-t|0)*.14285714285714285)|0,n[d>>2]=t,n[f>>2]=0,s=t-o|0,(o|0)<0?(u=0-o|0,n[d>>2]=s,n[f>>2]=u,n[r>>2]=0,t=s,o=0,s=u):s=0,(t|0)<0&&(o=o-t|0,n[r>>2]=o,s=s-t|0,n[f>>2]=s,n[d>>2]=0,t=0),u=o-s|0,l=t-s|0,(s|0)<0?(n[r>>2]=u,n[d>>2]=l,n[f>>2]=0,t=l,l=u,s=0):l=o,o=(t|0)<(l|0)?t:l,o=(s|0)<(o|0)?s:o,!((o|0)<=0)&&(n[r>>2]=l-o,n[d>>2]=t-o,n[f>>2]=s-o)}function Rr(r){r=r|0;var t=0,s=0,o=0,l=0,u=0,f=0,d=0;t=n[r>>2]|0,f=r+4|0,s=n[f>>2]|0,d=r+8|0,o=n[d>>2]|0,l=s+(t*3|0)|0,n[r>>2]=l,s=o+(s*3|0)|0,n[f>>2]=s,t=(o*3|0)+t|0,n[d>>2]=t,o=s-l|0,(l|0)<0?(t=t-l|0,n[f>>2]=o,n[d>>2]=t,n[r>>2]=0,s=o,o=0):o=l,(s|0)<0&&(o=o-s|0,n[r>>2]=o,t=t-s|0,n[d>>2]=t,n[f>>2]=0,s=0),u=o-t|0,l=s-t|0,(t|0)<0?(n[r>>2]=u,n[f>>2]=l,n[d>>2]=0,o=u,t=0):l=s,s=(l|0)<(o|0)?l:o,s=(t|0)<(s|0)?t:s,!((s|0)<=0)&&(n[r>>2]=o-s,n[f>>2]=l-s,n[d>>2]=t-s)}function Tt(r){r=r|0;var t=0,s=0,o=0,l=0,u=0,f=0,d=0;l=n[r>>2]|0,f=r+4|0,t=n[f>>2]|0,d=r+8|0,s=n[d>>2]|0,o=(t*3|0)+l|0,l=s+(l*3|0)|0,n[r>>2]=l,n[f>>2]=o,t=(s*3|0)+t|0,n[d>>2]=t,s=o-l|0,(l|0)<0?(t=t-l|0,n[f>>2]=s,n[d>>2]=t,n[r>>2]=0,l=0):s=o,(s|0)<0&&(l=l-s|0,n[r>>2]=l,t=t-s|0,n[d>>2]=t,n[f>>2]=0,s=0),u=l-t|0,o=s-t|0,(t|0)<0?(n[r>>2]=u,n[f>>2]=o,n[d>>2]=0,l=u,t=0):o=s,s=(o|0)<(l|0)?o:l,s=(t|0)<(s|0)?t:s,!((s|0)<=0)&&(n[r>>2]=l-s,n[f>>2]=o-s,n[d>>2]=t-s)}function gs(r,t){r=r|0,t=t|0;var s=0,o=0,l=0,u=0,f=0,d=0;(t+-1|0)>>>0>=6||(l=(n[15440+(t*12|0)>>2]|0)+(n[r>>2]|0)|0,n[r>>2]=l,d=r+4|0,o=(n[15440+(t*12|0)+4>>2]|0)+(n[d>>2]|0)|0,n[d>>2]=o,f=r+8|0,t=(n[15440+(t*12|0)+8>>2]|0)+(n[f>>2]|0)|0,n[f>>2]=t,s=o-l|0,(l|0)<0?(t=t-l|0,n[d>>2]=s,n[f>>2]=t,n[r>>2]=0,o=0):(s=o,o=l),(s|0)<0&&(o=o-s|0,n[r>>2]=o,t=t-s|0,n[f>>2]=t,n[d>>2]=0,s=0),u=o-t|0,l=s-t|0,(t|0)<0?(n[r>>2]=u,n[d>>2]=l,n[f>>2]=0,o=u,t=0):l=s,s=(l|0)<(o|0)?l:o,s=(t|0)<(s|0)?t:s,!((s|0)<=0)&&(n[r>>2]=o-s,n[d>>2]=l-s,n[f>>2]=t-s))}function ps(r){r=r|0;var t=0,s=0,o=0,l=0,u=0,f=0,d=0;l=n[r>>2]|0,f=r+4|0,t=n[f>>2]|0,d=r+8|0,s=n[d>>2]|0,o=t+l|0,l=s+l|0,n[r>>2]=l,n[f>>2]=o,t=s+t|0,n[d>>2]=t,s=o-l|0,(l|0)<0?(t=t-l|0,n[f>>2]=s,n[d>>2]=t,n[r>>2]=0,o=0):(s=o,o=l),(s|0)<0&&(o=o-s|0,n[r>>2]=o,t=t-s|0,n[d>>2]=t,n[f>>2]=0,s=0),u=o-t|0,l=s-t|0,(t|0)<0?(n[r>>2]=u,n[f>>2]=l,n[d>>2]=0,o=u,t=0):l=s,s=(l|0)<(o|0)?l:o,s=(t|0)<(s|0)?t:s,!((s|0)<=0)&&(n[r>>2]=o-s,n[f>>2]=l-s,n[d>>2]=t-s)}function Dr(r){r=r|0;var t=0,s=0,o=0,l=0,u=0,f=0,d=0;t=n[r>>2]|0,f=r+4|0,o=n[f>>2]|0,d=r+8|0,s=n[d>>2]|0,l=o+t|0,n[r>>2]=l,o=s+o|0,n[f>>2]=o,t=s+t|0,n[d>>2]=t,s=o-l|0,(l|0)<0?(t=t-l|0,n[f>>2]=s,n[d>>2]=t,n[r>>2]=0,o=0):(s=o,o=l),(s|0)<0&&(o=o-s|0,n[r>>2]=o,t=t-s|0,n[d>>2]=t,n[f>>2]=0,s=0),u=o-t|0,l=s-t|0,(t|0)<0?(n[r>>2]=u,n[f>>2]=l,n[d>>2]=0,o=u,t=0):l=s,s=(l|0)<(o|0)?l:o,s=(t|0)<(s|0)?t:s,!((s|0)<=0)&&(n[r>>2]=o-s,n[f>>2]=l-s,n[d>>2]=t-s)}function vt(r){switch(r=r|0,r|0){case 1:{r=5;break}case 5:{r=4;break}case 4:{r=6;break}case 6:{r=2;break}case 2:{r=3;break}case 3:{r=1;break}}return r|0}function lt(r){switch(r=r|0,r|0){case 1:{r=3;break}case 3:{r=2;break}case 2:{r=6;break}case 6:{r=4;break}case 4:{r=5;break}case 5:{r=1;break}}return r|0}function ms(r){r=r|0;var t=0,s=0,o=0,l=0,u=0,f=0,d=0;t=n[r>>2]|0,f=r+4|0,s=n[f>>2]|0,d=r+8|0,o=n[d>>2]|0,l=s+(t<<1)|0,n[r>>2]=l,s=o+(s<<1)|0,n[f>>2]=s,t=(o<<1)+t|0,n[d>>2]=t,o=s-l|0,(l|0)<0?(t=t-l|0,n[f>>2]=o,n[d>>2]=t,n[r>>2]=0,s=o,o=0):o=l,(s|0)<0&&(o=o-s|0,n[r>>2]=o,t=t-s|0,n[d>>2]=t,n[f>>2]=0,s=0),u=o-t|0,l=s-t|0,(t|0)<0?(n[r>>2]=u,n[f>>2]=l,n[d>>2]=0,o=u,t=0):l=s,s=(l|0)<(o|0)?l:o,s=(t|0)<(s|0)?t:s,!((s|0)<=0)&&(n[r>>2]=o-s,n[f>>2]=l-s,n[d>>2]=t-s)}function ws(r){r=r|0;var t=0,s=0,o=0,l=0,u=0,f=0,d=0;l=n[r>>2]|0,f=r+4|0,t=n[f>>2]|0,d=r+8|0,s=n[d>>2]|0,o=(t<<1)+l|0,l=s+(l<<1)|0,n[r>>2]=l,n[f>>2]=o,t=(s<<1)+t|0,n[d>>2]=t,s=o-l|0,(l|0)<0?(t=t-l|0,n[f>>2]=s,n[d>>2]=t,n[r>>2]=0,l=0):s=o,(s|0)<0&&(l=l-s|0,n[r>>2]=l,t=t-s|0,n[d>>2]=t,n[f>>2]=0,s=0),u=l-t|0,o=s-t|0,(t|0)<0?(n[r>>2]=u,n[f>>2]=o,n[d>>2]=0,l=u,t=0):o=s,s=(o|0)<(l|0)?o:l,s=(t|0)<(s|0)?t:s,!((s|0)<=0)&&(n[r>>2]=l-s,n[f>>2]=o-s,n[d>>2]=t-s)}function $n(r,t){r=r|0,t=t|0;var s=0,o=0,l=0,u=0,f=0,d=0;return f=(n[r>>2]|0)-(n[t>>2]|0)|0,d=(f|0)<0,o=(n[r+4>>2]|0)-(n[t+4>>2]|0)-(d?f:0)|0,u=(o|0)<0,l=(d?0-f|0:0)+(n[r+8>>2]|0)-(n[t+8>>2]|0)+(u?0-o|0:0)|0,r=(l|0)<0,t=r?0:l,s=(u?0:o)-(r?l:0)|0,l=(d?0:f)-(u?o:0)-(r?l:0)|0,r=(s|0)<(l|0)?s:l,r=(t|0)<(r|0)?t:r,o=(r|0)>0,t=t-(o?r:0)|0,s=s-(o?r:0)|0,r=l-(o?r:0)|0,r=(r|0)>-1?r:0-r|0,s=(s|0)>-1?s:0-s|0,t=(t|0)>-1?t:0-t|0,t=(s|0)>(t|0)?s:t,((r|0)>(t|0)?r:t)|0}function gf(r,t){r=r|0,t=t|0;var s=0;s=n[r+8>>2]|0,n[t>>2]=(n[r>>2]|0)-s,n[t+4>>2]=(n[r+4>>2]|0)-s}function pf(r,t){r=r|0,t=t|0;var s=0,o=0,l=0,u=0,f=0,d=0;return o=n[r>>2]|0,n[t>>2]=o,l=n[r+4>>2]|0,f=t+4|0,n[f>>2]=l,d=t+8|0,n[d>>2]=0,s=(l|0)<(o|0),r=s?o:l,s=s?l:o,(s|0)<0&&((s|0)==-2147483648||((r|0)>0?(2147483647-r|0)<(s|0):(-2147483648-r|0)>(s|0))||((r|0)>-1?(r|-2147483648|0)>=(s|0):(r^-2147483648|0)<(s|0)))?(t=1,t|0):(r=l-o|0,(o|0)<0?(s=0-o|0,n[f>>2]=r,n[d>>2]=s,n[t>>2]=0,o=0):(r=l,s=0),(r|0)<0&&(o=o-r|0,n[t>>2]=o,s=s-r|0,n[d>>2]=s,n[f>>2]=0,r=0),u=o-s|0,l=r-s|0,(s|0)<0?(n[t>>2]=u,n[f>>2]=l,n[d>>2]=0,r=l,l=u,s=0):l=o,o=(r|0)<(l|0)?r:l,o=(s|0)<(o|0)?s:o,(o|0)<=0?(t=0,t|0):(n[t>>2]=l-o,n[f>>2]=r-o,n[d>>2]=s-o,t=0,t|0))}function ys(r){r=r|0;var t=0,s=0,o=0,l=0;t=r+8|0,l=n[t>>2]|0,s=l-(n[r>>2]|0)|0,n[r>>2]=s,o=r+4|0,r=(n[o>>2]|0)-l|0,n[o>>2]=r,n[t>>2]=0-(r+s)}function mf(r){r=r|0;var t=0,s=0,o=0,l=0,u=0,f=0,d=0;s=n[r>>2]|0,t=0-s|0,n[r>>2]=t,f=r+8|0,n[f>>2]=0,d=r+4|0,o=n[d>>2]|0,l=o+s|0,(s|0)>0?(n[d>>2]=l,n[f>>2]=s,n[r>>2]=0,t=0,o=l):s=0,(o|0)<0?(u=t-o|0,n[r>>2]=u,s=s-o|0,n[f>>2]=s,n[d>>2]=0,l=u-s|0,t=0-s|0,(s|0)<0?(n[r>>2]=l,n[d>>2]=t,n[f>>2]=0,o=t,s=0):(o=0,l=u)):l=t,t=(o|0)<(l|0)?o:l,t=(s|0)<(t|0)?s:t,!((t|0)<=0)&&(n[r>>2]=l-t,n[d>>2]=o-t,n[f>>2]=s-t)}function wf(r,t,s,o,l){r=r|0,t=t|0,s=s|0,o=o|0,l=l|0;var u=0,f=0,d=0,p=0,w=0,T=0,M=0;if(M=b,b=b+64|0,T=M,d=M+56|0,!(!0&(t&2013265920|0)==134217728&(!0&(o&2013265920|0)==134217728)))return l=5,b=M,l|0;if((r|0)==(s|0)&(t|0)==(o|0))return n[l>>2]=0,l=0,b=M,l|0;if(f=K(r|0,t|0,52)|0,C()|0,f=f&15,w=K(s|0,o|0,52)|0,C()|0,(f|0)!=(w&15|0))return l=12,b=M,l|0;if(u=f+-1|0,f>>>0>1){n0(r,t,u,T)|0,n0(s,o,u,d)|0,w=T,p=n[w>>2]|0,w=n[w+4>>2]|0;A:do if((p|0)==(n[d>>2]|0)&&(w|0)==(n[d+4>>2]|0)){f=(f^15)*3|0,u=K(r|0,t|0,f|0)|0,C()|0,u=u&7,f=K(s|0,o|0,f|0)|0,C()|0,f=f&7;do if((u|0)==0|(f|0)==0)n[l>>2]=1,u=0;else if((u|0)==7)u=5;else{if((u|0)==1|(f|0)==1&&JA(p,w)|0){u=5;break}if((n[15536+(u<<2)>>2]|0)!=(f|0)&&(n[15568+(u<<2)>>2]|0)!=(f|0))break A;n[l>>2]=1,u=0}while(!1);return l=u,b=M,l|0}while(!1)}u=T,f=u+56|0;do n[u>>2]=0,u=u+4|0;while((u|0)<(f|0));return ts(r,t,1,T)|0,t=T,!((n[t>>2]|0)==(s|0)&&(n[t+4>>2]|0)==(o|0))&&(t=T+8|0,!((n[t>>2]|0)==(s|0)&&(n[t+4>>2]|0)==(o|0)))&&(t=T+16|0,!((n[t>>2]|0)==(s|0)&&(n[t+4>>2]|0)==(o|0)))&&(t=T+24|0,!((n[t>>2]|0)==(s|0)&&(n[t+4>>2]|0)==(o|0)))&&(t=T+32|0,!((n[t>>2]|0)==(s|0)&&(n[t+4>>2]|0)==(o|0)))&&(t=T+40|0,!((n[t>>2]|0)==(s|0)&&(n[t+4>>2]|0)==(o|0)))?(u=T+48|0,u=((n[u>>2]|0)==(s|0)?(n[u+4>>2]|0)==(o|0):0)&1):u=1,n[l>>2]=u,l=0,b=M,l|0}function yf(r,t,s,o,l){return r=r|0,t=t|0,s=s|0,o=o|0,l=l|0,s=jn(r,t,s,o)|0,(s|0)==7?(l=11,l|0):(o=iA(s|0,0,56)|0,t=t&-2130706433|(C()|0)|268435456,n[l>>2]=r|o,n[l+4>>2]=t,l=0,l|0)}function Tf(r,t,s){return r=r|0,t=t|0,s=s|0,!0&(t&2013265920|0)==268435456?(n[s>>2]=r,n[s+4>>2]=t&-2130706433|134217728,s=0,s|0):(s=6,s|0)}function vf(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0;return l=b,b=b+16|0,o=l,n[o>>2]=0,!0&(t&2013265920|0)==268435456?(u=K(r|0,t|0,56)|0,C()|0,o=le(r,t&-2130706433|134217728,u&7,o,s)|0,b=l,o|0):(o=6,b=l,o|0)}function Ts(r,t){r=r|0,t=t|0;var s=0;switch(s=K(r|0,t|0,56)|0,C()|0,s&7){case 0:case 7:return s=0,s|0}return s=t&-2130706433|134217728,!(!0&(t&2013265920|0)==268435456)||!0&(t&117440512|0)==16777216&(JA(r,s)|0)!=0?(s=0,s|0):(s=t0(r,s)|0,s|0)}function _f(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0,f=0;return l=b,b=b+16|0,o=l,!0&(t&2013265920|0)==268435456?(u=t&-2130706433|134217728,f=s,n[f>>2]=r,n[f+4>>2]=u,n[o>>2]=0,t=K(r|0,t|0,56)|0,C()|0,o=le(r,u,t&7,o,s+8|0)|0,b=l,o|0):(o=6,b=l,o|0)}function Ef(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0;return l=(JA(r,t)|0)==0,t=t&-2130706433,o=s,n[o>>2]=l?r:0,n[o+4>>2]=l?t|285212672:0,o=s+8|0,n[o>>2]=r,n[o+4>>2]=t|301989888,o=s+16|0,n[o>>2]=r,n[o+4>>2]=t|318767104,o=s+24|0,n[o>>2]=r,n[o+4>>2]=t|335544320,o=s+32|0,n[o>>2]=r,n[o+4>>2]=t|352321536,s=s+40|0,n[s>>2]=r,n[s+4>>2]=t|369098752,0}function Or(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0,f=0;return f=b,b=b+16|0,l=f,u=t&-2130706433|134217728,!0&(t&2013265920|0)==268435456?(o=K(r|0,t|0,56)|0,C()|0,o=Eh(r,u,o&7)|0,(o|0)==-1?(n[s>>2]=0,u=6,b=f,u|0):(Ut(r,u,l)|0&&bA(27795,26932,282,26947),t=K(r|0,t|0,52)|0,C()|0,t=t&15,JA(r,u)|0?A0(l,t,o,2,s):e0(l,t,o,2,s),u=0,b=f,u|0)):(u=6,b=f,u|0)}function bf(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0;o=b,b=b+16|0,l=o,Mf(r,t,s,l),cf(l,s+4|0),b=o}function Mf(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0,d=0,p=0;if(d=b,b=b+16|0,p=d,Cf(r,s,p),u=+xr(+(1-+E[p>>3]*.5)),u<1e-16){n[o>>2]=0,n[o+4>>2]=0,n[o+8>>2]=0,n[o+12>>2]=0,b=d;return}if(p=n[s>>2]|0,l=+E[15920+(p*24|0)>>3],l=+dr(l-+dr(+jf(15600+(p<<4)|0,r))),Oe(t)|0?f=+dr(l+-.3334731722518321):f=l,l=+Re(+u)*2.618033988749896,(t|0)>0){r=0;do l=l*2.6457513110645907,r=r+1|0;while((r|0)!=(t|0))}u=+GA(+f)*l,E[o>>3]=u,f=+RA(+f)*l,E[o+8>>3]=f,b=d}function Cf(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0;if(u=b,b=b+32|0,l=u,_h(r,l),n[t>>2]=0,E[s>>3]=5,o=+ie(16400,l),o<+E[s>>3]&&(n[t>>2]=0,E[s>>3]=o),o=+ie(16424,l),o<+E[s>>3]&&(n[t>>2]=1,E[s>>3]=o),o=+ie(16448,l),o<+E[s>>3]&&(n[t>>2]=2,E[s>>3]=o),o=+ie(16472,l),o<+E[s>>3]&&(n[t>>2]=3,E[s>>3]=o),o=+ie(16496,l),o<+E[s>>3]&&(n[t>>2]=4,E[s>>3]=o),o=+ie(16520,l),o<+E[s>>3]&&(n[t>>2]=5,E[s>>3]=o),o=+ie(16544,l),o<+E[s>>3]&&(n[t>>2]=6,E[s>>3]=o),o=+ie(16568,l),o<+E[s>>3]&&(n[t>>2]=7,E[s>>3]=o),o=+ie(16592,l),o<+E[s>>3]&&(n[t>>2]=8,E[s>>3]=o),o=+ie(16616,l),o<+E[s>>3]&&(n[t>>2]=9,E[s>>3]=o),o=+ie(16640,l),o<+E[s>>3]&&(n[t>>2]=10,E[s>>3]=o),o=+ie(16664,l),o<+E[s>>3]&&(n[t>>2]=11,E[s>>3]=o),o=+ie(16688,l),o<+E[s>>3]&&(n[t>>2]=12,E[s>>3]=o),o=+ie(16712,l),o<+E[s>>3]&&(n[t>>2]=13,E[s>>3]=o),o=+ie(16736,l),o<+E[s>>3]&&(n[t>>2]=14,E[s>>3]=o),o=+ie(16760,l),o<+E[s>>3]&&(n[t>>2]=15,E[s>>3]=o),o=+ie(16784,l),o<+E[s>>3]&&(n[t>>2]=16,E[s>>3]=o),o=+ie(16808,l),o<+E[s>>3]&&(n[t>>2]=17,E[s>>3]=o),o=+ie(16832,l),o<+E[s>>3]&&(n[t>>2]=18,E[s>>3]=o),o=+ie(16856,l),!(o<+E[s>>3])){b=u;return}n[t>>2]=19,E[s>>3]=o,b=u}function fr(r,t,s,o,l){r=r|0,t=t|0,s=s|0,o=o|0,l=l|0;var u=0,f=0,d=0;if(u=+vh(r),u<1e-16){t=15600+(t<<4)|0,n[l>>2]=n[t>>2],n[l+4>>2]=n[t+4>>2],n[l+8>>2]=n[t+8>>2],n[l+12>>2]=n[t+12>>2];return}if(f=+De(+ +E[r+8>>3],+ +E[r>>3]),(s|0)>0){r=0;do u=u*.37796447300922725,r=r+1|0;while((r|0)!=(s|0))}d=u*.3333333333333333,o?(s=(Oe(s)|0)==0,u=+qn(+((s?d:d*.37796447300922725)*.381966011250105))):(u=+qn(+(u*.381966011250105)),Oe(s)|0&&(f=+dr(f+.3334731722518321))),Wf(15600+(t<<4)|0,+dr(+E[15920+(t*24|0)>>3]-f),u,l)}function Sf(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0;o=b,b=b+16|0,l=o,yt(r+4|0,l),fr(l,n[r>>2]|0,t,0,s),b=o}function A0(r,t,s,o,l){r=r|0,t=t|0,s=s|0,o=o|0,l=l|0;var u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0,B=0,L=0,D=0,F=0,q=0,V=0,Q=0,O=0,oA=0,gA=0,hA=0,SA=0,BA=0,DA=0,EA=0,pA=0,sA=0,xA=0,YA=0,PA=0;if(xA=b,b=b+272|0,u=xA+256|0,V=xA+240|0,EA=xA,pA=xA+224|0,sA=xA+208|0,Q=xA+176|0,O=xA+160|0,oA=xA+192|0,gA=xA+144|0,hA=xA+128|0,SA=xA+112|0,BA=xA+96|0,DA=xA+80|0,n[u>>2]=t,n[V>>2]=n[r>>2],n[V+4>>2]=n[r+4>>2],n[V+8>>2]=n[r+8>>2],n[V+12>>2]=n[r+12>>2],vs(V,u,EA),n[l>>2]=0,V=o+s+((o|0)==5&1)|0,(V|0)<=(s|0)){b=xA;return}p=n[u>>2]|0,w=pA+4|0,T=Q+4|0,M=s+5|0,I=16880+(p<<2)|0,B=16960+(p<<2)|0,L=hA+8|0,D=SA+8|0,F=BA+8|0,q=sA+4|0,d=s;A:for(;;){f=EA+(((d|0)%5|0)<<4)|0,n[sA>>2]=n[f>>2],n[sA+4>>2]=n[f+4>>2],n[sA+8>>2]=n[f+8>>2],n[sA+12>>2]=n[f+12>>2];do;while((Ft(sA,p,0,1)|0)==2);if((d|0)>(s|0)&(Oe(t)|0)!=0){if(n[Q>>2]=n[sA>>2],n[Q+4>>2]=n[sA+4>>2],n[Q+8>>2]=n[sA+8>>2],n[Q+12>>2]=n[sA+12>>2],yt(w,O),o=n[Q>>2]|0,u=n[17040+(o*80|0)+(n[pA>>2]<<2)>>2]|0,n[Q>>2]=n[18640+(o*80|0)+(u*20|0)>>2],f=n[18640+(o*80|0)+(u*20|0)+16>>2]|0,(f|0)>0){r=0;do ps(T),r=r+1|0;while((r|0)<(f|0))}switch(f=18640+(o*80|0)+(u*20|0)+4|0,n[oA>>2]=n[f>>2],n[oA+4>>2]=n[f+4>>2],n[oA+8>>2]=n[f+8>>2],hs(oA,(n[I>>2]|0)*3|0),Te(T,oA,T),pe(T),yt(T,gA),YA=+(n[B>>2]|0),E[hA>>3]=YA*3,E[L>>3]=0,PA=YA*-1.5,E[SA>>3]=PA,E[D>>3]=YA*2.598076211353316,E[BA>>3]=PA,E[F>>3]=YA*-2.598076211353316,n[17040+((n[Q>>2]|0)*80|0)+(n[sA>>2]<<2)>>2]|0){case 1:{r=SA,o=hA;break}case 3:{r=BA,o=SA;break}case 2:{r=hA,o=BA;break}default:{r=12;break A}}ks(O,gA,o,r,DA),fr(DA,n[Q>>2]|0,p,1,l+8+(n[l>>2]<<4)|0),n[l>>2]=(n[l>>2]|0)+1}if((d|0)<(M|0)&&(yt(q,Q),fr(Q,n[sA>>2]|0,p,1,l+8+(n[l>>2]<<4)|0),n[l>>2]=(n[l>>2]|0)+1),n[pA>>2]=n[sA>>2],n[pA+4>>2]=n[sA+4>>2],n[pA+8>>2]=n[sA+8>>2],n[pA+12>>2]=n[sA+12>>2],d=d+1|0,(d|0)>=(V|0)){r=3;break}}if((r|0)==3){b=xA;return}else(r|0)==12&&bA(26970,27017,572,27027)}function vs(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0,f=0,d=0,p=0;p=b,b=b+128|0,o=p+64|0,l=p,u=o,f=20240,d=u+60|0;do n[u>>2]=n[f>>2],u=u+4|0,f=f+4|0;while((u|0)<(d|0));u=l,f=20304,d=u+60|0;do n[u>>2]=n[f>>2],u=u+4|0,f=f+4|0;while((u|0)<(d|0));d=(Oe(n[t>>2]|0)|0)==0,o=d?o:l,l=r+4|0,ms(l),ws(l),Oe(n[t>>2]|0)|0&&(Tt(l),n[t>>2]=(n[t>>2]|0)+1),n[s>>2]=n[r>>2],t=s+4|0,Te(l,o,t),pe(t),n[s+16>>2]=n[r>>2],t=s+20|0,Te(l,o+12|0,t),pe(t),n[s+32>>2]=n[r>>2],t=s+36|0,Te(l,o+24|0,t),pe(t),n[s+48>>2]=n[r>>2],t=s+52|0,Te(l,o+36|0,t),pe(t),n[s+64>>2]=n[r>>2],s=s+68|0,Te(l,o+48|0,s),pe(s),b=p}function Ft(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0,B=0,L=0;if(L=b,b=b+32|0,I=L+12|0,d=L,B=r+4|0,M=n[16960+(t<<2)>>2]|0,T=(o|0)!=0,M=T?M*3|0:M,l=n[B>>2]|0,w=r+8|0,f=n[w>>2]|0,T){if(u=r+12|0,o=n[u>>2]|0,l=f+l+o|0,(l|0)==(M|0))return B=1,b=L,B|0;p=u}else p=r+12|0,o=n[p>>2]|0,l=f+l+o|0;if((l|0)<=(M|0))return B=0,b=L,B|0;do if((o|0)>0){if(o=n[r>>2]|0,(f|0)>0){u=18640+(o*80|0)+60|0,o=r;break}o=18640+(o*80|0)+40|0,s?(uf(I,M,0,0),Kn(B,I,d),Dr(d),Te(d,I,B),u=o,o=r):(u=o,o=r)}else u=18640+((n[r>>2]|0)*80|0)+20|0,o=r;while(!1);if(n[o>>2]=n[u>>2],l=u+16|0,(n[l>>2]|0)>0){o=0;do ps(B),o=o+1|0;while((o|0)<(n[l>>2]|0))}return r=u+4|0,n[I>>2]=n[r>>2],n[I+4>>2]=n[r+4>>2],n[I+8>>2]=n[r+8>>2],t=n[16880+(t<<2)>>2]|0,hs(I,T?t*3|0:t),Te(B,I,B),pe(B),T?o=((n[w>>2]|0)+(n[B>>2]|0)+(n[p>>2]|0)|0)==(M|0)?1:2:o=2,B=o,b=L,B|0}function If(r,t){r=r|0,t=t|0;var s=0;do s=Ft(r,t,0,1)|0;while((s|0)==2);return s|0}function e0(r,t,s,o,l){r=r|0,t=t|0,s=s|0,o=o|0,l=l|0;var u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0,B=0,L=0,D=0,F=0,q=0,V=0,Q=0,O=0,oA=0,gA=0,hA=0,SA=0,BA=0,DA=0,EA=0;if(BA=b,b=b+240|0,u=BA+224|0,oA=BA+208|0,gA=BA,hA=BA+192|0,SA=BA+176|0,F=BA+160|0,q=BA+144|0,V=BA+128|0,Q=BA+112|0,O=BA+96|0,n[u>>2]=t,n[oA>>2]=n[r>>2],n[oA+4>>2]=n[r+4>>2],n[oA+8>>2]=n[r+8>>2],n[oA+12>>2]=n[r+12>>2],_s(oA,u,gA),n[l>>2]=0,D=o+s+((o|0)==6&1)|0,(D|0)<=(s|0)){b=BA;return}p=n[u>>2]|0,w=s+6|0,T=16960+(p<<2)|0,M=q+8|0,I=V+8|0,B=Q+8|0,L=hA+4|0,f=0,d=s,o=-1;A:for(;;){if(u=(d|0)%6|0,r=gA+(u<<4)|0,n[hA>>2]=n[r>>2],n[hA+4>>2]=n[r+4>>2],n[hA+8>>2]=n[r+8>>2],n[hA+12>>2]=n[r+12>>2],r=f,f=Ft(hA,p,0,1)|0,(d|0)>(s|0)&(Oe(t)|0)!=0&&(r|0)!=1&&(n[hA>>2]|0)!=(o|0)){switch(yt(gA+(((u+5|0)%6|0)<<4)+4|0,SA),yt(gA+(u<<4)+4|0,F),DA=+(n[T>>2]|0),E[q>>3]=DA*3,E[M>>3]=0,EA=DA*-1.5,E[V>>3]=EA,E[I>>3]=DA*2.598076211353316,E[Q>>3]=EA,E[B>>3]=DA*-2.598076211353316,u=n[oA>>2]|0,n[17040+(u*80|0)+(((o|0)==(u|0)?n[hA>>2]|0:o)<<2)>>2]|0){case 1:{r=V,o=q;break}case 3:{r=Q,o=V;break}case 2:{r=q,o=Q;break}default:{r=8;break A}}ks(SA,F,o,r,O),!(Fs(SA,O)|0)&&!(Fs(F,O)|0)&&(fr(O,n[oA>>2]|0,p,1,l+8+(n[l>>2]<<4)|0),n[l>>2]=(n[l>>2]|0)+1)}if((d|0)<(w|0)&&(yt(L,SA),fr(SA,n[hA>>2]|0,p,1,l+8+(n[l>>2]<<4)|0),n[l>>2]=(n[l>>2]|0)+1),d=d+1|0,(d|0)>=(D|0)){r=3;break}else o=n[hA>>2]|0}if((r|0)==3){b=BA;return}else(r|0)==8&&bA(27054,27017,737,27099)}function _s(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0,f=0,d=0,p=0;p=b,b=b+160|0,o=p+80|0,l=p,u=o,f=20368,d=u+72|0;do n[u>>2]=n[f>>2],u=u+4|0,f=f+4|0;while((u|0)<(d|0));u=l,f=20448,d=u+72|0;do n[u>>2]=n[f>>2],u=u+4|0,f=f+4|0;while((u|0)<(d|0));d=(Oe(n[t>>2]|0)|0)==0,o=d?o:l,l=r+4|0,ms(l),ws(l),Oe(n[t>>2]|0)|0&&(Tt(l),n[t>>2]=(n[t>>2]|0)+1),n[s>>2]=n[r>>2],t=s+4|0,Te(l,o,t),pe(t),n[s+16>>2]=n[r>>2],t=s+20|0,Te(l,o+12|0,t),pe(t),n[s+32>>2]=n[r>>2],t=s+36|0,Te(l,o+24|0,t),pe(t),n[s+48>>2]=n[r>>2],t=s+52|0,Te(l,o+36|0,t),pe(t),n[s+64>>2]=n[r>>2],t=s+68|0,Te(l,o+48|0,t),pe(t),n[s+80>>2]=n[r>>2],s=s+84|0,Te(l,o+60|0,s),pe(s),b=p}function Bf(r,t){return r=r|0,t=t|0,t=K(r|0,t|0,52)|0,C()|0,t&15|0}function Es(r,t){return r=r|0,t=t|0,t=K(r|0,t|0,45)|0,C()|0,t&127|0}function Lf(r,t,s,o){return r=r|0,t=t|0,s=s|0,o=o|0,(s+-1|0)>>>0>14?(o=4,o|0):(s=K(r|0,t|0,(15-s|0)*3|0)|0,C()|0,n[o>>2]=s&7,o=0,o|0)}function Pf(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0,d=0,p=0,w=0;if(r>>>0>15)return o=4,o|0;if(t>>>0>121)return o=17,o|0;f=iA(r|0,0,52)|0,l=C()|0,d=iA(t|0,0,45)|0,l=l|(C()|0)|134225919;A:do if((r|0)>=1){for(d=1,f=(AA[20528+t>>0]|0)!=0,u=-1;;){if(t=n[s+(d+-1<<2)>>2]|0,t>>>0>6){l=18,t=10;break}if(!((t|0)==0|f^1))if((t|0)==1){l=19,t=10;break}else f=0;if(w=(15-d|0)*3|0,p=iA(7,0,w|0)|0,l=l&~(C()|0),t=iA(t|0,((t|0)<0)<<31>>31|0,w|0)|0,u=t|u&~p,l=C()|0|l,(d|0)<(r|0))d=d+1|0;else break A}if((t|0)==10)return l|0}else u=-1;while(!1);return w=o,n[w>>2]=u,n[w+4>>2]=l,w=0,w|0}function t0(r,t){r=r|0,t=t|0;var s=0,o=0,l=0,u=0,f=0;return!(!0&(t&-16777216|0)==134217728)||(o=K(r|0,t|0,52)|0,C()|0,o=o&15,s=K(r|0,t|0,45)|0,C()|0,s=s&127,s>>>0>121)?(r=0,r|0):(f=(o^15)*3|0,l=K(r|0,t|0,f|0)|0,f=iA(l|0,C()|0,f|0)|0,l=C()|0,u=ue(-1227133514,-1171,f|0,l|0)|0,!((f&613566756&u|0)==0&(l&4681&(C()|0)|0)==0)||(f=(o*3|0)+19|0,u=iA(~r|0,~t|0,f|0)|0,f=K(u|0,C()|0,f|0)|0,!((o|0)==15|(f|0)==0&(C()|0)==0))?(f=0,f|0):!(AA[20528+s>>0]|0)||(t=t&8191,(r|0)==0&(t|0)==0)?(f=1,f|0):(f=m0(r|0,t|0)|0,C()|0,((63-f|0)%3|0|0)!=0|0))}function xf(r,t){r=r|0,t=t|0;var s=0,o=0,l=0,u=0,f=0;return!0&(t&-16777216|0)==134217728&&(o=K(r|0,t|0,52)|0,C()|0,o=o&15,s=K(r|0,t|0,45)|0,C()|0,s=s&127,s>>>0<=121)&&(f=(o^15)*3|0,l=K(r|0,t|0,f|0)|0,f=iA(l|0,C()|0,f|0)|0,l=C()|0,u=ue(-1227133514,-1171,f|0,l|0)|0,(f&613566756&u|0)==0&(l&4681&(C()|0)|0)==0)&&(f=(o*3|0)+19|0,u=iA(~r|0,~t|0,f|0)|0,f=K(u|0,C()|0,f|0)|0,(o|0)==15|(f|0)==0&(C()|0)==0)&&(!(AA[20528+s>>0]|0)||(s=t&8191,(r|0)==0&(s|0)==0)||(f=m0(r|0,s|0)|0,C()|0,(63-f|0)%3|0|0))||Ts(r,t)|0?(f=1,f|0):(f=(Us(r,t)|0)!=0&1,f|0)}function r0(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0,d=0;if(l=iA(t|0,0,52)|0,u=C()|0,s=iA(s|0,0,45)|0,s=u|(C()|0)|134225919,(t|0)<1){u=-1,o=s,t=r,n[t>>2]=u,r=r+4|0,n[r>>2]=o;return}for(u=1,l=-1;f=(15-u|0)*3|0,d=iA(7,0,f|0)|0,s=s&~(C()|0),f=iA(o|0,0,f|0)|0,l=l&~d|f,s=s|(C()|0),(u|0)!=(t|0);)u=u+1|0;d=r,f=d,n[f>>2]=l,d=d+4|0,n[d>>2]=s}function n0(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0;if(u=K(r|0,t|0,52)|0,C()|0,u=u&15,s>>>0>15)return o=4,o|0;if((u|0)<(s|0))return o=12,o|0;if((u|0)==(s|0))return n[o>>2]=r,n[o+4>>2]=t,o=0,o|0;if(l=iA(s|0,0,52)|0,l=l|r,r=C()|0|t&-15728641,(u|0)>(s|0))do t=iA(7,0,(14-s|0)*3|0)|0,s=s+1|0,l=t|l,r=C()|0|r;while((s|0)<(u|0));return n[o>>2]=l,n[o+4>>2]=r,o=0,o|0}function hr(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0;if(u=K(r|0,t|0,52)|0,C()|0,u=u&15,!((s|0)<16&(u|0)<=(s|0)))return o=4,o|0;l=s-u|0,s=K(r|0,t|0,45)|0,C()|0;A:do if(!(ee(s&127)|0))s=ut(7,0,l,((l|0)<0)<<31>>31)|0,l=C()|0;else{e:do if(u|0){for(s=1;f=iA(7,0,(15-s|0)*3|0)|0,!!((f&r|0)==0&((C()|0)&t|0)==0);)if(s>>>0<u>>>0)s=s+1|0;else break e;s=ut(7,0,l,((l|0)<0)<<31>>31)|0,l=C()|0;break A}while(!1);s=ut(7,0,l,((l|0)<0)<<31>>31)|0,s=ce(s|0,C()|0,5,0)|0,s=wA(s|0,C()|0,-5,-1)|0,s=ft(s|0,C()|0,6,0)|0,s=wA(s|0,C()|0,1,0)|0,l=C()|0}while(!1);return f=o,n[f>>2]=s,n[f+4>>2]=l,f=0,f|0}function JA(r,t){r=r|0,t=t|0;var s=0,o=0,l=0;if(l=K(r|0,t|0,45)|0,C()|0,!(ee(l&127)|0))return l=0,l|0;l=K(r|0,t|0,52)|0,C()|0,l=l&15;A:do if(!l)s=0;else for(o=1;;){if(s=K(r|0,t|0,(15-o|0)*3|0)|0,C()|0,s=s&7,s|0)break A;if(o>>>0<l>>>0)o=o+1|0;else{s=0;break}}while(!1);return l=(s|0)==0&1,l|0}function Nf(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0,d=0;if(f=b,b=b+16|0,u=f,u0(u,r,t,s),t=u,r=n[t>>2]|0,t=n[t+4>>2]|0,(r|0)==0&(t|0)==0)return b=f,0;l=0,s=0;do d=o+(l<<3)|0,n[d>>2]=r,n[d+4>>2]=t,l=wA(l|0,s|0,1,0)|0,s=C()|0,c0(u),d=u,r=n[d>>2]|0,t=n[d+4>>2]|0;while(!((r|0)==0&(t|0)==0));return b=f,0}function bs(r,t,s,o){return r=r|0,t=t|0,s=s|0,o=o|0,(o|0)<(s|0)?(s=t,o=r,IA(s|0),o|0):(s=iA(-1,-1,((o-s|0)*3|0)+3|0)|0,o=iA(~s|0,~(C()|0)|0,(15-o|0)*3|0)|0,s=~(C()|0)&t,o=~o&r,IA(s|0),o|0)}function Ms(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0;return l=K(r|0,t|0,52)|0,C()|0,l=l&15,(s|0)<16&(l|0)<=(s|0)?((l|0)<(s|0)&&(l=iA(-1,-1,((s+-1-l|0)*3|0)+3|0)|0,l=iA(~l|0,~(C()|0)|0,(15-s|0)*3|0)|0,t=~(C()|0)&t,r=~l&r),l=iA(s|0,0,52)|0,s=t&-15728641|(C()|0),n[o>>2]=r|l,n[o+4>>2]=s,o=0,o|0):(o=4,o|0)}function Rf(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0,B=0,L=0,D=0,F=0,q=0,V=0,Q=0,O=0,oA=0,gA=0,hA=0,SA=0,BA=0,DA=0,EA=0,pA=0,sA=0;if((s|0)==0&(o|0)==0)return sA=0,sA|0;if(l=r,u=n[l>>2]|0,l=n[l+4>>2]|0,!0&(l&15728640|0)==0){if(!((o|0)>0|(o|0)==0&s>>>0>0)||(sA=t,n[sA>>2]=u,n[sA+4>>2]=l,(s|0)==1&(o|0)==0))return sA=0,sA|0;l=1,u=0;do EA=r+(l<<3)|0,pA=n[EA+4>>2]|0,sA=t+(l<<3)|0,n[sA>>2]=n[EA>>2],n[sA+4>>2]=pA,l=wA(l|0,u|0,1,0)|0,u=C()|0;while((u|0)<(o|0)|(u|0)==(o|0)&l>>>0<s>>>0);return l=0,l|0}if(DA=s<<3,pA=Ye(DA)|0,!pA)return sA=13,sA|0;if(qt(pA|0,r|0,DA|0)|0,EA=Me(s,8)|0,!EA)return TA(pA),sA=13,sA|0;A:for(;;){l=pA,w=n[l>>2]|0,l=n[l+4>>2]|0,SA=K(w|0,l|0,52)|0,C()|0,SA=SA&15,BA=SA+-1|0,hA=(SA|0)!=0,gA=(o|0)>0|(o|0)==0&s>>>0>0;e:do if(hA&gA){if(V=iA(BA|0,0,52)|0,Q=C()|0,BA>>>0>15){if(!((w|0)==0&(l|0)==0)){sA=16;break A}for(u=0,r=0;;){if(u=wA(u|0,r|0,1,0)|0,r=C()|0,!((r|0)<(o|0)|(r|0)==(o|0)&u>>>0<s>>>0))break e;if(f=pA+(u<<3)|0,oA=n[f>>2]|0,f=n[f+4>>2]|0,!((oA|0)==0&(f|0)==0)){l=f,sA=16;break A}}}for(d=w,r=l,u=0,f=0;;){if(!((d|0)==0&(r|0)==0)){if(!(!0&(r&117440512|0)==0)){sA=21;break A}if(T=K(d|0,r|0,52)|0,C()|0,T=T&15,(T|0)<(BA|0)){l=12,sA=27;break A}if((T|0)!=(BA|0)&&(d=d|V,r=r&-15728641|Q,T>>>0>=SA>>>0)){p=BA;do oA=iA(7,0,(14-p|0)*3|0)|0,p=p+1|0,d=oA|d,r=C()|0|r;while(p>>>0<T>>>0)}if(I=Gt(d|0,r|0,s|0,o|0)|0,B=C()|0,p=EA+(I<<3)|0,T=p,M=n[T>>2]|0,T=n[T+4>>2]|0,!((M|0)==0&(T|0)==0)){F=0,q=0;do{if((F|0)>(o|0)|(F|0)==(o|0)&q>>>0>s>>>0){sA=31;break A}if((M|0)==(d|0)&(T&-117440513|0)==(r|0)){L=K(M|0,T|0,56)|0,C()|0,L=L&7,D=L+1|0,oA=K(M|0,T|0,45)|0,C()|0;t:do if(!(ee(oA&127)|0))T=7;else{if(M=K(M|0,T|0,52)|0,C()|0,M=M&15,!M){T=6;break}for(T=1;;){if(oA=iA(7,0,(15-T|0)*3|0)|0,!((oA&d|0)==0&((C()|0)&r|0)==0)){T=7;break t}if(T>>>0<M>>>0)T=T+1|0;else{T=6;break}}}while(!1);if((L+2|0)>>>0>T>>>0){sA=41;break A}oA=iA(D|0,0,56)|0,r=C()|0|r&-117440513,O=p,n[O>>2]=0,n[O+4>>2]=0,d=oA|d}else I=wA(I|0,B|0,1,0)|0,I=zt(I|0,C()|0,s|0,o|0)|0,B=C()|0;q=wA(q|0,F|0,1,0)|0,F=C()|0,p=EA+(I<<3)|0,T=p,M=n[T>>2]|0,T=n[T+4>>2]|0}while(!((M|0)==0&(T|0)==0))}oA=p,n[oA>>2]=d,n[oA+4>>2]=r}if(u=wA(u|0,f|0,1,0)|0,f=C()|0,!((f|0)<(o|0)|(f|0)==(o|0)&u>>>0<s>>>0))break e;r=pA+(u<<3)|0,d=n[r>>2]|0,r=n[r+4>>2]|0}}while(!1);if(oA=wA(s|0,o|0,5,0)|0,O=C()|0,O>>>0<0|(O|0)==0&oA>>>0<11){sA=85;break}if(oA=ft(s|0,o|0,6,0)|0,C()|0,oA=Me(oA,8)|0,!oA){sA=48;break}do if(gA){for(D=0,r=0,L=0,F=0;;){if(T=EA+(D<<3)|0,f=T,u=n[f>>2]|0,f=n[f+4>>2]|0,(u|0)==0&(f|0)==0)O=L;else{M=K(u|0,f|0,56)|0,C()|0,M=M&7,d=M+1|0,I=f&-117440513,O=K(u|0,f|0,45)|0,C()|0;e:do if(ee(O&127)|0){if(B=K(u|0,f|0,52)|0,C()|0,B=B&15,B|0)for(p=1;;){if(O=iA(7,0,(15-p|0)*3|0)|0,!((u&O|0)==0&(I&(C()|0)|0)==0))break e;if(p>>>0<B>>>0)p=p+1|0;else break}f=iA(d|0,0,56)|0,u=f|u,f=C()|0|I,d=T,n[d>>2]=u,n[d+4>>2]=f,d=M+2|0}while(!1);(d|0)==7?(O=oA+(r<<3)|0,n[O>>2]=u,n[O+4>>2]=f&-117440513,r=wA(r|0,L|0,1,0)|0,O=C()|0):O=L}if(D=wA(D|0,F|0,1,0)|0,F=C()|0,(F|0)<(o|0)|(F|0)==(o|0)&D>>>0<s>>>0)L=O;else break}if(gA){if(q=BA>>>0>15,V=iA(BA|0,0,52)|0,Q=C()|0,!hA){for(u=0,p=0,d=0,f=0;(w|0)==0&(l|0)==0||(BA=t+(u<<3)|0,n[BA>>2]=w,n[BA+4>>2]=l,u=wA(u|0,p|0,1,0)|0,p=C()|0),d=wA(d|0,f|0,1,0)|0,f=C()|0,!!((f|0)<(o|0)|(f|0)==(o|0)&d>>>0<s>>>0);)l=pA+(d<<3)|0,w=n[l>>2]|0,l=n[l+4>>2]|0;l=O;break}for(u=0,p=0,f=0,d=0;;){do if(!((w|0)==0&(l|0)==0)){if(B=K(w|0,l|0,52)|0,C()|0,B=B&15,q|(B|0)<(BA|0)){sA=80;break A}if((B|0)!=(BA|0)){if(T=w|V,M=l&-15728641|Q,B>>>0>=SA>>>0){I=BA;do hA=iA(7,0,(14-I|0)*3|0)|0,I=I+1|0,T=hA|T,M=C()|0|M;while(I>>>0<B>>>0)}}else T=w,M=l;L=Gt(T|0,M|0,s|0,o|0)|0,I=0,B=0,F=C()|0;do{if((I|0)>(o|0)|(I|0)==(o|0)&B>>>0>s>>>0){sA=81;break A}if(hA=EA+(L<<3)|0,D=n[hA+4>>2]|0,(D&-117440513|0)==(M|0)&&(n[hA>>2]|0)==(T|0)){sA=65;break}hA=wA(L|0,F|0,1,0)|0,L=zt(hA|0,C()|0,s|0,o|0)|0,F=C()|0,B=wA(B|0,I|0,1,0)|0,I=C()|0,hA=EA+(L<<3)|0}while(!((n[hA>>2]|0)==(T|0)&&(n[hA+4>>2]|0)==(M|0)));if((sA|0)==65&&(sA=0,!0&(D&117440512|0)==100663296))break;hA=t+(u<<3)|0,n[hA>>2]=w,n[hA+4>>2]=l,u=wA(u|0,p|0,1,0)|0,p=C()|0}while(!1);if(f=wA(f|0,d|0,1,0)|0,d=C()|0,!((d|0)<(o|0)|(d|0)==(o|0)&f>>>0<s>>>0))break;l=pA+(f<<3)|0,w=n[l>>2]|0,l=n[l+4>>2]|0}l=O}else u=0,l=O}else u=0,r=0,l=0;while(!1);if(ht(EA|0,0,DA|0)|0,qt(pA|0,oA|0,r<<3|0)|0,TA(oA),(r|0)==0&(l|0)==0){sA=89;break}else t=t+(u<<3)|0,o=l,s=r}if((sA|0)==16)!0&(l&117440512|0)==0?(l=4,sA=27):sA=21;else if((sA|0)==31)bA(27795,27122,620,27132);else{if((sA|0)==41)return TA(pA),TA(EA),sA=10,sA|0;if((sA|0)==48)return TA(pA),TA(EA),sA=13,sA|0;(sA|0)==80?bA(27795,27122,711,27132):(sA|0)==81?bA(27795,27122,723,27132):(sA|0)==85&&(qt(t|0,pA|0,s<<3|0)|0,sA=89)}return(sA|0)==21?(TA(pA),TA(EA),sA=5,sA|0):(sA|0)==27?(TA(pA),TA(EA),sA=l,sA|0):(sA|0)==89?(TA(pA),TA(EA),sA=0,sA|0):0}function Df(r,t,s,o,l,u,f){r=r|0,t=t|0,s=s|0,o=o|0,l=l|0,u=u|0,f=f|0;var d=0,p=0,w=0,T=0,M=0,I=0,B=0,L=0,D=0;if(D=b,b=b+16|0,L=D,!((s|0)>0|(s|0)==0&t>>>0>0))return L=0,b=D,L|0;if((f|0)>=16)return L=12,b=D,L|0;I=0,B=0,M=0,d=0;A:for(;;){if(w=r+(I<<3)|0,p=n[w>>2]|0,w=n[w+4>>2]|0,T=K(p|0,w|0,52)|0,C()|0,(T&15|0)>(f|0)){d=12,p=11;break}if(u0(L,p,w,f),T=L,w=n[T>>2]|0,T=n[T+4>>2]|0,(w|0)==0&(T|0)==0)p=M;else{p=M;do{if(!((d|0)<(u|0)|(d|0)==(u|0)&p>>>0<l>>>0)){p=10;break A}M=o+(p<<3)|0,n[M>>2]=w,n[M+4>>2]=T,p=wA(p|0,d|0,1,0)|0,d=C()|0,c0(L),M=L,w=n[M>>2]|0,T=n[M+4>>2]|0}while(!((w|0)==0&(T|0)==0))}if(I=wA(I|0,B|0,1,0)|0,B=C()|0,(B|0)<(s|0)|(B|0)==(s|0)&I>>>0<t>>>0)M=p;else{d=0,p=11;break}}return(p|0)==10?(L=14,b=D,L|0):(p|0)==11?(b=D,d|0):0}function Of(r,t,s,o,l){r=r|0,t=t|0,s=s|0,o=o|0,l=l|0;var u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0;I=b,b=b+16|0,M=I;A:do if((s|0)>0|(s|0)==0&t>>>0>0){for(w=0,f=0,u=0,T=0;;){if(p=r+(w<<3)|0,d=n[p>>2]|0,p=n[p+4>>2]|0,!((d|0)==0&(p|0)==0)&&(p=(hr(d,p,o,M)|0)==0,d=M,f=wA(n[d>>2]|0,n[d+4>>2]|0,f|0,u|0)|0,u=C()|0,!p)){u=12;break}if(w=wA(w|0,T|0,1,0)|0,T=C()|0,!((T|0)<(s|0)|(T|0)==(s|0)&w>>>0<t>>>0))break A}return b=I,u|0}else f=0,u=0;while(!1);return n[l>>2]=f,n[l+4>>2]=u,l=0,b=I,l|0}function kf(r,t){return r=r|0,t=t|0,t=K(r|0,t|0,52)|0,C()|0,t&1|0}function be(r,t){r=r|0,t=t|0;var s=0,o=0,l=0;if(l=K(r|0,t|0,52)|0,C()|0,l=l&15,!l)return l=0,l|0;for(o=1;;){if(s=K(r|0,t|0,(15-o|0)*3|0)|0,C()|0,s=s&7,s|0){o=5;break}if(o>>>0<l>>>0)o=o+1|0;else{s=0,o=5;break}}return(o|0)==5?s|0:0}function i0(r,t){r=r|0,t=t|0;var s=0,o=0,l=0,u=0,f=0,d=0,p=0;if(p=K(r|0,t|0,52)|0,C()|0,p=p&15,!p)return d=t,p=r,IA(d|0),p|0;for(d=1,s=0;;){u=(15-d|0)*3|0,o=iA(7,0,u|0)|0,l=C()|0,f=K(r|0,t|0,u|0)|0,C()|0,u=iA(vt(f&7)|0,0,u|0)|0,f=C()|0,r=u|r&~o,t=f|t&~l;A:do if(!s)if((u&o|0)==0&(f&l|0)==0)s=0;else if(o=K(r|0,t|0,52)|0,C()|0,o=o&15,!o)s=1;else{s=1;e:for(;;){switch(f=K(r|0,t|0,(15-s|0)*3|0)|0,C()|0,f&7){case 1:break e;case 0:break;default:{s=1;break A}}if(s>>>0<o>>>0)s=s+1|0;else{s=1;break A}}for(s=1;;)if(f=(15-s|0)*3|0,l=K(r|0,t|0,f|0)|0,C()|0,u=iA(7,0,f|0)|0,t=t&~(C()|0),f=iA(vt(l&7)|0,0,f|0)|0,r=r&~u|f,t=t|(C()|0),s>>>0<o>>>0)s=s+1|0;else{s=1;break}}while(!1);if(d>>>0<p>>>0)d=d+1|0;else break}return IA(t|0),r|0}function _t(r,t){r=r|0,t=t|0;var s=0,o=0,l=0,u=0,f=0;if(o=K(r|0,t|0,52)|0,C()|0,o=o&15,!o)return s=t,o=r,IA(s|0),o|0;for(s=1;u=(15-s|0)*3|0,f=K(r|0,t|0,u|0)|0,C()|0,l=iA(7,0,u|0)|0,t=t&~(C()|0),u=iA(vt(f&7)|0,0,u|0)|0,r=u|r&~l,t=C()|0|t,s>>>0<o>>>0;)s=s+1|0;return IA(t|0),r|0}function Ff(r,t){r=r|0,t=t|0;var s=0,o=0,l=0,u=0,f=0,d=0,p=0;if(p=K(r|0,t|0,52)|0,C()|0,p=p&15,!p)return d=t,p=r,IA(d|0),p|0;for(d=1,s=0;;){u=(15-d|0)*3|0,o=iA(7,0,u|0)|0,l=C()|0,f=K(r|0,t|0,u|0)|0,C()|0,u=iA(lt(f&7)|0,0,u|0)|0,f=C()|0,r=u|r&~o,t=f|t&~l;A:do if(!s)if((u&o|0)==0&(f&l|0)==0)s=0;else if(o=K(r|0,t|0,52)|0,C()|0,o=o&15,!o)s=1;else{s=1;e:for(;;){switch(f=K(r|0,t|0,(15-s|0)*3|0)|0,C()|0,f&7){case 1:break e;case 0:break;default:{s=1;break A}}if(s>>>0<o>>>0)s=s+1|0;else{s=1;break A}}for(s=1;;)if(l=(15-s|0)*3|0,u=iA(7,0,l|0)|0,f=t&~(C()|0),t=K(r|0,t|0,l|0)|0,C()|0,t=iA(lt(t&7)|0,0,l|0)|0,r=r&~u|t,t=f|(C()|0),s>>>0<o>>>0)s=s+1|0;else{s=1;break}}while(!1);if(d>>>0<p>>>0)d=d+1|0;else break}return IA(t|0),r|0}function s0(r,t){r=r|0,t=t|0;var s=0,o=0,l=0,u=0,f=0;if(o=K(r|0,t|0,52)|0,C()|0,o=o&15,!o)return s=t,o=r,IA(s|0),o|0;for(s=1;f=(15-s|0)*3|0,u=iA(7,0,f|0)|0,l=t&~(C()|0),t=K(r|0,t|0,f|0)|0,C()|0,t=iA(lt(t&7)|0,0,f|0)|0,r=t|r&~u,t=C()|0|l,s>>>0<o>>>0;)s=s+1|0;return IA(t|0),r|0}function Uf(r,t){r=r|0,t=t|0;var s=0,o=0,l=0,u=0,f=0,d=0,p=0,w=0,T=0;if(p=b,b=b+64|0,d=p+40|0,o=p+24|0,l=p+12|0,u=p,iA(t|0,0,52)|0,s=C()|0|134225919,!t)return(n[r+4>>2]|0)>2||(n[r+8>>2]|0)>2||(n[r+12>>2]|0)>2?(f=0,d=0,IA(f|0),b=p,d|0):(iA(os(r)|0,0,45)|0,f=C()|0|s,d=-1,IA(f|0),b=p,d|0);if(n[d>>2]=n[r>>2],n[d+4>>2]=n[r+4>>2],n[d+8>>2]=n[r+8>>2],n[d+12>>2]=n[r+12>>2],f=d+4|0,(t|0)>0)for(r=-1;n[o>>2]=n[f>>2],n[o+4>>2]=n[f+4>>2],n[o+8>>2]=n[f+8>>2],t&1?(df(f),n[l>>2]=n[f>>2],n[l+4>>2]=n[f+4>>2],n[l+8>>2]=n[f+8>>2],Rr(l)):(ds(f),n[l>>2]=n[f>>2],n[l+4>>2]=n[f+4>>2],n[l+8>>2]=n[f+8>>2],Tt(l)),Kn(o,l,u),pe(u),T=(15-t|0)*3|0,w=iA(7,0,T|0)|0,s=s&~(C()|0),T=iA(Nr(u)|0,0,T|0)|0,r=T|r&~w,s=C()|0|s,(t|0)>1;)t=t+-1|0;else r=-1;A:do if((n[f>>2]|0)<=2&&(n[d+8>>2]|0)<=2&&(n[d+12>>2]|0)<=2){if(o=os(d)|0,t=iA(o|0,0,45)|0,t=t|r,r=C()|0|s&-1040385,u=$c(d)|0,!(ee(o)|0)){if((u|0)<=0)break;for(l=0;;){if(o=K(t|0,r|0,52)|0,C()|0,o=o&15,o)for(s=1;T=(15-s|0)*3|0,d=K(t|0,r|0,T|0)|0,C()|0,w=iA(7,0,T|0)|0,r=r&~(C()|0),T=iA(vt(d&7)|0,0,T|0)|0,t=t&~w|T,r=r|(C()|0),s>>>0<o>>>0;)s=s+1|0;if(l=l+1|0,(l|0)==(u|0))break A}}l=K(t|0,r|0,52)|0,C()|0,l=l&15;e:do if(l){s=1;t:for(;;){switch(T=K(t|0,r|0,(15-s|0)*3|0)|0,C()|0,T&7){case 1:break t;case 0:break;default:break e}if(s>>>0<l>>>0)s=s+1|0;else break e}if(as(o,n[d>>2]|0)|0)for(s=1;d=(15-s|0)*3|0,w=iA(7,0,d|0)|0,T=r&~(C()|0),r=K(t|0,r|0,d|0)|0,C()|0,r=iA(lt(r&7)|0,0,d|0)|0,t=t&~w|r,r=T|(C()|0),s>>>0<l>>>0;)s=s+1|0;else for(s=1;T=(15-s|0)*3|0,d=K(t|0,r|0,T|0)|0,C()|0,w=iA(7,0,T|0)|0,r=r&~(C()|0),T=iA(vt(d&7)|0,0,T|0)|0,t=t&~w|T,r=r|(C()|0),s>>>0<l>>>0;)s=s+1|0}while(!1);if((u|0)>0){s=0;do t=i0(t,r)|0,r=C()|0,s=s+1|0;while((s|0)!=(u|0))}}else t=0,r=0;while(!1);return w=r,T=t,IA(w|0),b=p,T|0}function Oe(r){return r=r|0,(r|0)%2|0|0}function o0(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0;return l=b,b=b+16|0,o=l,t>>>0>15?(o=4,b=l,o|0):(n[r+4>>2]&2146435072|0)==2146435072||(n[r+8+4>>2]&2146435072|0)==2146435072?(o=3,b=l,o|0):(bf(r,t,o),t=Uf(o,t)|0,o=C()|0,n[s>>2]=t,n[s+4>>2]=o,(t|0)==0&(o|0)==0&&bA(27795,27122,1050,27145),o=0,b=l,o|0)}function a0(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0,f=0;if(l=s+4|0,u=K(r|0,t|0,52)|0,C()|0,u=u&15,f=K(r|0,t|0,45)|0,C()|0,o=(u|0)==0,ee(f&127)|0){if(o)return f=1,f|0;o=1}else{if(o)return f=0,f|0;(n[l>>2]|0)==0&&(n[s+8>>2]|0)==0?o=(n[s+12>>2]|0)!=0&1:o=1}for(s=1;s&1?Rr(l):Tt(l),f=K(r|0,t|0,(15-s|0)*3|0)|0,C()|0,gs(l,f&7),s>>>0<u>>>0;)s=s+1|0;return o|0}function Ut(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0,f=0,d=0,p=0,w=0,T=0;if(T=b,b=b+16|0,p=T,w=K(r|0,t|0,45)|0,C()|0,w=w&127,w>>>0>121)return n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,n[s+12>>2]=0,w=5,b=T,w|0;A:do if((ee(w)|0)!=0&&(u=K(r|0,t|0,52)|0,C()|0,u=u&15,(u|0)!=0)){o=1;e:for(;;){switch(d=K(r|0,t|0,(15-o|0)*3|0)|0,C()|0,d&7){case 5:break e;case 0:break;default:{o=t;break A}}if(o>>>0<u>>>0)o=o+1|0;else{o=t;break A}}for(l=1,o=t;t=(15-l|0)*3|0,f=iA(7,0,t|0)|0,d=o&~(C()|0),o=K(r|0,o|0,t|0)|0,C()|0,o=iA(lt(o&7)|0,0,t|0)|0,r=r&~f|o,o=d|(C()|0),l>>>0<u>>>0;)l=l+1|0}else o=t;while(!1);if(d=7696+(w*28|0)|0,n[s>>2]=n[d>>2],n[s+4>>2]=n[d+4>>2],n[s+8>>2]=n[d+8>>2],n[s+12>>2]=n[d+12>>2],!(a0(r,o,s)|0))return w=0,b=T,w|0;if(f=s+4|0,n[p>>2]=n[f>>2],n[p+4>>2]=n[f+4>>2],n[p+8>>2]=n[f+8>>2],u=K(r|0,o|0,52)|0,C()|0,d=u&15,u&1?(Tt(f),u=d+1|0):u=d,!(ee(w)|0))o=0;else{A:do if(!d)o=0;else for(t=1;;){if(l=K(r|0,o|0,(15-t|0)*3|0)|0,C()|0,l=l&7,l|0){o=l;break A}if(t>>>0<d>>>0)t=t+1|0;else{o=0;break}}while(!1);o=(o|0)==4&1}if(!(Ft(s,u,o,0)|0))(u|0)!=(d|0)&&(n[f>>2]=n[p>>2],n[f+4>>2]=n[p+4>>2],n[f+8>>2]=n[p+8>>2]);else{if(ee(w)|0)do;while((Ft(s,u,0,0)|0)!=0);(u|0)!=(d|0)&&ds(f)}return w=0,b=T,w|0}function Et(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0;return u=b,b=b+16|0,o=u,l=Ut(r,t,o)|0,l|0?(b=u,l|0):(l=K(r|0,t|0,52)|0,C()|0,Sf(o,l&15,s),l=0,b=u,l|0)}function Qt(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0,f=0,d=0;if(f=b,b=b+16|0,u=f,o=Ut(r,t,u)|0,o|0)return u=o,b=f,u|0;o=K(r|0,t|0,45)|0,C()|0,o=(ee(o&127)|0)==0,l=K(r|0,t|0,52)|0,C()|0,l=l&15;A:do if(!o){if(l|0)for(o=1;;){if(d=iA(7,0,(15-o|0)*3|0)|0,!((d&r|0)==0&((C()|0)&t|0)==0))break A;if(o>>>0<l>>>0)o=o+1|0;else break}return A0(u,l,0,5,s),d=0,b=f,d|0}while(!1);return e0(u,l,0,6,s),d=0,b=f,d|0}function Qf(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0;if(l=K(r|0,t|0,45)|0,C()|0,!(ee(l&127)|0))return l=2,n[s>>2]=l,0;if(l=K(r|0,t|0,52)|0,C()|0,l=l&15,!l)return l=5,n[s>>2]=l,0;for(o=1;;){if(u=iA(7,0,(15-o|0)*3|0)|0,!((u&r|0)==0&((C()|0)&t|0)==0)){o=2,r=6;break}if(o>>>0<l>>>0)o=o+1|0;else{o=5,r=6;break}}return(r|0)==6&&(n[s>>2]=o),0}function Cs(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0,f=0,d=0,p=0,w=0,T=0,M=0;M=b,b=b+128|0,w=M+112|0,u=M+96|0,T=M,l=K(r|0,t|0,52)|0,C()|0,d=l&15,n[w>>2]=d,f=K(r|0,t|0,45)|0,C()|0,f=f&127;A:do if(ee(f)|0){if(d|0)for(o=1;;){if(p=iA(7,0,(15-o|0)*3|0)|0,!((p&r|0)==0&((C()|0)&t|0)==0)){l=0;break A}if(o>>>0<d>>>0)o=o+1|0;else break}if(l&1)l=1;else return p=iA(d+1|0,0,52)|0,T=C()|0|t&-15728641,w=iA(7,0,(14-d|0)*3|0)|0,T=Cs((p|r)&~w,T&~(C()|0),s)|0,b=M,T|0}else l=0;while(!1);if(o=Ut(r,t,u)|0,!o){l?(vs(u,w,T),p=5):(_s(u,w,T),p=6);A:do if(ee(f)|0)if(!d)r=5;else for(o=1;;){if(f=iA(7,0,(15-o|0)*3|0)|0,!((f&r|0)==0&((C()|0)&t|0)==0)){r=2;break A}if(o>>>0<d>>>0)o=o+1|0;else{r=5;break}}else r=2;while(!1);ht(s|0,-1,r<<2|0)|0;A:do if(l)for(u=0;;){if(f=T+(u<<4)|0,If(f,n[w>>2]|0)|0,f=n[f>>2]|0,d=n[s>>2]|0,(d|0)==-1|(d|0)==(f|0))o=s;else{l=0;do{if(l=l+1|0,l>>>0>=r>>>0){o=1;break A}o=s+(l<<2)|0,d=n[o>>2]|0}while(!((d|0)==-1|(d|0)==(f|0)))}if(n[o>>2]=f,u=u+1|0,u>>>0>=p>>>0){o=0;break}}else for(u=0;;){if(f=T+(u<<4)|0,Ft(f,n[w>>2]|0,0,1)|0,f=n[f>>2]|0,d=n[s>>2]|0,(d|0)==-1|(d|0)==(f|0))o=s;else{l=0;do{if(l=l+1|0,l>>>0>=r>>>0){o=1;break A}o=s+(l<<2)|0,d=n[o>>2]|0}while(!((d|0)==-1|(d|0)==(f|0)))}if(n[o>>2]=f,u=u+1|0,u>>>0>=p>>>0){o=0;break}}while(!1)}return T=o,b=M,T|0}function Vf(){return 12}function l0(r,t){r=r|0,t=t|0;var s=0,o=0,l=0,u=0,f=0,d=0,p=0;if(r>>>0>15)return d=4,d|0;if(iA(r|0,0,52)|0,d=C()|0|134225919,!r){s=0,o=0;do ee(o)|0&&(iA(o|0,0,45)|0,f=d|(C()|0),r=t+(s<<3)|0,n[r>>2]=-1,n[r+4>>2]=f,s=s+1|0),o=o+1|0;while((o|0)!=122);return s=0,s|0}s=0,f=0;do{if(ee(f)|0){for(iA(f|0,0,45)|0,o=1,l=-1,u=d|(C()|0);p=iA(7,0,(15-o|0)*3|0)|0,l=l&~p,u=u&~(C()|0),(o|0)!=(r|0);)o=o+1|0;p=t+(s<<3)|0,n[p>>2]=l,n[p+4>>2]=u,s=s+1|0}f=f+1|0}while((f|0)!=122);return s=0,s|0}function zf(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0,B=0,L=0,D=0,F=0,q=0,V=0;if(V=b,b=b+16|0,F=V,q=K(r|0,t|0,52)|0,C()|0,q=q&15,s>>>0>15)return q=4,b=V,q|0;if((q|0)<(s|0))return q=12,b=V,q|0;if((q|0)!=(s|0))if(u=iA(s|0,0,52)|0,u=u|r,d=C()|0|t&-15728641,(q|0)>(s|0)){p=s;do D=iA(7,0,(14-p|0)*3|0)|0,p=p+1|0,u=D|u,d=C()|0|d;while((p|0)<(q|0));D=u}else D=u;else D=r,d=t;L=K(D|0,d|0,45)|0,C()|0;A:do if(ee(L&127)|0){if(p=K(D|0,d|0,52)|0,C()|0,p=p&15,p|0)for(u=1;;){if(L=iA(7,0,(15-u|0)*3|0)|0,!((L&D|0)==0&((C()|0)&d|0)==0)){w=33;break A}if(u>>>0<p>>>0)u=u+1|0;else break}if(L=o,n[L>>2]=0,n[L+4>>2]=0,(q|0)>(s|0)){for(L=t&-15728641,B=q;;){if(I=B,B=B+-1|0,B>>>0>15|(q|0)<(B|0)){w=19;break}if((q|0)!=(B|0))if(u=iA(B|0,0,52)|0,u=u|r,p=C()|0|L,(q|0)<(I|0))M=u;else{w=B;do M=iA(7,0,(14-w|0)*3|0)|0,w=w+1|0,u=M|u,p=C()|0|p;while((w|0)<(q|0));M=u}else M=r,p=t;if(T=K(M|0,p|0,45)|0,C()|0,!(ee(T&127)|0))u=0;else{T=K(M|0,p|0,52)|0,C()|0,T=T&15;e:do if(!T)u=0;else for(w=1;;){if(u=K(M|0,p|0,(15-w|0)*3|0)|0,C()|0,u=u&7,u|0)break e;if(w>>>0<T>>>0)w=w+1|0;else{u=0;break}}while(!1);u=(u|0)==0&1}if(p=K(r|0,t|0,(15-I|0)*3|0)|0,C()|0,p=p&7,(p|0)==7){l=5,w=42;break}if(u=(u|0)!=0,(p|0)==1&u){l=5,w=42;break}if(M=p+(((p|0)!=0&u)<<31>>31)|0,M|0&&(w=q-I|0,w=ut(7,0,w,((w|0)<0)<<31>>31)|0,T=C()|0,u?(u=ce(w|0,T|0,5,0)|0,u=wA(u|0,C()|0,-5,-1)|0,u=ft(u|0,C()|0,6,0)|0,u=wA(u|0,C()|0,1,0)|0,p=C()|0):(u=w,p=T),I=M+-1|0,I=ce(w|0,T|0,I|0,((I|0)<0)<<31>>31|0)|0,I=wA(u|0,p|0,I|0,C()|0)|0,M=C()|0,T=o,T=wA(I|0,M|0,n[T>>2]|0,n[T+4>>2]|0)|0,M=C()|0,I=o,n[I>>2]=T,n[I+4>>2]=M),(B|0)<=(s|0)){w=37;break}}if((w|0)==19)bA(27795,27122,1367,27158);else if((w|0)==37){f=o,l=n[f+4>>2]|0,f=n[f>>2]|0;break}else if((w|0)==42)return b=V,l|0}else l=0,f=0}else w=33;while(!1);A:do if((w|0)==33)if(L=o,n[L>>2]=0,n[L+4>>2]=0,(q|0)>(s|0)){for(u=q;;){if(l=K(r|0,t|0,(15-u|0)*3|0)|0,C()|0,l=l&7,(l|0)==7){l=5;break}if(f=q-u|0,f=ut(7,0,f,((f|0)<0)<<31>>31)|0,l=ce(f|0,C()|0,l|0,0)|0,f=C()|0,L=o,f=wA(n[L>>2]|0,n[L+4>>2]|0,l|0,f|0)|0,l=C()|0,L=o,n[L>>2]=f,n[L+4>>2]=l,u=u+-1|0,(u|0)<=(s|0))break A}return b=V,l|0}else l=0,f=0;while(!1);return hr(D,d,q,F)|0&&bA(27795,27122,1327,27173),q=F,F=n[q+4>>2]|0,((l|0)>-1|(l|0)==-1&f>>>0>4294967295)&((F|0)>(l|0)|((F|0)==(l|0)?(n[q>>2]|0)>>>0>f>>>0:0))?(q=0,b=V,q|0):(bA(27795,27122,1407,27158),0)}function Gf(r,t,s,o,l,u){r=r|0,t=t|0,s=s|0,o=o|0,l=l|0,u=u|0;var f=0,d=0,p=0,w=0,T=0,M=0,I=0,B=0,L=0,D=0;if(M=b,b=b+16|0,f=M,l>>>0>15)return u=4,b=M,u|0;if(d=K(s|0,o|0,52)|0,C()|0,d=d&15,(d|0)>(l|0))return u=12,b=M,u|0;if(hr(s,o,l,f)|0&&bA(27795,27122,1327,27173),T=f,w=n[T+4>>2]|0,!(((t|0)>-1|(t|0)==-1&r>>>0>4294967295)&((w|0)>(t|0)|((w|0)==(t|0)?(n[T>>2]|0)>>>0>r>>>0:0))))return u=2,b=M,u|0;T=l-d|0,l=iA(l|0,0,52)|0,p=C()|0|o&-15728641,w=u,n[w>>2]=l|s,n[w+4>>2]=p,w=K(s|0,o|0,45)|0,C()|0;A:do if(ee(w&127)|0){if(d|0)for(f=1;;){if(w=iA(7,0,(15-f|0)*3|0)|0,!((w&s|0)==0&((C()|0)&o|0)==0))break A;if(f>>>0<d>>>0)f=f+1|0;else break}if((T|0)<1)return u=0,b=M,u|0;for(w=d^15,o=-1,p=1,f=1;;){d=T-p|0,d=ut(7,0,d,((d|0)<0)<<31>>31)|0,s=C()|0;do if(f)if(f=ce(d|0,s|0,5,0)|0,f=wA(f|0,C()|0,-5,-1)|0,f=ft(f|0,C()|0,6,0)|0,l=C()|0,(t|0)>(l|0)|(t|0)==(l|0)&r>>>0>f>>>0){t=wA(r|0,t|0,-1,-1)|0,t=ue(t|0,C()|0,f|0,l|0)|0,f=C()|0,I=u,L=n[I>>2]|0,I=n[I+4>>2]|0,D=(w+o|0)*3|0,B=iA(7,0,D|0)|0,I=I&~(C()|0),o=ft(t|0,f|0,d|0,s|0)|0,r=C()|0,l=wA(o|0,r|0,2,0)|0,D=iA(l|0,C()|0,D|0)|0,I=C()|0|I,l=u,n[l>>2]=D|L&~B,n[l+4>>2]=I,r=ce(o|0,r|0,d|0,s|0)|0,r=ue(t|0,f|0,r|0,C()|0)|0,f=0,t=C()|0;break}else{D=u,B=n[D>>2]|0,D=n[D+4>>2]|0,L=iA(7,0,(w+o|0)*3|0)|0,D=D&~(C()|0),f=u,n[f>>2]=B&~L,n[f+4>>2]=D,f=1;break}else B=u,l=n[B>>2]|0,B=n[B+4>>2]|0,o=(w+o|0)*3|0,I=iA(7,0,o|0)|0,B=B&~(C()|0),D=ft(r|0,t|0,d|0,s|0)|0,f=C()|0,o=iA(D|0,f|0,o|0)|0,B=C()|0|B,L=u,n[L>>2]=o|l&~I,n[L+4>>2]=B,f=ce(D|0,f|0,d|0,s|0)|0,r=ue(r|0,t|0,f|0,C()|0)|0,f=0,t=C()|0;while(!1);if((T|0)>(p|0))o=~p,p=p+1|0;else{t=0;break}}return b=M,t|0}while(!1);if((T|0)<1)return D=0,b=M,D|0;for(l=d^15,f=1;;)if(L=T-f|0,L=ut(7,0,L,((L|0)<0)<<31>>31)|0,D=C()|0,p=u,s=n[p>>2]|0,p=n[p+4>>2]|0,d=(l-f|0)*3|0,o=iA(7,0,d|0)|0,p=p&~(C()|0),I=ft(r|0,t|0,L|0,D|0)|0,B=C()|0,d=iA(I|0,B|0,d|0)|0,p=C()|0|p,w=u,n[w>>2]=d|s&~o,n[w+4>>2]=p,D=ce(I|0,B|0,L|0,D|0)|0,r=ue(r|0,t|0,D|0,C()|0)|0,t=C()|0,(T|0)<=(f|0)){t=0;break}else f=f+1|0;return b=M,t|0}function u0(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0;l=K(t|0,s|0,52)|0,C()|0,l=l&15,(t|0)==0&(s|0)==0|((o|0)>15|(l|0)>(o|0))?(u=-1,t=-1,s=0,l=0):(t=bs(t,s,l+1|0,o)|0,f=(C()|0)&-15728641,s=iA(o|0,0,52)|0,s=t|s,f=f|(C()|0),t=(JA(s,f)|0)==0,u=l,t=t?-1:o,l=f),f=r,n[f>>2]=s,n[f+4>>2]=l,n[r+8>>2]=u,n[r+12>>2]=t}function Ss(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0;if(l=K(r|0,t|0,52)|0,C()|0,l=l&15,u=o+8|0,n[u>>2]=l,(r|0)==0&(t|0)==0|((s|0)>15|(l|0)>(s|0))){s=o,n[s>>2]=0,n[s+4>>2]=0,n[u>>2]=-1,n[o+12>>2]=-1;return}if(r=bs(r,t,l+1|0,s)|0,u=(C()|0)&-15728641,l=iA(s|0,0,52)|0,l=r|l,u=u|(C()|0),r=o,n[r>>2]=l,n[r+4>>2]=u,r=o+12|0,JA(l,u)|0){n[r>>2]=s;return}else{n[r>>2]=-1;return}}function c0(r){r=r|0;var t=0,s=0,o=0,l=0,u=0,f=0,d=0,p=0,w=0;if(s=r,t=n[s>>2]|0,s=n[s+4>>2]|0,!((t|0)==0&(s|0)==0)&&(o=K(t|0,s|0,52)|0,C()|0,o=o&15,d=iA(1,0,(o^15)*3|0)|0,t=wA(d|0,C()|0,t|0,s|0)|0,s=C()|0,d=r,n[d>>2]=t,n[d+4>>2]=s,d=r+8|0,f=n[d>>2]|0,!((o|0)<(f|0)))){for(p=r+12|0,u=o;;){if((u|0)==(f|0)){o=5;break}if(w=(u|0)==(n[p>>2]|0),l=(15-u|0)*3|0,o=K(t|0,s|0,l|0)|0,C()|0,o=o&7,w&((o|0)==1&!0)){o=7;break}if(!((o|0)==7&!0)){o=10;break}if(w=iA(1,0,l|0)|0,t=wA(t|0,s|0,w|0,C()|0)|0,s=C()|0,w=r,n[w>>2]=t,n[w+4>>2]=s,(u|0)>(f|0))u=u+-1|0;else{o=10;break}}if((o|0)==5){w=r,n[w>>2]=0,n[w+4>>2]=0,n[d>>2]=-1,n[p>>2]=-1;return}else if((o|0)==7){f=iA(1,0,l|0)|0,f=wA(t|0,s|0,f|0,C()|0)|0,d=C()|0,w=r,n[w>>2]=f,n[w+4>>2]=d,n[p>>2]=u+-1;return}else if((o|0)==10)return}}function dr(r){r=+r;var t=0;return t=r<0?r+6.283185307179586:r,+(r>=6.283185307179586?t+-6.283185307179586:t)}function Vt(r,t){return r=r|0,t=t|0,+NA(+(+E[r>>3]-+E[t>>3]))<17453292519943298e-27?(t=+NA(+(+E[r+8>>3]-+E[t+8>>3]))<17453292519943298e-27,t|0):(t=0,t|0)}function Be(r,t){switch(r=+r,t=t|0,t|0){case 1:{r=r<0?r+6.283185307179586:r;break}case 2:{r=r>0?r+-6.283185307179586:r;break}}return+r}function qf(r,t){r=r|0,t=t|0;var s=0,o=0,l=0,u=0;return l=+E[t>>3],o=+E[r>>3],u=+RA(+((l-o)*.5)),s=+RA(+((+E[t+8>>3]-+E[r+8>>3])*.5)),s=u*u+s*(+GA(+l)*+GA(+o)*s),+(+De(+ +FA(+s),+ +FA(+(1-s)))*2)}function gr(r,t){r=r|0,t=t|0;var s=0,o=0,l=0,u=0;return l=+E[t>>3],o=+E[r>>3],u=+RA(+((l-o)*.5)),s=+RA(+((+E[t+8>>3]-+E[r+8>>3])*.5)),s=u*u+s*(+GA(+l)*+GA(+o)*s),+(+De(+ +FA(+s),+ +FA(+(1-s)))*2*6371.007180918475)}function Hf(r,t){r=r|0,t=t|0;var s=0,o=0,l=0,u=0;return l=+E[t>>3],o=+E[r>>3],u=+RA(+((l-o)*.5)),s=+RA(+((+E[t+8>>3]-+E[r+8>>3])*.5)),s=u*u+s*(+GA(+l)*+GA(+o)*s),+(+De(+ +FA(+s),+ +FA(+(1-s)))*2*6371.007180918475*1e3)}function jf(r,t){r=r|0,t=t|0;var s=0,o=0,l=0,u=0,f=0;return u=+E[t>>3],o=+GA(+u),l=+E[t+8>>3]-+E[r+8>>3],f=o*+RA(+l),s=+E[r>>3],+ +De(+f,+(+RA(+u)*+GA(+s)-+GA(+l)*(o*+RA(+s))))}function Wf(r,t,s,o){r=r|0,t=+t,s=+s,o=o|0;var l=0,u=0,f=0,d=0;if(s<1e-16){n[o>>2]=n[r>>2],n[o+4>>2]=n[r+4>>2],n[o+8>>2]=n[r+8>>2],n[o+12>>2]=n[r+12>>2];return}u=t<0?t+6.283185307179586:t,u=t>=6.283185307179586?u+-6.283185307179586:u;do if(u<1e-16)t=+E[r>>3]+s,E[o>>3]=t,l=o;else{if(l=+NA(+(u+-3.141592653589793))<1e-16,t=+E[r>>3],l){t=t-s,E[o>>3]=t,l=o;break}if(f=+GA(+s),s=+RA(+s),t=f*+RA(+t)+ +GA(+u)*(s*+GA(+t)),t=t>1?1:t,t=+Dc(+(t<-1?-1:t)),E[o>>3]=t,+NA(+(t+-1.5707963267948966))<1e-16){E[o>>3]=1.5707963267948966,E[o+8>>3]=0;return}if(+NA(+(t+1.5707963267948966))<1e-16){E[o>>3]=-1.5707963267948966,E[o+8>>3]=0;return}if(d=1/+GA(+t),u=s*+RA(+u)*d,s=+E[r>>3],t=d*((f-+RA(+t)*+RA(+s))/+GA(+s)),f=u>1?1:u,t=t>1?1:t,t=+E[r+8>>3]+ +De(+(f<-1?-1:f),+(t<-1?-1:t)),t>3.141592653589793)do t=t+-6.283185307179586;while(t>3.141592653589793);if(t<-3.141592653589793)do t=t+6.283185307179586;while(t<-3.141592653589793);E[o+8>>3]=t;return}while(!1);if(+NA(+(t+-1.5707963267948966))<1e-16){E[l>>3]=1.5707963267948966,E[o+8>>3]=0;return}if(+NA(+(t+1.5707963267948966))<1e-16){E[l>>3]=-1.5707963267948966,E[o+8>>3]=0;return}if(t=+E[r+8>>3],t>3.141592653589793)do t=t+-6.283185307179586;while(t>3.141592653589793);if(t<-3.141592653589793)do t=t+6.283185307179586;while(t<-3.141592653589793);E[o+8>>3]=t}function Is(r,t){return r=r|0,t=t|0,r>>>0>15?(t=4,t|0):(E[t>>3]=+E[20656+(r<<3)>>3],t=0,t|0)}function Yf(r,t){return r=r|0,t=t|0,r>>>0>15?(t=4,t|0):(E[t>>3]=+E[20784+(r<<3)>>3],t=0,t|0)}function Zf(r,t){return r=r|0,t=t|0,r>>>0>15?(t=4,t|0):(E[t>>3]=+E[20912+(r<<3)>>3],t=0,t|0)}function Xf(r,t){return r=r|0,t=t|0,r>>>0>15?(t=4,t|0):(E[t>>3]=+E[21040+(r<<3)>>3],t=0,t|0)}function kr(r,t){r=r|0,t=t|0;var s=0;return r>>>0>15?(t=4,t|0):(s=ut(7,0,r,((r|0)<0)<<31>>31)|0,s=ce(s|0,C()|0,120,0)|0,r=C()|0,n[t>>2]=s|2,n[t+4>>2]=r,t=0,t|0)}function Bs(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0;return I=+E[t>>3],T=+E[r>>3],p=+RA(+((I-T)*.5)),u=+E[t+8>>3],w=+E[r+8>>3],f=+RA(+((u-w)*.5)),d=+GA(+T),M=+GA(+I),f=p*p+f*(M*d*f),f=+De(+ +FA(+f),+ +FA(+(1-f)))*2,p=+E[s>>3],I=+RA(+((p-I)*.5)),o=+E[s+8>>3],u=+RA(+((o-u)*.5)),l=+GA(+p),u=I*I+u*(M*l*u),u=+De(+ +FA(+u),+ +FA(+(1-u)))*2,p=+RA(+((T-p)*.5)),o=+RA(+((w-o)*.5)),o=p*p+o*(d*l*o),o=+De(+ +FA(+o),+ +FA(+(1-o)))*2,l=(f+u+o)*.5,+(+qn(+ +FA(+(+Re(+(l*.5))*+Re(+((l-f)*.5))*+Re(+((l-u)*.5))*+Re(+((l-o)*.5)))))*4)}function f0(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0,f=0,d=0;if(d=b,b=b+192|0,u=d+168|0,f=d,l=Et(r,t,u)|0,l|0)return s=l,b=d,s|0;if(Qt(r,t,f)|0&&bA(27795,27190,415,27199),t=n[f>>2]|0,(t|0)>0){if(o=+Bs(f+8|0,f+8+(((t|0)!=1&1)<<4)|0,u)+0,(t|0)!=1){r=1;do l=r,r=r+1|0,o=o+ +Bs(f+8+(l<<4)|0,f+8+(((r|0)%(t|0)|0)<<4)|0,u);while((r|0)<(t|0))}}else o=0;return E[s>>3]=o,s=0,b=d,s|0}function Jf(r,t,s){return r=r|0,t=t|0,s=s|0,r=f0(r,t,s)|0,r|0||(E[s>>3]=+E[s>>3]*6371.007180918475*6371.007180918475),r|0}function Kf(r,t,s){return r=r|0,t=t|0,s=s|0,r=f0(r,t,s)|0,r|0||(E[s>>3]=+E[s>>3]*6371.007180918475*6371.007180918475*1e3*1e3),r|0}function $f(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0,f=0,d=0,p=0,w=0,T=0;if(d=b,b=b+176|0,f=d,r=Or(r,t,f)|0,r|0)return f=r,b=d,f|0;if(E[s>>3]=0,r=n[f>>2]|0,(r|0)<=1)return f=0,b=d,f|0;t=r+-1|0,r=0,o=+E[f+8>>3],l=+E[f+16>>3],u=0;do r=r+1|0,w=o,o=+E[f+8+(r<<4)>>3],T=+RA(+((o-w)*.5)),p=l,l=+E[f+8+(r<<4)+8>>3],p=+RA(+((l-p)*.5)),p=T*T+p*(+GA(+o)*+GA(+w)*p),u=u+ +De(+ +FA(+p),+ +FA(+(1-p)))*2;while((r|0)<(t|0));return E[s>>3]=u,f=0,b=d,f|0}function Ah(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0,f=0,d=0,p=0,w=0,T=0;if(d=b,b=b+176|0,f=d,r=Or(r,t,f)|0,r|0)return f=r,u=+E[s>>3],u=u*6371.007180918475,E[s>>3]=u,b=d,f|0;if(E[s>>3]=0,r=n[f>>2]|0,(r|0)<=1)return f=0,u=0,u=u*6371.007180918475,E[s>>3]=u,b=d,f|0;t=r+-1|0,r=0,o=+E[f+8>>3],l=+E[f+16>>3],u=0;do r=r+1|0,w=o,o=+E[f+8+(r<<4)>>3],T=+RA(+((o-w)*.5)),p=l,l=+E[f+8+(r<<4)+8>>3],p=+RA(+((l-p)*.5)),p=T*T+p*(+GA(+w)*+GA(+o)*p),u=u+ +De(+ +FA(+p),+ +FA(+(1-p)))*2;while((r|0)!=(t|0));return E[s>>3]=u,f=0,T=u,T=T*6371.007180918475,E[s>>3]=T,b=d,f|0}function eh(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0,f=0,d=0,p=0,w=0,T=0;if(d=b,b=b+176|0,f=d,r=Or(r,t,f)|0,r|0)return f=r,u=+E[s>>3],u=u*6371.007180918475,u=u*1e3,E[s>>3]=u,b=d,f|0;if(E[s>>3]=0,r=n[f>>2]|0,(r|0)<=1)return f=0,u=0,u=u*6371.007180918475,u=u*1e3,E[s>>3]=u,b=d,f|0;t=r+-1|0,r=0,o=+E[f+8>>3],l=+E[f+16>>3],u=0;do r=r+1|0,w=o,o=+E[f+8+(r<<4)>>3],T=+RA(+((o-w)*.5)),p=l,l=+E[f+8+(r<<4)+8>>3],p=+RA(+((l-p)*.5)),p=T*T+p*(+GA(+w)*+GA(+o)*p),u=u+ +De(+ +FA(+p),+ +FA(+(1-p)))*2;while((r|0)!=(t|0));return E[s>>3]=u,f=0,T=u,T=T*6371.007180918475,T=T*1e3,E[s>>3]=T,b=d,f|0}function th(r){r=r|0;var t=0,s=0,o=0;return t=Me(1,12)|0,t||bA(27280,27235,49,27293),s=r+4|0,o=n[s>>2]|0,o|0?(o=o+8|0,n[o>>2]=t,n[s>>2]=t,t|0):(n[r>>2]|0&&bA(27310,27235,61,27333),o=r,n[o>>2]=t,n[s>>2]=t,t|0)}function rh(r,t){r=r|0,t=t|0;var s=0,o=0;return o=Ye(24)|0,o||bA(27347,27235,78,27361),n[o>>2]=n[t>>2],n[o+4>>2]=n[t+4>>2],n[o+8>>2]=n[t+8>>2],n[o+12>>2]=n[t+12>>2],n[o+16>>2]=0,t=r+4|0,s=n[t>>2]|0,s|0?(n[s+16>>2]=o,n[t>>2]=o,o|0):(n[r>>2]|0&&bA(27376,27235,82,27361),n[r>>2]=o,n[t>>2]=o,o|0)}function Ls(r){r=r|0;var t=0,s=0,o=0,l=0;if(r)for(o=1;;){if(t=n[r>>2]|0,t|0)do{if(s=n[t>>2]|0,s|0)do l=s,s=n[s+16>>2]|0,TA(l);while((s|0)!=0);l=t,t=n[t+8>>2]|0,TA(l)}while((t|0)!=0);if(t=r,r=n[r+8>>2]|0,o||TA(t),r)o=0;else break}}function nh(r){r=r|0;var t=0,s=0,o=0,l=0,u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0,B=0,L=0,D=0,F=0,q=0,V=0,Q=0,O=0,oA=0,gA=0,hA=0,SA=0,BA=0,DA=0,EA=0,pA=0,sA=0,xA=0,YA=0,PA=0;if(l=r+8|0,n[l>>2]|0)return PA=1,PA|0;if(o=n[r>>2]|0,!o)return PA=0,PA|0;t=o,s=0;do s=s+1|0,t=n[t+8>>2]|0;while((t|0)!=0);if(s>>>0<2)return PA=0,PA|0;xA=Ye(s<<2)|0,xA||bA(27396,27235,317,27415),sA=Ye(s<<5)|0,sA||bA(27437,27235,321,27415),n[r>>2]=0,gA=r+4|0,n[gA>>2]=0,n[l>>2]=0,s=0,pA=0,oA=0,M=0;A:for(;;){if(T=n[o>>2]|0,T){u=0,f=T;do{if(p=+E[f+8>>3],t=f,f=n[f+16>>2]|0,w=(f|0)==0,l=w?T:f,d=+E[l+8>>3],+NA(+(p-d))>3.141592653589793){PA=14;break}u=u+(d-p)*(+E[t>>3]+ +E[l>>3])}while(!w);if((PA|0)==14){PA=0,u=0,t=T;do O=+E[t+8>>3],EA=t+16|0,DA=n[EA>>2]|0,DA=(DA|0)==0?T:DA,Q=+E[DA+8>>3],u=u+(+E[t>>3]+ +E[DA>>3])*((Q<0?Q+6.283185307179586:Q)-(O<0?O+6.283185307179586:O)),t=n[((t|0)==0?o:EA)>>2]|0;while((t|0)!=0)}u>0?(n[xA+(pA<<2)>>2]=o,pA=pA+1|0,l=oA,t=M):PA=19}else PA=19;if((PA|0)==19){PA=0;do if(s){if(t=s+8|0,n[t>>2]|0){PA=21;break A}if(s=Me(1,12)|0,!s){PA=23;break A}n[t>>2]=s,l=s+4|0,f=s,t=M}else if(M){l=gA,f=M+8|0,t=o,s=r;break}else if(n[r>>2]|0){PA=27;break A}else{l=gA,f=r,t=o,s=r;break}while(!1);if(n[f>>2]=o,n[l>>2]=o,f=sA+(oA<<5)|0,w=n[o>>2]|0,w){for(T=sA+(oA<<5)+8|0,E[T>>3]=17976931348623157e292,M=sA+(oA<<5)+24|0,E[M>>3]=17976931348623157e292,E[f>>3]=-17976931348623157e292,I=sA+(oA<<5)+16|0,E[I>>3]=-17976931348623157e292,q=17976931348623157e292,V=-17976931348623157e292,l=0,B=w,p=17976931348623157e292,D=17976931348623157e292,F=-17976931348623157e292,d=-17976931348623157e292;u=+E[B>>3],O=+E[B+8>>3],B=n[B+16>>2]|0,L=(B|0)==0,Q=+E[(L?w:B)+8>>3],u<p&&(E[T>>3]=u,p=u),O<D&&(E[M>>3]=O,D=O),u>F?E[f>>3]=u:u=F,O>d&&(E[I>>3]=O,d=O),q=O>0&O<q?O:q,V=O<0&O>V?O:V,l=l|+NA(+(O-Q))>3.141592653589793,!L;)F=u;l&&(E[I>>3]=V,E[M>>3]=q)}else n[f>>2]=0,n[f+4>>2]=0,n[f+8>>2]=0,n[f+12>>2]=0,n[f+16>>2]=0,n[f+20>>2]=0,n[f+24>>2]=0,n[f+28>>2]=0;l=oA+1|0}if(EA=o+8|0,o=n[EA>>2]|0,n[EA>>2]=0,o)oA=l,M=t;else{PA=45;break}}if((PA|0)==21)bA(27213,27235,35,27247);else if((PA|0)==23)bA(27267,27235,37,27247);else if((PA|0)==27)bA(27310,27235,61,27333);else if((PA|0)==45){A:do if((pA|0)>0){for(EA=(l|0)==0,BA=l<<2,DA=(r|0)==0,SA=0,t=0;;){if(hA=n[xA+(SA<<2)>>2]|0,EA)PA=73;else{if(oA=Ye(BA)|0,!oA){PA=50;break}if(gA=Ye(BA)|0,!gA){PA=52;break}e:do if(DA)s=0;else{for(l=0,s=0,f=r;o=sA+(l<<5)|0,Ps(n[f>>2]|0,o,n[hA>>2]|0)|0?(n[oA+(s<<2)>>2]=f,n[gA+(s<<2)>>2]=o,L=s+1|0):L=s,f=n[f+8>>2]|0,f;)l=l+1|0,s=L;if((L|0)>0)if(o=n[oA>>2]|0,(L|0)==1)s=o;else for(I=0,B=-1,s=o,M=o;;){for(w=n[M>>2]|0,o=0,f=0;l=n[n[oA+(f<<2)>>2]>>2]|0,(l|0)==(w|0)?T=o:T=o+((Ps(l,n[gA+(f<<2)>>2]|0,n[w>>2]|0)|0)&1)|0,f=f+1|0,(f|0)!=(L|0);)o=T;if(l=(T|0)>(B|0),s=l?M:s,o=I+1|0,(o|0)==(L|0))break e;I=o,B=l?T:B,M=n[oA+(o<<2)>>2]|0}else s=0}while(!1);if(TA(oA),TA(gA),s){if(l=s+4|0,o=n[l>>2]|0,o)s=o+8|0;else if(n[s>>2]|0){PA=70;break}n[s>>2]=hA,n[l>>2]=hA}else PA=73}if((PA|0)==73){if(PA=0,t=n[hA>>2]|0,t|0)do gA=t,t=n[t+16>>2]|0,TA(gA);while((t|0)!=0);TA(hA),t=1}if(SA=SA+1|0,(SA|0)>=(pA|0)){YA=t;break A}}(PA|0)==50?bA(27452,27235,249,27471):(PA|0)==52?bA(27490,27235,252,27471):(PA|0)==70&&bA(27310,27235,61,27333)}else YA=0;while(!1);return TA(xA),TA(sA),PA=YA,PA|0}return 0}function Ps(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0,f=0,d=0,p=0,w=0,T=0;if(!(Xn(t,s)|0)||(t=ls(t)|0,o=+E[s>>3],l=+E[s+8>>3],l=t&l<0?l+6.283185307179586:l,r=n[r>>2]|0,!r))return r=0,r|0;if(t){t=0,w=l,s=r;A:for(;;){for(;f=+E[s>>3],l=+E[s+8>>3],s=s+16|0,T=n[s>>2]|0,T=(T|0)==0?r:T,u=+E[T>>3],d=+E[T+8>>3],f>u?(p=f,f=d):(p=u,u=f,f=l,l=d),o=o==u|o==p?o+2220446049250313e-31:o,!!(o<u|o>p);)if(s=n[s>>2]|0,!s){s=22;break A}if(d=f<0?f+6.283185307179586:f,f=l<0?l+6.283185307179586:l,w=d==w|f==w?w+-2220446049250313e-31:w,p=d+(f-d)*((o-u)/(p-u)),(p<0?p+6.283185307179586:p)>w&&(t=t^1),s=n[s>>2]|0,!s){s=22;break}}if((s|0)==22)return t|0}else{t=0,w=l,s=r;A:for(;;){for(;f=+E[s>>3],l=+E[s+8>>3],s=s+16|0,T=n[s>>2]|0,T=(T|0)==0?r:T,u=+E[T>>3],d=+E[T+8>>3],f>u?(p=f,f=d):(p=u,u=f,f=l,l=d),o=o==u|o==p?o+2220446049250313e-31:o,!!(o<u|o>p);)if(s=n[s>>2]|0,!s){s=22;break A}if(w=f==w|l==w?w+-2220446049250313e-31:w,f+(l-f)*((o-u)/(p-u))>w&&(t=t^1),s=n[s>>2]|0,!s){s=22;break}}if((s|0)==22)return t|0}return 0}function tt(r,t,s,o,l){r=r|0,t=t|0,s=s|0,o=o|0,l=l|0;var u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0,B=0,L=0,D=0,F=0,q=0,V=0;if(V=b,b=b+32|0,q=V+16|0,F=V,u=K(r|0,t|0,52)|0,C()|0,u=u&15,B=K(s|0,o|0,52)|0,C()|0,(u|0)!=(B&15|0))return q=12,b=V,q|0;if(w=K(r|0,t|0,45)|0,C()|0,w=w&127,T=K(s|0,o|0,45)|0,C()|0,T=T&127,w>>>0>121|T>>>0>121)return q=5,b=V,q|0;if(B=(w|0)!=(T|0),B){if(d=Zn(w,T)|0,(d|0)==7)return q=1,b=V,q|0;p=Zn(T,w)|0,(p|0)==7?bA(27514,27538,161,27548):(L=d,f=p)}else L=0,f=0;M=ee(w)|0,I=ee(T)|0,n[q>>2]=0,n[q+4>>2]=0,n[q+8>>2]=0,n[q+12>>2]=0;do if(L){if(T=n[4272+(w*28|0)+(L<<2)>>2]|0,d=(T|0)>0,I)if(d){w=0,p=s,d=o;do p=Ff(p,d)|0,d=C()|0,f=lt(f)|0,(f|0)==1&&(f=lt(1)|0),w=w+1|0;while((w|0)!=(T|0));T=f,w=p,p=d}else T=f,w=s,p=o;else if(d){w=0,p=s,d=o;do p=s0(p,d)|0,d=C()|0,f=lt(f)|0,w=w+1|0;while((w|0)!=(T|0));T=f,w=p,p=d}else T=f,w=s,p=o;if(a0(w,p,q)|0,B||bA(27563,27538,191,27548),d=(M|0)!=0,f=(I|0)!=0,d&f&&bA(27590,27538,192,27548),d){if(f=be(r,t)|0,(f|0)==7){u=5;break}if(AA[22e3+(f*7|0)+L>>0]|0){u=1;break}p=n[21168+(f*28|0)+(L<<2)>>2]|0,w=p}else if(f){if(f=be(w,p)|0,(f|0)==7){u=5;break}if(AA[22e3+(f*7|0)+T>>0]|0){u=1;break}w=0,p=n[21168+(T*28|0)+(f<<2)>>2]|0}else w=0,p=0;if((w|p|0)<0)u=5;else{if((p|0)>0){d=q+4|0,f=0;do Dr(d),f=f+1|0;while((f|0)!=(p|0))}if(n[F>>2]=0,n[F+4>>2]=0,n[F+8>>2]=0,gs(F,L),u|0)for(;Oe(u)|0?Rr(F):Tt(F),(u|0)>1;)u=u+-1|0;if((w|0)>0){u=0;do Dr(F),u=u+1|0;while((u|0)!=(w|0))}D=q+4|0,Te(D,F,D),pe(D),D=51}}else if(a0(s,o,q)|0,(M|0)!=0&(I|0)!=0)if((T|0)!=(w|0)&&bA(27621,27538,261,27548),f=be(r,t)|0,u=be(s,o)|0,(f|0)==7|(u|0)==7)u=5;else if(AA[22e3+(f*7|0)+u>>0]|0)u=1;else if(f=n[21168+(f*28|0)+(u<<2)>>2]|0,(f|0)>0){d=q+4|0,u=0;do Dr(d),u=u+1|0;while((u|0)!=(f|0));D=51}else D=51;else D=51;while(!1);return(D|0)==51&&(u=q+4|0,n[l>>2]=n[u>>2],n[l+4>>2]=n[u+4>>2],n[l+8>>2]=n[u+8>>2],u=0),q=u,b=V,q|0}function xs(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0,B=0,L=0,D=0,F=0,q=0,V=0,Q=0;if(D=b,b=b+48|0,w=D+36|0,f=D+24|0,d=D+12|0,p=D,l=K(r|0,t|0,52)|0,C()|0,l=l&15,I=K(r|0,t|0,45)|0,C()|0,I=I&127,I>>>0>121)return o=5,b=D,o|0;if(T=ee(I)|0,iA(l|0,0,52)|0,F=C()|0|134225919,u=o,n[u>>2]=-1,n[u+4>>2]=F,!l)return l=Nr(s)|0,(l|0)==7||(l=Yn(I,l)|0,(l|0)==127)?(F=1,b=D,F|0):(B=iA(l|0,0,45)|0,L=C()|0,I=o,L=n[I+4>>2]&-1040385|L,F=o,n[F>>2]=n[I>>2]|B,n[F+4>>2]=L,F=0,b=D,F|0);for(n[w>>2]=n[s>>2],n[w+4>>2]=n[s+4>>2],n[w+8>>2]=n[s+8>>2],s=l;;){if(u=s,s=s+-1|0,n[f>>2]=n[w>>2],n[f+4>>2]=n[w+4>>2],n[f+8>>2]=n[w+8>>2],Oe(u)|0){if(l=ff(w)|0,l|0){s=13;break}n[d>>2]=n[w>>2],n[d+4>>2]=n[w+4>>2],n[d+8>>2]=n[w+8>>2],Rr(d)}else{if(l=hf(w)|0,l|0){s=13;break}n[d>>2]=n[w>>2],n[d+4>>2]=n[w+4>>2],n[d+8>>2]=n[w+8>>2],Tt(d)}if(Kn(f,d,p),pe(p),l=o,V=n[l>>2]|0,l=n[l+4>>2]|0,Q=(15-u|0)*3|0,q=iA(7,0,Q|0)|0,l=l&~(C()|0),Q=iA(Nr(p)|0,0,Q|0)|0,l=C()|0|l,F=o,n[F>>2]=Q|V&~q,n[F+4>>2]=l,(u|0)<=1){s=14;break}}A:do if((s|0)!=13&&(s|0)==14)if((n[w>>2]|0)<=1&&(n[w+4>>2]|0)<=1&&(n[w+8>>2]|0)<=1){s=Nr(w)|0,l=Yn(I,s)|0,(l|0)==127?p=0:p=ee(l)|0;e:do if(s){if(T){if(l=be(r,t)|0,(l|0)==7){l=5;break A}if(u=n[21376+(l*28|0)+(s<<2)>>2]|0,(u|0)>0){l=s,s=0;do l=vt(l)|0,s=s+1|0;while((s|0)!=(u|0))}else l=s;if((l|0)==1){l=9;break A}s=Yn(I,l)|0,(s|0)==127&&bA(27648,27538,411,27678),ee(s)|0?bA(27693,27538,412,27678):(L=s,B=u,M=l)}else L=l,B=0,M=s;if(d=n[4272+(I*28|0)+(M<<2)>>2]|0,(d|0)<=-1&&bA(27724,27538,419,27678),!p){if((B|0)<0){l=5;break A}if(B|0){u=o,l=0,s=n[u>>2]|0,u=n[u+4>>2]|0;do s=_t(s,u)|0,u=C()|0,Q=o,n[Q>>2]=s,n[Q+4>>2]=u,l=l+1|0;while((l|0)<(B|0))}if((d|0)<=0){l=L,s=58;break}for(u=o,l=0,s=n[u>>2]|0,u=n[u+4>>2]|0;;)if(s=_t(s,u)|0,u=C()|0,Q=o,n[Q>>2]=s,n[Q+4>>2]=u,l=l+1|0,(l|0)==(d|0)){l=L,s=58;break e}}if(f=Zn(L,I)|0,(f|0)==7&&bA(27514,27538,428,27678),l=o,s=n[l>>2]|0,l=n[l+4>>2]|0,(d|0)>0){u=0;do s=_t(s,l)|0,l=C()|0,Q=o,n[Q>>2]=s,n[Q+4>>2]=l,u=u+1|0;while((u|0)!=(d|0))}if(l=be(s,l)|0,(l|0)==7&&bA(27795,27538,440,27678),s=Wn(L)|0,s=n[(s?21792:21584)+(f*28|0)+(l<<2)>>2]|0,(s|0)<0&&bA(27795,27538,454,27678),!s)l=L,s=58;else{f=o,l=0,u=n[f>>2]|0,f=n[f+4>>2]|0;do u=i0(u,f)|0,f=C()|0,Q=o,n[Q>>2]=u,n[Q+4>>2]=f,l=l+1|0;while((l|0)<(s|0));l=L,s=58}}else if((T|0)!=0&(p|0)!=0){if(s=be(r,t)|0,u=o,u=be(n[u>>2]|0,n[u+4>>2]|0)|0,(s|0)==7|(u|0)==7){l=5;break A}if(u=n[21376+(s*28|0)+(u<<2)>>2]|0,(u|0)<0){l=5;break A}if(!u)s=59;else{d=o,s=0,f=n[d>>2]|0,d=n[d+4>>2]|0;do f=_t(f,d)|0,d=C()|0,Q=o,n[Q>>2]=f,n[Q+4>>2]=d,s=s+1|0;while((s|0)<(u|0));s=58}}else s=58;while(!1);if((s|0)==58&&p&&(s=59),(s|0)==59&&(Q=o,(be(n[Q>>2]|0,n[Q+4>>2]|0)|0)==1)){l=9;break}Q=o,q=n[Q>>2]|0,Q=n[Q+4>>2]&-1040385,V=iA(l|0,0,45)|0,Q=Q|(C()|0),l=o,n[l>>2]=q|V,n[l+4>>2]=Q,l=0}else l=1;while(!1);return Q=l,b=D,Q|0}function ih(r,t,s,o,l,u){r=r|0,t=t|0,s=s|0,o=o|0,l=l|0,u=u|0;var f=0,d=0;return d=b,b=b+16|0,f=d,l?r=15:(r=tt(r,t,s,o,f)|0,r||(gf(f,u),r=0)),b=d,r|0}function sh(r,t,s,o,l){r=r|0,t=t|0,s=s|0,o=o|0,l=l|0;var u=0,f=0;return f=b,b=b+16|0,u=f,o?s=15:(s=pf(s,u)|0,s||(s=xs(r,t,u,l)|0)),b=f,s|0}function oh(r,t,s,o,l){r=r|0,t=t|0,s=s|0,o=o|0,l=l|0;var u=0,f=0,d=0,p=0;return p=b,b=b+32|0,f=p+12|0,d=p,u=tt(r,t,r,t,f)|0,u|0?(d=u,b=p,d|0):(r=tt(r,t,s,o,d)|0,r|0?(d=r,b=p,d|0):(f=$n(f,d)|0,d=l,n[d>>2]=f,n[d+4>>2]=((f|0)<0)<<31>>31,d=0,b=p,d|0))}function ah(r,t,s,o,l){r=r|0,t=t|0,s=s|0,o=o|0,l=l|0;var u=0,f=0,d=0,p=0;return p=b,b=b+32|0,f=p+12|0,d=p,u=tt(r,t,r,t,f)|0,!u&&(u=tt(r,t,s,o,d)|0,!u)?(o=$n(f,d)|0,o=wA(o|0,((o|0)<0)<<31>>31|0,1,0)|0,f=C()|0,d=l,n[d>>2]=o,n[d+4>>2]=f,d=0,b=p,d|0):(d=u,b=p,d|0)}function lh(r,t,s,o,l){r=r|0,t=t|0,s=s|0,o=o|0,l=l|0;var u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0,B=0,L=0,D=0,F=0,q=0,V=0,Q=0,O=0,oA=0,gA=0,hA=0,SA=0;if(hA=b,b=b+48|0,oA=hA+24|0,f=hA+12|0,gA=hA,u=tt(r,t,r,t,oA)|0,!u&&(u=tt(r,t,s,o,f)|0,!u)){Q=$n(oA,f)|0,O=((Q|0)<0)<<31>>31,n[oA>>2]=0,n[oA+4>>2]=0,n[oA+8>>2]=0,n[f>>2]=0,n[f+4>>2]=0,n[f+8>>2]=0,tt(r,t,r,t,oA)|0&&bA(27795,27538,692,27747),tt(r,t,s,o,f)|0&&bA(27795,27538,697,27747),ys(oA),ys(f),T=(Q|0)==0?0:1/+(Q|0),s=n[oA>>2]|0,D=T*+((n[f>>2]|0)-s|0),F=oA+4|0,o=n[F>>2]|0,q=T*+((n[f+4>>2]|0)-o|0),V=oA+8|0,u=n[V>>2]|0,T=T*+((n[f+8>>2]|0)-u|0),n[gA>>2]=s,M=gA+4|0,n[M>>2]=o,I=gA+8|0,n[I>>2]=u;A:do if((Q|0)<0)u=0;else for(B=0,L=0;;){p=+(L>>>0)+4294967296*+(B|0),SA=D*p+ +(s|0),d=q*p+ +(o|0),p=T*p+ +(u|0),s=~~+Vr(+SA),f=~~+Vr(+d),u=~~+Vr(+p),SA=+NA(+(+(s|0)-SA)),d=+NA(+(+(f|0)-d)),p=+NA(+(+(u|0)-p));do if(SA>d&SA>p)s=0-(f+u)|0,o=f;else if(w=0-s|0,d>p){o=w-u|0;break}else{o=f,u=w-f|0;break}while(!1);if(n[gA>>2]=s,n[M>>2]=o,n[I>>2]=u,mf(gA),u=xs(r,t,gA,l+(L<<3)|0)|0,u|0)break A;if(!((B|0)<(O|0)|(B|0)==(O|0)&L>>>0<Q>>>0)){u=0;break A}s=wA(L|0,B|0,1,0)|0,o=C()|0,B=o,L=s,s=n[oA>>2]|0,o=n[F>>2]|0,u=n[V>>2]|0}while(!1);return gA=u,b=hA,gA|0}return gA=u,b=hA,gA|0}function ut(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0;if((s|0)==0&(o|0)==0)return l=0,u=1,IA(l|0),u|0;u=r,l=t,r=1,t=0;do f=(s&1|0)==0&!0,r=ce((f?1:u)|0,(f?0:l)|0,r|0,t|0)|0,t=C()|0,s=Hs(s|0,o|0,1)|0,o=C()|0,u=ce(u|0,l|0,u|0,l|0)|0,l=C()|0;while(!((s|0)==0&(o|0)==0));return IA(t|0),r|0}function h0(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0,d=0,p=0,w=0,T=0;d=b,b=b+16|0,u=d,f=K(r|0,t|0,52)|0,C()|0,f=f&15;do if(f){if(l=Et(r,t,u)|0,!l){w=+E[u>>3],p=1/+GA(+w),T=+E[25968+(f<<3)>>3],E[s>>3]=w+T,E[s+8>>3]=w-T,w=+E[u+8>>3],p=T*p,E[s+16>>3]=p+w,E[s+24>>3]=w-p;break}return f=l,b=d,f|0}else{if(l=K(r|0,t|0,45)|0,C()|0,l=l&127,l>>>0>121)return f=5,b=d,f|0;u=22064+(l<<5)|0,n[s>>2]=n[u>>2],n[s+4>>2]=n[u+4>>2],n[s+8>>2]=n[u+8>>2],n[s+12>>2]=n[u+12>>2],n[s+16>>2]=n[u+16>>2],n[s+20>>2]=n[u+20>>2],n[s+24>>2]=n[u+24>>2],n[s+28>>2]=n[u+28>>2];break}while(!1);return lf(s,o?1.4:1.1),o=26096+(f<<3)|0,(n[o>>2]|0)==(r|0)&&(n[o+4>>2]|0)==(t|0)&&(E[s>>3]=1.5707963267948966),f=26224+(f<<3)|0,(n[f>>2]|0)==(r|0)&&(n[f+4>>2]|0)==(t|0)&&(E[s+8>>3]=-1.5707963267948966),+E[s>>3]!=1.5707963267948966&&+E[s+8>>3]!=-1.5707963267948966?(f=0,b=d,f|0):(E[s+16>>3]=3.141592653589793,E[s+24>>3]=-3.141592653589793,f=0,b=d,f|0)}function uh(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0,d=0,p=0,w=0,T=0;w=b,b=b+48|0,f=w+32|0,u=w+40|0,d=w,r0(f,0,0,0),p=n[f>>2]|0,f=n[f+4>>2]|0;do if(s>>>0<=15){if(l=mr(o)|0,l|0){o=d,n[o>>2]=0,n[o+4>>2]=0,n[d+8>>2]=l,n[d+12>>2]=-1,o=d+16|0,p=d+29|0,n[o>>2]=0,n[o+4>>2]=0,n[o+8>>2]=0,AA[o+12>>0]=0,AA[p>>0]=AA[u>>0]|0,AA[p+1>>0]=AA[u+1>>0]|0,AA[p+2>>0]=AA[u+2>>0]|0;break}if(l=Me((n[t+8>>2]|0)+1|0,32)|0,l){d0(t,l),T=d,n[T>>2]=p,n[T+4>>2]=f,n[d+8>>2]=0,n[d+12>>2]=s,n[d+16>>2]=o,n[d+20>>2]=t,n[d+24>>2]=l,AA[d+28>>0]=0,p=d+29|0,AA[p>>0]=AA[u>>0]|0,AA[p+1>>0]=AA[u+1>>0]|0,AA[p+2>>0]=AA[u+2>>0]|0;break}else{o=d,n[o>>2]=0,n[o+4>>2]=0,n[d+8>>2]=13,n[d+12>>2]=-1,o=d+16|0,p=d+29|0,n[o>>2]=0,n[o+4>>2]=0,n[o+8>>2]=0,AA[o+12>>0]=0,AA[p>>0]=AA[u>>0]|0,AA[p+1>>0]=AA[u+1>>0]|0,AA[p+2>>0]=AA[u+2>>0]|0;break}}else p=d,n[p>>2]=0,n[p+4>>2]=0,n[d+8>>2]=4,n[d+12>>2]=-1,p=d+16|0,T=d+29|0,n[p>>2]=0,n[p+4>>2]=0,n[p+8>>2]=0,AA[p+12>>0]=0,AA[T>>0]=AA[u>>0]|0,AA[T+1>>0]=AA[u+1>>0]|0,AA[T+2>>0]=AA[u+2>>0]|0;while(!1);Fr(d),n[r>>2]=n[d>>2],n[r+4>>2]=n[d+4>>2],n[r+8>>2]=n[d+8>>2],n[r+12>>2]=n[d+12>>2],n[r+16>>2]=n[d+16>>2],n[r+20>>2]=n[d+20>>2],n[r+24>>2]=n[d+24>>2],n[r+28>>2]=n[d+28>>2],b=w}function Fr(r){r=r|0;var t=0,s=0,o=0,l=0,u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0,B=0,L=0,D=0,F=0,q=0,V=0,Q=0,O=0;if(O=b,b=b+336|0,B=O+168|0,L=O,o=r,s=n[o>>2]|0,o=n[o+4>>2]|0,(s|0)==0&(o|0)==0){b=O;return}if(t=r+28|0,AA[t>>0]|0?(s=Ns(s,o)|0,o=C()|0):AA[t>>0]=1,Q=r+20|0,!(n[n[Q>>2]>>2]|0)){t=r+24|0,s=n[t>>2]|0,s|0&&TA(s),V=r,n[V>>2]=0,n[V+4>>2]=0,n[r+8>>2]=0,n[Q>>2]=0,n[r+12>>2]=-1,n[r+16>>2]=0,n[t>>2]=0,b=O;return}V=r+16|0,t=n[V>>2]|0,l=t&15;A:do if((s|0)==0&(o|0)==0)q=r+24|0;else{D=r+12|0,M=(l|0)==3,T=t&255,p=(l|1|0)==3,I=r+24|0,w=(l+-1|0)>>>0<3,f=(l|2|0)==3,d=L+8|0;e:for(;;){if(u=K(s|0,o|0,52)|0,C()|0,u=u&15,(u|0)==(n[D>>2]|0)){switch(T&15){case 0:case 2:case 3:{if(l=Et(s,o,B)|0,l|0){F=15;break e}if(g0(n[Q>>2]|0,n[I>>2]|0,B)|0){F=19;break e}break}}if(p&&(l=n[(n[Q>>2]|0)+4>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=n[l+4>>2],n[B+8>>2]=n[l+8>>2],n[B+12>>2]=n[l+12>>2],Xn(26832,B)|0)){if(o0(n[(n[Q>>2]|0)+4>>2]|0,u,L)|0){F=25;break}if(l=L,(n[l>>2]|0)==(s|0)&&(n[l+4>>2]|0)==(o|0)){F=29;break}}if(w){if(l=Qt(s,o,B)|0,l|0){F=32;break}if(h0(s,o,L,0)|0){F=36;break}if(f&&Ds(n[Q>>2]|0,n[I>>2]|0,B,L)|0){F=42;break}if(p&&Os(n[Q>>2]|0,n[I>>2]|0,B,L)|0){F=42;break}}if(M){if(t=h0(s,o,B,1)|0,l=n[I>>2]|0,t|0){F=45;break}if(Jn(l,B)|0){if(cs(L,B),us(B,n[I>>2]|0)|0){F=53;break}if(g0(n[Q>>2]|0,n[I>>2]|0,d)|0){F=53;break}if(Os(n[Q>>2]|0,n[I>>2]|0,L,B)|0){F=53;break}}}}do if((u|0)<(n[D>>2]|0)){if(t=h0(s,o,B,1)|0,l=n[I>>2]|0,t|0){F=58;break e}if(!(Jn(l,B)|0)){F=73;break}if(us(n[I>>2]|0,B)|0&&(cs(L,B),Ds(n[Q>>2]|0,n[I>>2]|0,L,B)|0)){F=65;break e}if(s=Ms(s,o,u+1|0,L)|0,s|0){F=67;break e}o=L,s=n[o>>2]|0,o=n[o+4>>2]|0}else F=73;while(!1);if((F|0)==73&&(F=0,s=Ns(s,o)|0,o=C()|0),(s|0)==0&(o|0)==0){q=I;break A}}switch(F|0){case 15:{t=n[I>>2]|0,t|0&&TA(t),F=r,n[F>>2]=0,n[F+4>>2]=0,n[Q>>2]=0,n[D>>2]=-1,n[V>>2]=0,n[I>>2]=0,n[r+8>>2]=l,F=20;break}case 19:{n[r>>2]=s,n[r+4>>2]=o,F=20;break}case 25:{bA(27795,27761,470,27772);break}case 29:{n[r>>2]=s,n[r+4>>2]=o,b=O;return}case 32:{t=n[I>>2]|0,t|0&&TA(t),q=r,n[q>>2]=0,n[q+4>>2]=0,n[Q>>2]=0,n[D>>2]=-1,n[V>>2]=0,n[I>>2]=0,n[r+8>>2]=l,b=O;return}case 36:{bA(27795,27761,493,27772);break}case 42:{n[r>>2]=s,n[r+4>>2]=o,b=O;return}case 45:{l|0&&TA(l),F=r,n[F>>2]=0,n[F+4>>2]=0,n[Q>>2]=0,n[D>>2]=-1,n[V>>2]=0,n[I>>2]=0,n[r+8>>2]=t,F=55;break}case 53:{n[r>>2]=s,n[r+4>>2]=o,F=55;break}case 58:{l|0&&TA(l),F=r,n[F>>2]=0,n[F+4>>2]=0,n[Q>>2]=0,n[D>>2]=-1,n[V>>2]=0,n[I>>2]=0,n[r+8>>2]=t,F=71;break}case 65:{n[r>>2]=s,n[r+4>>2]=o,F=71;break}case 67:{t=n[I>>2]|0,t|0&&TA(t),q=r,n[q>>2]=0,n[q+4>>2]=0,n[Q>>2]=0,n[D>>2]=-1,n[V>>2]=0,n[I>>2]=0,n[r+8>>2]=s,b=O;return}}if((F|0)==20){b=O;return}else if((F|0)==55){b=O;return}else if((F|0)==71){b=O;return}}while(!1);t=n[q>>2]|0,t|0&&TA(t),F=r,n[F>>2]=0,n[F+4>>2]=0,n[r+8>>2]=0,n[Q>>2]=0,n[r+12>>2]=-1,n[V>>2]=0,n[q>>2]=0,b=O}function Ns(r,t){r=r|0,t=t|0;var s=0,o=0,l=0,u=0,f=0,d=0,p=0,w=0,T=0,M=0;M=b,b=b+16|0,T=M,o=K(r|0,t|0,52)|0,C()|0,o=o&15,s=K(r|0,t|0,45)|0,C()|0;do if(o){for(;s=iA(o+4095|0,0,52)|0,l=C()|0|t&-15728641,u=(15-o|0)*3|0,f=iA(7,0,u|0)|0,d=C()|0,s=s|r|f,l=l|d,p=K(r|0,t|0,u|0)|0,C()|0,p=p&7,o=o+-1|0,!(p>>>0<6);)if(o)t=l,r=s;else{w=4;break}if((w|0)==4){s=K(s|0,l|0,45)|0,C()|0;break}return T=(p|0)==0&(JA(s,l)|0)!=0,T=iA((T?2:1)+p|0,0,u|0)|0,w=C()|0|t&~d,T=T|r&~f,IA(w|0),b=M,T|0}while(!1);return s=s&127,s>>>0>120?(w=0,T=0,IA(w|0),b=M,T|0):(r0(T,0,s+1|0,0),w=n[T+4>>2]|0,T=n[T>>2]|0,IA(w|0),b=M,T|0)}function ch(r,t,s,o,l,u){r=r|0,t=t|0,s=s|0,o=o|0,l=l|0,u=u|0;var f=0,d=0,p=0,w=0,T=0,M=0,I=0,B=0,L=0,D=0,F=0;F=b,b=b+160|0,M=F+80|0,d=F+64|0,I=F+112|0,D=F,uh(M,r,t,s),w=M,u0(d,n[w>>2]|0,n[w+4>>2]|0,t),w=d,p=n[w>>2]|0,w=n[w+4>>2]|0,f=n[M+8>>2]|0,B=I+4|0,n[B>>2]=n[M>>2],n[B+4>>2]=n[M+4>>2],n[B+8>>2]=n[M+8>>2],n[B+12>>2]=n[M+12>>2],n[B+16>>2]=n[M+16>>2],n[B+20>>2]=n[M+20>>2],n[B+24>>2]=n[M+24>>2],n[B+28>>2]=n[M+28>>2],B=D,n[B>>2]=p,n[B+4>>2]=w,B=D+8|0,n[B>>2]=f,r=D+12|0,t=I,s=r+36|0;do n[r>>2]=n[t>>2],r=r+4|0,t=t+4|0;while((r|0)<(s|0));if(I=D+48|0,n[I>>2]=n[d>>2],n[I+4>>2]=n[d+4>>2],n[I+8>>2]=n[d+8>>2],n[I+12>>2]=n[d+12>>2],(p|0)==0&(w|0)==0)return D=f,b=F,D|0;s=D+16|0,T=D+24|0,M=D+28|0,f=0,d=0,t=p,r=w;do{if(!((f|0)<(l|0)|(f|0)==(l|0)&d>>>0<o>>>0)){L=4;break}if(w=d,d=wA(d|0,f|0,1,0)|0,f=C()|0,w=u+(w<<3)|0,n[w>>2]=t,n[w+4>>2]=r,c0(I),r=I,t=n[r>>2]|0,r=n[r+4>>2]|0,(t|0)==0&(r|0)==0){if(Fr(s),t=s,r=n[t>>2]|0,t=n[t+4>>2]|0,(r|0)==0&(t|0)==0){L=10;break}Ss(r,t,n[M>>2]|0,I),r=I,t=n[r>>2]|0,r=n[r+4>>2]|0}w=D,n[w>>2]=t,n[w+4>>2]=r}while(!((t|0)==0&(r|0)==0));return(L|0)==4?(r=D+40|0,t=n[r>>2]|0,t|0&&TA(t),L=D+16|0,n[L>>2]=0,n[L+4>>2]=0,n[T>>2]=0,n[D+36>>2]=0,n[M>>2]=-1,n[D+32>>2]=0,n[r>>2]=0,Ss(0,0,0,I),n[D>>2]=0,n[D+4>>2]=0,n[B>>2]=0,D=14,b=F,D|0):((L|0)==10&&(n[D>>2]=0,n[D+4>>2]=0,n[B>>2]=n[T>>2]),D=n[B>>2]|0,b=F,D|0)}function fh(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0,B=0;if(M=b,b=b+48|0,p=M+32|0,d=M+40|0,w=M,!(n[r>>2]|0))return T=o,n[T>>2]=0,n[T+4>>2]=0,T=0,b=M,T|0;r0(p,0,0,0),f=p,l=n[f>>2]|0,f=n[f+4>>2]|0;do if(t>>>0>15)T=w,n[T>>2]=0,n[T+4>>2]=0,n[w+8>>2]=4,n[w+12>>2]=-1,T=w+16|0,s=w+29|0,n[T>>2]=0,n[T+4>>2]=0,n[T+8>>2]=0,AA[T+12>>0]=0,AA[s>>0]=AA[d>>0]|0,AA[s+1>>0]=AA[d+1>>0]|0,AA[s+2>>0]=AA[d+2>>0]|0,s=4,T=9;else{if(s=mr(s)|0,s|0){p=w,n[p>>2]=0,n[p+4>>2]=0,n[w+8>>2]=s,n[w+12>>2]=-1,p=w+16|0,T=w+29|0,n[p>>2]=0,n[p+4>>2]=0,n[p+8>>2]=0,AA[p+12>>0]=0,AA[T>>0]=AA[d>>0]|0,AA[T+1>>0]=AA[d+1>>0]|0,AA[T+2>>0]=AA[d+2>>0]|0,T=9;break}if(s=Me((n[r+8>>2]|0)+1|0,32)|0,!s){T=w,n[T>>2]=0,n[T+4>>2]=0,n[w+8>>2]=13,n[w+12>>2]=-1,T=w+16|0,s=w+29|0,n[T>>2]=0,n[T+4>>2]=0,n[T+8>>2]=0,AA[T+12>>0]=0,AA[s>>0]=AA[d>>0]|0,AA[s+1>>0]=AA[d+1>>0]|0,AA[s+2>>0]=AA[d+2>>0]|0,s=13,T=9;break}d0(r,s),B=w,n[B>>2]=l,n[B+4>>2]=f,f=w+8|0,n[f>>2]=0,n[w+12>>2]=t,n[w+20>>2]=r,n[w+24>>2]=s,AA[w+28>>0]=0,l=w+29|0,AA[l>>0]=AA[d>>0]|0,AA[l+1>>0]=AA[d+1>>0]|0,AA[l+2>>0]=AA[d+2>>0]|0,n[w+16>>2]=3,I=+sf(s),I=I*+nf(s),u=+NA(+ +E[s>>3]),u=I/+GA(+ +Qr(+u,+ +NA(+ +E[s+8>>3])))*6371.007180918475*6371.007180918475,l=w+12|0,s=n[l>>2]|0;A:do if((s|0)>0)do{if(Is(s+-1|0,p)|0,!(u/+E[p>>3]>10))break A;B=n[l>>2]|0,s=B+-1|0,n[l>>2]=s}while((B|0)>1);while(!1);if(Fr(w),l=o,n[l>>2]=0,n[l+4>>2]=0,l=w,s=n[l>>2]|0,l=n[l+4>>2]|0,!((s|0)==0&(l|0)==0))do hr(s,l,t,p)|0,d=p,r=o,d=wA(n[r>>2]|0,n[r+4>>2]|0,n[d>>2]|0,n[d+4>>2]|0)|0,r=C()|0,B=o,n[B>>2]=d,n[B+4>>2]=r,Fr(w),B=w,s=n[B>>2]|0,l=n[B+4>>2]|0;while(!((s|0)==0&(l|0)==0));s=n[f>>2]|0}while(!1);return B=s,b=M,B|0}function pr(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0;if(!(Xn(t,s)|0)||(t=ls(t)|0,o=+E[s>>3],l=+E[s+8>>3],l=t&l<0?l+6.283185307179586:l,I=n[r>>2]|0,(I|0)<=0))return I=0,I|0;if(M=n[r+4>>2]|0,t){t=0,T=l,s=-1,r=0;A:for(;;){for(w=r;f=+E[M+(w<<4)>>3],l=+E[M+(w<<4)+8>>3],r=(s+2|0)%(I|0)|0,u=+E[M+(r<<4)>>3],d=+E[M+(r<<4)+8>>3],f>u?(p=f,f=d):(p=u,u=f,f=l,l=d),o=o==u|o==p?o+2220446049250313e-31:o,!!(o<u|o>p);)if(s=w+1|0,(s|0)>=(I|0)){s=22;break A}else r=w,w=s,s=r;if(d=f<0?f+6.283185307179586:f,f=l<0?l+6.283185307179586:l,T=d==T|f==T?T+-2220446049250313e-31:T,p=d+(f-d)*((o-u)/(p-u)),(p<0?p+6.283185307179586:p)>T&&(t=t^1),r=w+1|0,(r|0)>=(I|0)){s=22;break}else s=w}if((s|0)==22)return t|0}else{t=0,T=l,s=-1,r=0;A:for(;;){for(w=r;f=+E[M+(w<<4)>>3],l=+E[M+(w<<4)+8>>3],r=(s+2|0)%(I|0)|0,u=+E[M+(r<<4)>>3],d=+E[M+(r<<4)+8>>3],f>u?(p=f,f=d):(p=u,u=f,f=l,l=d),o=o==u|o==p?o+2220446049250313e-31:o,!!(o<u|o>p);)if(s=w+1|0,(s|0)>=(I|0)){s=22;break A}else r=w,w=s,s=r;if(T=f==T|l==T?T+-2220446049250313e-31:T,f+(l-f)*((o-u)/(p-u))>T&&(t=t^1),r=w+1|0,(r|0)>=(I|0)){s=22;break}else s=w}if((s|0)==22)return t|0}return 0}function Rs(r,t){r=r|0,t=t|0;var s=0,o=0,l=0,u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0,B=0,L=0,D=0,F=0,q=0,V=0;if(L=n[r>>2]|0,!L){n[t>>2]=0,n[t+4>>2]=0,n[t+8>>2]=0,n[t+12>>2]=0,n[t+16>>2]=0,n[t+20>>2]=0,n[t+24>>2]=0,n[t+28>>2]=0;return}if(D=t+8|0,E[D>>3]=17976931348623157e292,F=t+24|0,E[F>>3]=17976931348623157e292,E[t>>3]=-17976931348623157e292,q=t+16|0,E[q>>3]=-17976931348623157e292,!((L|0)<=0)){for(I=n[r+4>>2]|0,w=17976931348623157e292,T=-17976931348623157e292,M=0,r=-1,u=17976931348623157e292,f=17976931348623157e292,p=-17976931348623157e292,o=-17976931348623157e292,B=0;s=+E[I+(B<<4)>>3],d=+E[I+(B<<4)+8>>3],r=r+2|0,l=+E[I+(((r|0)==(L|0)?0:r)<<4)+8>>3],s<u&&(E[D>>3]=s,u=s),d<f&&(E[F>>3]=d,f=d),s>p?E[t>>3]=s:s=p,d>o&&(E[q>>3]=d,o=d),w=d>0&d<w?d:w,T=d<0&d>T?d:T,M=M|+NA(+(d-l))>3.141592653589793,r=B+1|0,(r|0)!=(L|0);)V=B,p=s,B=r,r=V;M&&(E[q>>3]=T,E[F>>3]=w)}}function mr(r){return r=r|0,(r>>>0<4?0:15)|0}function d0(r,t){r=r|0,t=t|0;var s=0,o=0,l=0,u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0,B=0,L=0,D=0,F=0,q=0,V=0,Q=0,O=0,oA=0,gA=0,hA=0;if(L=n[r>>2]|0,L){if(D=t+8|0,E[D>>3]=17976931348623157e292,F=t+24|0,E[F>>3]=17976931348623157e292,E[t>>3]=-17976931348623157e292,q=t+16|0,E[q>>3]=-17976931348623157e292,(L|0)>0){for(l=n[r+4>>2]|0,I=17976931348623157e292,B=-17976931348623157e292,o=0,s=-1,p=17976931348623157e292,w=17976931348623157e292,M=-17976931348623157e292,f=-17976931348623157e292,V=0;u=+E[l+(V<<4)>>3],T=+E[l+(V<<4)+8>>3],gA=s+2|0,d=+E[l+(((gA|0)==(L|0)?0:gA)<<4)+8>>3],u<p&&(E[D>>3]=u,p=u),T<w&&(E[F>>3]=T,w=T),u>M?E[t>>3]=u:u=M,T>f&&(E[q>>3]=T,f=T),I=T>0&T<I?T:I,B=T<0&T>B?T:B,o=o|+NA(+(T-d))>3.141592653589793,s=V+1|0,(s|0)!=(L|0);)gA=V,M=u,V=s,s=gA;o&&(E[q>>3]=B,E[F>>3]=I)}}else n[t>>2]=0,n[t+4>>2]=0,n[t+8>>2]=0,n[t+12>>2]=0,n[t+16>>2]=0,n[t+20>>2]=0,n[t+24>>2]=0,n[t+28>>2]=0;if(gA=r+8|0,s=n[gA>>2]|0,!((s|0)<=0)){oA=r+12|0,O=0;do if(l=n[oA>>2]|0,o=O,O=O+1|0,F=t+(O<<5)|0,q=n[l+(o<<3)>>2]|0,q){if(V=t+(O<<5)+8|0,E[V>>3]=17976931348623157e292,r=t+(O<<5)+24|0,E[r>>3]=17976931348623157e292,E[F>>3]=-17976931348623157e292,Q=t+(O<<5)+16|0,E[Q>>3]=-17976931348623157e292,(q|0)>0){for(L=n[l+(o<<3)+4>>2]|0,I=17976931348623157e292,B=-17976931348623157e292,l=0,o=-1,D=0,p=17976931348623157e292,w=17976931348623157e292,T=-17976931348623157e292,f=-17976931348623157e292;u=+E[L+(D<<4)>>3],M=+E[L+(D<<4)+8>>3],o=o+2|0,d=+E[L+(((o|0)==(q|0)?0:o)<<4)+8>>3],u<p&&(E[V>>3]=u,p=u),M<w&&(E[r>>3]=M,w=M),u>T?E[F>>3]=u:u=T,M>f&&(E[Q>>3]=M,f=M),I=M>0&M<I?M:I,B=M<0&M>B?M:B,l=l|+NA(+(M-d))>3.141592653589793,o=D+1|0,(o|0)!=(q|0);)hA=D,D=o,T=u,o=hA;l&&(E[Q>>3]=B,E[r>>3]=I)}}else n[F>>2]=0,n[F+4>>2]=0,n[F+8>>2]=0,n[F+12>>2]=0,n[F+16>>2]=0,n[F+20>>2]=0,n[F+24>>2]=0,n[F+28>>2]=0,s=n[gA>>2]|0;while((O|0)<(s|0))}}function g0(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0;if(!(pr(r,t,s)|0))return l=0,l|0;if(l=r+8|0,(n[l>>2]|0)<=0)return l=1,l|0;for(o=r+12|0,r=0;;){if(u=r,r=r+1|0,pr((n[o>>2]|0)+(u<<3)|0,t+(r<<5)|0,s)|0){r=0,o=6;break}if((r|0)>=(n[l>>2]|0)){r=1,o=6;break}}return(o|0)==6?r|0:0}function Ds(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0,d=0,p=0,w=0,T=0;if(w=b,b=b+16|0,d=w,f=s+8|0,!(pr(r,t,f)|0))return p=0,b=w,p|0;p=r+8|0;A:do if((n[p>>2]|0)>0){for(u=r+12|0,l=0;;){if(T=l,l=l+1|0,pr((n[u>>2]|0)+(T<<3)|0,t+(l<<5)|0,f)|0){l=0;break}if((l|0)>=(n[p>>2]|0))break A}return b=w,l|0}while(!1);if(Ur(r,t,s,o)|0)return T=0,b=w,T|0;n[d>>2]=n[s>>2],n[d+4>>2]=f,l=n[p>>2]|0;A:do if((l|0)>0)for(r=r+12|0,f=0,u=l;;){if(l=n[r>>2]|0,(n[l+(f<<3)>>2]|0)>0){if(pr(d,o,n[l+(f<<3)+4>>2]|0)|0){l=0;break A}if(l=f+1|0,Ur((n[r>>2]|0)+(f<<3)|0,t+(l<<5)|0,s,o)|0){l=0;break A}u=n[p>>2]|0}else l=f+1|0;if((l|0)<(u|0))f=l;else{l=1;break}}else l=1;while(!1);return T=l,b=w,T|0}function Ur(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0,B=0,L=0,D=0,F=0,q=0,V=0,Q=0,O=0,oA=0,gA=0,hA=0,SA=0;if(gA=b,b=b+176|0,V=gA+172|0,l=gA+168|0,Q=gA,!(Jn(t,o)|0))return r=0,b=gA,r|0;if(of(t,o,V,l),qt(Q|0,s|0,168)|0,(n[s>>2]|0)>0){t=0;do hA=Q+8+(t<<4)+8|0,q=+Be(+E[hA>>3],n[l>>2]|0),E[hA>>3]=q,t=t+1|0;while((t|0)<(n[s>>2]|0))}D=+E[o>>3],F=+E[o+8>>3],q=+Be(+E[o+16>>3],n[l>>2]|0),B=+Be(+E[o+24>>3],n[l>>2]|0);A:do if((n[r>>2]|0)>0){if(o=r+4|0,l=n[Q>>2]|0,(l|0)<=0){for(t=0;;)if(t=t+1|0,(t|0)>=(n[r>>2]|0)){t=0;break A}}for(s=0;;){if(t=n[o>>2]|0,I=+E[t+(s<<4)>>3],L=+Be(+E[t+(s<<4)+8>>3],n[V>>2]|0),t=n[o>>2]|0,s=s+1|0,hA=(s|0)%(n[r>>2]|0)|0,u=+E[t+(hA<<4)>>3],f=+Be(+E[t+(hA<<4)+8>>3],n[V>>2]|0),!(I>=D)|!(u>=D)&&!(I<=F)|!(u<=F)&&!(L<=B)|!(f<=B)&&!(L>=q)|!(f>=q)){M=u-I,w=f-L,t=0;do if(SA=t,t=t+1|0,hA=(t|0)==(l|0)?0:t,u=+E[Q+8+(SA<<4)+8>>3],f=+E[Q+8+(hA<<4)+8>>3]-u,d=+E[Q+8+(SA<<4)>>3],p=+E[Q+8+(hA<<4)>>3]-d,T=M*f-w*p,T!=0&&(O=L-u,oA=I-d,p=(O*p-f*oA)/T,!(p<0|p>1))&&(T=(M*O-w*oA)/T,T>=0&T<=1)){t=1;break A}while((t|0)<(l|0))}if((s|0)>=(n[r>>2]|0)){t=0;break}}}else t=0;while(!1);return SA=t,b=gA,SA|0}function Os(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0;if(Ur(r,t,s,o)|0)return u=1,u|0;if(u=r+8|0,(n[u>>2]|0)<=0)return u=0,u|0;for(l=r+12|0,r=0;;){if(f=r,r=r+1|0,Ur((n[l>>2]|0)+(f<<3)|0,t+(r<<5)|0,s,o)|0){r=1,l=6;break}if((r|0)>=(n[u>>2]|0)){r=0,l=6;break}}return(l|0)==6?r|0:0}function hh(){return 8}function dh(){return 16}function gh(){return 168}function ph(){return 8}function mh(){return 16}function wh(){return 12}function yh(){return 8}function Th(r){return r=r|0,+(+((n[r>>2]|0)>>>0)+4294967296*+(n[r+4>>2]|0))}function vh(r){r=r|0;var t=0,s=0;return s=+E[r>>3],t=+E[r+8>>3],+ +FA(+(s*s+t*t))}function ks(r,t,s,o,l){r=r|0,t=t|0,s=s|0,o=o|0,l=l|0;var u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0;w=+E[r>>3],p=+E[t>>3]-w,d=+E[r+8>>3],f=+E[t+8>>3]-d,M=+E[s>>3],u=+E[o>>3]-M,I=+E[s+8>>3],T=+E[o+8>>3]-I,u=(u*(d-I)-(w-M)*T)/(p*T-f*u),E[l>>3]=w+p*u,E[l+8>>3]=d+f*u}function Fs(r,t){return r=r|0,t=t|0,+NA(+(+E[r>>3]-+E[t>>3]))<11920928955078125e-23?(t=+NA(+(+E[r+8>>3]-+E[t+8>>3]))<11920928955078125e-23,t|0):(t=0,t|0)}function ie(r,t){r=r|0,t=t|0;var s=0,o=0,l=0;return l=+E[r>>3]-+E[t>>3],o=+E[r+8>>3]-+E[t+8>>3],s=+E[r+16>>3]-+E[t+16>>3],+(l*l+o*o+s*s)}function _h(r,t){r=r|0,t=t|0;var s=0,o=0,l=0;s=+E[r>>3],o=+GA(+s),s=+RA(+s),E[t+16>>3]=s,s=+E[r+8>>3],l=o*+GA(+s),E[t>>3]=l,s=o*+RA(+s),E[t+8>>3]=s}function Eh(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0;if(u=b,b=b+16|0,l=u,o=JA(r,t)|0,(s+-1|0)>>>0>5||(o=(o|0)!=0,(s|0)==1&o))return l=-1,b=u,l|0;do if(wr(r,t,l)|0)o=-1;else if(o){o=((n[26352+(s<<2)>>2]|0)+5-(n[l>>2]|0)|0)%5|0;break}else{o=((n[26384+(s<<2)>>2]|0)+6-(n[l>>2]|0)|0)%6|0;break}while(!1);return l=o,b=u,l|0}function wr(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0,f=0,d=0,p=0,w=0,T=0;if(T=b,b=b+32|0,d=T+16|0,p=T,o=Ut(r,t,d)|0,o|0)return s=o,b=T,s|0;u=Es(r,t)|0,w=be(r,t)|0,Af(u,p),o=ef(u,n[d>>2]|0)|0;do if(ee(u)|0){do switch(u|0){case 4:{l=0;break}case 14:{l=1;break}case 24:{l=2;break}case 38:{l=3;break}case 49:{l=4;break}case 58:{l=5;break}case 63:{l=6;break}case 72:{l=7;break}case 83:{l=8;break}case 97:{l=9;break}case 107:{l=10;break}case 117:{l=11;break}default:bA(27795,27797,75,27806)}while(!1);if(f=n[26416+(l*24|0)+8>>2]|0,t=n[26416+(l*24|0)+16>>2]|0,r=n[d>>2]|0,(r|0)!=(n[p>>2]|0)&&(p=Wn(u)|0,r=n[d>>2]|0,p|(r|0)==(t|0)&&(o=(o+1|0)%6|0)),(w|0)==3&(r|0)==(t|0)){o=(o+5|0)%6|0;break}(w|0)==5&(r|0)==(f|0)&&(o=(o+1|0)%6|0)}while(!1);return n[s>>2]=o,s=0,b=T,s|0}function ke(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0,B=0,L=0,D=0,F=0,q=0,V=0,Q=0;if(Q=b,b=b+32|0,V=Q+24|0,F=Q+20|0,L=Q+8|0,B=Q+16|0,I=Q,p=(JA(r,t)|0)==0,p=p?6:5,T=K(r|0,t|0,52)|0,C()|0,T=T&15,p>>>0<=s>>>0)return o=2,b=Q,o|0;M=(T|0)==0,!M&&(D=iA(7,0,(T^15)*3|0)|0,(D&r|0)==0&((C()|0)&t|0)==0)?l=s:u=4;A:do if((u|0)==4){if(l=(JA(r,t)|0)!=0,((l?4:5)|0)<(s|0)||wr(r,t,V)|0||(u=(n[V>>2]|0)+s|0,l?l=26704+(((u|0)%5|0)<<2)|0:l=26736+(((u|0)%6|0)<<2)|0,D=n[l>>2]|0,(D|0)==7))return o=1,b=Q,o|0;n[F>>2]=0,l=le(r,t,D,F,L)|0;do if(!l){if(d=L,w=n[d>>2]|0,d=n[d+4>>2]|0,f=d>>>0<t>>>0|(d|0)==(t|0)&w>>>0<r>>>0,u=f?w:r,f=f?d:t,!M&&(M=iA(7,0,(T^15)*3|0)|0,(w&M|0)==0&(d&(C()|0)|0)==0))l=s;else{if(d=(s+-1+p|0)%(p|0)|0,l=JA(r,t)|0,(d|0)<0&&bA(27795,27797,248,27822),p=(l|0)!=0,((p?4:5)|0)<(d|0)&&bA(27795,27797,248,27822),wr(r,t,V)|0&&bA(27795,27797,248,27822),l=(n[V>>2]|0)+d|0,p?l=26704+(((l|0)%5|0)<<2)|0:l=26736+(((l|0)%6|0)<<2)|0,d=n[l>>2]|0,(d|0)==7&&bA(27795,27797,248,27822),n[B>>2]=0,l=le(r,t,d,B,I)|0,l|0)break;w=I,p=n[w>>2]|0,w=n[w+4>>2]|0;do if(w>>>0<f>>>0|(w|0)==(f|0)&p>>>0<u>>>0){if(JA(p,w)|0?u=jn(p,w,r,t)|0:u=n[26800+((((n[B>>2]|0)+(n[26768+(d<<2)>>2]|0)|0)%6|0)<<2)>>2]|0,l=JA(p,w)|0,(u+-1|0)>>>0>5){l=-1,u=p,f=w;break}if(l=(l|0)!=0,(u|0)==1&l){l=-1,u=p,f=w;break}do if(wr(p,w,V)|0)l=-1;else if(l){l=((n[26352+(u<<2)>>2]|0)+5-(n[V>>2]|0)|0)%5|0;break}else{l=((n[26384+(u<<2)>>2]|0)+6-(n[V>>2]|0)|0)%6|0;break}while(!1);u=p,f=w}else l=s;while(!1);d=L,w=n[d>>2]|0,d=n[d+4>>2]|0}if((u|0)==(w|0)&(f|0)==(d|0)){if(p=(JA(w,d)|0)!=0,p?r=jn(w,d,r,t)|0:r=n[26800+((((n[F>>2]|0)+(n[26768+(D<<2)>>2]|0)|0)%6|0)<<2)>>2]|0,l=JA(w,d)|0,(r+-1|0)>>>0<=5&&(q=(l|0)!=0,!((r|0)==1&q)))do if(wr(w,d,V)|0)l=-1;else if(q){l=((n[26352+(r<<2)>>2]|0)+5-(n[V>>2]|0)|0)%5|0;break}else{l=((n[26384+(r<<2)>>2]|0)+6-(n[V>>2]|0)|0)%6|0;break}while(!1);else l=-1;l=l+1|0,l=(l|0)==6|p&(l|0)==5?0:l}t=f,r=u;break A}while(!1);return o=l,b=Q,o|0}while(!1);return q=iA(l|0,0,56)|0,V=C()|0|t&-2130706433|536870912,n[o>>2]=q|r,n[o+4>>2]=V,o=0,b=Q,o|0}function bh(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0;return u=(JA(r,t)|0)==0,o=ke(r,t,0,s)|0,l=(o|0)==0,u?!l||(o=ke(r,t,1,s+8|0)|0,o|0)||(o=ke(r,t,2,s+16|0)|0,o|0)||(o=ke(r,t,3,s+24|0)|0,o|0)||(o=ke(r,t,4,s+32|0)|0,o)?(u=o,u|0):ke(r,t,5,s+40|0)|0:!l||(o=ke(r,t,1,s+8|0)|0,o|0)||(o=ke(r,t,2,s+16|0)|0,o|0)||(o=ke(r,t,3,s+24|0)|0,o|0)||(o=ke(r,t,4,s+32|0)|0,o|0)?(u=o,u|0):(u=s+40|0,n[u>>2]=0,n[u+4>>2]=0,u=0,u|0)}function Mh(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0,f=0,d=0,p=0;return p=b,b=b+192|0,l=p,u=p+168|0,f=K(r|0,t|0,56)|0,C()|0,f=f&7,d=t&-2130706433|134217728,o=Ut(r,d,u)|0,o|0?(d=o,b=p,d|0):(t=K(r|0,t|0,52)|0,C()|0,t=t&15,JA(r,d)|0?A0(u,t,f,1,l):e0(u,t,f,1,l),d=l+8|0,n[s>>2]=n[d>>2],n[s+4>>2]=n[d+4>>2],n[s+8>>2]=n[d+8>>2],n[s+12>>2]=n[d+12>>2],d=0,b=p,d|0)}function Us(r,t){r=r|0,t=t|0;var s=0,o=0,l=0,u=0;return l=b,b=b+16|0,s=l,!(!0&(t&2013265920|0)==536870912)||(o=t&-2130706433|134217728,!(t0(r,o)|0))?(o=0,b=l,o|0):(u=K(r|0,t|0,56)|0,C()|0,u=(ke(r,o,u&7,s)|0)==0,o=s,o=u&((n[o>>2]|0)==(r|0)?(n[o+4>>2]|0)==(t|0):0)&1,b=l,o|0)}function Qs(r,t,s){r=r|0,t=t|0,s=s|0;var o=0;(t|0)>0?(o=Me(t,4)|0,n[r>>2]=o,o||bA(27835,27858,40,27872)):n[r>>2]=0,n[r+4>>2]=t,n[r+8>>2]=0,n[r+12>>2]=s}function Vs(r){r=r|0;var t=0,s=0,o=0,l=0,u=0,f=0,d=0;l=r+4|0,u=r+12|0,f=r+8|0;A:for(;;){for(s=n[l>>2]|0,t=0;;){if((t|0)>=(s|0))break A;if(o=n[r>>2]|0,d=n[o+(t<<2)>>2]|0,!d)t=t+1|0;else break}t=o+(~~(+NA(+(+at(10,+ +(15-(n[u>>2]|0)|0))*(+E[d>>3]+ +E[d+8>>3])))%+(s|0))>>>0<<2)|0,s=n[t>>2]|0;e:do if(s|0){if(o=d+32|0,(s|0)==(d|0))n[t>>2]=n[o>>2];else{if(s=s+32|0,t=n[s>>2]|0,!t)break;for(;(t|0)!=(d|0);)if(s=t+32|0,t=n[s>>2]|0,!t)break e;n[s>>2]=n[o>>2]}TA(d),n[f>>2]=(n[f>>2]|0)+-1}while(!1)}TA(n[r>>2]|0)}function zs(r){r=r|0;var t=0,s=0,o=0;for(o=n[r+4>>2]|0,s=0;;){if((s|0)>=(o|0)){t=0,s=4;break}if(t=n[(n[r>>2]|0)+(s<<2)>>2]|0,!t)s=s+1|0;else{s=4;break}}return(s|0)==4?t|0:0}function Gs(r,t){r=r|0,t=t|0;var s=0,o=0,l=0,u=0;if(s=~~(+NA(+(+at(10,+ +(15-(n[r+12>>2]|0)|0))*(+E[t>>3]+ +E[t+8>>3])))%+(n[r+4>>2]|0))>>>0,s=(n[r>>2]|0)+(s<<2)|0,o=n[s>>2]|0,!o)return u=1,u|0;u=t+32|0;do if((o|0)!=(t|0)){if(s=n[o+32>>2]|0,!s)return u=1,u|0;for(l=s;;){if((l|0)==(t|0)){l=8;break}if(s=n[l+32>>2]|0,s)o=l,l=s;else{s=1,l=10;break}}if((l|0)==8){n[o+32>>2]=n[u>>2];break}else if((l|0)==10)return s|0}else n[s>>2]=n[u>>2];while(!1);return TA(t),u=r+8|0,n[u>>2]=(n[u>>2]|0)+-1,u=0,u|0}function Ch(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0,f=0;u=Ye(40)|0,u||bA(27888,27858,98,27901),n[u>>2]=n[t>>2],n[u+4>>2]=n[t+4>>2],n[u+8>>2]=n[t+8>>2],n[u+12>>2]=n[t+12>>2],l=u+16|0,n[l>>2]=n[s>>2],n[l+4>>2]=n[s+4>>2],n[l+8>>2]=n[s+8>>2],n[l+12>>2]=n[s+12>>2],n[u+32>>2]=0,l=~~(+NA(+(+at(10,+ +(15-(n[r+12>>2]|0)|0))*(+E[t>>3]+ +E[t+8>>3])))%+(n[r+4>>2]|0))>>>0,l=(n[r>>2]|0)+(l<<2)|0,o=n[l>>2]|0;do if(!o)n[l>>2]=u;else{for(;!(Vt(o,t)|0&&Vt(o+16|0,s)|0);)if(l=n[o+32>>2]|0,o=(l|0)==0?o:l,!(n[o+32>>2]|0)){f=10;break}if((f|0)==10){n[o+32>>2]=u;break}return TA(u),f=o,f|0}while(!1);return f=r+8|0,n[f>>2]=(n[f>>2]|0)+1,f=u,f|0}function Sh(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0;if(l=~~(+NA(+(+at(10,+ +(15-(n[r+12>>2]|0)|0))*(+E[t>>3]+ +E[t+8>>3])))%+(n[r+4>>2]|0))>>>0,l=n[(n[r>>2]|0)+(l<<2)>>2]|0,!l)return s=0,s|0;if(!s){for(r=l;;){if(Vt(r,t)|0){o=10;break}if(r=n[r+32>>2]|0,!r){r=0,o=10;break}}if((o|0)==10)return r|0}for(r=l;;){if(Vt(r,t)|0&&Vt(r+16|0,s)|0){o=10;break}if(r=n[r+32>>2]|0,!r){r=0,o=10;break}}return(o|0)==10?r|0:0}function Ih(r,t){r=r|0,t=t|0;var s=0;if(s=~~(+NA(+(+at(10,+ +(15-(n[r+12>>2]|0)|0))*(+E[t>>3]+ +E[t+8>>3])))%+(n[r+4>>2]|0))>>>0,r=n[(n[r>>2]|0)+(s<<2)>>2]|0,!r)return s=0,s|0;for(;;){if(Vt(r,t)|0){t=5;break}if(r=n[r+32>>2]|0,!r){r=0,t=5;break}}return(t|0)==5?r|0:0}function Bh(){return 27920}function ct(r){return r=+r,~~+Ws(+r)|0}function Ye(r){r=r|0;var t=0,s=0,o=0,l=0,u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0,B=0,L=0,D=0,F=0,q=0,V=0,Q=0,O=0,oA=0;oA=b,b=b+16|0,I=oA;do if(r>>>0<245){if(w=r>>>0<11?16:r+11&-8,r=w>>>3,M=n[6981]|0,s=M>>>r,s&3|0)return t=(s&1^1)+r|0,r=27964+(t<<1<<2)|0,s=r+8|0,o=n[s>>2]|0,l=o+8|0,u=n[l>>2]|0,(u|0)==(r|0)?n[6981]=M&~(1<<t):(n[u+12>>2]=r,n[s>>2]=u),O=t<<3,n[o+4>>2]=O|3,O=o+O+4|0,n[O>>2]=n[O>>2]|1,O=l,b=oA,O|0;if(T=n[6983]|0,w>>>0>T>>>0){if(s|0)return t=2<<r,t=s<<r&(t|0-t),t=(t&0-t)+-1|0,d=t>>>12&16,t=t>>>d,s=t>>>5&8,t=t>>>s,u=t>>>2&4,t=t>>>u,r=t>>>1&2,t=t>>>r,o=t>>>1&1,o=(s|d|u|r|o)+(t>>>o)|0,t=27964+(o<<1<<2)|0,r=t+8|0,u=n[r>>2]|0,d=u+8|0,s=n[d>>2]|0,(s|0)==(t|0)?(r=M&~(1<<o),n[6981]=r):(n[s+12>>2]=t,n[r>>2]=s,r=M),O=o<<3,f=O-w|0,n[u+4>>2]=w|3,l=u+w|0,n[l+4>>2]=f|1,n[u+O>>2]=f,T|0&&(o=n[6986]|0,t=T>>>3,s=27964+(t<<1<<2)|0,t=1<<t,r&t?(r=s+8|0,t=n[r>>2]|0):(n[6981]=r|t,t=s,r=s+8|0),n[r>>2]=o,n[t+12>>2]=o,n[o+8>>2]=t,n[o+12>>2]=s),n[6983]=f,n[6986]=l,O=d,b=oA,O|0;if(u=n[6982]|0,u){for(s=(u&0-u)+-1|0,l=s>>>12&16,s=s>>>l,o=s>>>5&8,s=s>>>o,f=s>>>2&4,s=s>>>f,d=s>>>1&2,s=s>>>d,p=s>>>1&1,p=n[28228+((o|l|f|d|p)+(s>>>p)<<2)>>2]|0,s=p,d=p,p=(n[p+4>>2]&-8)-w|0;r=n[s+16>>2]|0,!(!r&&(r=n[s+20>>2]|0,!r));)f=(n[r+4>>2]&-8)-w|0,l=f>>>0<p>>>0,s=r,d=l?r:d,p=l?f:p;if(f=d+w|0,f>>>0>d>>>0){l=n[d+24>>2]|0,t=n[d+12>>2]|0;do if((t|0)==(d|0)){if(r=d+20|0,t=n[r>>2]|0,!t&&(r=d+16|0,t=n[r>>2]|0,!t)){s=0;break}for(;;)if(o=t+20|0,s=n[o>>2]|0,s)t=s,r=o;else if(o=t+16|0,s=n[o>>2]|0,s)t=s,r=o;else break;n[r>>2]=0,s=t}else s=n[d+8>>2]|0,n[s+12>>2]=t,n[t+8>>2]=s,s=t;while(!1);do if(l|0){if(t=n[d+28>>2]|0,r=28228+(t<<2)|0,(d|0)==(n[r>>2]|0)){if(n[r>>2]=s,!s){n[6982]=u&~(1<<t);break}}else if(O=l+16|0,n[((n[O>>2]|0)==(d|0)?O:l+20|0)>>2]=s,!s)break;n[s+24>>2]=l,t=n[d+16>>2]|0,t|0&&(n[s+16>>2]=t,n[t+24>>2]=s),t=n[d+20>>2]|0,t|0&&(n[s+20>>2]=t,n[t+24>>2]=s)}while(!1);return p>>>0<16?(O=p+w|0,n[d+4>>2]=O|3,O=d+O+4|0,n[O>>2]=n[O>>2]|1):(n[d+4>>2]=w|3,n[f+4>>2]=p|1,n[f+p>>2]=p,T|0&&(o=n[6986]|0,t=T>>>3,s=27964+(t<<1<<2)|0,t=1<<t,t&M?(r=s+8|0,t=n[r>>2]|0):(n[6981]=t|M,t=s,r=s+8|0),n[r>>2]=o,n[t+12>>2]=o,n[o+8>>2]=t,n[o+12>>2]=s),n[6983]=p,n[6986]=f),O=d+8|0,b=oA,O|0}else M=w}else M=w}else M=w}else if(r>>>0<=4294967231)if(r=r+11|0,w=r&-8,o=n[6982]|0,o){l=0-w|0,r=r>>>8,r?w>>>0>16777215?p=31:(M=(r+1048320|0)>>>16&8,D=r<<M,d=(D+520192|0)>>>16&4,D=D<<d,p=(D+245760|0)>>>16&2,p=14-(d|M|p)+(D<<p>>>15)|0,p=w>>>(p+7|0)&1|p<<1):p=0,s=n[28228+(p<<2)>>2]|0;A:do if(!s)s=0,r=0,D=61;else for(r=0,d=w<<((p|0)==31?0:25-(p>>>1)|0),u=0;;){if(f=(n[s+4>>2]&-8)-w|0,f>>>0<l>>>0)if(f)r=s,l=f;else{r=s,l=0,D=65;break A}if(D=n[s+20>>2]|0,s=n[s+16+(d>>>31<<2)>>2]|0,u=(D|0)==0|(D|0)==(s|0)?u:D,s)d=d<<1;else{s=u,D=61;break}}while(!1);if((D|0)==61){if((s|0)==0&(r|0)==0){if(r=2<<p,r=(r|0-r)&o,!r){M=w;break}M=(r&0-r)+-1|0,f=M>>>12&16,M=M>>>f,u=M>>>5&8,M=M>>>u,d=M>>>2&4,M=M>>>d,p=M>>>1&2,M=M>>>p,s=M>>>1&1,r=0,s=n[28228+((u|f|d|p|s)+(M>>>s)<<2)>>2]|0}s?D=65:(d=r,f=l)}if((D|0)==65)for(u=s;;)if(M=(n[u+4>>2]&-8)-w|0,s=M>>>0<l>>>0,l=s?M:l,r=s?u:r,s=n[u+16>>2]|0,s||(s=n[u+20>>2]|0),s)u=s;else{d=r,f=l;break}if((d|0)!=0&&f>>>0<((n[6983]|0)-w|0)>>>0&&(T=d+w|0,T>>>0>d>>>0)){u=n[d+24>>2]|0,t=n[d+12>>2]|0;do if((t|0)==(d|0)){if(r=d+20|0,t=n[r>>2]|0,!t&&(r=d+16|0,t=n[r>>2]|0,!t)){t=0;break}for(;;)if(l=t+20|0,s=n[l>>2]|0,s)t=s,r=l;else if(l=t+16|0,s=n[l>>2]|0,s)t=s,r=l;else break;n[r>>2]=0}else O=n[d+8>>2]|0,n[O+12>>2]=t,n[t+8>>2]=O;while(!1);do if(u){if(r=n[d+28>>2]|0,s=28228+(r<<2)|0,(d|0)==(n[s>>2]|0)){if(n[s>>2]=t,!t){o=o&~(1<<r),n[6982]=o;break}}else if(O=u+16|0,n[((n[O>>2]|0)==(d|0)?O:u+20|0)>>2]=t,!t)break;n[t+24>>2]=u,r=n[d+16>>2]|0,r|0&&(n[t+16>>2]=r,n[r+24>>2]=t),r=n[d+20>>2]|0,r&&(n[t+20>>2]=r,n[r+24>>2]=t)}while(!1);A:do if(f>>>0<16)O=f+w|0,n[d+4>>2]=O|3,O=d+O+4|0,n[O>>2]=n[O>>2]|1;else{if(n[d+4>>2]=w|3,n[T+4>>2]=f|1,n[T+f>>2]=f,t=f>>>3,f>>>0<256){s=27964+(t<<1<<2)|0,r=n[6981]|0,t=1<<t,r&t?(r=s+8|0,t=n[r>>2]|0):(n[6981]=r|t,t=s,r=s+8|0),n[r>>2]=T,n[t+12>>2]=T,n[T+8>>2]=t,n[T+12>>2]=s;break}if(t=f>>>8,t?f>>>0>16777215?s=31:(Q=(t+1048320|0)>>>16&8,O=t<<Q,V=(O+520192|0)>>>16&4,O=O<<V,s=(O+245760|0)>>>16&2,s=14-(V|Q|s)+(O<<s>>>15)|0,s=f>>>(s+7|0)&1|s<<1):s=0,t=28228+(s<<2)|0,n[T+28>>2]=s,r=T+16|0,n[r+4>>2]=0,n[r>>2]=0,r=1<<s,!(o&r)){n[6982]=o|r,n[t>>2]=T,n[T+24>>2]=t,n[T+12>>2]=T,n[T+8>>2]=T;break}t=n[t>>2]|0;e:do if((n[t+4>>2]&-8|0)!=(f|0)){for(o=f<<((s|0)==31?0:25-(s>>>1)|0);s=t+16+(o>>>31<<2)|0,r=n[s>>2]|0,!!r;)if((n[r+4>>2]&-8|0)==(f|0)){t=r;break e}else o=o<<1,t=r;n[s>>2]=T,n[T+24>>2]=t,n[T+12>>2]=T,n[T+8>>2]=T;break A}while(!1);Q=t+8|0,O=n[Q>>2]|0,n[O+12>>2]=T,n[Q>>2]=T,n[T+8>>2]=O,n[T+12>>2]=t,n[T+24>>2]=0}while(!1);return O=d+8|0,b=oA,O|0}else M=w}else M=w;else M=-1;while(!1);if(s=n[6983]|0,s>>>0>=M>>>0)return t=s-M|0,r=n[6986]|0,t>>>0>15?(O=r+M|0,n[6986]=O,n[6983]=t,n[O+4>>2]=t|1,n[r+s>>2]=t,n[r+4>>2]=M|3):(n[6983]=0,n[6986]=0,n[r+4>>2]=s|3,O=r+s+4|0,n[O>>2]=n[O>>2]|1),O=r+8|0,b=oA,O|0;if(f=n[6984]|0,f>>>0>M>>>0)return V=f-M|0,n[6984]=V,O=n[6987]|0,Q=O+M|0,n[6987]=Q,n[Q+4>>2]=V|1,n[O+4>>2]=M|3,O=O+8|0,b=oA,O|0;if(n[7099]|0?r=n[7101]|0:(n[7101]=4096,n[7100]=4096,n[7102]=-1,n[7103]=-1,n[7104]=0,n[7092]=0,n[7099]=I&-16^1431655768,r=4096),d=M+48|0,p=M+47|0,u=r+p|0,l=0-r|0,w=u&l,w>>>0<=M>>>0||(r=n[7091]|0,r|0&&(T=n[7089]|0,I=T+w|0,I>>>0<=T>>>0|I>>>0>r>>>0)))return O=0,b=oA,O|0;A:do if(n[7092]&4)t=0,D=143;else{s=n[6987]|0;e:do if(s){for(o=28372;I=n[o>>2]|0,!(I>>>0<=s>>>0&&(I+(n[o+4>>2]|0)|0)>>>0>s>>>0);)if(r=n[o+8>>2]|0,r)o=r;else{D=128;break e}if(t=u-f&l,t>>>0<2147483647)if(r=dt(t|0)|0,(r|0)==((n[o>>2]|0)+(n[o+4>>2]|0)|0)){if((r|0)!=-1){f=t,u=r,D=145;break A}}else o=r,D=136;else t=0}else D=128;while(!1);do if((D|0)==128)if(s=dt(0)|0,(s|0)!=-1&&(t=s,B=n[7100]|0,L=B+-1|0,t=((L&t|0)==0?0:(L+t&0-B)-t|0)+w|0,B=n[7089]|0,L=t+B|0,t>>>0>M>>>0&t>>>0<2147483647)){if(I=n[7091]|0,I|0&&L>>>0<=B>>>0|L>>>0>I>>>0){t=0;break}if(r=dt(t|0)|0,(r|0)==(s|0)){f=t,u=s,D=145;break A}else o=r,D=136}else t=0;while(!1);do if((D|0)==136){if(s=0-t|0,!(d>>>0>t>>>0&(t>>>0<2147483647&(o|0)!=-1)))if((o|0)==-1){t=0;break}else{f=t,u=o,D=145;break A}if(r=n[7101]|0,r=p-t+r&0-r,r>>>0>=2147483647){f=t,u=o,D=145;break A}if((dt(r|0)|0)==-1){dt(s|0)|0,t=0;break}else{f=r+t|0,u=o,D=145;break A}}while(!1);n[7092]=n[7092]|4,D=143}while(!1);if((D|0)==143&&w>>>0<2147483647&&(V=dt(w|0)|0,L=dt(0)|0,F=L-V|0,q=F>>>0>(M+40|0)>>>0,!((V|0)==-1|q^1|V>>>0<L>>>0&((V|0)!=-1&(L|0)!=-1)^1))&&(f=q?F:t,u=V,D=145),(D|0)==145){t=(n[7089]|0)+f|0,n[7089]=t,t>>>0>(n[7090]|0)>>>0&&(n[7090]=t),p=n[6987]|0;A:do if(p){for(t=28372;;){if(r=n[t>>2]|0,s=n[t+4>>2]|0,(u|0)==(r+s|0)){D=154;break}if(o=n[t+8>>2]|0,o)t=o;else break}if((D|0)==154&&(Q=t+4|0,(n[t+12>>2]&8|0)==0)&&u>>>0>p>>>0&r>>>0<=p>>>0){n[Q>>2]=s+f,O=(n[6984]|0)+f|0,V=p+8|0,V=(V&7|0)==0?0:0-V&7,Q=p+V|0,V=O-V|0,n[6987]=Q,n[6984]=V,n[Q+4>>2]=V|1,n[p+O+4>>2]=40,n[6988]=n[7103];break}for(u>>>0<(n[6985]|0)>>>0&&(n[6985]=u),s=u+f|0,t=28372;;){if((n[t>>2]|0)==(s|0)){D=162;break}if(r=n[t+8>>2]|0,r)t=r;else break}if((D|0)==162&&(n[t+12>>2]&8|0)==0){n[t>>2]=u,T=t+4|0,n[T>>2]=(n[T>>2]|0)+f,T=u+8|0,T=u+((T&7|0)==0?0:0-T&7)|0,t=s+8|0,t=s+((t&7|0)==0?0:0-t&7)|0,w=T+M|0,d=t-T-M|0,n[T+4>>2]=M|3;e:do if((p|0)==(t|0))O=(n[6984]|0)+d|0,n[6984]=O,n[6987]=w,n[w+4>>2]=O|1;else{if((n[6986]|0)==(t|0)){O=(n[6983]|0)+d|0,n[6983]=O,n[6986]=w,n[w+4>>2]=O|1,n[w+O>>2]=O;break}if(r=n[t+4>>2]|0,(r&3|0)==1){f=r&-8,o=r>>>3;t:do if(r>>>0<256)if(r=n[t+8>>2]|0,s=n[t+12>>2]|0,(s|0)==(r|0)){n[6981]=n[6981]&~(1<<o);break}else{n[r+12>>2]=s,n[s+8>>2]=r;break}else{u=n[t+24>>2]|0,r=n[t+12>>2]|0;do if((r|0)==(t|0)){if(s=t+16|0,o=s+4|0,r=n[o>>2]|0,r)s=o;else if(r=n[s>>2]|0,!r){r=0;break}for(;;)if(l=r+20|0,o=n[l>>2]|0,o)r=o,s=l;else if(l=r+16|0,o=n[l>>2]|0,o)r=o,s=l;else break;n[s>>2]=0}else O=n[t+8>>2]|0,n[O+12>>2]=r,n[r+8>>2]=O;while(!1);if(!u)break;s=n[t+28>>2]|0,o=28228+(s<<2)|0;do if((n[o>>2]|0)!=(t|0)){if(O=u+16|0,n[((n[O>>2]|0)==(t|0)?O:u+20|0)>>2]=r,!r)break t}else{if(n[o>>2]=r,r|0)break;n[6982]=n[6982]&~(1<<s);break t}while(!1);if(n[r+24>>2]=u,s=t+16|0,o=n[s>>2]|0,o|0&&(n[r+16>>2]=o,n[o+24>>2]=r),s=n[s+4>>2]|0,!s)break;n[r+20>>2]=s,n[s+24>>2]=r}while(!1);t=t+f|0,l=f+d|0}else l=d;if(t=t+4|0,n[t>>2]=n[t>>2]&-2,n[w+4>>2]=l|1,n[w+l>>2]=l,t=l>>>3,l>>>0<256){s=27964+(t<<1<<2)|0,r=n[6981]|0,t=1<<t,r&t?(r=s+8|0,t=n[r>>2]|0):(n[6981]=r|t,t=s,r=s+8|0),n[r>>2]=w,n[t+12>>2]=w,n[w+8>>2]=t,n[w+12>>2]=s;break}t=l>>>8;do if(!t)o=0;else{if(l>>>0>16777215){o=31;break}Q=(t+1048320|0)>>>16&8,O=t<<Q,V=(O+520192|0)>>>16&4,O=O<<V,o=(O+245760|0)>>>16&2,o=14-(V|Q|o)+(O<<o>>>15)|0,o=l>>>(o+7|0)&1|o<<1}while(!1);if(t=28228+(o<<2)|0,n[w+28>>2]=o,r=w+16|0,n[r+4>>2]=0,n[r>>2]=0,r=n[6982]|0,s=1<<o,!(r&s)){n[6982]=r|s,n[t>>2]=w,n[w+24>>2]=t,n[w+12>>2]=w,n[w+8>>2]=w;break}t=n[t>>2]|0;t:do if((n[t+4>>2]&-8|0)!=(l|0)){for(o=l<<((o|0)==31?0:25-(o>>>1)|0);s=t+16+(o>>>31<<2)|0,r=n[s>>2]|0,!!r;)if((n[r+4>>2]&-8|0)==(l|0)){t=r;break t}else o=o<<1,t=r;n[s>>2]=w,n[w+24>>2]=t,n[w+12>>2]=w,n[w+8>>2]=w;break e}while(!1);Q=t+8|0,O=n[Q>>2]|0,n[O+12>>2]=w,n[Q>>2]=w,n[w+8>>2]=O,n[w+12>>2]=t,n[w+24>>2]=0}while(!1);return O=T+8|0,b=oA,O|0}for(t=28372;r=n[t>>2]|0,!(r>>>0<=p>>>0&&(O=r+(n[t+4>>2]|0)|0,O>>>0>p>>>0));)t=n[t+8>>2]|0;l=O+-47|0,r=l+8|0,r=l+((r&7|0)==0?0:0-r&7)|0,l=p+16|0,r=r>>>0<l>>>0?p:r,t=r+8|0,s=f+-40|0,V=u+8|0,V=(V&7|0)==0?0:0-V&7,Q=u+V|0,V=s-V|0,n[6987]=Q,n[6984]=V,n[Q+4>>2]=V|1,n[u+s+4>>2]=40,n[6988]=n[7103],s=r+4|0,n[s>>2]=27,n[t>>2]=n[7093],n[t+4>>2]=n[7094],n[t+8>>2]=n[7095],n[t+12>>2]=n[7096],n[7093]=u,n[7094]=f,n[7096]=0,n[7095]=t,t=r+24|0;do Q=t,t=t+4|0,n[t>>2]=7;while((Q+8|0)>>>0<O>>>0);if((r|0)!=(p|0)){if(u=r-p|0,n[s>>2]=n[s>>2]&-2,n[p+4>>2]=u|1,n[r>>2]=u,t=u>>>3,u>>>0<256){s=27964+(t<<1<<2)|0,r=n[6981]|0,t=1<<t,r&t?(r=s+8|0,t=n[r>>2]|0):(n[6981]=r|t,t=s,r=s+8|0),n[r>>2]=p,n[t+12>>2]=p,n[p+8>>2]=t,n[p+12>>2]=s;break}if(t=u>>>8,t?u>>>0>16777215?o=31:(Q=(t+1048320|0)>>>16&8,O=t<<Q,V=(O+520192|0)>>>16&4,O=O<<V,o=(O+245760|0)>>>16&2,o=14-(V|Q|o)+(O<<o>>>15)|0,o=u>>>(o+7|0)&1|o<<1):o=0,s=28228+(o<<2)|0,n[p+28>>2]=o,n[p+20>>2]=0,n[l>>2]=0,t=n[6982]|0,r=1<<o,!(t&r)){n[6982]=t|r,n[s>>2]=p,n[p+24>>2]=s,n[p+12>>2]=p,n[p+8>>2]=p;break}t=n[s>>2]|0;e:do if((n[t+4>>2]&-8|0)!=(u|0)){for(o=u<<((o|0)==31?0:25-(o>>>1)|0);s=t+16+(o>>>31<<2)|0,r=n[s>>2]|0,!!r;)if((n[r+4>>2]&-8|0)==(u|0)){t=r;break e}else o=o<<1,t=r;n[s>>2]=p,n[p+24>>2]=t,n[p+12>>2]=p,n[p+8>>2]=p;break A}while(!1);Q=t+8|0,O=n[Q>>2]|0,n[O+12>>2]=p,n[Q>>2]=p,n[p+8>>2]=O,n[p+12>>2]=t,n[p+24>>2]=0}}else O=n[6985]|0,(O|0)==0|u>>>0<O>>>0&&(n[6985]=u),n[7093]=u,n[7094]=f,n[7096]=0,n[6990]=n[7099],n[6989]=-1,n[6994]=27964,n[6993]=27964,n[6996]=27972,n[6995]=27972,n[6998]=27980,n[6997]=27980,n[7e3]=27988,n[6999]=27988,n[7002]=27996,n[7001]=27996,n[7004]=28004,n[7003]=28004,n[7006]=28012,n[7005]=28012,n[7008]=28020,n[7007]=28020,n[7010]=28028,n[7009]=28028,n[7012]=28036,n[7011]=28036,n[7014]=28044,n[7013]=28044,n[7016]=28052,n[7015]=28052,n[7018]=28060,n[7017]=28060,n[7020]=28068,n[7019]=28068,n[7022]=28076,n[7021]=28076,n[7024]=28084,n[7023]=28084,n[7026]=28092,n[7025]=28092,n[7028]=28100,n[7027]=28100,n[7030]=28108,n[7029]=28108,n[7032]=28116,n[7031]=28116,n[7034]=28124,n[7033]=28124,n[7036]=28132,n[7035]=28132,n[7038]=28140,n[7037]=28140,n[7040]=28148,n[7039]=28148,n[7042]=28156,n[7041]=28156,n[7044]=28164,n[7043]=28164,n[7046]=28172,n[7045]=28172,n[7048]=28180,n[7047]=28180,n[7050]=28188,n[7049]=28188,n[7052]=28196,n[7051]=28196,n[7054]=28204,n[7053]=28204,n[7056]=28212,n[7055]=28212,O=f+-40|0,V=u+8|0,V=(V&7|0)==0?0:0-V&7,Q=u+V|0,V=O-V|0,n[6987]=Q,n[6984]=V,n[Q+4>>2]=V|1,n[u+O+4>>2]=40,n[6988]=n[7103];while(!1);if(t=n[6984]|0,t>>>0>M>>>0)return V=t-M|0,n[6984]=V,O=n[6987]|0,Q=O+M|0,n[6987]=Q,n[Q+4>>2]=V|1,n[O+4>>2]=M|3,O=O+8|0,b=oA,O|0}return O=Bh()|0,n[O>>2]=12,O=0,b=oA,O|0}function TA(r){r=r|0;var t=0,s=0,o=0,l=0,u=0,f=0,d=0,p=0;if(r){s=r+-8|0,l=n[6985]|0,r=n[r+-4>>2]|0,t=r&-8,p=s+t|0;do if(r&1)d=s,f=s;else{if(o=n[s>>2]|0,!(r&3)||(f=s+(0-o)|0,u=o+t|0,f>>>0<l>>>0))return;if((n[6986]|0)==(f|0)){if(r=p+4|0,t=n[r>>2]|0,(t&3|0)!=3){d=f,t=u;break}n[6983]=u,n[r>>2]=t&-2,n[f+4>>2]=u|1,n[f+u>>2]=u;return}if(s=o>>>3,o>>>0<256)if(r=n[f+8>>2]|0,t=n[f+12>>2]|0,(t|0)==(r|0)){n[6981]=n[6981]&~(1<<s),d=f,t=u;break}else{n[r+12>>2]=t,n[t+8>>2]=r,d=f,t=u;break}l=n[f+24>>2]|0,r=n[f+12>>2]|0;do if((r|0)==(f|0)){if(t=f+16|0,s=t+4|0,r=n[s>>2]|0,r)t=s;else if(r=n[t>>2]|0,!r){r=0;break}for(;;)if(o=r+20|0,s=n[o>>2]|0,s)r=s,t=o;else if(o=r+16|0,s=n[o>>2]|0,s)r=s,t=o;else break;n[t>>2]=0}else d=n[f+8>>2]|0,n[d+12>>2]=r,n[r+8>>2]=d;while(!1);if(l){if(t=n[f+28>>2]|0,s=28228+(t<<2)|0,(n[s>>2]|0)==(f|0)){if(n[s>>2]=r,!r){n[6982]=n[6982]&~(1<<t),d=f,t=u;break}}else if(d=l+16|0,n[((n[d>>2]|0)==(f|0)?d:l+20|0)>>2]=r,!r){d=f,t=u;break}n[r+24>>2]=l,t=f+16|0,s=n[t>>2]|0,s|0&&(n[r+16>>2]=s,n[s+24>>2]=r),t=n[t+4>>2]|0,t?(n[r+20>>2]=t,n[t+24>>2]=r,d=f,t=u):(d=f,t=u)}else d=f,t=u}while(!1);if(!(f>>>0>=p>>>0)&&(r=p+4|0,o=n[r>>2]|0,!!(o&1))){if(o&2)n[r>>2]=o&-2,n[d+4>>2]=t|1,n[f+t>>2]=t,l=t;else{if((n[6987]|0)==(p|0)){if(p=(n[6984]|0)+t|0,n[6984]=p,n[6987]=d,n[d+4>>2]=p|1,(d|0)!=(n[6986]|0))return;n[6986]=0,n[6983]=0;return}if((n[6986]|0)==(p|0)){p=(n[6983]|0)+t|0,n[6983]=p,n[6986]=f,n[d+4>>2]=p|1,n[f+p>>2]=p;return}l=(o&-8)+t|0,s=o>>>3;do if(o>>>0<256)if(t=n[p+8>>2]|0,r=n[p+12>>2]|0,(r|0)==(t|0)){n[6981]=n[6981]&~(1<<s);break}else{n[t+12>>2]=r,n[r+8>>2]=t;break}else{u=n[p+24>>2]|0,r=n[p+12>>2]|0;do if((r|0)==(p|0)){if(t=p+16|0,s=t+4|0,r=n[s>>2]|0,r)t=s;else if(r=n[t>>2]|0,!r){s=0;break}for(;;)if(o=r+20|0,s=n[o>>2]|0,s)r=s,t=o;else if(o=r+16|0,s=n[o>>2]|0,s)r=s,t=o;else break;n[t>>2]=0,s=r}else s=n[p+8>>2]|0,n[s+12>>2]=r,n[r+8>>2]=s,s=r;while(!1);if(u|0){if(r=n[p+28>>2]|0,t=28228+(r<<2)|0,(n[t>>2]|0)==(p|0)){if(n[t>>2]=s,!s){n[6982]=n[6982]&~(1<<r);break}}else if(o=u+16|0,n[((n[o>>2]|0)==(p|0)?o:u+20|0)>>2]=s,!s)break;n[s+24>>2]=u,r=p+16|0,t=n[r>>2]|0,t|0&&(n[s+16>>2]=t,n[t+24>>2]=s),r=n[r+4>>2]|0,r|0&&(n[s+20>>2]=r,n[r+24>>2]=s)}}while(!1);if(n[d+4>>2]=l|1,n[f+l>>2]=l,(d|0)==(n[6986]|0)){n[6983]=l;return}}if(r=l>>>3,l>>>0<256){s=27964+(r<<1<<2)|0,t=n[6981]|0,r=1<<r,t&r?(t=s+8|0,r=n[t>>2]|0):(n[6981]=t|r,r=s,t=s+8|0),n[t>>2]=d,n[r+12>>2]=d,n[d+8>>2]=r,n[d+12>>2]=s;return}r=l>>>8,r?l>>>0>16777215?o=31:(f=(r+1048320|0)>>>16&8,p=r<<f,u=(p+520192|0)>>>16&4,p=p<<u,o=(p+245760|0)>>>16&2,o=14-(u|f|o)+(p<<o>>>15)|0,o=l>>>(o+7|0)&1|o<<1):o=0,r=28228+(o<<2)|0,n[d+28>>2]=o,n[d+20>>2]=0,n[d+16>>2]=0,t=n[6982]|0,s=1<<o;A:do if(!(t&s))n[6982]=t|s,n[r>>2]=d,n[d+24>>2]=r,n[d+12>>2]=d,n[d+8>>2]=d;else{r=n[r>>2]|0;e:do if((n[r+4>>2]&-8|0)!=(l|0)){for(o=l<<((o|0)==31?0:25-(o>>>1)|0);s=r+16+(o>>>31<<2)|0,t=n[s>>2]|0,!!t;)if((n[t+4>>2]&-8|0)==(l|0)){r=t;break e}else o=o<<1,r=t;n[s>>2]=d,n[d+24>>2]=r,n[d+12>>2]=d,n[d+8>>2]=d;break A}while(!1);f=r+8|0,p=n[f>>2]|0,n[p+12>>2]=d,n[f>>2]=d,n[d+8>>2]=p,n[d+12>>2]=r,n[d+24>>2]=0}while(!1);if(p=(n[6989]|0)+-1|0,n[6989]=p,!(p|0)){for(r=28380;r=n[r>>2]|0,r;)r=r+8|0;n[6989]=-1}}}}function Me(r,t){r=r|0,t=t|0;var s=0;return r?(s=je(t,r)|0,(t|r)>>>0>65535&&(s=((s>>>0)/(r>>>0)|0|0)==(t|0)?s:-1)):s=0,r=Ye(s)|0,!r||!(n[r+-4>>2]&3)||ht(r|0,0,s|0)|0,r|0}function wA(r,t,s,o){return r=r|0,t=t|0,s=s|0,o=o|0,s=r+s>>>0,IA(t+o+(s>>>0<r>>>0|0)>>>0|0),s|0|0}function ue(r,t,s,o){return r=r|0,t=t|0,s=s|0,o=o|0,o=t-o-(s>>>0>r>>>0|0)>>>0,IA(o|0),r-s>>>0|0|0}function qs(r){return r=r|0,(r?31-(et(r^r-1)|0)|0:32)|0}function p0(r,t,s,o,l){r=r|0,t=t|0,s=s|0,o=o|0,l=l|0;var u=0,f=0,d=0,p=0,w=0,T=0,M=0,I=0,B=0,L=0;if(T=r,p=t,w=p,f=s,I=o,d=I,!w)return u=(l|0)!=0,d?u?(n[l>>2]=r|0,n[l+4>>2]=t&0,I=0,l=0,IA(I|0),l|0):(I=0,l=0,IA(I|0),l|0):(u&&(n[l>>2]=(T>>>0)%(f>>>0),n[l+4>>2]=0),I=0,l=(T>>>0)/(f>>>0)>>>0,IA(I|0),l|0);u=(d|0)==0;do if(f){if(!u){if(u=(et(d|0)|0)-(et(w|0)|0)|0,u>>>0<=31){M=u+1|0,d=31-u|0,t=u-31>>31,f=M,r=T>>>(M>>>0)&t|w<<d,t=w>>>(M>>>0)&t,u=0,d=T<<d;break}return l?(n[l>>2]=r|0,n[l+4>>2]=p|t&0,I=0,l=0,IA(I|0),l|0):(I=0,l=0,IA(I|0),l|0)}if(u=f-1|0,u&f|0){d=(et(f|0)|0)+33-(et(w|0)|0)|0,L=64-d|0,M=32-d|0,p=M>>31,B=d-32|0,t=B>>31,f=d,r=M-1>>31&w>>>(B>>>0)|(w<<M|T>>>(d>>>0))&t,t=t&w>>>(d>>>0),u=T<<L&p,d=(w<<L|T>>>(B>>>0))&p|T<<M&d-33>>31;break}return l|0&&(n[l>>2]=u&T,n[l+4>>2]=0),(f|0)==1?(B=p|t&0,L=r|0|0,IA(B|0),L|0):(L=qs(f|0)|0,B=w>>>(L>>>0)|0,L=w<<32-L|T>>>(L>>>0)|0,IA(B|0),L|0)}else{if(u)return l|0&&(n[l>>2]=(w>>>0)%(f>>>0),n[l+4>>2]=0),B=0,L=(w>>>0)/(f>>>0)>>>0,IA(B|0),L|0;if(!T)return l|0&&(n[l>>2]=0,n[l+4>>2]=(w>>>0)%(d>>>0)),B=0,L=(w>>>0)/(d>>>0)>>>0,IA(B|0),L|0;if(u=d-1|0,!(u&d))return l|0&&(n[l>>2]=r|0,n[l+4>>2]=u&w|t&0),B=0,L=w>>>((qs(d|0)|0)>>>0),IA(B|0),L|0;if(u=(et(d|0)|0)-(et(w|0)|0)|0,u>>>0<=30){t=u+1|0,d=31-u|0,f=t,r=w<<d|T>>>(t>>>0),t=w>>>(t>>>0),u=0,d=T<<d;break}return l?(n[l>>2]=r|0,n[l+4>>2]=p|t&0,B=0,L=0,IA(B|0),L|0):(B=0,L=0,IA(B|0),L|0)}while(!1);if(!f)w=d,p=0,d=0;else{M=s|0|0,T=I|o&0,w=wA(M|0,T|0,-1,-1)|0,s=C()|0,p=d,d=0;do o=p,p=u>>>31|p<<1,u=d|u<<1,o=r<<1|o>>>31|0,I=r>>>31|t<<1|0,ue(w|0,s|0,o|0,I|0)|0,L=C()|0,B=L>>31|((L|0)<0?-1:0)<<1,d=B&1,r=ue(o|0,I|0,B&M|0,(((L|0)<0?-1:0)>>31|((L|0)<0?-1:0)<<1)&T|0)|0,t=C()|0,f=f-1|0;while((f|0)!=0);w=p,p=0}return f=0,l|0&&(n[l>>2]=r,n[l+4>>2]=t),B=(u|0)>>>31|(w|f)<<1|(f<<1|u>>>31)&0|p,L=(u<<1|0)&-2|d,IA(B|0),L|0}function ft(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0,d=0,p=0,w=0;return w=t>>31|((t|0)<0?-1:0)<<1,p=((t|0)<0?-1:0)>>31|((t|0)<0?-1:0)<<1,u=o>>31|((o|0)<0?-1:0)<<1,l=((o|0)<0?-1:0)>>31|((o|0)<0?-1:0)<<1,d=ue(w^r|0,p^t|0,w|0,p|0)|0,f=C()|0,r=u^w,t=l^p,ue((p0(d,f,ue(u^s|0,l^o|0,u|0,l|0)|0,C()|0,0)|0)^r|0,(C()|0)^t|0,r|0,t|0)|0}function Lh(r,t){r=r|0,t=t|0;var s=0,o=0,l=0,u=0;return u=r&65535,l=t&65535,s=je(l,u)|0,o=r>>>16,r=(s>>>16)+(je(l,o)|0)|0,l=t>>>16,t=je(l,u)|0,IA((r>>>16)+(je(l,o)|0)+(((r&65535)+t|0)>>>16)|0),r+t<<16|s&65535|0|0}function ce(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0;return l=r,u=s,s=Lh(l,u)|0,r=C()|0,IA((je(t,u)|0)+(je(o,l)|0)+r|r&0|0),s|0|0|0}function zt(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0,f=0,d=0,p=0,w=0;return l=b,b=b+16|0,d=l|0,f=t>>31|((t|0)<0?-1:0)<<1,u=((t|0)<0?-1:0)>>31|((t|0)<0?-1:0)<<1,w=o>>31|((o|0)<0?-1:0)<<1,p=((o|0)<0?-1:0)>>31|((o|0)<0?-1:0)<<1,r=ue(f^r|0,u^t|0,f|0,u|0)|0,t=C()|0,p0(r,t,ue(w^s|0,p^o|0,w|0,p|0)|0,C()|0,d)|0,o=ue(n[d>>2]^f|0,n[d+4>>2]^u|0,f|0,u|0)|0,s=C()|0,b=l,IA(s|0),o|0}function Gt(r,t,s,o){r=r|0,t=t|0,s=s|0,o=o|0;var l=0,u=0;return u=b,b=b+16|0,l=u|0,p0(r,t,s,o,l)|0,b=u,IA(n[l+4>>2]|0),n[l>>2]|0|0}function Hs(r,t,s){return r=r|0,t=t|0,s=s|0,(s|0)<32?(IA(t>>s|0),r>>>s|(t&(1<<s)-1)<<32-s):(IA(((t|0)<0?-1:0)|0),t>>s-32|0)}function K(r,t,s){return r=r|0,t=t|0,s=s|0,(s|0)<32?(IA(t>>>s|0),r>>>s|(t&(1<<s)-1)<<32-s):(IA(0),t>>>s-32|0)}function iA(r,t,s){return r=r|0,t=t|0,s=s|0,(s|0)<32?(IA(t<<s|(r&(1<<s)-1<<32-s)>>>32-s|0),r<<s):(IA(r<<s-32|0),0)}function m0(r,t,s){return r=r|0,t=t|0,t=et(t)|0,(t|0)==32&&(t=t+(et(r)|0)|0),IA(0),t|0}function js(r,t){return r=+r,t=+t,r!=r?+t:t!=t?+r:+Oc(+r,+t)}function Qr(r,t){return r=+r,t=+t,r!=r?+t:t!=t?+r:+Hn(+r,+t)}function Vr(r){return r=+r,r>=0?+ae(r+.5):+kt(r-.5)}function qt(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0;if((s|0)>=8192)return Fc(r|0,t|0,s|0)|0,r|0;if(u=r|0,l=r+s|0,(r&3)==(t&3)){for(;r&3;){if(!s)return u|0;AA[r>>0]=AA[t>>0]|0,r=r+1|0,t=t+1|0,s=s-1|0}for(s=l&-4|0,o=s-64|0;(r|0)<=(o|0);)n[r>>2]=n[t>>2],n[r+4>>2]=n[t+4>>2],n[r+8>>2]=n[t+8>>2],n[r+12>>2]=n[t+12>>2],n[r+16>>2]=n[t+16>>2],n[r+20>>2]=n[t+20>>2],n[r+24>>2]=n[t+24>>2],n[r+28>>2]=n[t+28>>2],n[r+32>>2]=n[t+32>>2],n[r+36>>2]=n[t+36>>2],n[r+40>>2]=n[t+40>>2],n[r+44>>2]=n[t+44>>2],n[r+48>>2]=n[t+48>>2],n[r+52>>2]=n[t+52>>2],n[r+56>>2]=n[t+56>>2],n[r+60>>2]=n[t+60>>2],r=r+64|0,t=t+64|0;for(;(r|0)<(s|0);)n[r>>2]=n[t>>2],r=r+4|0,t=t+4|0}else for(s=l-4|0;(r|0)<(s|0);)AA[r>>0]=AA[t>>0]|0,AA[r+1>>0]=AA[t+1>>0]|0,AA[r+2>>0]=AA[t+2>>0]|0,AA[r+3>>0]=AA[t+3>>0]|0,r=r+4|0,t=t+4|0;for(;(r|0)<(l|0);)AA[r>>0]=AA[t>>0]|0,r=r+1|0,t=t+1|0;return u|0}function ht(r,t,s){r=r|0,t=t|0,s=s|0;var o=0,l=0,u=0,f=0;if(u=r+s|0,t=t&255,(s|0)>=67){for(;r&3;)AA[r>>0]=t,r=r+1|0;for(o=u&-4|0,f=t|t<<8|t<<16|t<<24,l=o-64|0;(r|0)<=(l|0);)n[r>>2]=f,n[r+4>>2]=f,n[r+8>>2]=f,n[r+12>>2]=f,n[r+16>>2]=f,n[r+20>>2]=f,n[r+24>>2]=f,n[r+28>>2]=f,n[r+32>>2]=f,n[r+36>>2]=f,n[r+40>>2]=f,n[r+44>>2]=f,n[r+48>>2]=f,n[r+52>>2]=f,n[r+56>>2]=f,n[r+60>>2]=f,r=r+64|0;for(;(r|0)<(o|0);)n[r>>2]=f,r=r+4|0}for(;(r|0)<(u|0);)AA[r>>0]=t,r=r+1|0;return u-s|0}function Ws(r){return r=+r,r>=0?+ae(r+.5):+kt(r-.5)}function dt(r){r=r|0;var t=0,s=0,o=0;return o=kc()|0,s=n[WA>>2]|0,t=s+r|0,(r|0)>0&(t|0)<(s|0)|(t|0)<0?(Qc(t|0)|0,es(12),-1):(t|0)>(o|0)&&!(Uc(t|0)|0)?(es(12),-1):(n[WA>>2]=t,s|0)}return{___divdi3:ft,___muldi3:ce,___remdi3:zt,___uremdi3:Gt,_areNeighborCells:wf,_bitshift64Ashr:Hs,_bitshift64Lshr:K,_bitshift64Shl:iA,_calloc:Me,_cellAreaKm2:Jf,_cellAreaM2:Kf,_cellAreaRads2:f0,_cellToBoundary:Qt,_cellToCenterChild:Ms,_cellToChildPos:zf,_cellToChildren:Nf,_cellToChildrenSize:hr,_cellToLatLng:Et,_cellToLocalIj:ih,_cellToParent:n0,_cellToVertex:ke,_cellToVertexes:bh,_cellsToDirectedEdge:yf,_cellsToLinkedMultiPolygon:Kc,_childPosToCell:Gf,_compactCells:Rf,_constructCell:Pf,_destroyLinkedMultiPolygon:Ls,_directedEdgeToBoundary:Or,_directedEdgeToCells:_f,_edgeLengthKm:Ah,_edgeLengthM:eh,_edgeLengthRads:$f,_emscripten_replace_memory:Vc,_free:TA,_getBaseCellNumber:Es,_getDirectedEdgeDestination:vf,_getDirectedEdgeOrigin:Tf,_getHexagonAreaAvgKm2:Is,_getHexagonAreaAvgM2:Yf,_getHexagonEdgeLengthAvgKm:Zf,_getHexagonEdgeLengthAvgM:Xf,_getIcosahedronFaces:Cs,_getIndexDigit:Lf,_getNumCells:kr,_getPentagons:l0,_getRes0Cells:rf,_getResolution:Bf,_greatCircleDistanceKm:gr,_greatCircleDistanceM:Hf,_greatCircleDistanceRads:qf,_gridDisk:ts,_gridDiskDistances:rs,_gridDistance:oh,_gridPathCells:lh,_gridPathCellsSize:ah,_gridRing:Wc,_gridRingUnsafe:is,_i64Add:wA,_i64Subtract:ue,_isPentagon:JA,_isResClassIII:kf,_isValidCell:t0,_isValidDirectedEdge:Ts,_isValidIndex:xf,_isValidVertex:Us,_latLngToCell:o0,_llvm_ctlz_i64:m0,_llvm_maxnum_f64:js,_llvm_minnum_f64:Qr,_llvm_round_f64:Vr,_localIjToCell:sh,_malloc:Ye,_maxFaceCount:Qf,_maxGridDiskSize:jc,_maxPolygonToCellsSize:Zc,_maxPolygonToCellsSizeExperimental:fh,_memcpy:qt,_memset:ht,_originToDirectedEdges:Ef,_pentagonCount:Vf,_polygonToCells:Xc,_polygonToCellsExperimental:ch,_readInt64AsDoubleFromPointer:Th,_res0CellCount:tf,_round:Ws,_sbrk:dt,_sizeOfCellBoundary:gh,_sizeOfCoordIJ:yh,_sizeOfGeoLoop:ph,_sizeOfGeoPolygon:mh,_sizeOfH3Index:hh,_sizeOfLatLng:dh,_sizeOfLinkedGeoPolygon:wh,_uncompactCells:Df,_uncompactCellsSize:Of,_vertexToLatLng:Mh,establishStackSpace:Hc,stackAlloc:zc,stackRestore:qc,stackSave:Gc}})(Lc,Pc,x);A.___divdi3=rA.___divdi3,A.___muldi3=rA.___muldi3,A.___remdi3=rA.___remdi3,A.___uremdi3=rA.___uremdi3,A._areNeighborCells=rA._areNeighborCells,A._bitshift64Ashr=rA._bitshift64Ashr,A._bitshift64Lshr=rA._bitshift64Lshr,A._bitshift64Shl=rA._bitshift64Shl,A._calloc=rA._calloc,A._cellAreaKm2=rA._cellAreaKm2,A._cellAreaM2=rA._cellAreaM2,A._cellAreaRads2=rA._cellAreaRads2,A._cellToBoundary=rA._cellToBoundary,A._cellToCenterChild=rA._cellToCenterChild,A._cellToChildPos=rA._cellToChildPos,A._cellToChildren=rA._cellToChildren,A._cellToChildrenSize=rA._cellToChildrenSize,A._cellToLatLng=rA._cellToLatLng,A._cellToLocalIj=rA._cellToLocalIj,A._cellToParent=rA._cellToParent,A._cellToVertex=rA._cellToVertex,A._cellToVertexes=rA._cellToVertexes,A._cellsToDirectedEdge=rA._cellsToDirectedEdge,A._cellsToLinkedMultiPolygon=rA._cellsToLinkedMultiPolygon,A._childPosToCell=rA._childPosToCell,A._compactCells=rA._compactCells,A._constructCell=rA._constructCell,A._destroyLinkedMultiPolygon=rA._destroyLinkedMultiPolygon,A._directedEdgeToBoundary=rA._directedEdgeToBoundary,A._directedEdgeToCells=rA._directedEdgeToCells,A._edgeLengthKm=rA._edgeLengthKm,A._edgeLengthM=rA._edgeLengthM,A._edgeLengthRads=rA._edgeLengthRads;var xc=A._emscripten_replace_memory=rA._emscripten_replace_memory;A._free=rA._free,A._getBaseCellNumber=rA._getBaseCellNumber,A._getDirectedEdgeDestination=rA._getDirectedEdgeDestination,A._getDirectedEdgeOrigin=rA._getDirectedEdgeOrigin,A._getHexagonAreaAvgKm2=rA._getHexagonAreaAvgKm2,A._getHexagonAreaAvgM2=rA._getHexagonAreaAvgM2,A._getHexagonEdgeLengthAvgKm=rA._getHexagonEdgeLengthAvgKm,A._getHexagonEdgeLengthAvgM=rA._getHexagonEdgeLengthAvgM,A._getIcosahedronFaces=rA._getIcosahedronFaces,A._getIndexDigit=rA._getIndexDigit,A._getNumCells=rA._getNumCells,A._getPentagons=rA._getPentagons,A._getRes0Cells=rA._getRes0Cells,A._getResolution=rA._getResolution,A._greatCircleDistanceKm=rA._greatCircleDistanceKm,A._greatCircleDistanceM=rA._greatCircleDistanceM,A._greatCircleDistanceRads=rA._greatCircleDistanceRads,A._gridDisk=rA._gridDisk,A._gridDiskDistances=rA._gridDiskDistances,A._gridDistance=rA._gridDistance,A._gridPathCells=rA._gridPathCells,A._gridPathCellsSize=rA._gridPathCellsSize,A._gridRing=rA._gridRing,A._gridRingUnsafe=rA._gridRingUnsafe,A._i64Add=rA._i64Add,A._i64Subtract=rA._i64Subtract,A._isPentagon=rA._isPentagon,A._isResClassIII=rA._isResClassIII,A._isValidCell=rA._isValidCell,A._isValidDirectedEdge=rA._isValidDirectedEdge,A._isValidIndex=rA._isValidIndex,A._isValidVertex=rA._isValidVertex,A._latLngToCell=rA._latLngToCell,A._llvm_ctlz_i64=rA._llvm_ctlz_i64,A._llvm_maxnum_f64=rA._llvm_maxnum_f64,A._llvm_minnum_f64=rA._llvm_minnum_f64,A._llvm_round_f64=rA._llvm_round_f64,A._localIjToCell=rA._localIjToCell,A._malloc=rA._malloc,A._maxFaceCount=rA._maxFaceCount,A._maxGridDiskSize=rA._maxGridDiskSize,A._maxPolygonToCellsSize=rA._maxPolygonToCellsSize,A._maxPolygonToCellsSizeExperimental=rA._maxPolygonToCellsSizeExperimental,A._memcpy=rA._memcpy,A._memset=rA._memset,A._originToDirectedEdges=rA._originToDirectedEdges,A._pentagonCount=rA._pentagonCount,A._polygonToCells=rA._polygonToCells,A._polygonToCellsExperimental=rA._polygonToCellsExperimental,A._readInt64AsDoubleFromPointer=rA._readInt64AsDoubleFromPointer,A._res0CellCount=rA._res0CellCount,A._round=rA._round,A._sbrk=rA._sbrk,A._sizeOfCellBoundary=rA._sizeOfCellBoundary,A._sizeOfCoordIJ=rA._sizeOfCoordIJ,A._sizeOfGeoLoop=rA._sizeOfGeoLoop,A._sizeOfGeoPolygon=rA._sizeOfGeoPolygon,A._sizeOfH3Index=rA._sizeOfH3Index,A._sizeOfLatLng=rA._sizeOfLatLng,A._sizeOfLinkedGeoPolygon=rA._sizeOfLinkedGeoPolygon,A._uncompactCells=rA._uncompactCells,A._uncompactCellsSize=rA._uncompactCellsSize,A._vertexToLatLng=rA._vertexToLatLng,A.establishStackSpace=rA.establishStackSpace;var Ji=A.stackAlloc=rA.stackAlloc,Nc=A.stackRestore=rA.stackRestore,Rc=A.stackSave=rA.stackSave;if(A.asm=rA,A.cwrap=nA,A.setValue=N,A.getValue=Y,At){Zi(At)||(At=h(At));{yc();var zn=function(W){W.byteLength&&(W=new Uint8Array(W)),J.set(W,P),A.memoryInitializerRequest&&delete A.memoryInitializerRequest.response,Tc()},Ki=function(){g(At,zn,function(){throw"could not load memory initializer "+At})},$i=Vn(At);if($i)zn($i.buffer);else if(A.memoryInitializerRequest){var As=function(){var W=A.memoryInitializerRequest,$=W.response;if(W.status!==200&&W.status!==0){var cA=Vn(A.memoryInitializerRequestURL);if(cA)$=cA.buffer;else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+W.status+", retrying "+At),Ki();return}}zn($)};A.memoryInitializerRequest.response?setTimeout(As,0):A.memoryInitializerRequest.addEventListener("load",As)}else Ki()}}var Pr;cr=function W(){Pr||Gn(),Pr||(cr=W)};function Gn(W){if(wt>0||(lc(),wt>0))return;function $(){Pr||(Pr=!0,!Z&&(uc(),cc(),A.onRuntimeInitialized&&A.onRuntimeInitialized(),fc()))}A.setStatus?(A.setStatus("Running..."),setTimeout(function(){setTimeout(function(){A.setStatus("")},1),$()},1)):$()}A.run=Gn;function Ot(W){throw A.onAbort&&A.onAbort(W),W+="",m(W),y(W),Z=!0,"abort("+W+"). Build with -s ASSERTIONS=1 for more info."}if(A.abort=Ot,A.preInit)for(typeof A.preInit=="function"&&(A.preInit=[A.preInit]);A.preInit.length>0;)A.preInit.pop()();return Gn(),e})(typeof qA=="object"?qA:{}),_A="number",vA=_A,Yt=_A,MA=_A,CA=_A,fe=_A,fA=_A,Kg=[["sizeOfH3Index",_A],["sizeOfLatLng",_A],["sizeOfCellBoundary",_A],["sizeOfGeoLoop",_A],["sizeOfGeoPolygon",_A],["sizeOfLinkedGeoPolygon",_A],["sizeOfCoordIJ",_A],["readInt64AsDoubleFromPointer",_A],["isValidCell",Yt,[MA,CA]],["isValidIndex",Yt,[MA,CA]],["latLngToCell",vA,[_A,_A,fe,fA]],["cellToLatLng",vA,[MA,CA,fA]],["cellToBoundary",vA,[MA,CA,fA]],["maxGridDiskSize",vA,[_A,fA]],["gridDisk",vA,[MA,CA,_A,fA]],["gridDiskDistances",vA,[MA,CA,_A,fA,fA]],["gridRing",vA,[MA,CA,_A,fA]],["gridRingUnsafe",vA,[MA,CA,_A,fA]],["maxPolygonToCellsSize",vA,[fA,fe,_A,fA]],["polygonToCells",vA,[fA,fe,_A,fA]],["maxPolygonToCellsSizeExperimental",vA,[fA,fe,_A,fA]],["polygonToCellsExperimental",vA,[fA,fe,_A,_A,_A,fA]],["cellsToLinkedMultiPolygon",vA,[fA,_A,fA]],["destroyLinkedMultiPolygon",null,[fA]],["compactCells",vA,[fA,fA,_A,_A]],["uncompactCells",vA,[fA,_A,_A,fA,_A,fe]],["uncompactCellsSize",vA,[fA,_A,_A,fe,fA]],["isPentagon",Yt,[MA,CA]],["isResClassIII",Yt,[MA,CA]],["getBaseCellNumber",_A,[MA,CA]],["getResolution",_A,[MA,CA]],["getIndexDigit",_A,[MA,CA,_A]],["constructCell",vA,[_A,_A,fA,fA]],["maxFaceCount",vA,[MA,CA,fA]],["getIcosahedronFaces",vA,[MA,CA,fA]],["cellToParent",vA,[MA,CA,fe,fA]],["cellToChildren",vA,[MA,CA,fe,fA]],["cellToCenterChild",vA,[MA,CA,fe,fA]],["cellToChildrenSize",vA,[MA,CA,fe,fA]],["cellToChildPos",vA,[MA,CA,fe,fA]],["childPosToCell",vA,[_A,_A,MA,CA,fe,fA]],["areNeighborCells",vA,[MA,CA,MA,CA,fA]],["cellsToDirectedEdge",vA,[MA,CA,MA,CA,fA]],["getDirectedEdgeOrigin",vA,[MA,CA,fA]],["getDirectedEdgeDestination",vA,[MA,CA,fA]],["isValidDirectedEdge",Yt,[MA,CA]],["directedEdgeToCells",vA,[MA,CA,fA]],["originToDirectedEdges",vA,[MA,CA,fA]],["directedEdgeToBoundary",vA,[MA,CA,fA]],["gridDistance",vA,[MA,CA,MA,CA,fA]],["gridPathCells",vA,[MA,CA,MA,CA,fA]],["gridPathCellsSize",vA,[MA,CA,MA,CA,fA]],["cellToLocalIj",vA,[MA,CA,MA,CA,_A,fA]],["localIjToCell",vA,[MA,CA,fA,_A,fA]],["getHexagonAreaAvgM2",vA,[fe,fA]],["getHexagonAreaAvgKm2",vA,[fe,fA]],["getHexagonEdgeLengthAvgM",vA,[fe,fA]],["getHexagonEdgeLengthAvgKm",vA,[fe,fA]],["greatCircleDistanceM",_A,[fA,fA]],["greatCircleDistanceKm",_A,[fA,fA]],["greatCircleDistanceRads",_A,[fA,fA]],["cellAreaM2",vA,[MA,CA,fA]],["cellAreaKm2",vA,[MA,CA,fA]],["cellAreaRads2",vA,[MA,CA,fA]],["edgeLengthM",vA,[MA,CA,fA]],["edgeLengthKm",vA,[MA,CA,fA]],["edgeLengthRads",vA,[MA,CA,fA]],["getNumCells",vA,[fe,fA]],["getRes0Cells",vA,[fA]],["res0CellCount",_A],["getPentagons",vA,[_A,fA]],["pentagonCount",_A],["cellToVertex",vA,[MA,CA,_A,fA]],["cellToVertexes",vA,[MA,CA,fA]],["vertexToLatLng",vA,[MA,CA,fA]],["isValidVertex",Yt,[MA,CA]]],$g=0,Ap=1,ep=2,tp=3,Xl=4,rp=5,np=6,ip=7,sp=8,op=9,ap=10,lp=11,up=12,cp=13,fp=14,hp=15,dp=16,gp=17,pp=18,mp=19,ne={};ne[$g]="Success";ne[Ap]="The operation failed but a more specific error is not available";ne[ep]="Argument was outside of acceptable range";ne[tp]="Latitude or longitude arguments were outside of acceptable range";ne[Xl]="Resolution argument was outside of acceptable range";ne[rp]="Cell argument was not valid";ne[np]="Directed edge argument was not valid";ne[ip]="Undirected edge argument was not valid";ne[sp]="Vertex argument was not valid";ne[op]="Pentagon distortion was encountered";ne[ap]="Duplicate input";ne[lp]="Cell arguments were not neighbors";ne[up]="Cell arguments had incompatible resolutions";ne[cp]="Memory allocation failed";ne[fp]="Bounds of provided memory were insufficient";ne[hp]="Mode or flags argument was not valid";ne[dp]="Index argument was not valid";ne[gp]="Base cell number was outside of acceptable range";ne[pp]="Child indexing digits invalid";ne[mp]="Child indexing digits refer to a deleted subsequence";var Jl=1e3,wp=1001,Kl=1002,Nn={};Nn[Jl]="Unknown unit";Nn[wp]="Array length out of bounds";Nn[Kl]="Got unexpected null value for H3 index";var yp="Unknown error";function $l(e,A,i){var a=i&&"value"in i,c=new Error((e[A]||yp)+" (code: "+A+(a?", value: "+i.value:"")+")");return c.code=A,c}function Au(e,A){var i=arguments.length===2?{value:A}:{};return $l(ne,e,i)}function eu(e,A){var i=arguments.length===2?{value:A}:{};return $l(Nn,e,i)}function Pt(e){if(e!==0)throw Au(e)}var oe={};Kg.forEach(function(A){oe[A[0]]=qA.cwrap.apply(qA,A)});var Jt=16,tu=4,yo=4,mt=8,Tp=8,_n=oe.sizeOfH3Index(),ru=oe.sizeOfLatLng(),vp=oe.sizeOfCellBoundary();oe.sizeOfGeoPolygon();oe.sizeOfGeoLoop();var _p=oe.sizeOfLinkedGeoPolygon();oe.sizeOfCoordIJ();var To={m:"m",m2:"m2",km:"km",km2:"km2",rads:"rads",rads2:"rads2"};function Ep(e){if(typeof e!="number"||e<0||e>15||Math.floor(e)!==e)throw Au(Xl,e);return e}function bp(e){if(!e)throw eu(Kl);return e}var Mp=/[^0-9a-fA-F]/;function xt(e){if(Array.isArray(e)&&e.length===2&&Number.isInteger(e[0])&&Number.isInteger(e[1]))return e;if(typeof e!="string"||Mp.test(e))return[0,0];var A=parseInt(e.substring(0,e.length-8),Jt),i=parseInt(e.substring(e.length-8),Jt);return[i,A]}function vo(e){if(e>=0)return e.toString(Jt);e=e&2147483647;var A=nu(8,e.toString(Jt)),i=(parseInt(A[0],Jt)+8).toString(Jt);return A=i+A.substring(1),A}function Cp(e,A){return vo(A)+nu(8,vo(e))}function nu(e,A){for(var i=e-A.length,a="",c=0;c<i;c++)a+="0";return a=a+A,a}function Sp(e,A){A===void 0&&(A=0);var i=qA.getValue(e+_n*A,"i32"),a=qA.getValue(e+_n*A+tu,"i32");return a?Cp(i,a):null}function Ip(e,A){return A===void 0&&(A=0),qA.getValue(e+mt*A,"double")}function Bp(e){return oe.readInt64AsDoubleFromPointer(e)}function Lp(e,A,i){qA.HEAPU32.set(xt(e),A/tu+2*i)}function Pp(e,A){for(var i=A.length,a=0;a<i;a++)Lp(A[a],e,a)}function En(e){return Gp(qA.getValue(e,"double"))}function xp(e){return[En(e),En(e+mt)]}function iu(e){return[En(e+mt),En(e)]}function Np(e,A,i){for(var a=qA.getValue(e,"i32"),c=e+mt,h=[],g=iu,m=0;m<a*2;m+=2)h.push(g(c+mt*m));return h.push(h[0]),h}function Rp(e,A){for(var i=[],a=iu,c,h,g,m;e;){for(i.push(c=[]),h=qA.getValue(e,"i8*");h;){for(c.push(g=[]),m=qA.getValue(h,"i8*");m;)g.push(a(m)),m=qA.getValue(m+mt*2,"i8*");g.push(g[0]),h=qA.getValue(h+yo*2,"i8*")}e=qA.getValue(e+yo*2,"i8*")}return i}function Dp(e){var A=xt(e),i=A[0],a=A[1];return!!oe.isPentagon(i,a)}function Op(e){var A=xt(e),i=A[0],a=A[1];return oe.isValidCell(i,a)?oe.getResolution(i,a):-1}function kp(e,A,i){var a=qA._malloc(ru);qA.HEAPF64.set([e,A].map(zp),a/mt);var c=qA._malloc(_n);try{return Pt(oe.latLngToCell(a,i,c)),bp(Sp(c))}finally{qA._free(c),qA._free(a)}}function Li(e){var A=qA._malloc(ru),i=xt(e),a=i[0],c=i[1];try{return Pt(oe.cellToLatLng(a,c,A)),xp(A)}finally{qA._free(A)}}function Fp(e,A){var i=qA._malloc(vp),a=xt(e),c=a[0],h=a[1];try{return Pt(oe.cellToBoundary(c,h,i)),Np(i,A,A)}finally{qA._free(i)}}function Up(e,A){if(!e||!e.length)return[];var i=e.length,a=qA._calloc(i,_n);Pp(a,e);var c=qA._calloc(_p);try{return Pt(oe.cellsToLinkedMultiPolygon(a,i,c)),Rp(c,A)}finally{oe.destroyLinkedMultiPolygon(c),qA._free(c),qA._free(a)}}function Qp(e,A){var i=xt(e),a=i[0],c=i[1],h=xt(A),g=h[0],m=h[1],y=qA._malloc(Tp);try{return Pt(oe.gridDistance(a,c,g,m,y)),Bp(y)}finally{qA._free(y)}}function Vp(e,A){Ep(e);var i=qA._malloc(mt);try{switch(A){case To.m:Pt(oe.getHexagonEdgeLengthAvgM(e,i));break;case To.km:Pt(oe.getHexagonEdgeLengthAvgKm(e,i));break;default:throw eu(Jl,A)}return Ip(i)}finally{qA._free(i)}}function zp(e){return e*Math.PI/180}function Gp(e){return e*180/Math.PI}function Pi(e,A){A=A===void 0?e[0][0]:A;for(const i of e){const a=i[0]-A;a>180?i[0]-=360:a<-180&&(i[0]+=360)}}function qp(e,A,i){const[a,c]=Li(e),h=A.length;Pi(A,c);const g=A[0]===A[h-1]?h-1:h;for(let m=0;m<g;m++)A[m][0]=mn(c,A[m][0],i),A[m][1]=mn(a,A[m][1],i)}function Hp(e,A,i){const a=e(A,i),[c,h]=Li(a);return[h,c]}function _o(e,A=1){const i=Fp(e,!0);return A!==1?qp(e,i,A):Pi(i),i}function su(e){const A=new Float64Array(e.length*2);let i=0;for(const a of e)A[i++]=a[0],A[i++]=a[1];return A}const jp={getPentagon:{type:"accessor",value:e=>e.pentagon}};class ou extends Nt{indexToBounds(){const{data:A,getPentagon:i}=this.props;return{data:A,_normalize:!1,_windingOrder:"CCW",positionFormat:"XY",getPolygon:(a,c)=>{const h=i(a,c),g=Xg(typeof h=="string"?Jg(h):h,{closedRing:!0,segments:"auto"});return su(g)}}}}ou.layerName="A5Layer";ou.defaultProps=jp;function Wp(e){return typeof e=="string"?e.charAt(0).toLowerCase()+e.slice(1):e}function ai(e){if(Array.isArray(e))return e.map(A=>ai(A));if(e&&typeof e=="object"){const A={};for(const[i,a]of Object.entries(e))A[Wp(i)]=ai(a);return A}return e}var v0={},_0={},Eo;function xi(){return Eo||(Eo=1,(function(e){const A=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",i=A+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040",a="["+A+"]["+i+"]*",c=new RegExp("^"+a+"$"),h=function(m,y){const v=[];let _=y.exec(m);for(;_;){const S=[];S.startIndex=y.lastIndex-_[0].length;const P=_.length;for(let N=0;N<P;N++)S.push(_[N]);v.push(S),_=y.exec(m)}return v},g=function(m){const y=c.exec(m);return!(y===null||typeof y>"u")};e.isExist=function(m){return typeof m<"u"},e.isEmptyObject=function(m){return Object.keys(m).length===0},e.merge=function(m,y,v){if(y){const _=Object.keys(y),S=_.length;for(let P=0;P<S;P++)v==="strict"?m[_[P]]=[y[_[P]]]:m[_[P]]=y[_[P]]}},e.getValue=function(m){return e.isExist(m)?m:""},e.isName=g,e.getAllMatches=h,e.nameRegexp=a})(_0)),_0}var bo;function au(){if(bo)return v0;bo=1;const e=xi(),A={allowBooleanAttributes:!1,unpairedTags:[]};v0.validate=function(R,z){z=Object.assign({},A,z);const nA=[];let mA=!1,G=!1;R[0]==="\uFEFF"&&(R=R.substr(1));for(let j=0;j<R.length;j++)if(R[j]==="<"&&R[j+1]==="?"){if(j+=2,j=a(R,j),j.err)return j}else if(R[j]==="<"){let eA=j;if(j++,R[j]==="!"){j=c(R,j);continue}else{let lA=!1;R[j]==="/"&&(lA=!0,j++);let U="";for(;j<R.length&&R[j]!==">"&&R[j]!==" "&&R[j]!==" "&&R[j]!==`
2
+ `&&R[j]!=="\r";j++)U+=R[j];if(U=U.trim(),U[U.length-1]==="/"&&(U=U.substring(0,U.length-1),j--),!Y(U)){let X;return U.trim().length===0?X="Invalid space after '<'.":X="Tag '"+U+"' is an invalid name.",P("InvalidTag",X,Z(R,j))}const k=m(R,j);if(k===!1)return P("InvalidAttr","Attributes for '"+U+"' have open quote.",Z(R,j));let x=k.value;if(j=k.index,x[x.length-1]==="/"){const X=j-x.length;x=x.substring(0,x.length-1);const J=v(x,z);if(J===!0)mA=!0;else return P(J.err.code,J.err.msg,Z(R,X+J.err.line))}else if(lA)if(k.tagClosed){if(x.trim().length>0)return P("InvalidTag","Closing tag '"+U+"' can't have attributes or invalid starting.",Z(R,eA));if(nA.length===0)return P("InvalidTag","Closing tag '"+U+"' has not been opened.",Z(R,eA));{const X=nA.pop();if(U!==X.tagName){let J=Z(R,X.tagStartPos);return P("InvalidTag","Expected closing tag '"+X.tagName+"' (opened in line "+J.line+", col "+J.col+") instead of closing tag '"+U+"'.",Z(R,eA))}nA.length==0&&(G=!0)}}else return P("InvalidTag","Closing tag '"+U+"' doesn't have proper closing.",Z(R,j));else{const X=v(x,z);if(X!==!0)return P(X.err.code,X.err.msg,Z(R,j-x.length+X.err.line));if(G===!0)return P("InvalidXml","Multiple possible root nodes found.",Z(R,j));z.unpairedTags.indexOf(U)!==-1||nA.push({tagName:U,tagStartPos:eA}),mA=!0}for(j++;j<R.length;j++)if(R[j]==="<")if(R[j+1]==="!"){j++,j=c(R,j);continue}else if(R[j+1]==="?"){if(j=a(R,++j),j.err)return j}else break;else if(R[j]==="&"){const X=S(R,j);if(X==-1)return P("InvalidChar","char '&' is not expected.",Z(R,j));j=X}else if(G===!0&&!i(R[j]))return P("InvalidXml","Extra text at the end",Z(R,j));R[j]==="<"&&j--}}else{if(i(R[j]))continue;return P("InvalidChar","char '"+R[j]+"' is not expected.",Z(R,j))}if(mA){if(nA.length==1)return P("InvalidTag","Unclosed tag '"+nA[0].tagName+"'.",Z(R,nA[0].tagStartPos));if(nA.length>0)return P("InvalidXml","Invalid '"+JSON.stringify(nA.map(j=>j.tagName),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1})}else return P("InvalidXml","Start tag expected.",1);return!0};function i(R){return R===" "||R===" "||R===`
3
+ `||R==="\r"}function a(R,z){const nA=z;for(;z<R.length;z++)if(R[z]=="?"||R[z]==" "){const mA=R.substr(nA,z-nA);if(z>5&&mA==="xml")return P("InvalidXml","XML declaration allowed only at the start of the document.",Z(R,z));if(R[z]=="?"&&R[z+1]==">"){z++;break}else continue}return z}function c(R,z){if(R.length>z+5&&R[z+1]==="-"&&R[z+2]==="-"){for(z+=3;z<R.length;z++)if(R[z]==="-"&&R[z+1]==="-"&&R[z+2]===">"){z+=2;break}}else if(R.length>z+8&&R[z+1]==="D"&&R[z+2]==="O"&&R[z+3]==="C"&&R[z+4]==="T"&&R[z+5]==="Y"&&R[z+6]==="P"&&R[z+7]==="E"){let nA=1;for(z+=8;z<R.length;z++)if(R[z]==="<")nA++;else if(R[z]===">"&&(nA--,nA===0))break}else if(R.length>z+9&&R[z+1]==="["&&R[z+2]==="C"&&R[z+3]==="D"&&R[z+4]==="A"&&R[z+5]==="T"&&R[z+6]==="A"&&R[z+7]==="["){for(z+=8;z<R.length;z++)if(R[z]==="]"&&R[z+1]==="]"&&R[z+2]===">"){z+=2;break}}return z}const h='"',g="'";function m(R,z){let nA="",mA="",G=!1;for(;z<R.length;z++){if(R[z]===h||R[z]===g)mA===""?mA=R[z]:mA!==R[z]||(mA="");else if(R[z]===">"&&mA===""){G=!0;break}nA+=R[z]}return mA!==""?!1:{value:nA,index:z,tagClosed:G}}const y=new RegExp(`(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['"])(([\\s\\S])*?)\\5)?`,"g");function v(R,z){const nA=e.getAllMatches(R,y),mA={};for(let G=0;G<nA.length;G++){if(nA[G][1].length===0)return P("InvalidAttr","Attribute '"+nA[G][2]+"' has no space in starting.",tA(nA[G]));if(nA[G][3]!==void 0&&nA[G][4]===void 0)return P("InvalidAttr","Attribute '"+nA[G][2]+"' is without value.",tA(nA[G]));if(nA[G][3]===void 0&&!z.allowBooleanAttributes)return P("InvalidAttr","boolean attribute '"+nA[G][2]+"' is not allowed.",tA(nA[G]));const j=nA[G][2];if(!N(j))return P("InvalidAttr","Attribute '"+j+"' is an invalid name.",tA(nA[G]));if(!mA.hasOwnProperty(j))mA[j]=1;else return P("InvalidAttr","Attribute '"+j+"' is repeated.",tA(nA[G]))}return!0}function _(R,z){let nA=/\d/;for(R[z]==="x"&&(z++,nA=/[\da-fA-F]/);z<R.length;z++){if(R[z]===";")return z;if(!R[z].match(nA))break}return-1}function S(R,z){if(z++,R[z]===";")return-1;if(R[z]==="#")return z++,_(R,z);let nA=0;for(;z<R.length;z++,nA++)if(!(R[z].match(/\w/)&&nA<20)){if(R[z]===";")break;return-1}return z}function P(R,z,nA){return{err:{code:R,msg:z,line:nA.line||nA,col:nA.col}}}function N(R){return e.isName(R)}function Y(R){return e.isName(R)}function Z(R,z){const nA=R.substring(0,z).split(/\r?\n/);return{line:nA.length,col:nA[nA.length-1].length+1}}function tA(R){return R.startIndex+R[1].length}return v0}var Jr={},Mo;function Yp(){if(Mo)return Jr;Mo=1;const e={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(i,a){return a},attributeValueProcessor:function(i,a){return a},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(i,a,c){return i}},A=function(i){return Object.assign({},e,i)};return Jr.buildOptions=A,Jr.defaultOptions=e,Jr}var E0,Co;function Zp(){if(Co)return E0;Co=1;class e{constructor(i){this.tagname=i,this.child=[],this[":@"]={}}add(i,a){i==="__proto__"&&(i="#__proto__"),this.child.push({[i]:a})}addChild(i){i.tagname==="__proto__"&&(i.tagname="#__proto__"),i[":@"]&&Object.keys(i[":@"]).length>0?this.child.push({[i.tagname]:i.child,":@":i[":@"]}):this.child.push({[i.tagname]:i.child})}}return E0=e,E0}var b0,So;function Xp(){if(So)return b0;So=1;const e=xi();function A(v,_){const S={};if(v[_+3]==="O"&&v[_+4]==="C"&&v[_+5]==="T"&&v[_+6]==="Y"&&v[_+7]==="P"&&v[_+8]==="E"){_=_+9;let P=1,N=!1,Y=!1,Z="";for(;_<v.length;_++)if(v[_]==="<"&&!Y){if(N&&c(v,_)){_+=7;let tA,R;[tA,R,_]=i(v,_+1),R.indexOf("&")===-1&&(S[y(tA)]={regx:RegExp(`&${tA};`,"g"),val:R})}else if(N&&h(v,_))_+=8;else if(N&&g(v,_))_+=8;else if(N&&m(v,_))_+=9;else if(a)Y=!0;else throw new Error("Invalid DOCTYPE");P++,Z=""}else if(v[_]===">"){if(Y?v[_-1]==="-"&&v[_-2]==="-"&&(Y=!1,P--):P--,P===0)break}else v[_]==="["?N=!0:Z+=v[_];if(P!==0)throw new Error("Unclosed DOCTYPE")}else throw new Error("Invalid Tag instead of DOCTYPE");return{entities:S,i:_}}function i(v,_){let S="";for(;_<v.length&&v[_]!=="'"&&v[_]!=='"';_++)S+=v[_];if(S=S.trim(),S.indexOf(" ")!==-1)throw new Error("External entites are not supported");const P=v[_++];let N="";for(;_<v.length&&v[_]!==P;_++)N+=v[_];return[S,N,_]}function a(v,_){return v[_+1]==="!"&&v[_+2]==="-"&&v[_+3]==="-"}function c(v,_){return v[_+1]==="!"&&v[_+2]==="E"&&v[_+3]==="N"&&v[_+4]==="T"&&v[_+5]==="I"&&v[_+6]==="T"&&v[_+7]==="Y"}function h(v,_){return v[_+1]==="!"&&v[_+2]==="E"&&v[_+3]==="L"&&v[_+4]==="E"&&v[_+5]==="M"&&v[_+6]==="E"&&v[_+7]==="N"&&v[_+8]==="T"}function g(v,_){return v[_+1]==="!"&&v[_+2]==="A"&&v[_+3]==="T"&&v[_+4]==="T"&&v[_+5]==="L"&&v[_+6]==="I"&&v[_+7]==="S"&&v[_+8]==="T"}function m(v,_){return v[_+1]==="!"&&v[_+2]==="N"&&v[_+3]==="O"&&v[_+4]==="T"&&v[_+5]==="A"&&v[_+6]==="T"&&v[_+7]==="I"&&v[_+8]==="O"&&v[_+9]==="N"}function y(v){if(e.isName(v))return v;throw new Error(`Invalid entity name ${v}`)}return b0=A,b0}var M0,Io;function Jp(){if(Io)return M0;Io=1;const e=/^[-+]?0x[a-fA-F0-9]+$/,A=/^([\-\+])?(0*)([0-9]*(\.[0-9]*)?)$/,i={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0};function a(g,m={}){if(m=Object.assign({},i,m),!g||typeof g!="string")return g;let y=g.trim();if(m.skipLike!==void 0&&m.skipLike.test(y))return g;if(g==="0")return 0;if(m.hex&&e.test(y))return h(y,16);if(y.search(/[eE]/)!==-1){const v=y.match(/^([-\+])?(0*)([0-9]*(\.[0-9]*)?[eE][-\+]?[0-9]+)$/);if(v){if(m.leadingZeros)y=(v[1]||"")+v[3];else if(!(v[2]==="0"&&v[3][0]==="."))return g;return m.eNotation?Number(y):g}else return g}else{const v=A.exec(y);if(v){const _=v[1],S=v[2];let P=c(v[3]);if(!m.leadingZeros&&S.length>0&&_&&y[2]!==".")return g;if(!m.leadingZeros&&S.length>0&&!_&&y[1]!==".")return g;if(m.leadingZeros&&S===g)return 0;{const N=Number(y),Y=""+N;return Y.search(/[eE]/)!==-1?m.eNotation?N:g:y.indexOf(".")!==-1?Y==="0"&&P===""||Y===P||_&&Y==="-"+P?N:g:S?P===Y||_+P===Y?N:g:y===Y||y===_+Y?N:g}}else return g}}function c(g){return g&&g.indexOf(".")!==-1&&(g=g.replace(/0+$/,""),g==="."?g="0":g[0]==="."?g="0"+g:g[g.length-1]==="."&&(g=g.substr(0,g.length-1))),g}function h(g,m){if(parseInt)return parseInt(g,m);if(Number.parseInt)return Number.parseInt(g,m);if(window&&window.parseInt)return window.parseInt(g,m);throw new Error("parseInt, Number.parseInt, window.parseInt are not supported")}return M0=a,M0}var C0,Bo;function lu(){if(Bo)return C0;Bo=1;function e(A){return typeof A=="function"?A:Array.isArray(A)?i=>{for(const a of A)if(typeof a=="string"&&i===a||a instanceof RegExp&&a.test(i))return!0}:()=>!1}return C0=e,C0}var S0,Lo;function Kp(){if(Lo)return S0;Lo=1;const e=xi(),A=Zp(),i=Xp(),a=Jp(),c=lu();class h{constructor(j){this.options=j,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"¢"},pound:{regex:/&(pound|#163);/g,val:"£"},yen:{regex:/&(yen|#165);/g,val:"¥"},euro:{regex:/&(euro|#8364);/g,val:"€"},copyright:{regex:/&(copy|#169);/g,val:"©"},reg:{regex:/&(reg|#174);/g,val:"®"},inr:{regex:/&(inr|#8377);/g,val:"₹"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(eA,lA)=>String.fromCharCode(Number.parseInt(lA,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(eA,lA)=>String.fromCharCode(Number.parseInt(lA,16))}},this.addExternalEntities=g,this.parseXml=S,this.parseTextData=m,this.resolveNameSpace=y,this.buildAttributesMap=_,this.isItStopNode=Z,this.replaceEntitiesValue=N,this.readStopNodeData=nA,this.saveTextToParentTag=Y,this.addChild=P,this.ignoreAttributesFn=c(this.options.ignoreAttributes)}}function g(G){const j=Object.keys(G);for(let eA=0;eA<j.length;eA++){const lA=j[eA];this.lastEntities[lA]={regex:new RegExp("&"+lA+";","g"),val:G[lA]}}}function m(G,j,eA,lA,U,k,x){if(G!==void 0&&(this.options.trimValues&&!lA&&(G=G.trim()),G.length>0)){x||(G=this.replaceEntitiesValue(G));const X=this.options.tagValueProcessor(j,G,eA,U,k);return X==null?G:typeof X!=typeof G||X!==G?X:this.options.trimValues?mA(G,this.options.parseTagValue,this.options.numberParseOptions):G.trim()===G?mA(G,this.options.parseTagValue,this.options.numberParseOptions):G}}function y(G){if(this.options.removeNSPrefix){const j=G.split(":"),eA=G.charAt(0)==="/"?"/":"";if(j[0]==="xmlns")return"";j.length===2&&(G=eA+j[1])}return G}const v=new RegExp(`([^\\s=]+)\\s*(=\\s*(['"])([\\s\\S]*?)\\3)?`,"gm");function _(G,j,eA){if(this.options.ignoreAttributes!==!0&&typeof G=="string"){const lA=e.getAllMatches(G,v),U=lA.length,k={};for(let x=0;x<U;x++){const X=this.resolveNameSpace(lA[x][1]);if(this.ignoreAttributesFn(X,j))continue;let J=lA[x][4],yA=this.options.attributeNamePrefix+X;if(X.length)if(this.options.transformAttributeName&&(yA=this.options.transformAttributeName(yA)),yA==="__proto__"&&(yA="#__proto__"),J!==void 0){this.options.trimValues&&(J=J.trim()),J=this.replaceEntitiesValue(J);const dA=this.options.attributeValueProcessor(X,J,j);dA==null?k[yA]=J:typeof dA!=typeof J||dA!==J?k[yA]=dA:k[yA]=mA(J,this.options.parseAttributeValue,this.options.numberParseOptions)}else this.options.allowBooleanAttributes&&(k[yA]=!0)}if(!Object.keys(k).length)return;if(this.options.attributesGroupName){const x={};return x[this.options.attributesGroupName]=k,x}return k}}const S=function(G){G=G.replace(/\r\n?/g,`
4
+ `);const j=new A("!xml");let eA=j,lA="",U="";for(let k=0;k<G.length;k++)if(G[k]==="<")if(G[k+1]==="/"){const X=R(G,">",k,"Closing Tag is not closed.");let J=G.substring(k+2,X).trim();if(this.options.removeNSPrefix){const OA=J.indexOf(":");OA!==-1&&(J=J.substr(OA+1))}this.options.transformTagName&&(J=this.options.transformTagName(J)),eA&&(lA=this.saveTextToParentTag(lA,eA,U));const yA=U.substring(U.lastIndexOf(".")+1);if(J&&this.options.unpairedTags.indexOf(J)!==-1)throw new Error(`Unpaired tag can not be used as closing tag: </${J}>`);let dA=0;yA&&this.options.unpairedTags.indexOf(yA)!==-1?(dA=U.lastIndexOf(".",U.lastIndexOf(".")-1),this.tagsNodeStack.pop()):dA=U.lastIndexOf("."),U=U.substring(0,dA),eA=this.tagsNodeStack.pop(),lA="",k=X}else if(G[k+1]==="?"){let X=z(G,k,!1,"?>");if(!X)throw new Error("Pi Tag is not closed.");if(lA=this.saveTextToParentTag(lA,eA,U),!(this.options.ignoreDeclaration&&X.tagName==="?xml"||this.options.ignorePiTags)){const J=new A(X.tagName);J.add(this.options.textNodeName,""),X.tagName!==X.tagExp&&X.attrExpPresent&&(J[":@"]=this.buildAttributesMap(X.tagExp,U,X.tagName)),this.addChild(eA,J,U)}k=X.closeIndex+1}else if(G.substr(k+1,3)==="!--"){const X=R(G,"-->",k+4,"Comment is not closed.");if(this.options.commentPropName){const J=G.substring(k+4,X-2);lA=this.saveTextToParentTag(lA,eA,U),eA.add(this.options.commentPropName,[{[this.options.textNodeName]:J}])}k=X}else if(G.substr(k+1,2)==="!D"){const X=i(G,k);this.docTypeEntities=X.entities,k=X.i}else if(G.substr(k+1,2)==="!["){const X=R(G,"]]>",k,"CDATA is not closed.")-2,J=G.substring(k+9,X);lA=this.saveTextToParentTag(lA,eA,U);let yA=this.parseTextData(J,eA.tagname,U,!0,!1,!0,!0);yA==null&&(yA=""),this.options.cdataPropName?eA.add(this.options.cdataPropName,[{[this.options.textNodeName]:J}]):eA.add(this.options.textNodeName,yA),k=X+2}else{let X=z(G,k,this.options.removeNSPrefix),J=X.tagName;const yA=X.rawTagName;let dA=X.tagExp,OA=X.attrExpPresent,XA=X.closeIndex;this.options.transformTagName&&(J=this.options.transformTagName(J)),eA&&lA&&eA.tagname!=="!xml"&&(lA=this.saveTextToParentTag(lA,eA,U,!1));const Ae=eA;if(Ae&&this.options.unpairedTags.indexOf(Ae.tagname)!==-1&&(eA=this.tagsNodeStack.pop(),U=U.substring(0,U.lastIndexOf("."))),J!==j.tagname&&(U+=U?"."+J:J),this.isItStopNode(this.options.stopNodes,U,J)){let UA="";if(dA.length>0&&dA.lastIndexOf("/")===dA.length-1)J[J.length-1]==="/"?(J=J.substr(0,J.length-1),U=U.substr(0,U.length-1),dA=J):dA=dA.substr(0,dA.length-1),k=X.closeIndex;else if(this.options.unpairedTags.indexOf(J)!==-1)k=X.closeIndex;else{const jA=this.readStopNodeData(G,yA,XA+1);if(!jA)throw new Error(`Unexpected end of ${yA}`);k=jA.i,UA=jA.tagContent}const QA=new A(J);J!==dA&&OA&&(QA[":@"]=this.buildAttributesMap(dA,U,J)),UA&&(UA=this.parseTextData(UA,J,U,!0,OA,!0,!0)),U=U.substr(0,U.lastIndexOf(".")),QA.add(this.options.textNodeName,UA),this.addChild(eA,QA,U)}else{if(dA.length>0&&dA.lastIndexOf("/")===dA.length-1){J[J.length-1]==="/"?(J=J.substr(0,J.length-1),U=U.substr(0,U.length-1),dA=J):dA=dA.substr(0,dA.length-1),this.options.transformTagName&&(J=this.options.transformTagName(J));const UA=new A(J);J!==dA&&OA&&(UA[":@"]=this.buildAttributesMap(dA,U,J)),this.addChild(eA,UA,U),U=U.substr(0,U.lastIndexOf("."))}else{const UA=new A(J);this.tagsNodeStack.push(eA),J!==dA&&OA&&(UA[":@"]=this.buildAttributesMap(dA,U,J)),this.addChild(eA,UA,U),eA=UA}lA="",k=XA}}else lA+=G[k];return j.child};function P(G,j,eA){const lA=this.options.updateTag(j.tagname,eA,j[":@"]);lA===!1||(typeof lA=="string"&&(j.tagname=lA),G.addChild(j))}const N=function(G){if(this.options.processEntities){for(let j in this.docTypeEntities){const eA=this.docTypeEntities[j];G=G.replace(eA.regx,eA.val)}for(let j in this.lastEntities){const eA=this.lastEntities[j];G=G.replace(eA.regex,eA.val)}if(this.options.htmlEntities)for(let j in this.htmlEntities){const eA=this.htmlEntities[j];G=G.replace(eA.regex,eA.val)}G=G.replace(this.ampEntity.regex,this.ampEntity.val)}return G};function Y(G,j,eA,lA){return G&&(lA===void 0&&(lA=j.child.length===0),G=this.parseTextData(G,j.tagname,eA,!1,j[":@"]?Object.keys(j[":@"]).length!==0:!1,lA),G!==void 0&&G!==""&&j.add(this.options.textNodeName,G),G=""),G}function Z(G,j,eA){const lA="*."+eA;for(const U in G){const k=G[U];if(lA===k||j===k)return!0}return!1}function tA(G,j,eA=">"){let lA,U="";for(let k=j;k<G.length;k++){let x=G[k];if(lA)x===lA&&(lA="");else if(x==='"'||x==="'")lA=x;else if(x===eA[0])if(eA[1]){if(G[k+1]===eA[1])return{data:U,index:k}}else return{data:U,index:k};else x===" "&&(x=" ");U+=x}}function R(G,j,eA,lA){const U=G.indexOf(j,eA);if(U===-1)throw new Error(lA);return U+j.length-1}function z(G,j,eA,lA=">"){const U=tA(G,j+1,lA);if(!U)return;let k=U.data;const x=U.index,X=k.search(/\s/);let J=k,yA=!0;X!==-1&&(J=k.substring(0,X),k=k.substring(X+1).trimStart());const dA=J;if(eA){const OA=J.indexOf(":");OA!==-1&&(J=J.substr(OA+1),yA=J!==U.data.substr(OA+1))}return{tagName:J,tagExp:k,closeIndex:x,attrExpPresent:yA,rawTagName:dA}}function nA(G,j,eA){const lA=eA;let U=1;for(;eA<G.length;eA++)if(G[eA]==="<")if(G[eA+1]==="/"){const k=R(G,">",eA,`${j} is not closed`);if(G.substring(eA+2,k).trim()===j&&(U--,U===0))return{tagContent:G.substring(lA,eA),i:k};eA=k}else if(G[eA+1]==="?")eA=R(G,"?>",eA+1,"StopNode is not closed.");else if(G.substr(eA+1,3)==="!--")eA=R(G,"-->",eA+3,"StopNode is not closed.");else if(G.substr(eA+1,2)==="![")eA=R(G,"]]>",eA,"StopNode is not closed.")-2;else{const k=z(G,eA,">");k&&((k&&k.tagName)===j&&k.tagExp[k.tagExp.length-1]!=="/"&&U++,eA=k.closeIndex)}}function mA(G,j,eA){if(j&&typeof G=="string"){const lA=G.trim();return lA==="true"?!0:lA==="false"?!1:a(G,eA)}else return e.isExist(G)?G:""}return S0=h,S0}var I0={},Po;function $p(){if(Po)return I0;Po=1;function e(h,g){return A(h,g)}function A(h,g,m){let y;const v={};for(let _=0;_<h.length;_++){const S=h[_],P=i(S);let N="";if(m===void 0?N=P:N=m+"."+P,P===g.textNodeName)y===void 0?y=S[P]:y+=""+S[P];else{if(P===void 0)continue;if(S[P]){let Y=A(S[P],g,N);const Z=c(Y,g);S[":@"]?a(Y,S[":@"],N,g):Object.keys(Y).length===1&&Y[g.textNodeName]!==void 0&&!g.alwaysCreateTextNode?Y=Y[g.textNodeName]:Object.keys(Y).length===0&&(g.alwaysCreateTextNode?Y[g.textNodeName]="":Y=""),v[P]!==void 0&&v.hasOwnProperty(P)?(Array.isArray(v[P])||(v[P]=[v[P]]),v[P].push(Y)):g.isArray(P,N,Z)?v[P]=[Y]:v[P]=Y}}}return typeof y=="string"?y.length>0&&(v[g.textNodeName]=y):y!==void 0&&(v[g.textNodeName]=y),v}function i(h){const g=Object.keys(h);for(let m=0;m<g.length;m++){const y=g[m];if(y!==":@")return y}}function a(h,g,m,y){if(g){const v=Object.keys(g),_=v.length;for(let S=0;S<_;S++){const P=v[S];y.isArray(P,m+"."+P,!0,!0)?h[P]=[g[P]]:h[P]=g[P]}}}function c(h,g){const{textNodeName:m}=g,y=Object.keys(h).length;return!!(y===0||y===1&&(h[m]||typeof h[m]=="boolean"||h[m]===0))}return I0.prettify=e,I0}var B0,xo;function Am(){if(xo)return B0;xo=1;const{buildOptions:e}=Yp(),A=Kp(),{prettify:i}=$p(),a=au();class c{constructor(g){this.externalEntities={},this.options=e(g)}parse(g,m){if(typeof g!="string")if(g.toString)g=g.toString();else throw new Error("XML data is accepted in String or Bytes[] form.");if(m){m===!0&&(m={});const _=a.validate(g,m);if(_!==!0)throw Error(`${_.err.msg}:${_.err.line}:${_.err.col}`)}const y=new A(this.options);y.addExternalEntities(this.externalEntities);const v=y.parseXml(g);return this.options.preserveOrder||v===void 0?v:i(v,this.options)}addEntity(g,m){if(m.indexOf("&")!==-1)throw new Error("Entity value can't have '&'");if(g.indexOf("&")!==-1||g.indexOf(";")!==-1)throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'");if(m==="&")throw new Error("An entity with value '&' is not permitted");this.externalEntities[g]=m}}return B0=c,B0}var L0,No;function em(){if(No)return L0;No=1;const e=`
5
+ `;function A(m,y){let v="";return y.format&&y.indentBy.length>0&&(v=e),i(m,y,"",v)}function i(m,y,v,_){let S="",P=!1;for(let N=0;N<m.length;N++){const Y=m[N],Z=a(Y);if(Z===void 0)continue;let tA="";if(v.length===0?tA=Z:tA=`${v}.${Z}`,Z===y.textNodeName){let G=Y[Z];h(tA,y)||(G=y.tagValueProcessor(Z,G),G=g(G,y)),P&&(S+=_),S+=G,P=!1;continue}else if(Z===y.cdataPropName){P&&(S+=_),S+=`<![CDATA[${Y[Z][0][y.textNodeName]}]]>`,P=!1;continue}else if(Z===y.commentPropName){S+=_+`<!--${Y[Z][0][y.textNodeName]}-->`,P=!0;continue}else if(Z[0]==="?"){const G=c(Y[":@"],y),j=Z==="?xml"?"":_;let eA=Y[Z][0][y.textNodeName];eA=eA.length!==0?" "+eA:"",S+=j+`<${Z}${eA}${G}?>`,P=!0;continue}let R=_;R!==""&&(R+=y.indentBy);const z=c(Y[":@"],y),nA=_+`<${Z}${z}`,mA=i(Y[Z],y,tA,R);y.unpairedTags.indexOf(Z)!==-1?y.suppressUnpairedNode?S+=nA+">":S+=nA+"/>":(!mA||mA.length===0)&&y.suppressEmptyNode?S+=nA+"/>":mA&&mA.endsWith(">")?S+=nA+`>${mA}${_}</${Z}>`:(S+=nA+">",mA&&_!==""&&(mA.includes("/>")||mA.includes("</"))?S+=_+y.indentBy+mA+_:S+=mA,S+=`</${Z}>`),P=!0}return S}function a(m){const y=Object.keys(m);for(let v=0;v<y.length;v++){const _=y[v];if(m.hasOwnProperty(_)&&_!==":@")return _}}function c(m,y){let v="";if(m&&!y.ignoreAttributes)for(let _ in m){if(!m.hasOwnProperty(_))continue;let S=y.attributeValueProcessor(_,m[_]);S=g(S,y),S===!0&&y.suppressBooleanAttributes?v+=` ${_.substr(y.attributeNamePrefix.length)}`:v+=` ${_.substr(y.attributeNamePrefix.length)}="${S}"`}return v}function h(m,y){m=m.substr(0,m.length-y.textNodeName.length-1);let v=m.substr(m.lastIndexOf(".")+1);for(let _ in y.stopNodes)if(y.stopNodes[_]===m||y.stopNodes[_]==="*."+v)return!0;return!1}function g(m,y){if(m&&m.length>0&&y.processEntities)for(let v=0;v<y.entities.length;v++){const _=y.entities[v];m=m.replace(_.regex,_.val)}return m}return L0=A,L0}var P0,Ro;function tm(){if(Ro)return P0;Ro=1;const e=em(),A=lu(),i={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(m,y){return y},attributeValueProcessor:function(m,y){return y},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&amp;"},{regex:new RegExp(">","g"),val:"&gt;"},{regex:new RegExp("<","g"),val:"&lt;"},{regex:new RegExp("'","g"),val:"&apos;"},{regex:new RegExp('"',"g"),val:"&quot;"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function a(m){this.options=Object.assign({},i,m),this.options.ignoreAttributes===!0||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=A(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=g),this.processTextOrObjNode=c,this.options.format?(this.indentate=h,this.tagEndChar=`>
6
+ `,this.newLine=`
7
+ `):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}a.prototype.build=function(m){return this.options.preserveOrder?e(m,this.options):(Array.isArray(m)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(m={[this.options.arrayNodeName]:m}),this.j2x(m,0,[]).val)},a.prototype.j2x=function(m,y,v){let _="",S="";const P=v.join(".");for(let N in m)if(Object.prototype.hasOwnProperty.call(m,N))if(typeof m[N]>"u")this.isAttribute(N)&&(S+="");else if(m[N]===null)this.isAttribute(N)||N===this.options.cdataPropName?S+="":N[0]==="?"?S+=this.indentate(y)+"<"+N+"?"+this.tagEndChar:S+=this.indentate(y)+"<"+N+"/"+this.tagEndChar;else if(m[N]instanceof Date)S+=this.buildTextValNode(m[N],N,"",y);else if(typeof m[N]!="object"){const Y=this.isAttribute(N);if(Y&&!this.ignoreAttributesFn(Y,P))_+=this.buildAttrPairStr(Y,""+m[N]);else if(!Y)if(N===this.options.textNodeName){let Z=this.options.tagValueProcessor(N,""+m[N]);S+=this.replaceEntitiesValue(Z)}else S+=this.buildTextValNode(m[N],N,"",y)}else if(Array.isArray(m[N])){const Y=m[N].length;let Z="",tA="";for(let R=0;R<Y;R++){const z=m[N][R];if(!(typeof z>"u"))if(z===null)N[0]==="?"?S+=this.indentate(y)+"<"+N+"?"+this.tagEndChar:S+=this.indentate(y)+"<"+N+"/"+this.tagEndChar;else if(typeof z=="object")if(this.options.oneListGroup){const nA=this.j2x(z,y+1,v.concat(N));Z+=nA.val,this.options.attributesGroupName&&z.hasOwnProperty(this.options.attributesGroupName)&&(tA+=nA.attrStr)}else Z+=this.processTextOrObjNode(z,N,y,v);else if(this.options.oneListGroup){let nA=this.options.tagValueProcessor(N,z);nA=this.replaceEntitiesValue(nA),Z+=nA}else Z+=this.buildTextValNode(z,N,"",y)}this.options.oneListGroup&&(Z=this.buildObjectNode(Z,N,tA,y)),S+=Z}else if(this.options.attributesGroupName&&N===this.options.attributesGroupName){const Y=Object.keys(m[N]),Z=Y.length;for(let tA=0;tA<Z;tA++)_+=this.buildAttrPairStr(Y[tA],""+m[N][Y[tA]])}else S+=this.processTextOrObjNode(m[N],N,y,v);return{attrStr:_,val:S}},a.prototype.buildAttrPairStr=function(m,y){return y=this.options.attributeValueProcessor(m,""+y),y=this.replaceEntitiesValue(y),this.options.suppressBooleanAttributes&&y==="true"?" "+m:" "+m+'="'+y+'"'};function c(m,y,v,_){const S=this.j2x(m,v+1,_.concat(y));return m[this.options.textNodeName]!==void 0&&Object.keys(m).length===1?this.buildTextValNode(m[this.options.textNodeName],y,S.attrStr,v):this.buildObjectNode(S.val,y,S.attrStr,v)}a.prototype.buildObjectNode=function(m,y,v,_){if(m==="")return y[0]==="?"?this.indentate(_)+"<"+y+v+"?"+this.tagEndChar:this.indentate(_)+"<"+y+v+this.closeTag(y)+this.tagEndChar;{let S="</"+y+this.tagEndChar,P="";return y[0]==="?"&&(P="?",S=""),(v||v==="")&&m.indexOf("<")===-1?this.indentate(_)+"<"+y+v+P+">"+m+S:this.options.commentPropName!==!1&&y===this.options.commentPropName&&P.length===0?this.indentate(_)+`<!--${m}-->`+this.newLine:this.indentate(_)+"<"+y+v+P+this.tagEndChar+m+this.indentate(_)+S}},a.prototype.closeTag=function(m){let y="";return this.options.unpairedTags.indexOf(m)!==-1?this.options.suppressUnpairedNode||(y="/"):this.options.suppressEmptyNode?y="/":y=`></${m}`,y},a.prototype.buildTextValNode=function(m,y,v,_){if(this.options.cdataPropName!==!1&&y===this.options.cdataPropName)return this.indentate(_)+`<![CDATA[${m}]]>`+this.newLine;if(this.options.commentPropName!==!1&&y===this.options.commentPropName)return this.indentate(_)+`<!--${m}-->`+this.newLine;if(y[0]==="?")return this.indentate(_)+"<"+y+v+"?"+this.tagEndChar;{let S=this.options.tagValueProcessor(y,m);return S=this.replaceEntitiesValue(S),S===""?this.indentate(_)+"<"+y+v+this.closeTag(y)+this.tagEndChar:this.indentate(_)+"<"+y+v+">"+S+"</"+y+this.tagEndChar}},a.prototype.replaceEntitiesValue=function(m){if(m&&m.length>0&&this.options.processEntities)for(let y=0;y<this.options.entities.length;y++){const v=this.options.entities[y];m=m.replace(v.regex,v.val)}return m};function h(m){return this.options.indentBy.repeat(m)}function g(m){return m.startsWith(this.options.attributeNamePrefix)&&m!==this.options.textNodeName?m.substr(this.attrPrefixLen):!1}return P0=a,P0}var x0,Do;function rm(){if(Do)return x0;Do=1;const e=au(),A=Am(),i=tm();return x0={XMLParser:A,XMLValidator:e,XMLBuilder:i},x0}var nm=rm();function Oo(e,A){if(A?._parser&&A._parser!=="fast-xml-parser")throw new Error(A?._parser);const i={allowBooleanAttributes:!0,ignoreDeclaration:!0,removeNSPrefix:A?.removeNSPrefix,textNodeName:A?.textNodeName,isArray:(c,h,g,m)=>!!A?.arrayPaths?.some(v=>h===v),...A?._fastXML},a=im(e,i);return A?.uncapitalizeKeys?ai(a):a}function im(e,A){return new nm.XMLParser({ignoreAttributes:!1,attributeNamePrefix:"",...A}).parse(e)}const sm="4.3.3",ir={dataType:null,batchType:null,name:"XML",id:"xml",module:"xml",version:sm,worker:!1,extensions:["xml"],mimeTypes:["application/xml","text/xml"],testText:om,options:{xml:{_parser:"fast-xml-parser",uncapitalizeKeys:!1,removeNSPrefix:!1,textNodeName:"value",arrayPaths:[]}},parse:async(e,A)=>Oo(new TextDecoder().decode(e),{...ir.options.xml,...A?.xml}),parseTextSync:(e,A)=>Oo(e,{...ir.options.xml,...A?.xml})};function om(e){return e.startsWith("<?xml")}function am(e,A){const i=ir.parseTextSync?.(e,A),a=i?.ServiceExceptionReport?.ServiceException||i?.["ogc:ServiceExceptionReport"]?.["ogc:ServiceException"];return typeof a=="string"?a:a.value||a.code||"Unknown error"}const lm="4.3.3",cn={dataType:null,batchType:null,id:"wms-error",name:"WMS Error",module:"wms",version:lm,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.se_xml","application/xml","text/xml"],testText:um,options:{wms:{throwOnError:!1}},parse:async(e,A)=>N0(new TextDecoder().decode(e),A),parseSync:(e,A)=>N0(new TextDecoder().decode(e),A),parseTextSync:(e,A)=>N0(e,A)};function um(e){return e.startsWith("<?xml")}function N0(e,A){const i={...cn.options.wms,...A?.wms},a=am(e,i),c=i.minimalErrors?a:`WMS Service error: ${a}`;if(i.throwOnError)throw new Error(c);return c}function sr(e){return Array.isArray(e)?e:e?[e]:[]}function Rn(e){const A=sr(e);return A.length>0&&A.every(i=>typeof i=="string")?A:[]}function Kr(e,A=void 0){switch(typeof e){case"number":return e;case"string":return parseFloat(e);default:return}}function R0(e,A=void 0){switch(typeof e){case"number":return e;case"string":return parseInt(e,10);default:return}}function nr(e){switch(e){case"true":return!0;case"false":return!1;case"1":return!0;case"0":return!1;default:return!1}}function ko(e,A){const i=ir.parseTextSync?.(e,A),a=i.WMT_MS_Capabilities||i.WMS_Capabilities||i,c=cm(a);if(A?.inheritedLayerProps)for(const h of c.layers)cu(h,null);return A?.includeRawJSON&&(c.json=a),A?.includeXMLText&&(c.xml=e),c}function cm(e){const A={version:String(e.version||""),name:String(e.Service?.Name||"unnamed"),title:e.Service?.Title?String(e.Service?.Title):void 0,abstract:e.Service?.Abstract?String(e.Service?.Abstract):void 0,keywords:Rn(e.Service?.KeywordList?.Keyword),fees:e.Service?.Fees?JSON.stringify(e.Service?.Fees):void 0,accessConstraints:e.Service?.AccessConstraints?JSON.stringify(e.Service?.AccessConstraints):void 0,layerLimit:R0(e.Service?.LayerLimit),maxWidth:R0(e.Service?.maxWidth),maxHeight:R0(e.Service?.maxHeight),layers:[],requests:fm(e.Capability?.Request),exceptions:hm(e.Exception)},i=sr(e.Capability?.Layer);for(const a of i)A.layers.push(uu(a));for(const[a,c]of Object.entries(A))c===void 0&&delete A[a];return A}function fm(e){const A={};for(const[i,a]of Object.entries(e||{})){const c=Rn(a?.Format);A[i]={mimeTypes:c}}return A}function hm(e){if(sr(e?.Format).length>0)return{mimeTypes:Rn(e)}}function uu(e){const A={title:String(e?.Title||""),name:e?.Name&&String(e?.Name),abstract:e?.Name&&String(e?.Abstract),keywords:Rn(e.KeywordList?.Keyword)},i=e?.CRS||e?.SRS;i&&Array.isArray(i)&&i.every(v=>typeof v=="string")&&(A.crs=i);let a=e?.EX_GeographicBoundingBox&&dm(e?.EX_GeographicBoundingBox);a&&(A.geographicBoundingBox=a),a=e?.LatLonBoundingBox&&gm(e?.LatLonBoundingBox),a&&(A.geographicBoundingBox=a);const c=e?.BoundingBox&&pm(e?.BoundingBox);c&&c.length>0&&(A.boundingBoxes=c);const g=sr(e?.Dimension).map(v=>wm(v));g.length&&(A.dimensions=g),e?.opaque&&(A.opaque=nr(e?.opaque)),e?.cascaded&&(A.cascaded=nr(e?.cascaded)),e?.queryable&&(A.queryable=nr(e?.queryable));const m=sr(e?.Layer),y=[];for(const v of m)y.push(uu(v));y.length>0&&(A.layers=y);for(const[v,_]of Object.entries(A))_===void 0&&delete A[v];return A}function dm(e){const{westBoundLongitude:A,northBoundLatitude:i,eastBoundLongitude:a,southBoundLatitude:c}=e;return[[A,c],[a,i]]}function gm(e){const{minx:A,miny:i,maxx:a,maxy:c}=e;return[[A,i],[a,c]]}function pm(e){return sr(e).map(i=>mm(i))}function mm(e){const{CRS:A,SRS:i,minx:a,miny:c,maxx:h,maxy:g,resx:m,resy:y}=e,v={crs:A||i,boundingBox:[[Kr(a),Kr(c)],[Kr(h),Kr(g)]]};return m&&(v.xResolution=m),y&&(v.yResolution=y),v}function wm(e){const{name:A,units:i,value:a}=e,c={name:A,units:i,extent:a};return e.unitSymbol&&(c.unitSymbol=e.unitSymbol),e.default&&(c.defaultValue=e.default),e.multipleValues&&(c.multipleValues=nr(e.multipleValues)),e.nearestValue&&(c.nearestValue=nr(e.nearestValue)),e.current&&(c.current=nr(e.current)),c}function cu(e,A){A?.geographicBoundingBox&&!e.geographicBoundingBox&&(e.geographicBoundingBox=[...A.geographicBoundingBox]),A?.crs&&!e.crs&&(e.crs=[...A.crs]),A?.boundingBoxes&&!e.boundingBoxes&&(e.boundingBoxes=[...A.boundingBoxes]),A?.dimensions&&!e.dimensions&&(e.dimensions=[...A.dimensions]);for(const i of e.layers||[])cu(i,e)}const ym="4.3.3",Ni={dataType:null,batchType:null,id:"wms-capabilities",name:"WMS Capabilities",module:"wms",version:ym,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.wms_xml","application/xml","text/xml"],testText:Tm,options:{wms:{}},parse:async(e,A)=>ko(new TextDecoder().decode(e),A?.wms),parseTextSync:(e,A)=>ko(e,A?.wms)};function Tm(e){return e.startsWith("<?xml")}function Fo(e,A){const a=(ir.parseTextSync?.(e,A)).FeatureInfoResponse?.FIELDS||[];return{features:(Array.isArray(a)?a:[a]).map(h=>vm(h))}}function vm(e){return{attributes:e||{},type:"",bounds:{bottom:0,top:0,left:0,right:0}}}const _m={...Ni,dataType:null,id:"wms-feature-info",name:"WMS FeatureInfo",parse:async(e,A)=>Fo(new TextDecoder().decode(e),A),parseTextSync:(e,A)=>Fo(e,A)};function Uo(e,A){return ir.parseTextSync?.(e,A)}const Em={...Ni,dataType:null,id:"wms-layer-description",name:"WMS DescribeLayer",parse:async(e,A)=>Uo(new TextDecoder().decode(e),A),parseTextSync:(e,A)=>Uo(e,A)},bm={name:"Web Map Service (OGC WMS)",id:"wms",module:"wms",version:"0.0.0",extensions:[],mimeTypes:[],options:{wms:{}},type:"wms",fromUrl:!0,fromBlob:!1,testURL:e=>e.toLowerCase().includes("wms"),createDataSource:(e,A)=>new Mm(e,A)};class Mm extends Ei{url;data;substituteCRS84;flipCRS;wmsParameters;vendorParameters;capabilities=null;constructor(A,i){super(i),this.url=A,this.data=A,this.substituteCRS84=i.wms?.substituteCRS84??i.substituteCRS84??!1,this.flipCRS=["EPSG:4326"],this.wmsParameters={layers:void 0,query_layers:void 0,styles:void 0,version:"1.3.0",crs:"EPSG:4326",format:"image/png",info_format:"text/plain",transparent:void 0,time:void 0,elevation:void 0,...i.wmsParameters,...i.wms?.wmsParameters},this.vendorParameters=i.wms?.vendorParameters||i.vendorParameters||{}}async getMetadata(){const A=await this.getCapabilities();return this.normalizeMetadata(A)}async getImage(A){const{boundingBox:i,bbox:a,...c}=A,h={bbox:i?[...i[0],...i[1]]:a,...c};return await this.getMap(h)}normalizeMetadata(A){return A}async getCapabilities(A,i){const a=this.getCapabilitiesURL(A,i),c=await this.fetch(a),h=await c.arrayBuffer();this._checkResponse(c,h);const g=await Ni.parse(h,this.loadOptions);return this.capabilities=g,g}async getMap(A,i){const a=this.getMapURL(A,i),c=await this.fetch(a),h=await c.arrayBuffer();this._checkResponse(c,h);try{return await Js.parse(h,this.loadOptions)}catch{throw this._parseError(h)}}async getFeatureInfo(A,i){const a=this.getFeatureInfoURL(A,i),c=await this.fetch(a),h=await c.arrayBuffer();return this._checkResponse(c,h),await _m.parse(h,this.loadOptions)}async getFeatureInfoText(A,i){const a=this.getFeatureInfoURL(A,i),c=await this.fetch(a),h=await c.arrayBuffer();return this._checkResponse(c,h),new TextDecoder().decode(h)}async describeLayer(A,i){const a=this.describeLayerURL(A,i),c=await this.fetch(a),h=await c.arrayBuffer();return this._checkResponse(c,h),await Em.parse(h,this.loadOptions)}async getLegendGraphic(A,i){const a=this.getLegendGraphicURL(A,i),c=await this.fetch(a),h=await c.arrayBuffer();this._checkResponse(c,h);try{return await Js.parse(h,this.loadOptions)}catch{throw this._parseError(h)}}getCapabilitiesURL(A,i){const a={version:this.wmsParameters.version,...A};return this._getWMSUrl("GetCapabilities",a,i)}getMapURL(A,i){A=this._getWMS130Parameters(A);const a={version:this.wmsParameters.version,format:this.wmsParameters.format,transparent:this.wmsParameters.transparent,time:this.wmsParameters.time,elevation:this.wmsParameters.elevation,layers:this.wmsParameters.layers,styles:this.wmsParameters.styles,crs:this.wmsParameters.crs,...A};return this._getWMSUrl("GetMap",a,i)}getFeatureInfoURL(A,i){A=this._getWMS130Parameters(A);const{boundingBox:a,bbox:c}=A;A.bbox=a?[...a[0],...a[1]]:c;const h={version:this.wmsParameters.version,info_format:this.wmsParameters.info_format,layers:this.wmsParameters.layers,query_layers:this.wmsParameters.query_layers,styles:this.wmsParameters.styles,crs:this.wmsParameters.crs,...A};return this._getWMSUrl("GetFeatureInfo",h,i)}describeLayerURL(A,i){const a={version:this.wmsParameters.version,...A};return this._getWMSUrl("DescribeLayer",a,i)}getLegendGraphicURL(A,i){const a={version:this.wmsParameters.version,...A};return this._getWMSUrl("GetLegendGraphic",a,i)}_parseWMSUrl(A){const[i,a]=A.split("?"),c=a.split("&"),h={};for(const g of c){const[m,y]=g.split("=");h[m]=y}return{url:i,parameters:h}}_getWMSUrl(A,i,a){let c=this.url,h=!0;const g={service:"WMS",version:i.version,request:A,...i,...this.vendorParameters,...a},m=["transparent","time","elevation"];for(const[y,v]of Object.entries(g))(!m.includes(y)||v)&&(c+=h?"?":"&",h=!1,c+=this._getURLParameter(y,v,i));return encodeURI(c)}_getWMS130Parameters(A){const i={...A};return i.srs&&(i.crs=i.crs||i.srs,delete i.srs),i}_getURLParameter(A,i,a){switch(A){case"crs":a.version!=="1.3.0"?A="srs":this.substituteCRS84&&i==="EPSG:4326"&&(i="CRS:84");break;case"srs":a.version==="1.3.0"&&(A="crs");break;case"bbox":const c=this._flipBoundingBox(i,a);c&&(i=c);break;case"x":a.version==="1.3.0"&&(A="i");break;case"y":a.version==="1.3.0"&&(A="j");break}return A=A.toUpperCase(),Array.isArray(i)?`${A}=${i.join(",")}`:`${A}=${i?String(i):""}`}_flipBoundingBox(A,i){if(!Array.isArray(A)||A.length!==4)return null;const a=i.version==="1.3.0"&&this.flipCRS.includes(i.crs||"")&&!(this.substituteCRS84&&i.crs==="EPSG:4326"),c=A;return a?[c[1],c[0],c[3],c[2]]:c}async _fetchArrayBuffer(A){const i=await this.fetch(A),a=await i.arrayBuffer();return this._checkResponse(i,a),a}_checkResponse(A,i){const a=A.headers["content-type"];if(!A.ok||cn.mimeTypes.includes(a)){const c=e2(this.loadOptions,{wms:{throwOnError:!0}}),h=cn.parseSync?.(i,c);throw new Error(h)}}_parseError(A){const i=cn.parseSync?.(A,this.loadOptions);return new Error(i)}}const Cm={name:"ArcGISImageServer",id:"arcgis-image-server",module:"wms",version:"0.0.0",extensions:[],mimeTypes:[],options:{"arcgis-image-server":{}},type:"arcgis-image-server",fromUrl:!0,fromBlob:!1,testURL:e=>e.toLowerCase().includes("ImageServer"),createDataSource:(e,A)=>new Sm(e,A)};class Sm extends Ei{url;data;constructor(A,i){super(i),this.url=A,this.data=A}async getMetadata(){return await this.metadata()}async getImage(A){throw new Error("not implemented")}async metadata(){throw new Error("not implemented")}exportImage(A){throw new Error("not implemented")}metadataURL(A){return`${this.url}?f=pjson`}exportImageURL(A){const i=`bbox=${A.bbox[0]},${A.bbox[1]},${A.bbox[2]},${A.bbox[3]}`,a=`size=${A.width},${A.height}`,c={...A,bbox:i,size:a};return delete c.width,delete c.height,this.getUrl("exportImage",c)}getUrl(A,i,a){let c=`${this.url}/${A}`,h=!0;for(const[g,m]of Object.entries(i))c+=h?"?":"&",h=!1,Array.isArray(m)?c+=`${g.toUpperCase()}=${m.join(",")}`:c+=`${g.toUpperCase()}=${m?String(m):""}`;return c}async checkResponse(A){if(!A.ok)throw new Error("error")}}const Im=[bm,Cm];function Bm(e,A=Im){const{type:i="auto"}=e,a=i==="auto"?Pm(e.url,A):Lm(i,A);if(!a)throw new Error("Not a valid image source type");return a.createDataSource(e.url,e)}function Lm(e,A){for(const i of A)if(i.type===e)return i;return null}function Pm(e,A){for(const i of A)if(i.testURL&&i.testURL(e))return i;return null}const Qo=6378137*Math.PI;function Vo(e){const A=J0(e);return A[0]=(A[0]/256-1)*Qo,A[1]=(A[1]/256-1)*Qo,A}const xm={id:"imagery-layer",data:"",serviceType:"auto",srs:"auto",layers:{type:"array",compare:!0,value:[]},onMetadataLoad:{type:"function",value:()=>{}},onMetadataLoadError:{type:"function",value:console.error},onImageLoadStart:{type:"function",value:()=>{}},onImageLoad:{type:"function",value:()=>{}},onImageLoadError:{type:"function",compare:!1,value:(e,A)=>console.error(A,e)}};class fu extends lr{get isLoaded(){return this.state?.loadCounter===0&&super.isLoaded}shouldUpdateState(){return!0}initializeState(){this.state._nextRequestId=0,this.state.lastRequestId=-1,this.state.loadCounter=0}updateState({changeFlags:A,props:i,oldProps:a}){const{viewport:c}=this.context;A.dataChanged||i.serviceType!==a.serviceType?(this.state.imageSource=this._createImageSource(i),this._loadMetadata(),this.debounce(()=>this.loadImage(c,"image source changed"),0)):zh(i.layers,a.layers,1)?A.viewportChanged&&this.debounce(()=>this.loadImage(c,"viewport changed")):this.debounce(()=>this.loadImage(c,"layers changed"),0)}finalizeState(){}renderLayers(){const{bounds:A,image:i,lastRequestParameters:a}=this.state;return i&&new Ph({...this.getSubLayerProps({id:"bitmap"}),_imageCoordinateSystem:a.srs==="EPSG:4326"?Ct.LNGLAT:Ct.CARTESIAN,bounds:A,image:i})}async getFeatureInfoText(A,i){const{lastRequestParameters:a}=this.state;return a?await this.state.imageSource.getFeatureInfoText?.({...a,query_layers:a.layers,x:A,y:i,info_format:"application/vnd.ogc.gml"}):""}_createImageSource(A){if(A.data instanceof Ei)return A.data;if(typeof A.data=="string")return Bm({url:A.data,loadOptions:A.loadOptions,type:A.serviceType});throw new Error("invalid image source in props.data")}async _loadMetadata(){const{imageSource:A}=this.state;try{this.state.loadCounter++;const i=await A.getMetadata();this.state.imageSource===A&&this.getCurrentLayer()?.props.onMetadataLoad(i)}catch(i){this.getCurrentLayer()?.props.onMetadataLoadError(i)}finally{this.state.loadCounter--}}async loadImage(A,i){const{layers:a,serviceType:c}=this.props;if(c==="wms"&&a.length===0)return;const h=A.getBounds(),{width:g,height:m}=A,y=this.getRequestId();let{srs:v}=this.props;v==="auto"&&(v=A.resolution?"EPSG:4326":"EPSG:3857");const _={width:g,height:m,boundingBox:[[h[0],h[1]],[h[2],h[3]]],layers:a,crs:v};if(v==="EPSG:3857"){const S=Vo([h[0],h[1]]),P=Vo([h[2],h[3]]);_.boundingBox=[S,P]}try{this.state.loadCounter++,this.props.onImageLoadStart(y);const S=await this.state.imageSource.getImage(_);this.state.lastRequestId<y&&(this.getCurrentLayer()?.props.onImageLoad(y),this.setState({image:S,bounds:h,lastRequestParameters:_,lastRequestId:y}))}catch(S){this.raiseError(S,"Load image"),this.getCurrentLayer()?.props.onImageLoadError(y,S)}finally{this.state.loadCounter--}}getRequestId(){return this.state._nextRequestId++}debounce(A,i=500){clearTimeout(this.state._timeoutId),this.state._timeoutId=setTimeout(()=>A(),i)}}fu.layerName="WMSLayer";fu.defaultProps=xm;const Nm={getHeight:{type:"accessor",value:0},greatCircle:!0};class hu extends xh{}hu.layerName="GreatCircleLayer";hu.defaultProps=Nm;function Rm(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var fn={exports:{}},Dm=fn.exports,zo;function Om(){return zo||(zo=1,(function(e){(function(A,i){typeof Rm=="function"&&e&&e.exports?e.exports=i():(A.dcodeIO=A.dcodeIO||{}).Long=i()})(Dm,function(){function A(k,x,X){this.low=k|0,this.high=x|0,this.unsigned=!!X}A.prototype.__isLong__,Object.defineProperty(A.prototype,"__isLong__",{value:!0,enumerable:!1,configurable:!1});function i(k){return(k&&k.__isLong__)===!0}A.isLong=i;var a={},c={};function h(k,x){var X,J,yA;return x?(k>>>=0,(yA=0<=k&&k<256)&&(J=c[k],J)?J:(X=m(k,(k|0)<0?-1:0,!0),yA&&(c[k]=X),X)):(k|=0,(yA=-128<=k&&k<128)&&(J=a[k],J)?J:(X=m(k,k<0?-1:0,!1),yA&&(a[k]=X),X))}A.fromInt=h;function g(k,x){if(isNaN(k)||!isFinite(k))return x?z:R;if(x){if(k<0)return z;if(k>=Y)return eA}else{if(k<=-Z)return lA;if(k+1>=Z)return j}return k<0?g(-k,x).neg():m(k%N|0,k/N|0,x)}A.fromNumber=g;function m(k,x,X){return new A(k,x,X)}A.fromBits=m;var y=Math.pow;function v(k,x,X){if(k.length===0)throw Error("empty string");if(k==="NaN"||k==="Infinity"||k==="+Infinity"||k==="-Infinity")return R;if(typeof x=="number"?(X=x,x=!1):x=!!x,X=X||10,X<2||36<X)throw RangeError("radix");var J;if((J=k.indexOf("-"))>0)throw Error("interior hyphen");if(J===0)return v(k.substring(1),x,X).neg();for(var yA=g(y(X,8)),dA=R,OA=0;OA<k.length;OA+=8){var XA=Math.min(8,k.length-OA),Ae=parseInt(k.substring(OA,OA+XA),X);if(XA<8){var UA=g(y(X,XA));dA=dA.mul(UA).add(g(Ae))}else dA=dA.mul(yA),dA=dA.add(g(Ae))}return dA.unsigned=x,dA}A.fromString=v;function _(k){return k instanceof A?k:typeof k=="number"?g(k):typeof k=="string"?v(k):m(k.low,k.high,k.unsigned)}A.fromValue=_;var S=65536,P=1<<24,N=S*S,Y=N*N,Z=Y/2,tA=h(P),R=h(0);A.ZERO=R;var z=h(0,!0);A.UZERO=z;var nA=h(1);A.ONE=nA;var mA=h(1,!0);A.UONE=mA;var G=h(-1);A.NEG_ONE=G;var j=m(-1,2147483647,!1);A.MAX_VALUE=j;var eA=m(-1,-1,!0);A.MAX_UNSIGNED_VALUE=eA;var lA=m(0,-2147483648,!1);A.MIN_VALUE=lA;var U=A.prototype;return U.toInt=function(){return this.unsigned?this.low>>>0:this.low},U.toNumber=function(){return this.unsigned?(this.high>>>0)*N+(this.low>>>0):this.high*N+(this.low>>>0)},U.toString=function(x){if(x=x||10,x<2||36<x)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(lA)){var X=g(x),J=this.div(X),yA=J.mul(X).sub(this);return J.toString(x)+yA.toInt().toString(x)}else return"-"+this.neg().toString(x);for(var dA=g(y(x,6),this.unsigned),OA=this,XA="";;){var Ae=OA.div(dA),UA=OA.sub(Ae.mul(dA)).toInt()>>>0,QA=UA.toString(x);if(OA=Ae,OA.isZero())return QA+XA;for(;QA.length<6;)QA="0"+QA;XA=""+QA+XA}},U.getHighBits=function(){return this.high},U.getHighBitsUnsigned=function(){return this.high>>>0},U.getLowBits=function(){return this.low},U.getLowBitsUnsigned=function(){return this.low>>>0},U.getNumBitsAbs=function(){if(this.isNegative())return this.eq(lA)?64:this.neg().getNumBitsAbs();for(var x=this.high!=0?this.high:this.low,X=31;X>0&&(x&1<<X)==0;X--);return this.high!=0?X+33:X+1},U.isZero=function(){return this.high===0&&this.low===0},U.isNegative=function(){return!this.unsigned&&this.high<0},U.isPositive=function(){return this.unsigned||this.high>=0},U.isOdd=function(){return(this.low&1)===1},U.isEven=function(){return(this.low&1)===0},U.equals=function(x){return i(x)||(x=_(x)),this.unsigned!==x.unsigned&&this.high>>>31===1&&x.high>>>31===1?!1:this.high===x.high&&this.low===x.low},U.eq=U.equals,U.notEquals=function(x){return!this.eq(x)},U.neq=U.notEquals,U.lessThan=function(x){return this.comp(x)<0},U.lt=U.lessThan,U.lessThanOrEqual=function(x){return this.comp(x)<=0},U.lte=U.lessThanOrEqual,U.greaterThan=function(x){return this.comp(x)>0},U.gt=U.greaterThan,U.greaterThanOrEqual=function(x){return this.comp(x)>=0},U.gte=U.greaterThanOrEqual,U.compare=function(x){if(i(x)||(x=_(x)),this.eq(x))return 0;var X=this.isNegative(),J=x.isNegative();return X&&!J?-1:!X&&J?1:this.unsigned?x.high>>>0>this.high>>>0||x.high===this.high&&x.low>>>0>this.low>>>0?-1:1:this.sub(x).isNegative()?-1:1},U.comp=U.compare,U.negate=function(){return!this.unsigned&&this.eq(lA)?lA:this.not().add(nA)},U.neg=U.negate,U.add=function(x){i(x)||(x=_(x));var X=this.high>>>16,J=this.high&65535,yA=this.low>>>16,dA=this.low&65535,OA=x.high>>>16,XA=x.high&65535,Ae=x.low>>>16,UA=x.low&65535,QA=0,jA=0,te=0,Ne=0;return Ne+=dA+UA,te+=Ne>>>16,Ne&=65535,te+=yA+Ae,jA+=te>>>16,te&=65535,jA+=J+XA,QA+=jA>>>16,jA&=65535,QA+=X+OA,QA&=65535,m(te<<16|Ne,QA<<16|jA,this.unsigned)},U.subtract=function(x){return i(x)||(x=_(x)),this.add(x.neg())},U.sub=U.subtract,U.multiply=function(x){if(this.isZero()||(i(x)||(x=_(x)),x.isZero()))return R;if(this.eq(lA))return x.isOdd()?lA:R;if(x.eq(lA))return this.isOdd()?lA:R;if(this.isNegative())return x.isNegative()?this.neg().mul(x.neg()):this.neg().mul(x).neg();if(x.isNegative())return this.mul(x.neg()).neg();if(this.lt(tA)&&x.lt(tA))return g(this.toNumber()*x.toNumber(),this.unsigned);var X=this.high>>>16,J=this.high&65535,yA=this.low>>>16,dA=this.low&65535,OA=x.high>>>16,XA=x.high&65535,Ae=x.low>>>16,UA=x.low&65535,QA=0,jA=0,te=0,Ne=0;return Ne+=dA*UA,te+=Ne>>>16,Ne&=65535,te+=yA*UA,jA+=te>>>16,te&=65535,te+=dA*Ae,jA+=te>>>16,te&=65535,jA+=J*UA,QA+=jA>>>16,jA&=65535,jA+=yA*Ae,QA+=jA>>>16,jA&=65535,jA+=dA*XA,QA+=jA>>>16,jA&=65535,QA+=X*UA+J*Ae+yA*XA+dA*OA,QA&=65535,m(te<<16|Ne,QA<<16|jA,this.unsigned)},U.mul=U.multiply,U.divide=function(x){if(i(x)||(x=_(x)),x.isZero())throw Error("division by zero");if(this.isZero())return this.unsigned?z:R;var X,J,yA;if(this.unsigned){if(x.unsigned||(x=x.toUnsigned()),x.gt(this))return z;if(x.gt(this.shru(1)))return mA;yA=z}else{if(this.eq(lA)){if(x.eq(nA)||x.eq(G))return lA;if(x.eq(lA))return nA;var dA=this.shr(1);return X=dA.div(x).shl(1),X.eq(R)?x.isNegative()?nA:G:(J=this.sub(x.mul(X)),yA=X.add(J.div(x)),yA)}else if(x.eq(lA))return this.unsigned?z:R;if(this.isNegative())return x.isNegative()?this.neg().div(x.neg()):this.neg().div(x).neg();if(x.isNegative())return this.div(x.neg()).neg();yA=R}for(J=this;J.gte(x);){X=Math.max(1,Math.floor(J.toNumber()/x.toNumber()));for(var OA=Math.ceil(Math.log(X)/Math.LN2),XA=OA<=48?1:y(2,OA-48),Ae=g(X),UA=Ae.mul(x);UA.isNegative()||UA.gt(J);)X-=XA,Ae=g(X,this.unsigned),UA=Ae.mul(x);Ae.isZero()&&(Ae=nA),yA=yA.add(Ae),J=J.sub(UA)}return yA},U.div=U.divide,U.modulo=function(x){return i(x)||(x=_(x)),this.sub(this.div(x).mul(x))},U.mod=U.modulo,U.not=function(){return m(~this.low,~this.high,this.unsigned)},U.and=function(x){return i(x)||(x=_(x)),m(this.low&x.low,this.high&x.high,this.unsigned)},U.or=function(x){return i(x)||(x=_(x)),m(this.low|x.low,this.high|x.high,this.unsigned)},U.xor=function(x){return i(x)||(x=_(x)),m(this.low^x.low,this.high^x.high,this.unsigned)},U.shiftLeft=function(x){return i(x)&&(x=x.toInt()),(x&=63)===0?this:x<32?m(this.low<<x,this.high<<x|this.low>>>32-x,this.unsigned):m(0,this.low<<x-32,this.unsigned)},U.shl=U.shiftLeft,U.shiftRight=function(x){return i(x)&&(x=x.toInt()),(x&=63)===0?this:x<32?m(this.low>>>x|this.high<<32-x,this.high>>x,this.unsigned):m(this.high>>x-32,this.high>=0?0:-1,this.unsigned)},U.shr=U.shiftRight,U.shiftRightUnsigned=function(x){if(i(x)&&(x=x.toInt()),x&=63,x===0)return this;var X=this.high;if(x<32){var J=this.low;return m(J>>>x|X<<32-x,X>>>x,this.unsigned)}else return x===32?m(X,0,this.unsigned):m(X>>>x-32,0,this.unsigned)},U.shru=U.shiftRightUnsigned,U.toSigned=function(){return this.unsigned?m(this.low,this.high,!1):this},U.toUnsigned=function(){return this.unsigned?this:m(this.low,this.high,!0)},U.toBytes=function(k){return k?this.toBytesLE():this.toBytesBE()},U.toBytesLE=function(){var k=this.high,x=this.low;return[x&255,x>>>8&255,x>>>16&255,x>>>24&255,k&255,k>>>8&255,k>>>16&255,k>>>24&255]},U.toBytesBE=function(){var k=this.high,x=this.low;return[k>>>24&255,k>>>16&255,k>>>8&255,k&255,x>>>24&255,x>>>16&255,x>>>8&255,x&255]},A})})(fn)),fn.exports}var km=Om();const hn=Zh(km),Fm=3,Um=30,Qm=2*Um+1,Go=180/Math.PI;function Vm(e,A,i){const a=1<<A;return[(e[0]+i[0])/a,(e[1]+i[1])/a]}function qo(e){return e>=.5?1/3*(4*e*e-1):1/3*(1-4*(1-e)*(1-e))}function zm(e){return[qo(e[0]),qo(e[1])]}function Gm(e,[A,i]){switch(e){case 0:return[1,A,i];case 1:return[-A,1,i];case 2:return[-A,-i,1];case 3:return[-1,-i,-A];case 4:return[i,-1,-A];case 5:return[i,A,-1];default:throw new Error("Invalid face")}}function qm([e,A,i]){const a=Math.atan2(i,Math.sqrt(e*e+A*A));return[Math.atan2(A,e)*Go,a*Go]}function Hm(e){let A=hn.fromString(e,!0,10).toString(2);for(;A.length<Fm+Qm;)A="0"+A;const i=A.lastIndexOf("1"),a=A.substring(0,3),c=A.substring(3,i),h=c.length/2,g=hn.fromString(a,!0,2).toString(10);let m=hn.fromString(c,!0,2).toString(4);for(;m.length<h;)m="0"+m;return`${g}/${m}`}function jm(e,A,i,a){if(a===0){i===1&&(A[0]=e-1-A[0],A[1]=e-1-A[1]);const c=A[0];A[0]=A[1],A[1]=c}}function Wm(e){const A=e.split("/"),i=parseInt(A[0],10),a=A[1],c=a.length,h=[0,0];let g;for(let m=c-1;m>=0;m--){g=c-m;const y=a[m];let v=0,_=0;y==="1"?_=1:y==="2"?(v=1,_=1):y==="3"&&(v=1);const S=Math.pow(2,g-1);jm(S,h,v,_),h[0]+=S*v,h[1]+=S*_}if(i%2===1){const m=h[0];h[0]=h[1],h[1]=m}return{face:i,ij:h,level:g}}function Ym(e){const A=e.padEnd(16,"0");return hn.fromString(A,16)}const Zm=100;function Xm({face:e,ij:A,level:i}){const a=[[0,0],[0,1],[1,1],[1,0],[0,0]],c=Math.max(1,Math.ceil(Zm*Math.pow(2,-i))),h=new Float64Array(4*c*2+2);let g=0,m=0;for(let y=0;y<4;y++){const v=a[y].slice(0),_=a[y+1],S=(_[0]-v[0])/c,P=(_[1]-v[1])/c;for(let N=0;N<c;N++){v[0]+=S,v[1]+=P;const Y=Vm(A,i,v),Z=zm(Y),tA=Gm(e,Z),R=qm(tA);Math.abs(R[1])>89.999&&(R[0]=m);const z=R[0]-m;R[0]+=z>180?-360:z<-180?360:0,h[g++]=R[0],h[g++]=R[1],m=R[0]}}return h[g++]=h[0],h[g++]=h[1],h}function Jm(e){if(typeof e=="string"){if(e.indexOf("/")>0)return e;e=Ym(e)}return Hm(e.toString())}function Km(e){const A=Jm(e),i=Wm(A);return Xm(i)}const $m={getS2Token:{type:"accessor",value:e=>e.token}};class du extends Nt{indexToBounds(){const{data:A,getS2Token:i}=this.props;return{data:A,_normalize:!1,positionFormat:"XY",getPolygon:(a,c)=>Km(i(a,c))}}}du.layerName="S2Layer";du.defaultProps=$m;const D0=512;function A3(e,A){let i=0,a=0,c=1<<e.length;const h=c/D0;for(let g=0;g<e.length;g++){c>>=1;const m=parseInt(e[g]);m%2&&(i|=c),m>1&&(a|=c)}return[[i/h,D0-a/h],[(i+A)/h,D0-(a+A)/h]]}function e3(e,A=1){const[i,a]=A3(e,A),[c,h]=Zs(i),[g,m]=Zs(a);return[g,h,g,m,c,m,c,h,g,h]}const t3={getQuadkey:{type:"accessor",value:e=>e.quadkey}};class gu extends Nt{indexToBounds(){const{data:A,extruded:i,getQuadkey:a}=this.props,c=i?.99:1;return{data:A,_normalize:!1,positionFormat:"XY",getPolygon:(h,g)=>e3(a(h,g),c),updateTriggers:{getPolygon:c}}}}gu.layerName="QuadkeyLayer";gu.defaultProps=t3;class r3{constructor(A){this.index=A,this.isVisible=!1,this.isSelected=!1,this.parent=null,this.children=[],this.content=null,this._loader=void 0,this._abortController=null,this._loaderId=0,this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1}get bbox(){return this._bbox}set bbox(A){this._bbox||(this._bbox=A,"west"in A?this.boundingBox=[[A.west,A.south],[A.east,A.north]]:this.boundingBox=[[A.left,A.top],[A.right,A.bottom]])}get data(){return this.isLoading&&this._loader?this._loader.then(()=>this.data):this.content}get isLoaded(){return this._isLoaded&&!this._needsReload}get isLoading(){return!!this._loader&&!this._isCancelled}get needsReload(){return this._needsReload||this._isCancelled}get byteLength(){const A=this.content?this.content.byteLength:0;return Number.isFinite(A)||console.error("byteLength not defined in tile data"),A}async _loadData({getData:A,requestScheduler:i,onLoad:a,onError:c}){const{index:h,id:g,bbox:m,userData:y,zoom:v}=this,_=this._loaderId;this._abortController=new AbortController;const{signal:S}=this._abortController,P=await i.scheduleRequest(this,Z=>Z.isSelected?1:-1);if(!P){this._isCancelled=!0;return}if(this._isCancelled){P.done();return}let N=null,Y;try{N=await A({index:h,id:g,bbox:m,userData:y,zoom:v,signal:S})}catch(Z){Y=Z||!0}finally{P.done()}if(_===this._loaderId){if(this._loader=void 0,this.content=N,this._isCancelled&&!N){this._isLoaded=!1;return}this._isLoaded=!0,this._isCancelled=!1,Y?c(Y,this):a(this)}}loadData(A){return this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1,this._loaderId++,this._loader=this._loadData(A),this._loader}setNeedsReload(){this.isLoading&&(this.abort(),this._loader=void 0),this._needsReload=!0}abort(){this.isLoaded||(this._isCancelled=!0,this._abortController?.abort())}}const me={OUTSIDE:-1,INTERSECTING:0,INSIDE:1},Ho=new H,n3=new H;class Ri{constructor(A=[0,0,0],i=[0,0,0],a){a=a||Ho.copy(A).add(i).scale(.5),this.center=new H(a),this.halfDiagonal=new H(i).subtract(this.center),this.minimum=new H(A),this.maximum=new H(i)}clone(){return new Ri(this.minimum,this.maximum,this.center)}equals(A){return this===A||!!A&&this.minimum.equals(A.minimum)&&this.maximum.equals(A.maximum)}transform(A){return this.center.transformAsPoint(A),this.halfDiagonal.transform(A),this.minimum.transform(A),this.maximum.transform(A),this}intersectPlane(A){const{halfDiagonal:i}=this,a=n3.from(A.normal),c=i.x*Math.abs(a.x)+i.y*Math.abs(a.y)+i.z*Math.abs(a.z),h=this.center.dot(a)+A.distance;return h-c>0?me.INSIDE:h+c<0?me.OUTSIDE:me.INTERSECTING}distanceTo(A){return Math.sqrt(this.distanceSquaredTo(A))}distanceSquaredTo(A){const i=Ho.from(A).subtract(this.center),{halfDiagonal:a}=this;let c=0,h;return h=Math.abs(i.x)-a.x,h>0&&(c+=h*h),h=Math.abs(i.y)-a.y,h>0&&(c+=h*h),h=Math.abs(i.z)-a.z,h>0&&(c+=h*h),c}}const yr=new H,jo=new H;class Ir{constructor(A=[0,0,0],i=0){this.radius=-0,this.center=new H,this.fromCenterRadius(A,i)}fromCenterRadius(A,i){return this.center.from(A),this.radius=i,this}fromCornerPoints(A,i){return i=yr.from(i),this.center=new H().from(A).add(i).scale(.5),this.radius=this.center.distance(i),this}equals(A){return this===A||!!A&&this.center.equals(A.center)&&this.radius===A.radius}clone(){return new Ir(this.center,this.radius)}union(A){const i=this.center,a=this.radius,c=A.center,h=A.radius,g=yr.copy(c).subtract(i),m=g.magnitude();if(a>=m+h)return this.clone();if(h>=m+a)return A.clone();const y=(a+m+h)*.5;return jo.copy(g).scale((-a+y)/m).add(i),this.center.copy(jo),this.radius=y,this}expand(A){const a=yr.from(A).subtract(this.center).magnitude();return a>this.radius&&(this.radius=a),this}transform(A){this.center.transform(A);const i=Gh(yr,A);return this.radius=Math.max(i[0],Math.max(i[1],i[2]))*this.radius,this}distanceSquaredTo(A){const i=this.distanceTo(A);return i*i}distanceTo(A){const a=yr.from(A).subtract(this.center);return Math.max(0,a.len()-this.radius)}intersectPlane(A){const i=this.center,a=this.radius,h=A.normal.dot(i)+A.distance;return h<-a?me.OUTSIDE:h<a?me.INTERSECTING:me.INSIDE}}const i3=new H,s3=new H,$r=new H,An=new H,en=new H,o3=new H,a3=new H,rt={COLUMN0ROW0:0,COLUMN0ROW1:1,COLUMN0ROW2:2,COLUMN1ROW0:3,COLUMN1ROW1:4,COLUMN1ROW2:5,COLUMN2ROW0:6,COLUMN2ROW1:7,COLUMN2ROW2:8};class Br{constructor(A=[0,0,0],i=[0,0,0,0,0,0,0,0,0]){this.center=new H().from(A),this.halfAxes=new de(i)}get halfSize(){const A=this.halfAxes.getColumn(0),i=this.halfAxes.getColumn(1),a=this.halfAxes.getColumn(2);return[new H(A).len(),new H(i).len(),new H(a).len()]}get quaternion(){const A=this.halfAxes.getColumn(0),i=this.halfAxes.getColumn(1),a=this.halfAxes.getColumn(2),c=new H(A).normalize(),h=new H(i).normalize(),g=new H(a).normalize();return new wn().fromMatrix3(new de([...c,...h,...g]))}fromCenterHalfSizeQuaternion(A,i,a){const c=new wn(a),h=new de().fromQuaternion(c);return h[0]=h[0]*i[0],h[1]=h[1]*i[0],h[2]=h[2]*i[0],h[3]=h[3]*i[1],h[4]=h[4]*i[1],h[5]=h[5]*i[1],h[6]=h[6]*i[2],h[7]=h[7]*i[2],h[8]=h[8]*i[2],this.center=new H().from(A),this.halfAxes=h,this}clone(){return new Br(this.center,this.halfAxes)}equals(A){return this===A||!!A&&this.center.equals(A.center)&&this.halfAxes.equals(A.halfAxes)}getBoundingSphere(A=new Ir){const i=this.halfAxes,a=i.getColumn(0,$r),c=i.getColumn(1,An),h=i.getColumn(2,en),g=i3.copy(a).add(c).add(h);return A.center.copy(this.center),A.radius=g.magnitude(),A}intersectPlane(A){const i=this.center,a=A.normal,c=this.halfAxes,h=a.x,g=a.y,m=a.z,y=Math.abs(h*c[rt.COLUMN0ROW0]+g*c[rt.COLUMN0ROW1]+m*c[rt.COLUMN0ROW2])+Math.abs(h*c[rt.COLUMN1ROW0]+g*c[rt.COLUMN1ROW1]+m*c[rt.COLUMN1ROW2])+Math.abs(h*c[rt.COLUMN2ROW0]+g*c[rt.COLUMN2ROW1]+m*c[rt.COLUMN2ROW2]),v=a.dot(i)+A.distance;return v<=-y?me.OUTSIDE:v>=y?me.INSIDE:me.INTERSECTING}distanceTo(A){return Math.sqrt(this.distanceSquaredTo(A))}distanceSquaredTo(A){const i=s3.from(A).subtract(this.center),a=this.halfAxes,c=a.getColumn(0,$r),h=a.getColumn(1,An),g=a.getColumn(2,en),m=c.magnitude(),y=h.magnitude(),v=g.magnitude();c.normalize(),h.normalize(),g.normalize();let _=0,S;return S=Math.abs(i.dot(c))-m,S>0&&(_+=S*S),S=Math.abs(i.dot(h))-y,S>0&&(_+=S*S),S=Math.abs(i.dot(g))-v,S>0&&(_+=S*S),_}computePlaneDistances(A,i,a=[-0,-0]){let c=Number.POSITIVE_INFINITY,h=Number.NEGATIVE_INFINITY;const g=this.center,m=this.halfAxes,y=m.getColumn(0,$r),v=m.getColumn(1,An),_=m.getColumn(2,en),S=o3.copy(y).add(v).add(_).add(g),P=a3.copy(S).subtract(A);let N=i.dot(P);return c=Math.min(N,c),h=Math.max(N,h),S.copy(g).add(y).add(v).subtract(_),P.copy(S).subtract(A),N=i.dot(P),c=Math.min(N,c),h=Math.max(N,h),S.copy(g).add(y).subtract(v).add(_),P.copy(S).subtract(A),N=i.dot(P),c=Math.min(N,c),h=Math.max(N,h),S.copy(g).add(y).subtract(v).subtract(_),P.copy(S).subtract(A),N=i.dot(P),c=Math.min(N,c),h=Math.max(N,h),g.copy(S).subtract(y).add(v).add(_),P.copy(S).subtract(A),N=i.dot(P),c=Math.min(N,c),h=Math.max(N,h),g.copy(S).subtract(y).add(v).subtract(_),P.copy(S).subtract(A),N=i.dot(P),c=Math.min(N,c),h=Math.max(N,h),g.copy(S).subtract(y).subtract(v).add(_),P.copy(S).subtract(A),N=i.dot(P),c=Math.min(N,c),h=Math.max(N,h),g.copy(S).subtract(y).subtract(v).subtract(_),P.copy(S).subtract(A),N=i.dot(P),c=Math.min(N,c),h=Math.max(N,h),a[0]=c,a[1]=h,a}transform(A){this.center.transformAsPoint(A);const i=this.halfAxes.getColumn(0,$r);i.transformAsPoint(A);const a=this.halfAxes.getColumn(1,An);a.transformAsPoint(A);const c=this.halfAxes.getColumn(2,en);return c.transformAsPoint(A),this.halfAxes=new de([...i,...a,...c]),this}getTransform(){throw new Error("not implemented")}}const Wo=new H,Yo=new H;class ze{constructor(A=[0,0,1],i=0){this.normal=new H,this.distance=-0,this.fromNormalDistance(A,i)}fromNormalDistance(A,i){return nt(Number.isFinite(i)),this.normal.from(A).normalize(),this.distance=i,this}fromPointNormal(A,i){A=Wo.from(A),this.normal.from(i).normalize();const a=-this.normal.dot(A);return this.distance=a,this}fromCoefficients(A,i,a,c){return this.normal.set(A,i,a),nt(St(this.normal.len(),1)),this.distance=c,this}clone(){return new ze(this.normal,this.distance)}equals(A){return St(this.distance,A.distance)&&St(this.normal,A.normal)}getPointDistance(A){return this.normal.dot(A)+this.distance}transform(A){const i=Yo.copy(this.normal).transformAsVector(A).normalize(),a=this.normal.scale(-this.distance).transform(A);return this.fromPointNormal(a,i)}projectPointOntoPlane(A,i=[0,0,0]){const a=Wo.from(A),c=this.getPointDistance(a),h=Yo.copy(this.normal).scale(c);return a.subtract(h).to(i)}}const Zo=[new H([1,0,0]),new H([0,1,0]),new H([0,0,1])],Xo=new H,l3=new H;class xe{constructor(A=[]){this.planes=A}fromBoundingSphere(A){this.planes.length=2*Zo.length;const i=A.center,a=A.radius;let c=0;for(const h of Zo){let g=this.planes[c],m=this.planes[c+1];g||(g=this.planes[c]=new ze),m||(m=this.planes[c+1]=new ze);const y=Xo.copy(h).scale(-a).add(i);g.fromPointNormal(y,h);const v=Xo.copy(h).scale(a).add(i),_=l3.copy(h).negate();m.fromPointNormal(v,_),c+=2}return this}computeVisibility(A){let i=me.INSIDE;for(const a of this.planes)switch(A.intersectPlane(a)){case me.OUTSIDE:return me.OUTSIDE;case me.INTERSECTING:i=me.INTERSECTING;break}return i}computeVisibilityWithPlaneMask(A,i){if(nt(Number.isFinite(i),"parentPlaneMask is required."),i===xe.MASK_OUTSIDE||i===xe.MASK_INSIDE)return i;let a=xe.MASK_INSIDE;const c=this.planes;for(let h=0;h<this.planes.length;++h){const g=h<31?1<<h:0;if(h<31&&(i&g)===0)continue;const m=c[h],y=A.intersectPlane(m);if(y===me.OUTSIDE)return xe.MASK_OUTSIDE;y===me.INTERSECTING&&(a|=g)}return a}}xe.MASK_OUTSIDE=4294967295;xe.MASK_INSIDE=0;xe.MASK_INDETERMINATE=2147483647;new H;new H;new H;new H;new H;new H;new H;new H;new H;new H;new H;new H;new H;new H;new H;new H;new H;const Ze=new de,u3=new de,c3=new de,tn=new de,Jo=new de;function f3(e,A={}){const i=T2,a=10;let c=0,h=0;const g=u3,m=c3;g.identity(),m.copy(e);const y=i*h3(m);for(;h<a&&d3(m)>y;)g3(m,tn),Jo.copy(tn).transpose(),m.multiplyRight(tn),m.multiplyLeft(Jo),g.multiplyRight(tn),++c>2&&(++h,c=0);return A.unitary=g.toTarget(A.unitary),A.diagonal=m.toTarget(A.diagonal),A}function h3(e){let A=0;for(let i=0;i<9;++i){const a=e[i];A+=a*a}return Math.sqrt(A)}const li=[1,0,0],ui=[2,2,1];function d3(e){let A=0;for(let i=0;i<3;++i){const a=e[Ze.getElementIndex(ui[i],li[i])];A+=2*a*a}return Math.sqrt(A)}function g3(e,A){const i=il;let a=0,c=1;for(let v=0;v<3;++v){const _=Math.abs(e[Ze.getElementIndex(ui[v],li[v])]);_>a&&(c=v,a=_)}const h=li[c],g=ui[c];let m=1,y=0;if(Math.abs(e[Ze.getElementIndex(g,h)])>i){const v=e[Ze.getElementIndex(g,g)],_=e[Ze.getElementIndex(h,h)],S=e[Ze.getElementIndex(g,h)],P=(v-_)/2/S;let N;P<0?N=-1/(-P+Math.sqrt(1+P*P)):N=1/(P+Math.sqrt(1+P*P)),m=1/Math.sqrt(1+N*N),y=N*m}return de.IDENTITY.to(A),A[Ze.getElementIndex(h,h)]=A[Ze.getElementIndex(g,g)]=m,A[Ze.getElementIndex(g,h)]=y,A[Ze.getElementIndex(h,g)]=-y,A}const gt=new H,p3=new H,m3=new H,w3=new H,y3=new H,T3=new de,v3={diagonal:new de,unitary:new de};function pu(e,A=new Br){if(!e||e.length===0)return A.halfAxes=new de([0,0,0,0,0,0,0,0,0]),A.center=new H,A;const i=e.length,a=new H(0,0,0);for(const U of e)a.add(U);const c=1/i;a.multiplyByScalar(c);let h=0,g=0,m=0,y=0,v=0,_=0;for(const U of e){const k=gt.copy(U).subtract(a);h+=k.x*k.x,g+=k.x*k.y,m+=k.x*k.z,y+=k.y*k.y,v+=k.y*k.z,_+=k.z*k.z}h*=c,g*=c,m*=c,y*=c,v*=c,_*=c;const S=T3;S[0]=h,S[1]=g,S[2]=m,S[3]=g,S[4]=y,S[5]=v,S[6]=m,S[7]=v,S[8]=_;const{unitary:P}=f3(S,v3),N=A.halfAxes.copy(P);let Y=N.getColumn(0,m3),Z=N.getColumn(1,w3),tA=N.getColumn(2,y3),R=-Number.MAX_VALUE,z=-Number.MAX_VALUE,nA=-Number.MAX_VALUE,mA=Number.MAX_VALUE,G=Number.MAX_VALUE,j=Number.MAX_VALUE;for(const U of e)gt.copy(U),R=Math.max(gt.dot(Y),R),z=Math.max(gt.dot(Z),z),nA=Math.max(gt.dot(tA),nA),mA=Math.min(gt.dot(Y),mA),G=Math.min(gt.dot(Z),G),j=Math.min(gt.dot(tA),j);Y=Y.multiplyByScalar(.5*(mA+R)),Z=Z.multiplyByScalar(.5*(G+z)),tA=tA.multiplyByScalar(.5*(j+nA)),A.center.copy(Y).add(Z).add(tA);const eA=p3.set(R-mA,z-G,nA-j).multiplyByScalar(.5),lA=new de([eA[0],0,0,0,eA[1],0,0,0,eA[2]]);return A.halfAxes.multiplyRight(lA),A}const Kt=512,Ko=3,mu=[[.5,.5],[0,0],[0,1],[1,0],[1,1]],wu=mu.concat([[0,.5],[.5,0],[1,.5],[.5,1]]),_3=wu.concat([[.25,.5],[.75,.5]]);class $t{constructor(A,i,a){this.x=A,this.y=i,this.z=a}get children(){if(!this._children){const A=this.x*2,i=this.y*2,a=this.z+1;this._children=[new $t(A,i,a),new $t(A,i+1,a),new $t(A+1,i,a),new $t(A+1,i+1,a)]}return this._children}update(A){const{viewport:i,cullingVolume:a,elevationBounds:c,minZ:h,maxZ:g,bounds:m,offset:y,project:v}=A,_=this.getBoundingVolume(c,y,v);if(m&&!this.insideBounds(m)||a.computeVisibility(_)<0)return!1;if(!this.childVisible){let{z:P}=this;if(P<g&&P>=h){const N=_.distanceTo(i.cameraPosition)*i.scale/i.height;P+=Math.floor(Math.log2(N))}if(P>=g)return this.selected=!0,!0}this.selected=!1,this.childVisible=!0;for(const P of this.children)P.update(A);return!0}getSelected(A=[]){if(this.selected&&A.push(this),this._children)for(const i of this._children)i.getSelected(A);return A}insideBounds([A,i,a,c]){const h=Math.pow(2,this.z),g=Kt/h;return this.x*g<a&&this.y*g<c&&(this.x+1)*g>A&&(this.y+1)*g>i}getBoundingVolume(A,i,a){if(a){const y=this.z<1?_3:this.z<2?wu:mu,v=[];for(const _ of y){const S=fi(this.x+_[0],this.y+_[1],this.z);S[2]=A[0],v.push(a(S)),A[0]!==A[1]&&(S[2]=A[1],v.push(a(S)))}return pu(v)}const c=Math.pow(2,this.z),h=Kt/c,g=this.x*h+i*Kt,m=Kt-(this.y+1)*h;return new Ri([g,m,A[0]],[g+h,m+h,A[1]])}}function E3(e,A,i,a){const c=e instanceof A2&&e.resolution?e.projectPosition:null,h=Object.values(e.getFrustumPlanes()).map(({normal:N,distance:Y})=>new ze(N.clone().negate(),Y)),g=new xe(h),m=e.distanceScales.unitsPerMeter[2],y=i&&i[0]*m||0,v=i&&i[1]*m||0,_=e instanceof Xs&&e.pitch<=60?A:0;if(a){const[N,Y,Z,tA]=a,R=J0([N,tA]),z=J0([Z,Y]);a=[R[0],Kt-R[1],z[0],Kt-z[1]]}const S=new $t(0,0,0),P={viewport:e,project:c,cullingVolume:g,elevationBounds:[y,v],minZ:_,maxZ:A,bounds:a,offset:0};if(S.update(P),e instanceof Xs&&e.subViewports&&e.subViewports.length>1){for(P.offset=-1;S.update(P)&&!(--P.offset<-Ko););for(P.offset=1;S.update(P)&&!(++P.offset>Ko););}return S.getSelected()}const ot=512,b3=[-1/0,-1/0,1/0,1/0],bn={type:"object",value:null,validate:(e,A)=>A.optional&&e===null||typeof e=="string"||Array.isArray(e)&&e.every(i=>typeof i=="string"),equal:(e,A)=>{if(e===A)return!0;if(!Array.isArray(e)||!Array.isArray(A))return!1;const i=e.length;if(i!==A.length)return!1;for(let a=0;a<i;a++)if(e[a]!==A[a])return!1;return!0}};function Di(e,A){const i=[A.transformAsPoint([e[0],e[1]]),A.transformAsPoint([e[2],e[1]]),A.transformAsPoint([e[0],e[3]]),A.transformAsPoint([e[2],e[3]])];return[Math.min(...i.map(c=>c[0])),Math.min(...i.map(c=>c[1])),Math.max(...i.map(c=>c[0])),Math.max(...i.map(c=>c[1]))]}function M3(e){return Math.abs(e.split("").reduce((A,i)=>(A<<5)-A+i.charCodeAt(0)|0,0))}function Mn(e,A){if(!e||!e.length)return null;const{index:i,id:a}=A;if(Array.isArray(e)){const h=M3(a)%e.length;e=e[h]}let c=e;for(const h of Object.keys(i)){const g=new RegExp(`{${h}}`,"g");c=c.replace(g,String(i[h]))}return Number.isInteger(i.y)&&Number.isInteger(i.z)&&(c=c.replace(/\{-y\}/g,String(Math.pow(2,i.z)-i.y-1))),c}function C3(e,A,i){let a;return a=e.getBounds(),e.isGeospatial?[Math.max(a[0],i[0]),Math.max(a[1],i[1]),Math.min(a[2],i[2]),Math.min(a[3],i[3])]:[Math.max(Math.min(a[0],i[2]),i[0]),Math.max(Math.min(a[1],i[3]),i[1]),Math.min(Math.max(a[2],i[0]),i[2]),Math.min(Math.max(a[3],i[1]),i[3])]}function S3({viewport:e,z:A,cullRect:i}){return(e.subViewports||[e]).map(c=>ci(c,A||0,i))}function ci(e,A,i){if(!Array.isArray(A)){const h=i.x-e.x,g=i.y-e.y,{width:m,height:y}=i,v={targetZ:A},_=e.unproject([h,g],v),S=e.unproject([h+m,g],v),P=e.unproject([h,g+y],v),N=e.unproject([h+m,g+y],v);return[Math.min(_[0],S[0],P[0],N[0]),Math.min(_[1],S[1],P[1],N[1]),Math.max(_[0],S[0],P[0],N[0]),Math.max(_[1],S[1],P[1],N[1])]}const a=ci(e,A[0],i),c=ci(e,A[1],i);return[Math.min(a[0],c[0]),Math.min(a[1],c[1]),Math.max(a[2],c[2]),Math.max(a[3],c[3])]}function I3(e,A,i){return i?Di(e,i).map(c=>c*A/ot):e.map(a=>a*A/ot)}function Oi(e,A){return Math.pow(2,e)*ot/A}function fi(e,A,i){const a=Oi(i,ot),c=e/a*360-180,h=Math.PI-2*Math.PI*A/a,g=180/Math.PI*Math.atan(.5*(Math.exp(h)-Math.exp(-h)));return[c,g]}function $o(e,A,i,a){const c=Oi(i,a);return[e/c*ot,A/c*ot]}function B3(e,A,i,a,c=ot){if(e.isGeospatial){const[v,_]=fi(A,i,a),[S,P]=fi(A+1,i+1,a);return{west:v,north:_,east:S,south:P}}const[h,g]=$o(A,i,a,c),[m,y]=$o(A+1,i+1,a,c);return{left:h,top:g,right:m,bottom:y}}function L3(e,A,i,a,c){const h=C3(e,null,a),g=Oi(A,i),[m,y,v,_]=I3(h,g,c),S=[];for(let P=Math.floor(m);P<v;P++)for(let N=Math.floor(y);N<_;N++)S.push({x:P,y:N,z:A});return S}function P3({viewport:e,maxZoom:A,minZoom:i,zRange:a,extent:c,tileSize:h=ot,modelMatrix:g,modelMatrixInverse:m,zoomOffset:y=0}){let v=e.isGeospatial?Math.round(e.zoom+Math.log2(ot/h))+y:Math.ceil(e.zoom)+y;if(typeof i=="number"&&Number.isFinite(i)&&v<i){if(!c)return[];v=i}typeof A=="number"&&Number.isFinite(A)&&v>A&&(v=A);let _=c;return g&&m&&c&&!e.isGeospatial&&(_=Di(c,g)),e.isGeospatial?E3(e,v,a,c):L3(e,v,h,_||b3,m)}function x3(e){return/(?=.*{z})(?=.*{x})(?=.*({y}|{-y}))/.test(e)}function N3(e){return Number.isFinite(e.west)&&Number.isFinite(e.north)&&Number.isFinite(e.east)&&Number.isFinite(e.south)}function R3(e){let A={},i;return a=>{for(const c in a)if(!D3(a[c],A[c])){i=e(a),A=a;break}return i}}function D3(e,A){if(e===A)return!0;if(Array.isArray(e)){const i=e.length;if(!A||A.length!==i)return!1;for(let a=0;a<i;a++)if(e[a]!==A[a])return!1;return!0}return!1}const Aa=1,Dn=2,O3="never",k3="no-overlap",ki="best-available",F3=5,U3={[ki]:z3,[k3]:G3,[O3]:()=>{}},Q3={extent:null,tileSize:512,maxZoom:null,minZoom:null,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:"best-available",zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{}};class V3{constructor(A){this._getCullBounds=R3(S3),this.opts={...Q3,...A},this.setOptions(this.opts),this.onTileLoad=i=>{this.opts.onTileLoad?.(i),this.opts.maxCacheByteSize!==null&&(this._cacheByteSize+=i.byteLength,this._resizeCache())},this._requestScheduler=new nl({throttleRequests:this.opts.maxRequests>0||this.opts.debounceTime>0,maxRequests:this.opts.maxRequests,debounceTime:this.opts.debounceTime}),this._cache=new Map,this._tiles=[],this._dirty=!1,this._cacheByteSize=0,this._viewport=null,this._zRange=null,this._selectedTiles=null,this._frameNumber=0,this._modelMatrix=new KA,this._modelMatrixInverse=new KA}get tiles(){return this._tiles}get selectedTiles(){return this._selectedTiles}get isLoaded(){return this._selectedTiles!==null&&this._selectedTiles.every(A=>A.isLoaded)}get needsReload(){return this._selectedTiles!==null&&this._selectedTiles.some(A=>A.needsReload)}setOptions(A){Object.assign(this.opts,A),Number.isFinite(A.maxZoom)&&(this._maxZoom=Math.floor(A.maxZoom)),Number.isFinite(A.minZoom)&&(this._minZoom=Math.ceil(A.minZoom))}finalize(){for(const A of this._cache.values())A.isLoading&&A.abort();this._cache.clear(),this._tiles=[],this._selectedTiles=null}reloadAll(){for(const A of this._cache.keys()){const i=this._cache.get(A);!this._selectedTiles||!this._selectedTiles.includes(i)?this._cache.delete(A):i.setNeedsReload()}}update(A,{zRange:i,modelMatrix:a}={zRange:null,modelMatrix:null}){const c=a?new KA(a):new KA,h=!c.equals(this._modelMatrix);if(!this._viewport||!A.equals(this._viewport)||!St(this._zRange,i)||h){h&&(this._modelMatrixInverse=c.clone().invert(),this._modelMatrix=c),this._viewport=A,this._zRange=i;const m=this.getTileIndices({viewport:A,maxZoom:this._maxZoom,minZoom:this._minZoom,zRange:i,modelMatrix:this._modelMatrix,modelMatrixInverse:this._modelMatrixInverse});this._selectedTiles=m.map(y=>this._getTile(y,!0)),this._dirty&&this._rebuildTree()}else this.needsReload&&(this._selectedTiles=this._selectedTiles.map(m=>this._getTile(m.index,!0)));const g=this.updateTileStates();return this._pruneRequests(),this._dirty&&this._resizeCache(),g&&this._frameNumber++,this._frameNumber}isTileVisible(A,i,a){if(!A.isVisible)return!1;if(i&&this._viewport){const c=this._getCullBounds({viewport:this._viewport,z:this._zRange,cullRect:i});let{bbox:h}=A;for(const[g,m,y,v]of c){let _;if("west"in h)_=h.west<y&&h.east>g&&h.south<v&&h.north>m;else{if(a&&!KA.IDENTITY.equals(a)){const[N,Y,Z,tA]=Di([h.left,h.top,h.right,h.bottom],a);h={left:N,top:Y,right:Z,bottom:tA}}const S=Math.min(h.top,h.bottom),P=Math.max(h.top,h.bottom);_=h.left<y&&h.right>g&&S<v&&P>m}if(_)return!0}return!1}return!0}getTileIndices({viewport:A,maxZoom:i,minZoom:a,zRange:c,modelMatrix:h,modelMatrixInverse:g}){const{tileSize:m,extent:y,zoomOffset:v}=this.opts;return P3({viewport:A,maxZoom:i,minZoom:a,zRange:c,tileSize:m,extent:y,modelMatrix:h,modelMatrixInverse:g,zoomOffset:v})}getTileId(A){return`${A.x}-${A.y}-${A.z}`}getTileZoom(A){return A.z}getTileMetadata(A){const{tileSize:i}=this.opts;return{bbox:B3(this._viewport,A.x,A.y,A.z,i)}}getParentIndex(A){const i=Math.floor(A.x/2),a=Math.floor(A.y/2),c=A.z-1;return{x:i,y:a,z:c}}updateTileStates(){const A=this.opts.refinementStrategy||ki,i=new Array(this._cache.size);let a=0;for(const c of this._cache.values())i[a++]=c.isVisible,c.isSelected=!1,c.isVisible=!1;for(const c of this._selectedTiles)c.isSelected=!0,c.isVisible=!0;(typeof A=="function"?A:U3[A])(Array.from(this._cache.values())),a=0;for(const c of this._cache.values())if(i[a++]!==c.isVisible)return!0;return!1}_pruneRequests(){const{maxRequests:A=0}=this.opts,i=[];let a=0;for(const c of this._cache.values())c.isLoading&&(a++,!c.isSelected&&!c.isVisible&&i.push(c));for(;A>0&&a>A&&i.length>0;)i.shift().abort(),a--}_rebuildTree(){const{_cache:A}=this;for(const i of A.values())i.parent=null,i.children&&(i.children.length=0);for(const i of A.values()){const a=this._getNearestAncestor(i);i.parent=a,a?.children&&a.children.push(i)}}_resizeCache(){const{_cache:A,opts:i}=this,a=i.maxCacheSize??(i.maxCacheByteSize!==null?1/0:F3*this.selectedTiles.length),c=i.maxCacheByteSize??1/0;if(A.size>a||this._cacheByteSize>c){for(const[g,m]of A)if(!m.isVisible&&!m.isSelected&&(this._cacheByteSize-=i.maxCacheByteSize!==null?m.byteLength:0,A.delete(g),this.opts.onTileUnload?.(m)),A.size<=a&&this._cacheByteSize<=c)break;this._rebuildTree(),this._dirty=!0}this._dirty&&(this._tiles=Array.from(this._cache.values()).sort((g,m)=>g.zoom-m.zoom),this._dirty=!1)}_getTile(A,i){const a=this.getTileId(A);let c=this._cache.get(a),h=!1;return!c&&i?(c=new r3(A),Object.assign(c,this.getTileMetadata(c.index)),Object.assign(c,{id:a,zoom:this.getTileZoom(c.index)}),h=!0,this._cache.set(a,c),this._dirty=!0):c&&c.needsReload&&(h=!0),c&&h&&c.loadData({getData:this.opts.getTileData,requestScheduler:this._requestScheduler,onLoad:this.onTileLoad,onError:this.opts.onTileError}),c}_getNearestAncestor(A){const{_minZoom:i=0}=this;let a=A.index;for(;this.getTileZoom(a)>i;){a=this.getParentIndex(a);const c=this._getTile(a);if(c)return c}return null}}function z3(e){for(const A of e)A.state=0;for(const A of e)A.isSelected&&!yu(A)&&Fi(A);for(const A of e)A.isVisible=!!(A.state&Dn)}function G3(e){for(const i of e)i.state=0;for(const i of e)i.isSelected&&yu(i);const A=Array.from(e).sort((i,a)=>i.zoom-a.zoom);for(const i of A)if(i.isVisible=!!(i.state&Dn),i.children&&(i.isVisible||i.state&Aa))for(const a of i.children)a.state=Aa;else i.isSelected&&Fi(i)}function yu(e){let A=e;for(;A;){if(A.isLoaded||A.content)return A.state|=Dn,!0;A=A.parent}return!1}function Fi(e){for(const A of e.children)A.isLoaded||A.content?A.state|=Dn:Fi(A)}const q3={TilesetClass:V3,data:{type:"data",value:[]},dataComparator:bn.equal,renderSubLayers:{type:"function",value:e=>new Ti(e)},getTileData:{type:"function",optional:!0,value:null},onViewportLoad:{type:"function",optional:!0,value:null},onTileLoad:{type:"function",value:e=>{}},onTileUnload:{type:"function",value:e=>{}},onTileError:{type:"function",value:e=>console.error(e)},extent:{type:"array",optional:!0,value:null,compare:!0},tileSize:512,maxZoom:null,minZoom:0,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:ki,zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0};class Lr extends lr{initializeState(){this.state={tileset:null,isLoaded:!1}}finalizeState(){this.state?.tileset?.finalize()}get isLoaded(){return!!this.state?.tileset?.selectedTiles?.every(A=>A.isLoaded&&A.layers&&A.layers.every(i=>i.isLoaded))}shouldUpdateState({changeFlags:A}){return A.somethingChanged}updateState({changeFlags:A}){let{tileset:i}=this.state;const a=A.propsOrDataChanged||A.updateTriggersChanged,c=A.dataChanged||A.updateTriggersChanged&&(A.updateTriggersChanged.all||A.updateTriggersChanged.getTileData);i?a&&(i.setOptions(this._getTilesetOptions()),c?i.reloadAll():i.tiles.forEach(h=>{h.layers=null})):(i=new this.props.TilesetClass(this._getTilesetOptions()),this.setState({tileset:i})),this._updateTileset()}_getTilesetOptions(){const{tileSize:A,maxCacheSize:i,maxCacheByteSize:a,refinementStrategy:c,extent:h,maxZoom:g,minZoom:m,maxRequests:y,debounceTime:v,zoomOffset:_}=this.props;return{maxCacheSize:i,maxCacheByteSize:a,maxZoom:g,minZoom:m,tileSize:A,refinementStrategy:c,extent:h,maxRequests:y,debounceTime:v,zoomOffset:_,getTileData:this.getTileData.bind(this),onTileLoad:this._onTileLoad.bind(this),onTileError:this._onTileError.bind(this),onTileUnload:this._onTileUnload.bind(this)}}_updateTileset(){const A=this.state.tileset,{zRange:i,modelMatrix:a}=this.props,c=A.update(this.context.viewport,{zRange:i,modelMatrix:a}),{isLoaded:h}=A,g=this.state.isLoaded!==h,m=this.state.frameNumber!==c;h&&(g||m)&&this._onViewportLoad(),m&&this.setState({frameNumber:c}),this.state.isLoaded=h}_onViewportLoad(){const{tileset:A}=this.state,{onViewportLoad:i}=this.props;i&&i(A.selectedTiles)}_onTileLoad(A){this.props.onTileLoad(A),A.layers=null,this.setNeedsUpdate()}_onTileError(A,i){this.props.onTileError(A),i.layers=null,this.setNeedsUpdate()}_onTileUnload(A){this.props.onTileUnload(A)}getTileData(A){const{data:i,getTileData:a,fetch:c}=this.props,{signal:h}=A;return A.url=typeof i=="string"||Array.isArray(i)?Mn(i,A):null,a?a(A):c&&A.url?c(A.url,{propName:"data",layer:this,signal:h}):null}renderSubLayers(A){return this.props.renderSubLayers(A)}getSubLayerPropsByTile(A){return null}getPickingInfo(A){const i=A.sourceLayer,a=i.props.tile,c=A.info;return c.picked&&(c.tile=a),c.sourceTile=a,c.sourceTileSubLayer=i,c}_updateAutoHighlight(A){A.sourceTileSubLayer.updateAutoHighlight(A)}renderLayers(){return this.state.tileset.tiles.map(A=>{const i=this.getSubLayerPropsByTile(A);if(!(!A.isLoaded&&!A.content))if(A.layers)i&&A.layers[0]&&Object.keys(i).some(a=>A.layers[0].props[a]!==i[a])&&(A.layers=A.layers.map(a=>a.clone(i)));else{const a=this.renderSubLayers({...this.props,...this.getSubLayerProps({id:A.id,updateTriggers:this.props.updateTriggers}),data:A.content,_offset:0,tile:A});A.layers=t2(a,Boolean).map(c=>c.clone({tile:A,...i}))}return A.layers})}filterSubLayer({layer:A,cullRect:i}){const{tile:a}=A.props,{modelMatrix:c}=this.props;return this.state.tileset.isTileVisible(a,i,c?new KA(c):null)}}Lr.defaultProps=q3;Lr.layerName="TileLayer";const ea=`uniform tripsUniforms {
8
+ bool fadeTrail;
9
+ float trailLength;
10
+ float currentTime;
11
+ } trips;
12
+ `,H3={name:"trips",vs:ea,fs:ea,uniformTypes:{fadeTrail:"f32",trailLength:"f32",currentTime:"f32"}},j3={fadeTrail:!0,trailLength:{type:"number",value:120,min:0},currentTime:{type:"number",value:0,min:0},getTimestamps:{type:"accessor",value:e=>e.timestamps}};class Tu extends i2{getShaders(){const A=super.getShaders();return A.inject={"vs:#decl":`in float instanceTimestamps;
13
+ in float instanceNextTimestamps;
14
+ out float vTime;
15
+ `,"vs:#main-end":`vTime = instanceTimestamps + (instanceNextTimestamps - instanceTimestamps) * vPathPosition.y / vPathLength;
16
+ `,"fs:#decl":`in float vTime;
17
+ `,"fs:#main-start":`if(vTime > trips.currentTime || (trips.fadeTrail && (vTime < trips.currentTime - trips.trailLength))) {
18
+ discard;
19
+ }
20
+ `,"fs:DECKGL_FILTER_COLOR":`if(trips.fadeTrail) {
21
+ color.a *= 1.0 - (trips.currentTime - vTime) / trips.trailLength;
22
+ }
23
+ `},A.modules=[...A.modules,H3],A}initializeState(){super.initializeState(),this.getAttributeManager().addInstanced({timestamps:{size:1,accessor:"getTimestamps",shaderAttributes:{instanceTimestamps:{vertexOffset:0},instanceNextTimestamps:{vertexOffset:1}}}})}draw(A){const{fadeTrail:i,trailLength:a,currentTime:c}=this.props,h={fadeTrail:i,trailLength:a,currentTime:c};this.state.model.shaderInputs.setProps({trips:h}),super.draw(A)}}Tu.layerName="TripsLayer";Tu.defaultProps=j3;const W3=10;function Y3(e,A){let i;return e==null?i=A:typeof e=="object"?i={...e,coverage:A}:i={getHexagon:e,coverage:A},i}const Z3={...Bn.defaultProps,highPrecision:"auto",coverage:{type:"number",min:0,max:1,value:1},centerHexagon:null,getHexagon:{type:"accessor",value:e=>e.hexagon},extruded:!0};class ur extends lr{initializeState(){ur._checkH3Lib(),this.state={edgeLengthKM:0,resolution:-1}}shouldUpdateState({changeFlags:A}){return this._shouldUseHighPrecision()?A.propsOrDataChanged:A.somethingChanged}updateState({props:A,changeFlags:i}){if(A.highPrecision!==!0&&(i.dataChanged||i.updateTriggersChanged&&i.updateTriggersChanged.getHexagon)){const a=this._calculateH3DataProps();this.setState(a)}this._updateVertices(this.context.viewport)}_calculateH3DataProps(){let A=-1,i=!1,a=!1;const{iterable:c,objectInfo:h}=tl(this.props.data);for(const g of c){h.index++;const m=this.props.getHexagon(g,h),y=Op(m);if(A<0){if(A=y,!this.props.highPrecision)break}else if(A!==y){a=!0;break}if(Dp(m)){i=!0;break}}return{resolution:A,edgeLengthKM:A>=0?Vp(A,"km"):0,hasMultipleRes:a,hasPentagon:i}}_shouldUseHighPrecision(){if(this.props.highPrecision==="auto"){const{resolution:A,hasPentagon:i,hasMultipleRes:a}=this.state,{viewport:c}=this.context;return!!c?.resolution||a||i||A>=0&&A<=5}return this.props.highPrecision}_updateVertices(A){if(this._shouldUseHighPrecision())return;const{resolution:i,edgeLengthKM:a,centerHex:c}=this.state;if(i<0)return;const h=this.props.centerHexagon||kp(A.latitude,A.longitude,i);if(c===h)return;if(c)try{if(Qp(c,h)*a<W3)return}catch{}const{unitsPerMeter:g}=A.distanceScales;let m=_o(h);const[y,v]=Li(h),[_,S]=A.projectFlat([v,y]);m=m.map(P=>{const N=A.projectFlat(P);return[(N[0]-_)/g[0],(N[1]-S)/g[1]]}),this.setState({centerHex:h,vertices:m})}renderLayers(){return this._shouldUseHighPrecision()?this._renderPolygonLayer():this._renderColumnLayer()}_getForwardProps(){const{elevationScale:A,material:i,coverage:a,extruded:c,wireframe:h,stroked:g,filled:m,lineWidthUnits:y,lineWidthScale:v,lineWidthMinPixels:_,lineWidthMaxPixels:S,getFillColor:P,getElevation:N,getLineColor:Y,getLineWidth:Z,transitions:tA,updateTriggers:R}=this.props;return{elevationScale:A,extruded:c,coverage:a,wireframe:h,stroked:g,filled:m,lineWidthUnits:y,lineWidthScale:v,lineWidthMinPixels:_,lineWidthMaxPixels:S,material:i,getElevation:N,getFillColor:P,getLineColor:Y,getLineWidth:Z,transitions:tA,updateTriggers:{getFillColor:R.getFillColor,getElevation:R.getElevation,getLineColor:R.getLineColor,getLineWidth:R.getLineWidth}}}_renderPolygonLayer(){const{data:A,getHexagon:i,updateTriggers:a,coverage:c}=this.props,h=this.getSubLayerClass("hexagon-cell-hifi",Bn),g=this._getForwardProps();return g.updateTriggers.getPolygon=Y3(a.getHexagon,c),new h(g,this.getSubLayerProps({id:"hexagon-cell-hifi",updateTriggers:g.updateTriggers}),{data:A,_normalize:!1,_windingOrder:"CCW",positionFormat:"XY",getPolygon:(m,y)=>{const v=i(m,y);return su(_o(v,c))}})}_renderColumnLayer(){const{data:A,getHexagon:i,updateTriggers:a}=this.props,c=this.getSubLayerClass("hexagon-cell",s2),h=this._getForwardProps();return h.updateTriggers.getPosition=a.getHexagon,new c(h,this.getSubLayerProps({id:"hexagon-cell",flatShading:!0,updateTriggers:h.updateTriggers}),{data:A,diskResolution:6,radius:1,vertices:this.state.vertices,getPosition:Hp.bind(null,i)})}}ur.defaultProps=Z3;ur.layerName="H3HexagonLayer";ur._checkH3Lib=()=>{};const X3={getHexagons:{type:"accessor",value:e=>e.hexagons}};class vu extends Nt{initializeState(){ur._checkH3Lib()}updateState({props:A,changeFlags:i}){if(i.dataChanged||i.updateTriggersChanged&&i.updateTriggersChanged.getHexagons){const{data:a,getHexagons:c}=A,h=[],{iterable:g,objectInfo:m}=tl(a);for(const y of g){m.index++;const v=c(y,m),_=Up(v,!0);for(const S of _){for(const P of S)Pi(P);h.push(this.getSubLayerRow({polygon:S},y,m.index))}}this.setState({polygons:h})}}indexToBounds(){const{getElevation:A,getFillColor:i,getLineColor:a,getLineWidth:c}=this.props;return{data:this.state.polygons,getPolygon:h=>h.polygon,getElevation:this.getSubLayerAccessor(A),getFillColor:this.getSubLayerAccessor(i),getLineColor:this.getSubLayerAccessor(a),getLineWidth:this.getSubLayerAccessor(c)}}}vu.layerName="H3ClusterLayer";vu.defaultProps=X3;const ta=`uniform meshUniforms {
24
+ bool pickFeatureIds;
25
+ } mesh;
26
+ `,J3={name:"mesh",vs:ta,fs:ta,uniformTypes:{pickFeatureIds:"f32"}},K3=`#version 300 es
27
+ #define SHADER_NAME simple-mesh-layer-vs
28
+ in vec3 positions;
29
+ in vec3 normals;
30
+ in vec3 colors;
31
+ in vec2 texCoords;
32
+ in vec4 uvRegions;
33
+ in vec3 featureIdsPickingColors;
34
+ in vec4 instanceColors;
35
+ in vec3 instancePickingColors;
36
+ in vec3 instanceModelMatrixCol0;
37
+ in vec3 instanceModelMatrixCol1;
38
+ in vec3 instanceModelMatrixCol2;
39
+ out vec2 vTexCoord;
40
+ out vec3 cameraPosition;
41
+ out vec3 normals_commonspace;
42
+ out vec4 position_commonspace;
43
+ out vec4 vColor;
44
+ vec2 applyUVRegion(vec2 uv) {
45
+ #ifdef HAS_UV_REGIONS
46
+ return fract(uv) * (uvRegions.zw - uvRegions.xy) + uvRegions.xy;
47
+ #else
48
+ return uv;
49
+ #endif
50
+ }
51
+ void main(void) {
52
+ vec2 uv = applyUVRegion(texCoords);
53
+ geometry.uv = uv;
54
+ if (mesh.pickFeatureIds) {
55
+ geometry.pickingColor = featureIdsPickingColors;
56
+ } else {
57
+ geometry.pickingColor = instancePickingColors;
58
+ }
59
+ mat3 instanceModelMatrix = mat3(instanceModelMatrixCol0, instanceModelMatrixCol1, instanceModelMatrixCol2);
60
+ vTexCoord = uv;
61
+ cameraPosition = project.cameraPosition;
62
+ vColor = vec4(colors * instanceColors.rgb, instanceColors.a);
63
+ vec3 pos = (instanceModelMatrix * positions) * simpleMesh.sizeScale;
64
+ vec3 projectedPosition = project_position(positions);
65
+ position_commonspace = vec4(projectedPosition, 1.0);
66
+ gl_Position = project_common_position_to_clipspace(position_commonspace);
67
+ geometry.position = position_commonspace;
68
+ normals_commonspace = project_normal(instanceModelMatrix * normals);
69
+ geometry.normal = normals_commonspace;
70
+ DECKGL_FILTER_GL_POSITION(gl_Position, geometry);
71
+ #ifdef MODULE_PBRMATERIAL
72
+ pbr_vPosition = geometry.position.xyz;
73
+ #ifdef HAS_NORMALS
74
+ pbr_vNormal = geometry.normal;
75
+ #endif
76
+ #ifdef HAS_UV
77
+ pbr_vUV = uv;
78
+ #else
79
+ pbr_vUV = vec2(0., 0.);
80
+ #endif
81
+ geometry.uv = pbr_vUV;
82
+ #endif
83
+ DECKGL_FILTER_COLOR(vColor, geometry);
84
+ }
85
+ `,$3=`#version 300 es
86
+ #define SHADER_NAME simple-mesh-layer-fs
87
+ precision highp float;
88
+ uniform sampler2D sampler;
89
+ in vec2 vTexCoord;
90
+ in vec3 cameraPosition;
91
+ in vec3 normals_commonspace;
92
+ in vec4 position_commonspace;
93
+ in vec4 vColor;
94
+ out vec4 fragColor;
95
+ void main(void) {
96
+ #ifdef MODULE_PBRMATERIAL
97
+ fragColor = vColor * pbr_filterColor(vec4(0));
98
+ geometry.uv = pbr_vUV;
99
+ fragColor.a *= layer.opacity;
100
+ #else
101
+ geometry.uv = vTexCoord;
102
+ vec3 normal;
103
+ if (simpleMesh.flatShading) {
104
+ normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));
105
+ } else {
106
+ normal = normals_commonspace;
107
+ }
108
+ vec4 color = simpleMesh.hasTexture ? texture(sampler, vTexCoord) : vColor;
109
+ vec3 lightColor = lighting_getLightColor(color.rgb, cameraPosition, position_commonspace.xyz, normal);
110
+ fragColor = vec4(lightColor, color.a * layer.opacity);
111
+ #endif
112
+ DECKGL_FILTER_COLOR(fragColor, geometry);
113
+ }
114
+ `;function A4(e){const A=e.positions||e.POSITION,i=A.value.length/A.size;e.COLOR_0||e.colors||(e.colors={size:4,value:new Uint8Array(i*4).fill(255),normalized:!0})}const e4={pbrMaterial:{type:"object",value:null},featureIds:{type:"array",value:null,optional:!0}};class Ui extends K0{getShaders(){const A=super.getShaders();return A.modules.push(Xh,J3),{...A,vs:K3,fs:$3}}initializeState(){const{featureIds:A}=this.props;super.initializeState();const i=this.getAttributeManager();A&&i.add({featureIdsPickingColors:{type:"uint8",size:3,noAlloc:!0,update:this.calculateFeatureIdsPickingColors}})}updateState(A){super.updateState(A);const{props:i,oldProps:a}=A;i.pbrMaterial!==a.pbrMaterial&&this.updatePbrMaterialUniforms(i.pbrMaterial)}draw(A){const{featureIds:i}=this.props,{model:a}=this.state;if(!a)return;const c={pickFeatureIds:!!i},h={camera:this.context.viewport.cameraPosition};a.shaderInputs.setProps({pbrProjection:h,mesh:c}),super.draw(A)}getModel(A){const{id:i}=this.props,a=this.parseMaterial(this.props.pbrMaterial,A);this.setState({parsedPBRMaterial:a});const c=this.getShaders();return A4(A.attributes),new a2(this.context.device,{...this.getShaders(),id:i,geometry:A,bufferLayout:this.getAttributeManager().getBufferLayouts(),defines:{...c.defines,...a?.defines,HAS_UV_REGIONS:A.attributes.uvRegions?1:0},parameters:a?.parameters,isInstanced:!0})}updatePbrMaterialUniforms(A){const{model:i}=this.state;if(i){const{mesh:a}=this.props,c=this.parseMaterial(A,a);this.setState({parsedPBRMaterial:c});const{pbr_baseColorSampler:h}=c.bindings,{emptyTexture:g}=this.state,m={sampler:h||g,hasTexture:!!h},{camera:y,...v}={...c.bindings,...c.uniforms};i.shaderInputs.setProps({simpleMesh:m,pbrMaterial:v})}}parseMaterial(A,i){const a=!!(A.pbrMetallicRoughness&&A.pbrMetallicRoughness.baseColorTexture);return Jh(this.context.device,{unlit:a,...A},{NORMAL:i.attributes.normals,TEXCOORD_0:i.attributes.texCoords},{pbrDebug:!1,lights:!0,useTangents:!1})}calculateFeatureIdsPickingColors(A){const i=this.props.featureIds,a=new Uint8ClampedArray(i.length*A.size),c=[];for(let h=0;h<i.length;h++)this.encodePickingColor(i[h],c),a[h*3]=c[0],a[h*3+1]=c[1],a[h*3+2]=c[2];A.value=a}finalizeState(A){super.finalizeState(A),this.state.parsedPBRMaterial?.generatedTextures.forEach(i=>i.destroy()),this.setState({parsedPBRMaterial:null})}}Ui.layerName="MeshLayer";Ui.defaultProps=e4;const t4=6378137,r4=6378137,n4=6356752314245179e-9;function On(e){return e}new H;function i4(e,A=[],i=On){return"longitude"in e?(A[0]=i(e.longitude),A[1]=i(e.latitude),A[2]=e.height):"x"in e?(A[0]=i(e.x),A[1]=i(e.y),A[2]=e.z):(A[0]=i(e[0]),A[1]=i(e[1]),A[2]=e[2]),A}function s4(e,A=[]){return i4(e,A,pn._cartographicRadians?On:Hh)}function o4(e,A,i=On){return"longitude"in A?(A.longitude=i(e[0]),A.latitude=i(e[1]),A.height=e[2]):"x"in A?(A.x=i(e[0]),A.y=i(e[1]),A.z=e[2]):(A[0]=i(e[0]),A[1]=i(e[1]),A[2]=e[2]),A}function a4(e,A){return o4(e,A,pn._cartographicRadians?On:qh)}const ra=1e-14,l4=new H,na={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},O0={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},Tr={east:new H,north:new H,up:new H,west:new H,south:new H,down:new H},u4=new H,c4=new H,f4=new H;function ia(e,A,i,a,c,h){const g=na[A]&&na[A][i];nt(g&&(!a||a===g));let m,y,v;const _=l4.copy(c);if(St(_.x,0,ra)&&St(_.y,0,ra)){const P=Math.sign(_.z);m=u4.fromArray(O0[A]),A!=="east"&&A!=="west"&&m.scale(P),y=c4.fromArray(O0[i]),i!=="east"&&i!=="west"&&y.scale(P),v=f4.fromArray(O0[a]),a!=="east"&&a!=="west"&&v.scale(P)}else{const{up:P,east:N,north:Y}=Tr;N.set(-_.y,_.x,0).normalize(),e.geodeticSurfaceNormal(_,P),Y.copy(P).cross(N);const{down:Z,west:tA,south:R}=Tr;Z.copy(P).scale(-1),tA.copy(N).scale(-1),R.copy(Y).scale(-1),m=Tr[A],y=Tr[i],v=Tr[a]}return h[0]=m.x,h[1]=m.y,h[2]=m.z,h[3]=0,h[4]=y.x,h[5]=y.y,h[6]=y.z,h[7]=0,h[8]=v.x,h[9]=v.y,h[10]=v.z,h[11]=0,h[12]=_.x,h[13]=_.y,h[14]=_.z,h[15]=1,h}const Zt=new H,h4=new H,d4=new H;function g4(e,A,i=[]){const{oneOverRadii:a,oneOverRadiiSquared:c,centerToleranceSquared:h}=A;Zt.from(e);const g=Zt.x,m=Zt.y,y=Zt.z,v=a.x,_=a.y,S=a.z,P=g*g*v*v,N=m*m*_*_,Y=y*y*S*S,Z=P+N+Y,tA=Math.sqrt(1/Z);if(!Number.isFinite(tA))return;const R=h4;if(R.copy(e).scale(tA),Z<h)return R.to(i);const z=c.x,nA=c.y,mA=c.z,G=d4;G.set(R.x*z*2,R.y*nA*2,R.z*mA*2);let j=(1-tA)*Zt.len()/(.5*G.len()),eA=0,lA,U,k,x;do{j-=eA,lA=1/(1+j*z),U=1/(1+j*nA),k=1/(1+j*mA);const X=lA*lA,J=U*U,yA=k*k,dA=X*lA,OA=J*U,XA=yA*k;x=P*X+N*J+Y*yA-1;const UA=-2*(P*dA*z+N*OA*nA+Y*XA*mA);eA=x/UA}while(Math.abs(x)>y2);return Zt.scale([lA,U,k]).to(i)}const rn=new H,sa=new H,p4=new H,Ve=new H,m4=new H,nn=new H;class $A{constructor(A=0,i=0,a=0){this.centerToleranceSquared=w2,nt(A>=0),nt(i>=0),nt(a>=0),this.radii=new H(A,i,a),this.radiiSquared=new H(A*A,i*i,a*a),this.radiiToTheFourth=new H(A*A*A*A,i*i*i*i,a*a*a*a),this.oneOverRadii=new H(A===0?0:1/A,i===0?0:1/i,a===0?0:1/a),this.oneOverRadiiSquared=new H(A===0?0:1/(A*A),i===0?0:1/(i*i),a===0?0:1/(a*a)),this.minimumRadius=Math.min(A,i,a),this.maximumRadius=Math.max(A,i,a),this.radiiSquared.z!==0&&(this.squaredXOverSquaredZ=this.radiiSquared.x/this.radiiSquared.z),Object.freeze(this)}equals(A){return this===A||!!(A&&this.radii.equals(A.radii))}toString(){return this.radii.toString()}cartographicToCartesian(A,i=[0,0,0]){const a=sa,c=p4,[,,h]=A;this.geodeticSurfaceNormalCartographic(A,a),c.copy(this.radiiSquared).scale(a);const g=Math.sqrt(a.dot(c));return c.scale(1/g),a.scale(h),c.add(a),c.to(i)}cartesianToCartographic(A,i=[0,0,0]){nn.from(A);const a=this.scaleToGeodeticSurface(nn,Ve);if(!a)return;const c=this.geodeticSurfaceNormal(a,sa),h=m4;h.copy(nn).subtract(a);const g=Math.atan2(c.y,c.x),m=Math.asin(c.z),y=Math.sign(jh(h,nn))*Wh(h);return a4([g,m,y],i)}eastNorthUpToFixedFrame(A,i=new KA){return ia(this,"east","north","up",A,i)}localFrameToFixedFrame(A,i,a,c,h=new KA){return ia(this,A,i,a,c,h)}geocentricSurfaceNormal(A,i=[0,0,0]){return rn.from(A).normalize().to(i)}geodeticSurfaceNormalCartographic(A,i=[0,0,0]){const a=s4(A),c=a[0],h=a[1],g=Math.cos(h);return rn.set(g*Math.cos(c),g*Math.sin(c),Math.sin(h)).normalize(),rn.to(i)}geodeticSurfaceNormal(A,i=[0,0,0]){return rn.from(A).scale(this.oneOverRadiiSquared).normalize().to(i)}scaleToGeodeticSurface(A,i){return g4(A,this,i)}scaleToGeocentricSurface(A,i=[0,0,0]){Ve.from(A);const a=Ve.x,c=Ve.y,h=Ve.z,g=this.oneOverRadiiSquared,m=1/Math.sqrt(a*a*g.x+c*c*g.y+h*h*g.z);return Ve.multiplyScalar(m).to(i)}transformPositionToScaledSpace(A,i=[0,0,0]){return Ve.from(A).scale(this.oneOverRadii).to(i)}transformPositionFromScaledSpace(A,i=[0,0,0]){return Ve.from(A).scale(this.radii).to(i)}getSurfaceNormalIntersectionWithZAxis(A,i=0,a=[0,0,0]){nt(St(this.radii.x,this.radii.y,il)),nt(this.radii.z>0),Ve.from(A);const c=Ve.z*(1-this.squaredXOverSquaredZ);if(!(Math.abs(c)>=this.radii.z-i))return Ve.set(0,0,c).to(a)}}$A.WGS84=new $A(t4,r4,n4);class w4{item;previous;next;constructor(A,i,a){this.item=A,this.previous=i,this.next=a}}class y4{head=null;tail=null;_length=0;get length(){return this._length}add(A){const i=new w4(A,this.tail,null);return this.tail?(this.tail.next=i,this.tail=i):(this.head=i,this.tail=i),++this._length,i}remove(A){A&&(A.previous&&A.next?(A.previous.next=A.next,A.next.previous=A.previous):A.previous?(A.previous.next=null,this.tail=A.previous):A.next?(A.next.previous=null,this.head=A.next):(this.head=null,this.tail=null),A.next=null,A.previous=null,--this._length)}splice(A,i){A!==i&&(this.remove(i),this._insert(A,i))}_insert(A,i){const a=A.next;A.next=i,this.tail===A?this.tail=i:a.previous=i,i.next=a,i.previous=A,++this._length}}class T4{_list;_sentinel;_trimTiles;constructor(){this._list=new y4,this._sentinel=this._list.add("sentinel"),this._trimTiles=!1}reset(){this._list.splice(this._list.tail,this._sentinel)}touch(A){const i=A._cacheNode;i&&this._list.splice(this._sentinel,i)}add(A,i,a){i._cacheNode||(i._cacheNode=this._list.add(i),a&&a(A,i))}unloadTile(A,i,a){const c=i._cacheNode;c&&(this._list.remove(c),i._cacheNode=null,a&&a(A,i))}unloadTiles(A,i){const a=this._trimTiles;this._trimTiles=!1;const c=this._list,h=A.maximumMemoryUsage*1024*1024,g=this._sentinel;let m=c.head;for(;m!==g&&(A.gpuMemoryUsageInBytes>h||a);){const y=m.item;m=m.next,this.unloadTile(A,y,i)}}trim(){this._trimTiles=!0}}function v4(e,A){he(e),he(A);const{rtcCenter:i,gltfUpAxis:a}=A,{computedTransform:c,boundingVolume:{center:h}}=e;let g=new KA(c);switch(i&&g.translate(i),a){case"Z":break;case"Y":const S=new KA().rotateX(Math.PI/2);g=g.multiplyRight(S);break;case"X":const P=new KA().rotateY(-Math.PI/2);g=g.multiplyRight(P);break}A.isQuantized&&g.translate(A.quantizedVolumeOffset).scale(A.quantizedVolumeScale);const m=new H(h);A.cartesianModelMatrix=g,A.cartesianOrigin=m;const y=$A.WGS84.cartesianToCartographic(m,new H),_=$A.WGS84.eastNorthUpToFixedFrame(m).invert();A.cartographicModelMatrix=_.multiplyRight(g),A.cartographicOrigin=y,A.coordinateSystem||(A.modelMatrix=A.cartographicModelMatrix)}const oa=new H,k0=new H,hi=new xe([new ze,new ze,new ze,new ze,new ze,new ze]);function _4(e,A){const{cameraDirection:i,cameraUp:a,height:c}=e,{metersPerUnit:h}=e.distanceScales,g=dn(e,e.center),m=$A.WGS84.eastNorthUpToFixedFrame(g),y=e.unprojectPosition(e.cameraPosition),v=$A.WGS84.cartographicToCartesian(y,new H),_=new H(m.transformAsVector(new H(i).scale(h))).normalize(),S=new H(m.transformAsVector(new H(a).scale(h))).normalize();b4(e);const P=e.constructor,{longitude:N,latitude:Y,width:Z,bearing:tA,zoom:R}=e,z=new P({longitude:N,latitude:Y,height:c,width:Z,bearing:tA,zoom:R,pitch:0});return{camera:{position:v,direction:_,up:S},viewport:e,topDownViewport:z,height:c,cullingVolume:hi,frameNumber:A,sseDenominator:1.15}}function E4(e,A,i){if(i===0||e.length<=i)return[e,[]];const a=[],{longitude:c,latitude:h}=A.viewport;for(const[v,_]of e.entries()){const[S,P]=_.header.mbs,N=Math.abs(c-S),Y=Math.abs(h-P),Z=Math.sqrt(Y*Y+N*N);a.push([v,Z])}const g=a.sort((v,_)=>v[1]-_[1]),m=[];for(let v=0;v<i;v++)m.push(e[g[v][0]]);const y=[];for(let v=i;v<g.length;v++)y.push(e[g[v][0]]);return[m,y]}function b4(e){const A=e.getFrustumPlanes(),i=aa(A.near,e.cameraPosition),a=dn(e,i),c=dn(e,e.cameraPosition,k0);let h=0;hi.planes[h++].fromPointNormal(a,oa.copy(a).subtract(c));for(const g in A){if(g==="near")continue;const m=A[g],y=aa(m,i,k0),v=dn(e,y,k0);hi.planes[h++].fromPointNormal(v,oa.copy(a).subtract(v))}}function aa(e,A,i=new H){const a=e.normal.dot(A);return i.copy(e.normal).scale(e.distance-a).add(A),i}function dn(e,A,i=new H){const a=e.unprojectPosition(A);return $A.WGS84.cartographicToCartesian(a,i)}const M4=6378137,C4=6378137,di=6356752314245179e-9,Ar=new H;function S4(e,A){if(e instanceof Br){const{halfAxes:i}=e,a=B4(i);return Math.log2(di/(a+A[2]))}else if(e instanceof Ir){const{radius:i}=e;return Math.log2(di/(i+A[2]))}else if(e.width&&e.height){const{width:i,height:a}=e,c=Math.log2(M4/i),h=Math.log2(C4/a);return(c+h)/2}return 1}function _u(e,A,i){$A.WGS84.cartographicToCartesian([e.xmax,e.ymax,e.zmax],Ar);const a=Math.sqrt(Math.pow(Ar[0]-i[0],2)+Math.pow(Ar[1]-i[1],2)+Math.pow(Ar[2]-i[2],2));return Math.log2(di/(a+A[2]))}function I4(e,A,i){const[a,c,h,g]=e;return _u({xmax:h,ymax:g,zmax:0},A,i)}function B4(e){e.getColumn(0,Ar);const A=e.getColumn(1),i=e.getColumn(2);return Ar.add(A).add(i).len()}const Le={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5};var He;(function(e){e[e.ADD=1]="ADD",e[e.REPLACE=2]="REPLACE"})(He||(He={}));var it;(function(e){e.EMPTY="empty",e.SCENEGRAPH="scenegraph",e.POINTCLOUD="pointcloud",e.MESH="mesh"})(it||(it={}));var Se;(function(e){e.I3S="I3S",e.TILES3D="TILES3D"})(Se||(Se={}));var or;(function(e){e.GEOMETRIC_ERROR="geometricError",e.MAX_SCREEN_THRESHOLD="maxScreenThreshold"})(or||(or={}));const L4={USE_OPTIMIZATION:1};function Eu(e){return e!=null}const we=new H,gn=new H,P4=new H,x4=new H,bt=new H,la=new H,ua=new H,ca=new H;function F0(e,A,i){if(he(e,"3D Tile: boundingVolume must be defined"),e.box)return bu(e.box,A,i);if(e.region)return D4(e.region);if(e.sphere)return R4(e.sphere,A,i);throw new Error("3D Tile: boundingVolume must contain a sphere, region, or box")}function N4(e,A){if(e.box)return O4(A);if(e.region){const[i,a,c,h,g,m]=e.region;return[[Xe(i),Xe(a),g],[Xe(c),Xe(h),m]]}if(e.sphere)return k4(A);throw new Error("Unkown boundingVolume type")}function bu(e,A,i){const a=new H(e[0],e[1],e[2]);A.transform(a,a);let c=[];if(e.length===10){const v=e.slice(3,6),_=new wn;_.fromArray(e,6);const S=new H([1,0,0]),P=new H([0,1,0]),N=new H([0,0,1]);S.transformByQuaternion(_),S.scale(v[0]),P.transformByQuaternion(_),P.scale(v[1]),N.transformByQuaternion(_),N.scale(v[2]),c=[...S.toArray(),...P.toArray(),...N.toArray()]}else c=[...e.slice(3,6),...e.slice(6,9),...e.slice(9,12)];const h=A.transformAsVector(c.slice(0,3)),g=A.transformAsVector(c.slice(3,6)),m=A.transformAsVector(c.slice(6,9)),y=new de([h[0],h[1],h[2],g[0],g[1],g[2],m[0],m[1],m[2]]);return Eu(i)?(i.center=a,i.halfAxes=y,i):new Br(a,y)}function R4(e,A,i){const a=new H(e[0],e[1],e[2]);A.transform(a,a);const c=A.getScale(gn),h=Math.max(Math.max(c[0],c[1]),c[2]),g=e[3]*h;return Eu(i)?(i.center=a,i.radius=g,i):new Ir(a,g)}function D4(e){const[A,i,a,c,h,g]=e,m=$A.WGS84.cartographicToCartesian([Xe(A),Xe(c),h],P4),y=$A.WGS84.cartographicToCartesian([Xe(a),Xe(i),g],x4),v=new H().addVectors(m,y).multiplyByScalar(.5);return $A.WGS84.cartesianToCartographic(v,bt),$A.WGS84.cartographicToCartesian([Xe(a),bt[1],bt[2]],la),$A.WGS84.cartographicToCartesian([bt[0],Xe(c),bt[2]],ua),$A.WGS84.cartographicToCartesian([bt[0],bt[1],g],ca),bu([...v,...la.subtract(v),...ua.subtract(v),...ca.subtract(v)],new KA)}function O4(e){const A=Mu(),{halfAxes:i}=e,a=new H(i.getColumn(0)),c=new H(i.getColumn(1)),h=new H(i.getColumn(2));for(let g=0;g<2;g++){for(let m=0;m<2;m++){for(let y=0;y<2;y++)we.copy(e.center),we.add(a),we.add(c),we.add(h),Cu(A,we),h.negate();c.negate()}a.negate()}return A}function k4(e){const A=Mu(),{center:i,radius:a}=e,c=$A.WGS84.scaleToGeodeticSurface(i,we);let h;c?h=$A.WGS84.geodeticSurfaceNormal(c):h=new H(0,0,1);let g=new H(h[2],-h[1],0);g.len()>0?g.normalize():g=new H(0,1,0);const m=g.clone().cross(h);for(const y of[g,m,h]){gn.copy(y).scale(a);for(let v=0;v<2;v++)we.copy(i),we.add(gn),Cu(A,we),gn.negate()}return A}function Mu(){return[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]]}function Cu(e,A){$A.WGS84.cartesianToCartographic(A,we),e[0][0]=Math.min(e[0][0],we[0]),e[0][1]=Math.min(e[0][1],we[1]),e[0][2]=Math.min(e[0][2],we[2]),e[1][0]=Math.max(e[1][0],we[0]),e[1][1]=Math.max(e[1][1],we[1]),e[1][2]=Math.max(e[1][2],we[2])}new H;new H;new KA;new H;new H;new H;function F4(e,A){const i=e*A;return 1-Math.exp(-(i*i))}function U4(e,A){if(e.dynamicScreenSpaceError&&e.dynamicScreenSpaceErrorComputedDensity){const i=e.dynamicScreenSpaceErrorComputedDensity,a=e.dynamicScreenSpaceErrorFactor;return F4(A,i)*a}return 0}function Q4(e,A,i){const a=e.tileset,c=e.parent&&e.parent.lodMetricValue||e.lodMetricValue,h=i?c:e.lodMetricValue;if(h===0)return 0;const g=Math.max(e._distanceToCamera,1e-7),{height:m,sseDenominator:y}=A,{viewDistanceScale:v}=a.options;let _=h*m*(v||1)/(g*y);return _-=U4(a,g),_}const U0=new H,fa=new H,pt=new H,ha=new H,V4=new H,Q0=new KA,da=new KA;function z4(e,A){if(e.lodMetricValue===0||isNaN(e.lodMetricValue))return"DIG";const i=2*Su(e,A);return i<2?"OUT":!e.header.children||i<=e.lodMetricValue?"DRAW":e.header.children?"DIG":"OUT"}function Su(e,A){const{topDownViewport:i}=A,a=e.header.mbs[1],c=e.header.mbs[0],h=e.header.mbs[2],g=e.header.mbs[3],m=[...e.boundingVolume.center],y=i.unprojectPosition(i.cameraPosition);$A.WGS84.cartographicToCartesian(y,U0),fa.copy(U0).subtract(m).normalize(),$A.WGS84.eastNorthUpToFixedFrame(m,Q0),da.copy(Q0).invert(),pt.copy(U0).transform(da);const v=Math.sqrt(pt[0]*pt[0]+pt[1]*pt[1]),_=v*v/pt[2];ha.copy([pt[0],pt[1],_]);const P=ha.transform(Q0).subtract(m).normalize(),Y=fa.cross(P).normalize().scale(g).add(m),Z=$A.WGS84.cartesianToCartographic(Y),tA=i.project([c,a,h]),R=i.project(Z);return V4.copy(tA).subtract(R).magnitude()}function G4(e){return{assetGltfUpAxis:e.asset&&e.asset.gltfUpAxis||"Y"}}class ga{_map=new Map;_array;_length;constructor(A=0){this._array=new Array(A),this._length=A}get length(){return this._length}set length(A){this._length=A,A>this._array.length&&(this._array.length=A)}get values(){return this._array}get(A){return he(A<this._array.length),this._array[A]}set(A,i){he(A>=0),A>=this.length&&(this.length=A+1),this._map.has(this._array[A])&&this._map.delete(this._array[A]),this._array[A]=i,this._map.set(i,A)}delete(A){const i=this._map.get(A);i>=0&&(this._array.splice(i,1),this._map.delete(A),this.length--)}peek(){return this._array[this._length-1]}push(A){if(!this._map.has(A)){const i=this.length++;this._array[i]=A,this._map.set(A,i)}}pop(){const A=this._array[--this.length];return this._map.delete(A),A}reserve(A){he(A>=0),A>this._array.length&&(this._array.length=A)}resize(A){he(A>=0),this.length=A}trim(A){A==null&&(A=this.length),this._array.length=A}reset(){this._array=[],this._map=new Map,this._length=0}find(A){return this._map.has(A)}}const q4={loadSiblings:!1,skipLevelOfDetail:!1,updateTransforms:!0,onTraversalEnd:()=>{},viewportTraversersMap:{},basePath:""};class kn{options;root=null;selectedTiles={};requestedTiles={};emptyTiles={};lastUpdate=new Date().getTime();updateDebounceTime=1e3;_traversalStack=new ga;_emptyTraversalStack=new ga;_frameNumber=null;traversalFinished(A){return!0}constructor(A){this.options={...q4,...A}}traverse(A,i,a){this.root=A,this.options={...this.options,...a},this.reset(),this.updateTile(A,i),this._frameNumber=i.frameNumber,this.executeTraversal(A,i)}reset(){this.requestedTiles={},this.selectedTiles={},this.emptyTiles={},this._traversalStack.reset(),this._emptyTraversalStack.reset()}executeTraversal(A,i){const a=this._traversalStack;for(A._selectionDepth=1,a.push(A);a.length>0;){const h=a.pop();let g=!1;this.canTraverse(h,i)&&(this.updateChildTiles(h,i),g=this.updateAndPushChildren(h,i,a,h.hasRenderContent?h._selectionDepth+1:h._selectionDepth));const m=h.parent,y=!!(!m||m._shouldRefine),v=!g;h.hasRenderContent?h.refine===He.ADD?(this.loadTile(h,i),this.selectTile(h,i)):h.refine===He.REPLACE&&(this.loadTile(h,i),v&&this.selectTile(h,i)):(this.emptyTiles[h.id]=h,this.loadTile(h,i),v&&this.selectTile(h,i)),this.touchTile(h,i),h._shouldRefine=g&&y}const c=new Date().getTime();(this.traversalFinished(i)||c-this.lastUpdate>this.updateDebounceTime)&&(this.lastUpdate=c,this.options.onTraversalEnd(i))}updateChildTiles(A,i){const a=A.children;for(const c of a)this.updateTile(c,i)}updateAndPushChildren(A,i,a,c){const{loadSiblings:h,skipLevelOfDetail:g}=this.options,m=A.children;m.sort(this.compareDistanceToCamera.bind(this));const y=A.refine===He.REPLACE&&A.hasRenderContent&&!g;let v=!1,_=!0;for(const S of m)if(S._selectionDepth=c,S.isVisibleAndInRequestVolume?(a.find(S)&&a.delete(S),a.push(S),v=!0):(y||h)&&(this.loadTile(S,i),this.touchTile(S,i)),y){let P;if(S._inRequestVolume?S.hasRenderContent?P=S.contentAvailable:P=this.executeEmptyTraversal(S,i):P=!1,_=_&&P,!_)return!1}return v||(_=!1),_}updateTile(A,i){this.updateTileVisibility(A,i)}selectTile(A,i){this.shouldSelectTile(A)&&(A._selectedFrame=i.frameNumber,this.selectedTiles[A.id]=A)}loadTile(A,i){this.shouldLoadTile(A)&&(A._requestedFrame=i.frameNumber,A._priority=A._getPriority(),this.requestedTiles[A.id]=A)}touchTile(A,i){A.tileset._cache.touch(A),A._touchedFrame=i.frameNumber}canTraverse(A,i){return A.hasChildren?A.hasTilesetContent?!A.contentExpired:this.shouldRefine(A,i):!1}shouldLoadTile(A){return A.hasUnloadedContent||A.contentExpired}shouldSelectTile(A){return A.contentAvailable&&!this.options.skipLevelOfDetail}shouldRefine(A,i,a=!1){let c=A._screenSpaceError;return a&&(c=A.getScreenSpaceError(i,!0)),c>A.tileset.memoryAdjustedScreenSpaceError}updateTileVisibility(A,i){const a=[];if(this.options.viewportTraversersMap)for(const c in this.options.viewportTraversersMap)this.options.viewportTraversersMap[c]===i.viewport.id&&a.push(c);else a.push(i.viewport.id);A.updateVisibility(i,a)}compareDistanceToCamera(A,i){return A._distanceToCamera-i._distanceToCamera}anyChildrenVisible(A,i){let a=!1;for(const c of A.children)c.updateVisibility(i),a=a||c.isVisibleAndInRequestVolume;return a}executeEmptyTraversal(A,i){let a=!0;const c=this._emptyTraversalStack;for(c.push(A);c.length>0;){const h=c.pop(),g=!h.hasRenderContent&&this.canTraverse(h,i),m=!h.hasRenderContent&&h.children.length===0;if(!g&&!h.contentAvailable&&!m&&(a=!1),this.updateTile(h,i),h.isVisibleAndInRequestVolume||(this.loadTile(h,i),this.touchTile(h,i)),g){const y=h.children;for(const v of y)c.push(v)}}return a}}const pa=new H;function H4(e){return e!=null}class gi{tileset;header;id;url;parent;refine;type;contentUrl;lodMetricType="geometricError";lodMetricValue=0;boundingVolume=null;content=null;contentState=Le.UNLOADED;gpuMemoryUsageInBytes=0;children=[];depth=0;viewportIds=[];transform=new KA;extensions=null;implicitTiling=null;userData={};computedTransform;hasEmptyContent=!1;hasTilesetContent=!1;traverser=new kn({});_cacheNode=null;_frameNumber=null;_expireDate=null;_expiredContent=null;_boundingBox=void 0;_distanceToCamera=0;_screenSpaceError=0;_visibilityPlaneMask;_visible=void 0;_contentBoundingVolume;_viewerRequestVolume;_initialTransform=new KA;_priority=0;_selectedFrame=0;_requestedFrame=0;_selectionDepth=0;_touchedFrame=0;_centerZDepth=0;_shouldRefine=!1;_stackLength=0;_visitedFrame=0;_inRequestVolume=!1;_lodJudge=null;constructor(A,i,a,c=""){this.header=i,this.tileset=A,this.id=c||i.id,this.url=i.url,this.parent=a,this.refine=this._getRefine(i.refine),this.type=i.type,this.contentUrl=i.contentUrl,this._initializeLodMetric(i),this._initializeTransforms(i),this._initializeBoundingVolumes(i),this._initializeContent(i),this._initializeRenderingState(i),Object.seal(this)}destroy(){this.header=null}isDestroyed(){return this.header===null}get selected(){return this._selectedFrame===this.tileset._frameNumber}get isVisible(){return this._visible}get isVisibleAndInRequestVolume(){return this._visible&&this._inRequestVolume}get hasRenderContent(){return!this.hasEmptyContent&&!this.hasTilesetContent}get hasChildren(){return this.children.length>0||this.header.children&&this.header.children.length>0}get contentReady(){return this.contentState===Le.READY||this.hasEmptyContent}get contentAvailable(){return!!(this.contentReady&&this.hasRenderContent||this._expiredContent&&!this.contentFailed)}get hasUnloadedContent(){return this.hasRenderContent&&this.contentUnloaded}get contentUnloaded(){return this.contentState===Le.UNLOADED}get contentExpired(){return this.contentState===Le.EXPIRED}get contentFailed(){return this.contentState===Le.FAILED}get distanceToCamera(){return this._distanceToCamera}get screenSpaceError(){return this._screenSpaceError}get boundingBox(){return this._boundingBox||(this._boundingBox=N4(this.header.boundingVolume,this.boundingVolume)),this._boundingBox}getScreenSpaceError(A,i){switch(this.tileset.type){case Se.I3S:return Su(this,A);case Se.TILES3D:return Q4(this,A,i);default:throw new Error("Unsupported tileset type")}}unselect(){this._selectedFrame=0}_getGpuMemoryUsageInBytes(){return this.content.gpuMemoryUsageInBytes||this.content.byteLength||0}_getPriority(){const A=this.tileset._traverser,{skipLevelOfDetail:i}=A.options,a=this.refine===He.ADD||i;if(a&&!this.isVisible&&this._visible!==void 0||this.tileset._frameNumber-this._touchedFrame>=1||this.contentState===Le.UNLOADED)return-1;const c=this.parent,g=c&&(!a||this._screenSpaceError===0||c.hasTilesetContent)?c._screenSpaceError:this._screenSpaceError,m=A.root?A.root._screenSpaceError:0;return Math.max(m-g,0)}async loadContent(){if(this.hasEmptyContent)return!1;if(this.content)return!0;this.contentExpired&&(this._expireDate=null),this.contentState=Le.LOADING;const i=await this.tileset._requestScheduler.scheduleRequest(this.id,this._getPriority.bind(this));if(!i)return this.contentState=Le.UNLOADED,!1;try{const a=this.tileset.getTileUrl(this.contentUrl),c=this.tileset.loader,h={...this.tileset.loadOptions,[c.id]:{...this.tileset.loadOptions[c.id],isTileset:this.type==="json",...this._getLoaderSpecificOptions(c.id)}};return this.content=await Cr(a,c,h),this.tileset.options.contentLoader&&await this.tileset.options.contentLoader(this),this._isTileset()&&this.tileset._initializeTileHeaders(this.content,this),this.contentState=Le.READY,this._onContentLoaded(),!0}catch(a){throw this.contentState=Le.FAILED,a}finally{i.done()}}unloadContent(){return this.content&&this.content.destroy&&this.content.destroy(),this.content=null,this.header.content&&this.header.content.destroy&&this.header.content.destroy(),this.header.content=null,this.contentState=Le.UNLOADED,!0}updateVisibility(A,i){if(this._frameNumber===A.frameNumber)return;const a=this.parent,c=a?a._visibilityPlaneMask:xe.MASK_INDETERMINATE;if(this.tileset._traverser.options.updateTransforms){const h=a?a.computedTransform:this.tileset.modelMatrix;this._updateTransform(h)}this._distanceToCamera=this.distanceToTile(A),this._screenSpaceError=this.getScreenSpaceError(A,!1),this._visibilityPlaneMask=this.visibility(A,c),this._visible=this._visibilityPlaneMask!==xe.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(A),this._frameNumber=A.frameNumber,this.viewportIds=i}visibility(A,i){const{cullingVolume:a}=A,{boundingVolume:c}=this;return a.computeVisibilityWithPlaneMask(c,i)}contentVisibility(){return!0}distanceToTile(A){const i=this.boundingVolume;return Math.sqrt(Math.max(i.distanceSquaredTo(A.camera.position),0))}cameraSpaceZDepth({camera:A}){const i=this.boundingVolume;return pa.subVectors(i.center,A.position),A.direction.dot(pa)}insideViewerRequestVolume(A){const i=this._viewerRequestVolume;return!i||i.distanceSquaredTo(A.camera.position)<=0}updateExpiration(){if(H4(this._expireDate)&&this.contentReady&&!this.hasEmptyContent){const A=Date.now();Date.lessThan(this._expireDate,A)&&(this.contentState=Le.EXPIRED,this._expiredContent=this.content)}}get extras(){return this.header.extras}_initializeLodMetric(A){"lodMetricType"in A?this.lodMetricType=A.lodMetricType:(this.lodMetricType=this.parent&&this.parent.lodMetricType||this.tileset.lodMetricType,console.warn("3D Tile: Required prop lodMetricType is undefined. Using parent lodMetricType")),"lodMetricValue"in A?this.lodMetricValue=A.lodMetricValue:(this.lodMetricValue=this.parent&&this.parent.lodMetricValue||this.tileset.lodMetricValue,console.warn("3D Tile: Required prop lodMetricValue is undefined. Using parent lodMetricValue"))}_initializeTransforms(A){this.transform=A.transform?new KA(A.transform):new KA;const i=this.parent,a=this.tileset,c=i&&i.computedTransform?i.computedTransform.clone():a.modelMatrix.clone();this.computedTransform=new KA(c).multiplyRight(this.transform);const h=i&&i._initialTransform?i._initialTransform.clone():new KA;this._initialTransform=new KA(h).multiplyRight(this.transform)}_initializeBoundingVolumes(A){this._contentBoundingVolume=null,this._viewerRequestVolume=null,this._updateBoundingVolume(A)}_initializeContent(A){this.content={_tileset:this.tileset,_tile:this},this.hasEmptyContent=!0,this.contentState=Le.UNLOADED,this.hasTilesetContent=!1,A.contentUrl&&(this.content=null,this.hasEmptyContent=!1)}_initializeRenderingState(A){this.depth=A.level||(this.parent?this.parent.depth+1:0),this._shouldRefine=!1,this._distanceToCamera=0,this._centerZDepth=0,this._screenSpaceError=0,this._visibilityPlaneMask=xe.MASK_INDETERMINATE,this._visible=void 0,this._inRequestVolume=!1,this._stackLength=0,this._selectionDepth=0,this._frameNumber=0,this._touchedFrame=0,this._visitedFrame=0,this._selectedFrame=0,this._requestedFrame=0,this._priority=0}_getRefine(A){return A||this.parent&&this.parent.refine||He.REPLACE}_isTileset(){return this.contentUrl.indexOf(".json")!==-1}_onContentLoaded(){switch(this.content&&this.content.type){case"vctr":case"geom":this.tileset._traverser.disableSkipLevelOfDetail=!0;break}this._isTileset()?this.hasTilesetContent=!0:this.gpuMemoryUsageInBytes=this._getGpuMemoryUsageInBytes()}_updateBoundingVolume(A){this.boundingVolume=F0(A.boundingVolume,this.computedTransform,this.boundingVolume);const i=A.content;i&&(i.boundingVolume&&(this._contentBoundingVolume=F0(i.boundingVolume,this.computedTransform,this._contentBoundingVolume)),A.viewerRequestVolume&&(this._viewerRequestVolume=F0(A.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)))}_updateTransform(A=new KA){const i=A.clone().multiplyRight(this.transform);i.equals(this.computedTransform)||(this.computedTransform=i,this._updateBoundingVolume(this.header))}_getLoaderSpecificOptions(A){return A==="i3s"?{...this.tileset.options.i3s,_tileOptions:{attributeUrls:this.header.attributeUrls,textureUrl:this.header.textureUrl,textureFormat:this.header.textureFormat,textureLoaderOptions:this.header.textureLoaderOptions,materialDefinition:this.header.materialDefinition,isDracoGeometry:this.header.isDracoGeometry,mbs:this.header.mbs},_tilesetOptions:{store:this.tileset.tileset.store,attributeStorageInfo:this.tileset.tileset.attributeStorageInfo,fields:this.tileset.tileset.fields},isTileHeader:!1}:G4(this.tileset.tileset)}}class j4 extends kn{compareDistanceToCamera(A,i){return i._distanceToCamera===0&&A._distanceToCamera===0?i._centerZDepth-A._centerZDepth:i._distanceToCamera-A._distanceToCamera}updateTileVisibility(A,i){if(super.updateTileVisibility(A,i),!A.isVisibleAndInRequestVolume)return;const a=A.children.length>0;if(A.hasTilesetContent&&a){const g=A.children[0];this.updateTileVisibility(g,i),A._visible=g._visible;return}if(this.meetsScreenSpaceErrorEarly(A,i)){A._visible=!1;return}const c=A.refine===He.REPLACE,h=A._optimChildrenWithinParent===L4.USE_OPTIMIZATION;if(c&&h&&a&&!this.anyChildrenVisible(A,i)){A._visible=!1;return}}meetsScreenSpaceErrorEarly(A,i){const{parent:a}=A;return!a||a.hasTilesetContent||a.refine!==He.ADD?!1:!this.shouldRefine(A,i,!0)}}class W4{frameNumberMap=new Map;register(A,i){const a=this.frameNumberMap.get(A)||new Map,c=a.get(i)||0;a.set(i,c+1),this.frameNumberMap.set(A,a)}deregister(A,i){const a=this.frameNumberMap.get(A);if(!a)return;const c=a.get(i)||1;a.set(i,c-1)}isZero(A,i){return(this.frameNumberMap.get(A)?.get(i)||0)===0}}const V0={REQUESTED:"REQUESTED",COMPLETED:"COMPLETED",ERROR:"ERROR"};class Y4{_statusMap;pendingTilesRegister=new W4;constructor(){this._statusMap={}}add(A,i,a,c){if(!this._statusMap[i]){const{frameNumber:h,viewport:{id:g}}=c;this._statusMap[i]={request:A,callback:a,key:i,frameState:c,status:V0.REQUESTED},this.pendingTilesRegister.register(g,h),A().then(m=>{this._statusMap[i].status=V0.COMPLETED;const{frameNumber:y,viewport:{id:v}}=this._statusMap[i].frameState;this.pendingTilesRegister.deregister(v,y),this._statusMap[i].callback(m,c)}).catch(m=>{this._statusMap[i].status=V0.ERROR;const{frameNumber:y,viewport:{id:v}}=this._statusMap[i].frameState;this.pendingTilesRegister.deregister(v,y),a(m)})}}update(A,i){if(this._statusMap[A]){const{frameNumber:a,viewport:{id:c}}=this._statusMap[A].frameState;this.pendingTilesRegister.deregister(c,a);const{frameNumber:h,viewport:{id:g}}=i;this.pendingTilesRegister.register(g,h),this._statusMap[A].frameState=i}}find(A){return this._statusMap[A]}hasPendingTiles(A,i){return!this.pendingTilesRegister.isZero(A,i)}}class Z4 extends kn{_tileManager;constructor(A){super(A),this._tileManager=new Y4}traversalFinished(A){return!this._tileManager.hasPendingTiles(A.viewport.id,this._frameNumber||0)}shouldRefine(A,i){return A._lodJudge=z4(A,i),A._lodJudge==="DIG"}updateChildTiles(A,i){const a=A.header.children||[],c=A.children,h=A.tileset;for(const g of a){const m=`${g.id}-${i.viewport.id}`,y=c&&c.find(v=>v.id===m);if(y)y&&this.updateTile(y,i);else{let v=()=>this._loadTile(g.id,h);this._tileManager.find(m)?this._tileManager.update(m,i):(h.tileset.nodePages&&(v=()=>h.tileset.nodePagesTile.formTileFromNodePages(g.id)),this._tileManager.add(v,m,S=>this._onTileLoad(S,A,m),i))}}return!1}async _loadTile(A,i){const{loader:a}=i,c=i.getTileUrl(`${i.url}/nodes/${A}`),h={...i.loadOptions,i3s:{...i.loadOptions.i3s,isTileHeader:!0}};return await Cr(c,a,h)}_onTileLoad(A,i,a){const c=new gi(i.tileset,A,i,a);i.children.push(c);const h=this._tileManager.find(c.id).frameState;this.updateTile(c,h),this._frameNumber===h.frameNumber&&(this.traversalFinished(h)||new Date().getTime()-this.lastUpdate>this.updateDebounceTime)&&this.executeTraversal(c,h)}}const X4={description:"",ellipsoid:$A.WGS84,modelMatrix:new KA,throttleRequests:!0,maxRequests:64,maximumMemoryUsage:32,memoryCacheOverflow:1,maximumTilesSelected:0,debounceTime:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{},onTraversalComplete:e=>e,contentLoader:void 0,viewDistanceScale:1,maximumScreenSpaceError:8,memoryAdjustedScreenSpaceError:!1,loadTiles:!0,updateTransforms:!0,viewportTraversersMap:null,loadOptions:{fetch:{}},attributions:[],basePath:"",i3s:{}},sn="Tiles In Tileset(s)",z0="Tiles In Memory",ma="Tiles In View",wa="Tiles To Render",ya="Tiles Loaded",G0="Tiles Loading",Ta="Tiles Unloaded",va="Failed Tile Loads",_a="Points/Vertices",q0="Tile Memory Use",Ea="Maximum Screen Space Error";class J4{options;loadOptions;type;tileset;loader;url;basePath;modelMatrix;ellipsoid;lodMetricType;lodMetricValue;refine;root=null;roots={};asset={};description="";properties;extras=null;attributions={};credits={};stats;contentFormats={draco:!1,meshopt:!1,dds:!1,ktx2:!1};cartographicCenter=null;cartesianCenter=null;zoom=1;boundingVolume=null;dynamicScreenSpaceErrorComputedDensity=0;maximumMemoryUsage=32;gpuMemoryUsageInBytes=0;memoryAdjustedScreenSpaceError=0;_cacheBytes=0;_cacheOverflowBytes=0;_frameNumber=0;_queryParams={};_extensionsUsed=[];_tiles={};_pendingCount=0;selectedTiles=[];traverseCounter=0;geometricError=0;lastUpdatedVieports=null;_requestedTiles=[];_emptyTiles=[];frameStateData={};_traverser;_cache=new T4;_requestScheduler;updatePromise=null;tilesetInitializationPromise;constructor(A,i){this.options={...X4,...i},this.tileset=A,this.loader=A.loader,this.type=A.type,this.url=A.url,this.basePath=A.basePath||Al(this.url),this.modelMatrix=this.options.modelMatrix,this.ellipsoid=this.options.ellipsoid,this.lodMetricType=A.lodMetricType,this.lodMetricValue=A.lodMetricValue,this.refine=A.root.refine,this.loadOptions=this.options.loadOptions||{},this._traverser=this._initializeTraverser(),this._requestScheduler=new nl({throttleRequests:this.options.throttleRequests,maxRequests:this.options.maxRequests}),this.memoryAdjustedScreenSpaceError=this.options.maximumScreenSpaceError,this._cacheBytes=this.options.maximumMemoryUsage*1024*1024,this._cacheOverflowBytes=this.options.memoryCacheOverflow*1024*1024,this.stats=new el({id:this.url}),this._initializeStats(),this.tilesetInitializationPromise=this._initializeTileSet(A)}destroy(){this._destroy()}isLoaded(){return this._pendingCount===0&&this._frameNumber!==0&&this._requestedTiles.length===0}get tiles(){return Object.values(this._tiles)}get frameNumber(){return this._frameNumber}get queryParams(){return new URLSearchParams(this._queryParams).toString()}setProps(A){this.options={...this.options,...A}}getTileUrl(A){if(A.startsWith("data:"))return A;let a=A;return this.queryParams.length&&(a=`${A}${A.includes("?")?"&":"?"}${this.queryParams}`),a}hasExtension(A){return this._extensionsUsed.indexOf(A)>-1}update(A=null){this.tilesetInitializationPromise.then(()=>{!A&&this.lastUpdatedVieports?A=this.lastUpdatedVieports:this.lastUpdatedVieports=A,A&&this.doUpdate(A)})}async selectTiles(A=null){return await this.tilesetInitializationPromise,A&&(this.lastUpdatedVieports=A),this.updatePromise||(this.updatePromise=new Promise(i=>{setTimeout(()=>{this.lastUpdatedVieports&&this.doUpdate(this.lastUpdatedVieports),i(this._frameNumber),this.updatePromise=null},this.options.debounceTime)})),this.updatePromise}adjustScreenSpaceError(){this.gpuMemoryUsageInBytes<this._cacheBytes?this.memoryAdjustedScreenSpaceError=Math.max(this.memoryAdjustedScreenSpaceError/1.02,this.options.maximumScreenSpaceError):this.gpuMemoryUsageInBytes>this._cacheBytes+this._cacheOverflowBytes&&(this.memoryAdjustedScreenSpaceError*=1.02)}doUpdate(A){if("loadTiles"in this.options&&!this.options.loadTiles||this.traverseCounter>0)return;const i=A instanceof Array?A:[A];this._cache.reset(),this._frameNumber++,this.traverseCounter=i.length;const a=[];for(const c of i){const h=c.id;this._needTraverse(h)?a.push(h):this.traverseCounter--}for(const c of i){const h=c.id;if(this.roots[h]||(this.roots[h]=this._initializeTileHeaders(this.tileset,null)),!a.includes(h))continue;const g=_4(c,this._frameNumber);this._traverser.traverse(this.roots[h],g,this.options)}}_needTraverse(A){let i=A;return this.options.viewportTraversersMap&&(i=this.options.viewportTraversersMap[A]),i===A}_onTraversalEnd(A){const i=A.viewport.id;this.frameStateData[i]||(this.frameStateData[i]={selectedTiles:[],_requestedTiles:[],_emptyTiles:[]});const a=this.frameStateData[i],c=Object.values(this._traverser.selectedTiles),[h,g]=E4(c,A,this.options.maximumTilesSelected);a.selectedTiles=h;for(const m of g)m.unselect();a._requestedTiles=Object.values(this._traverser.requestedTiles),a._emptyTiles=Object.values(this._traverser.emptyTiles),this.traverseCounter--,!(this.traverseCounter>0)&&this._updateTiles()}_updateTiles(){this.selectedTiles=[],this._requestedTiles=[],this._emptyTiles=[];for(const A in this.frameStateData){const i=this.frameStateData[A];this.selectedTiles=this.selectedTiles.concat(i.selectedTiles),this._requestedTiles=this._requestedTiles.concat(i._requestedTiles),this._emptyTiles=this._emptyTiles.concat(i._emptyTiles)}this.selectedTiles=this.options.onTraversalComplete(this.selectedTiles);for(const A of this.selectedTiles)this._tiles[A.id]=A;this._loadTiles(),this._unloadTiles(),this._updateStats()}_tilesChanged(A,i){if(A.length!==i.length)return!0;const a=new Set(A.map(g=>g.id)),c=new Set(i.map(g=>g.id));let h=A.filter(g=>!c.has(g.id)).length>0;return h=h||i.filter(g=>!a.has(g.id)).length>0,h}_loadTiles(){for(const A of this._requestedTiles)A.contentUnloaded&&this._loadTile(A)}_unloadTiles(){this._cache.unloadTiles(this,(A,i)=>A._unloadTile(i))}_updateStats(){let A=0,i=0;for(const a of this.selectedTiles)a.contentAvailable&&a.content&&(A++,a.content.pointCount?i+=a.content.pointCount:i+=a.content.vertexCount);this.stats.get(ma).count=this.selectedTiles.length,this.stats.get(wa).count=A,this.stats.get(_a).count=i,this.stats.get(Ea).count=this.memoryAdjustedScreenSpaceError}async _initializeTileSet(A){this.type===Se.I3S&&(this.calculateViewPropsI3S(),A.root=await A.root),this.root=this._initializeTileHeaders(A,null),this.type===Se.TILES3D&&(this._initializeTiles3DTileset(A),this.calculateViewPropsTiles3D()),this.type===Se.I3S&&this._initializeI3STileset()}calculateViewPropsI3S(){const A=this.tileset.fullExtent;if(A){const{xmin:a,xmax:c,ymin:h,ymax:g,zmin:m,zmax:y}=A;this.cartographicCenter=new H(a+(c-a)/2,h+(g-h)/2,m+(y-m)/2),this.cartesianCenter=new H,$A.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=_u(A,this.cartographicCenter,this.cartesianCenter);return}const i=this.tileset.store?.extent;if(i){const[a,c,h,g]=i;this.cartographicCenter=new H(a+(h-a)/2,c+(g-c)/2,0),this.cartesianCenter=new H,$A.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=I4(i,this.cartographicCenter,this.cartesianCenter);return}console.warn("Extent is not defined in the tileset header"),this.cartographicCenter=new H,this.zoom=1}calculateViewPropsTiles3D(){const A=this.root,{center:i}=A.boundingVolume;if(!i){console.warn("center was not pre-calculated for the root tile"),this.cartographicCenter=new H,this.zoom=1;return}i[0]!==0||i[1]!==0||i[2]!==0?(this.cartographicCenter=new H,$A.WGS84.cartesianToCartographic(i,this.cartographicCenter)):this.cartographicCenter=new H(0,0,-$A.WGS84.radii[0]),this.cartesianCenter=i,this.zoom=S4(A.boundingVolume,this.cartographicCenter)}_initializeStats(){this.stats.get(sn),this.stats.get(G0),this.stats.get(z0),this.stats.get(ma),this.stats.get(wa),this.stats.get(ya),this.stats.get(Ta),this.stats.get(va),this.stats.get(_a),this.stats.get(q0,"memory"),this.stats.get(Ea)}_initializeTileHeaders(A,i){const a=new gi(this,A.root,i);if(i&&(i.children.push(a),a.depth=i.depth+1),this.type===Se.TILES3D){const c=[];for(c.push(a);c.length>0;){const h=c.pop();this.stats.get(sn).incrementCount();const g=h.header.children||[];for(const m of g){const y=new gi(this,m,h);if(y.contentUrl?.includes("?session=")){const _=new URL(y.contentUrl).searchParams.get("session");_&&(this._queryParams.session=_)}h.children.push(y),y.depth=h.depth+1,c.push(y)}}}return a}_initializeTraverser(){let A;switch(this.type){case Se.TILES3D:A=j4;break;case Se.I3S:A=Z4;break;default:A=kn}return new A({basePath:this.basePath,onTraversalEnd:this._onTraversalEnd.bind(this)})}_destroyTileHeaders(A){this._destroySubtree(A)}async _loadTile(A){let i;try{this._onStartTileLoading(),i=await A.loadContent()}catch(a){this._onTileLoadError(A,a instanceof Error?a:new Error("load failed"))}finally{this._onEndTileLoading(),this._onTileLoad(A,i)}}_onTileLoadError(A,i){this.stats.get(va).incrementCount();const a=i.message||i.toString(),c=A.url;console.error(`A 3D tile failed to load: ${A.url} ${a}`),this.options.onTileError(A,a,c)}_onTileLoad(A,i){if(i){if(this.type===Se.I3S){const a=this.tileset?.nodePagesTile?.nodesInNodePages||0;this.stats.get(sn).reset(),this.stats.get(sn).addCount(a)}A&&A.content&&v4(A,A.content),this.updateContentTypes(A),this._addTileToCache(A),this.options.onTileLoad(A)}}updateContentTypes(A){if(this.type===Se.I3S)switch(A.header.isDracoGeometry&&(this.contentFormats.draco=!0),A.header.textureFormat){case"dds":this.contentFormats.dds=!0;break;case"ktx2":this.contentFormats.ktx2=!0;break}else if(this.type===Se.TILES3D){const{extensionsRemoved:i=[]}=A.content?.gltf||{};i.includes("KHR_draco_mesh_compression")&&(this.contentFormats.draco=!0),i.includes("EXT_meshopt_compression")&&(this.contentFormats.meshopt=!0),i.includes("KHR_texture_basisu")&&(this.contentFormats.ktx2=!0)}}_onStartTileLoading(){this._pendingCount++,this.stats.get(G0).incrementCount()}_onEndTileLoading(){this._pendingCount--,this.stats.get(G0).decrementCount()}_addTileToCache(A){this._cache.add(this,A,i=>i._updateCacheStats(A))}_updateCacheStats(A){this.stats.get(ya).incrementCount(),this.stats.get(z0).incrementCount(),this.gpuMemoryUsageInBytes+=A.gpuMemoryUsageInBytes||0,this.stats.get(q0).count=this.gpuMemoryUsageInBytes,this.options.memoryAdjustedScreenSpaceError&&this.adjustScreenSpaceError()}_unloadTile(A){this.gpuMemoryUsageInBytes-=A.gpuMemoryUsageInBytes||0,this.stats.get(z0).decrementCount(),this.stats.get(Ta).incrementCount(),this.stats.get(q0).count=this.gpuMemoryUsageInBytes,this.options.onTileUnload(A),A.unloadContent()}_destroy(){const A=[];for(this.root&&A.push(this.root);A.length>0;){const i=A.pop();for(const a of i.children)A.push(a);this._destroyTile(i)}this.root=null}_destroySubtree(A){const i=A,a=[];for(a.push(i);a.length>0;){A=a.pop();for(const c of A.children)a.push(c);A!==i&&this._destroyTile(A)}i.children=[]}_destroyTile(A){this._cache.unloadTile(this,A),this._unloadTile(A),A.destroy()}_initializeTiles3DTileset(A){if(A.queryString){const i=new URLSearchParams(A.queryString),a=Object.fromEntries(i.entries());this._queryParams={...this._queryParams,...a}}if(this.asset=A.asset,!this.asset)throw new Error("Tileset must have an asset property.");if(this.asset.version!=="0.0"&&this.asset.version!=="1.0"&&this.asset.version!=="1.1")throw new Error("The tileset must be 3D Tiles version either 0.0 or 1.0 or 1.1.");"tilesetVersion"in this.asset&&(this._queryParams.v=this.asset.tilesetVersion),this.credits={attributions:this.options.attributions||[]},this.description=this.options.description||"",this.properties=A.properties,this.geometricError=A.geometricError,this._extensionsUsed=A.extensionsUsed||[],this.extras=A.extras}_initializeI3STileset(){this.loadOptions.i3s&&"token"in this.loadOptions.i3s&&(this._queryParams.token=this.loadOptions.i3s.token)}}const Iu="4.3.3",vr={COMPOSITE:"cmpt",POINT_CLOUD:"pnts",BATCHED_3D_MODEL:"b3dm",INSTANCED_3D_MODEL:"i3dm",GLTF:"glTF"};function Bu(e,A,i){he(e instanceof ArrayBuffer);const a=new TextDecoder("utf8"),c=new Uint8Array(e,A,i);return a.decode(c)}function K4(e,A=0){const i=new DataView(e);return`${String.fromCharCode(i.getUint8(A+0))}${String.fromCharCode(i.getUint8(A+1))}${String.fromCharCode(i.getUint8(A+2))}${String.fromCharCode(i.getUint8(A+3))}`}const $4={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},se={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DOUBLE:5130},VA={...$4,...se},H0={[se.DOUBLE]:Float64Array,[se.FLOAT]:Float32Array,[se.UNSIGNED_SHORT]:Uint16Array,[se.UNSIGNED_INT]:Uint32Array,[se.UNSIGNED_BYTE]:Uint8Array,[se.BYTE]:Int8Array,[se.SHORT]:Int16Array,[se.INT]:Int32Array},Aw={DOUBLE:se.DOUBLE,FLOAT:se.FLOAT,UNSIGNED_SHORT:se.UNSIGNED_SHORT,UNSIGNED_INT:se.UNSIGNED_INT,UNSIGNED_BYTE:se.UNSIGNED_BYTE,BYTE:se.BYTE,SHORT:se.SHORT,INT:se.INT},j0="Failed to convert GL type";class Ke{static fromTypedArray(A){A=ArrayBuffer.isView(A)?A.constructor:A;for(const i in H0)if(H0[i]===A)return i;throw new Error(j0)}static fromName(A){const i=Aw[A];if(!i)throw new Error(j0);return i}static getArrayType(A){switch(A){case se.UNSIGNED_SHORT_5_6_5:case se.UNSIGNED_SHORT_4_4_4_4:case se.UNSIGNED_SHORT_5_5_5_1:return Uint16Array;default:const i=H0[A];if(!i)throw new Error(j0);return i}}static getByteSize(A){return Ke.getArrayType(A).BYTES_PER_ELEMENT}static validate(A){return!!Ke.getArrayType(A)}static createTypedArray(A,i,a=0,c){c===void 0&&(c=(i.byteLength-a)/Ke.getByteSize(A));const h=Ke.getArrayType(A);return new h(i,a,c)}}function ew(e,A){if(!e)throw new Error(`math.gl assertion failed. ${A}`)}function tw(e,A=[0,0,0]){const i=e>>11&31,a=e>>5&63,c=e&31;return A[0]=i<<3,A[1]=a<<2,A[2]=c<<3,A}new bi;new H;new bi;new bi;function ba(e,A=255){return Yh(e,0,A)/A*2-1}function Ma(e){return e<0?-1:1}function rw(e,A,i,a){if(ew(a),e<0||e>i||A<0||A>i)throw new Error(`x and y must be unsigned normalized integers between 0 and ${i}`);if(a.x=ba(e,i),a.y=ba(A,i),a.z=1-(Math.abs(a.x)+Math.abs(a.y)),a.z<0){const c=a.x;a.x=(1-Math.abs(a.y))*Ma(c),a.y=(1-Math.abs(c))*Ma(a.y)}return a.normalize()}function nw(e,A,i){return rw(e,A,255,i)}class Qi{json;buffer;featuresLength=0;_cachedTypedArrays={};constructor(A,i){this.json=A,this.buffer=i}getExtension(A){return this.json.extensions&&this.json.extensions[A]}hasProperty(A){return!!this.json[A]}getGlobalProperty(A,i=VA.UNSIGNED_INT,a=1){const c=this.json[A];return c&&Number.isFinite(c.byteOffset)?this._getTypedArrayFromBinary(A,i,a,1,c.byteOffset):c}getPropertyArray(A,i,a){const c=this.json[A];return c&&Number.isFinite(c.byteOffset)?("componentType"in c&&(i=Ke.fromName(c.componentType)),this._getTypedArrayFromBinary(A,i,a,this.featuresLength,c.byteOffset)):this._getTypedArrayFromArray(A,i,c)}getProperty(A,i,a,c,h){const g=this.json[A];if(!g)return g;const m=this.getPropertyArray(A,i,a);if(a===1)return m[c];for(let y=0;y<a;++y)h[y]=m[a*c+y];return h}_getTypedArrayFromBinary(A,i,a,c,h){const g=this._cachedTypedArrays;let m=g[A];return m||(m=Ke.createTypedArray(i,this.buffer.buffer,this.buffer.byteOffset+h,c*a),g[A]=m),m}_getTypedArrayFromArray(A,i,a){const c=this._cachedTypedArrays;let h=c[A];return h||(h=Ke.createTypedArray(i,a),c[A]=h),h}}const iw={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},sw={SCALAR:(e,A)=>e[A],VEC2:(e,A)=>[e[2*A+0],e[2*A+1]],VEC3:(e,A)=>[e[3*A+0],e[3*A+1],e[3*A+2]],VEC4:(e,A)=>[e[4*A+0],e[4*A+1],e[4*A+2],e[4*A+3]],MAT2:(e,A)=>[e[4*A+0],e[4*A+1],e[4*A+2],e[4*A+3]],MAT3:(e,A)=>[e[9*A+0],e[9*A+1],e[9*A+2],e[9*A+3],e[9*A+4],e[9*A+5],e[9*A+6],e[9*A+7],e[9*A+8]],MAT4:(e,A)=>[e[16*A+0],e[16*A+1],e[16*A+2],e[16*A+3],e[16*A+4],e[16*A+5],e[16*A+6],e[16*A+7],e[16*A+8],e[16*A+9],e[16*A+10],e[16*A+11],e[16*A+12],e[16*A+13],e[16*A+14],e[16*A+15]]},ow={SCALAR:(e,A,i)=>{A[i]=e},VEC2:(e,A,i)=>{A[2*i+0]=e[0],A[2*i+1]=e[1]},VEC3:(e,A,i)=>{A[3*i+0]=e[0],A[3*i+1]=e[1],A[3*i+2]=e[2]},VEC4:(e,A,i)=>{A[4*i+0]=e[0],A[4*i+1]=e[1],A[4*i+2]=e[2],A[4*i+3]=e[3]},MAT2:(e,A,i)=>{A[4*i+0]=e[0],A[4*i+1]=e[1],A[4*i+2]=e[2],A[4*i+3]=e[3]},MAT3:(e,A,i)=>{A[9*i+0]=e[0],A[9*i+1]=e[1],A[9*i+2]=e[2],A[9*i+3]=e[3],A[9*i+4]=e[4],A[9*i+5]=e[5],A[9*i+6]=e[6],A[9*i+7]=e[7],A[9*i+8]=e[8],A[9*i+9]=e[9]},MAT4:(e,A,i)=>{A[16*i+0]=e[0],A[16*i+1]=e[1],A[16*i+2]=e[2],A[16*i+3]=e[3],A[16*i+4]=e[4],A[16*i+5]=e[5],A[16*i+6]=e[6],A[16*i+7]=e[7],A[16*i+8]=e[8],A[16*i+9]=e[9],A[16*i+10]=e[10],A[16*i+11]=e[11],A[16*i+12]=e[12],A[16*i+13]=e[13],A[16*i+14]=e[14],A[16*i+15]=e[15]}};function aw(e,A,i,a){const{componentType:c}=e;he(e.componentType);const h=typeof c=="string"?Ke.fromName(c):c,g=iw[e.type],m=sw[e.type],y=ow[e.type];return i+=e.byteOffset,{values:Ke.createTypedArray(h,A,i,g*a),type:h,size:g,unpacker:m,packer:y}}const Je=e=>e!==void 0;function lw(e,A,i){if(!A)return null;let a=e.getExtension("3DTILES_batch_table_hierarchy");const c=A.HIERARCHY;return c&&(console.warn("3D Tile Parser: HIERARCHY is deprecated. Use 3DTILES_batch_table_hierarchy."),A.extensions=A.extensions||{},A.extensions["3DTILES_batch_table_hierarchy"]=c,a=c),a?uw(a,i):null}function uw(e,A){let i,a,c;const h=e.instancesLength,g=e.classes;let m=e.classIds,y=e.parentCounts,v=e.parentIds,_=h;Je(m.byteOffset)&&(m.componentType=defaultValue(m.componentType,GL.UNSIGNED_SHORT),m.type=AttributeType.SCALAR,c=getBinaryAccessor(m),m=c.createArrayBufferView(A.buffer,A.byteOffset+m.byteOffset,h));let S;if(Je(y))for(Je(y.byteOffset)&&(y.componentType=defaultValue(y.componentType,GL.UNSIGNED_SHORT),y.type=AttributeType.SCALAR,c=getBinaryAccessor(y),y=c.createArrayBufferView(A.buffer,A.byteOffset+y.byteOffset,h)),S=new Uint16Array(h),_=0,i=0;i<h;++i)S[i]=_,_+=y[i];Je(v)&&Je(v.byteOffset)&&(v.componentType=defaultValue(v.componentType,GL.UNSIGNED_SHORT),v.type=AttributeType.SCALAR,c=getBinaryAccessor(v),v=c.createArrayBufferView(A.buffer,A.byteOffset+v.byteOffset,_));const P=g.length;for(i=0;i<P;++i){const tA=g[i].length,R=g[i].instances,z=getBinaryProperties(tA,R,A);g[i].instances=combine(z,R)}const N=new Array(P).fill(0),Y=new Uint16Array(h);for(i=0;i<h;++i)a=m[i],Y[i]=N[a],++N[a];const Z={classes:g,classIds:m,classIndexes:Y,parentCounts:y,parentIndexes:S,parentIds:v};return hw(Z),Z}function _r(e,A,i){if(!e)return;const a=e.parentCounts;return e.parentIds?i(e,A):a>0?cw(e,A,i):fw(e,A,i)}function cw(e,A,i){const a=e.classIds,c=e.parentCounts,h=e.parentIds,g=e.parentIndexes,m=a.length,y=scratchVisited;y.length=Math.max(y.length,m);const v=++marker,_=scratchStack;for(_.length=0,_.push(A);_.length>0;){if(A=_.pop(),y[A]===v)continue;y[A]=v;const S=i(e,A);if(Je(S))return S;const P=c[A],N=g[A];for(let Y=0;Y<P;++Y){const Z=h[N+Y];Z!==A&&_.push(Z)}}return null}function fw(e,A,i){let a=!0;for(;a;){const c=i(e,A);if(Je(c))return c;const h=e.parentIds[A];a=h!==A,A=h}throw new Error("traverseHierarchySingleParent")}function hw(e){const i=e.classIds.length;for(let a=0;a<i;++a)Lu(e,a,stack)}function Lu(e,A,i){const a=e.parentCounts,c=e.parentIds,h=e.parentIndexes,m=e.classIds.length;if(!Je(c))return;assert(A<m,`Parent index ${A} exceeds the total number of instances: ${m}`),assert(i.indexOf(A)===-1,"Circular dependency detected in the batch table hierarchy."),i.push(A);const y=Je(a)?a[A]:1,v=Je(a)?h[A]:A;for(let _=0;_<y;++_){const S=c[v+_];S!==A&&Lu(e,S,i)}i.pop(A)}function Ce(e){return e!=null}const on=(e,A)=>e,dw={HIERARCHY:!0,extensions:!0,extras:!0};class Pu{json;binary;featureCount;_extensions;_properties;_binaryProperties;_hierarchy;constructor(A,i,a,c={}){he(a>=0),this.json=A||{},this.binary=i,this.featureCount=a,this._extensions=this.json?.extensions||{},this._properties={};for(const h in this.json)dw[h]||(this._properties[h]=this.json[h]);this._binaryProperties=this._initializeBinaryProperties(),c["3DTILES_batch_table_hierarchy"]&&(this._hierarchy=lw(this,this.json,this.binary))}getExtension(A){return this.json&&this.json.extensions&&this.json.extensions[A]}memorySizeInBytes(){return 0}isClass(A,i){if(this._checkBatchId(A),he(typeof i=="string",i),this._hierarchy){const a=_r(this._hierarchy,A,(c,h)=>{const g=c.classIds[h];return c.classes[g].name===i});return Ce(a)}return!1}isExactClass(A,i){return he(typeof i=="string",i),this.getExactClassName(A)===i}getExactClassName(A){if(this._checkBatchId(A),this._hierarchy){const i=this._hierarchy.classIds[A];return this._hierarchy.classes[i].name}}hasProperty(A,i){return this._checkBatchId(A),he(typeof i=="string",i),Ce(this._properties[i])||this._hasPropertyInHierarchy(A,i)}getPropertyNames(A,i){this._checkBatchId(A),i=Ce(i)?i:[],i.length=0;const a=Object.keys(this._properties);return i.push(...a),this._hierarchy&&this._getPropertyNamesInHierarchy(A,i),i}getProperty(A,i){if(this._checkBatchId(A),he(typeof i=="string",i),this._binaryProperties){const c=this._binaryProperties[i];if(Ce(c))return this._getBinaryProperty(c,A)}const a=this._properties[i];if(Ce(a))return on(a[A]);if(this._hierarchy){const c=this._getHierarchyProperty(A,i);if(Ce(c))return c}}setProperty(A,i,a){const c=this.featureCount;if(this._checkBatchId(A),he(typeof i=="string",i),this._binaryProperties){const g=this._binaryProperties[i];if(g){this._setBinaryProperty(g,A,a);return}}if(this._hierarchy&&this._setHierarchyProperty(this,A,i,a))return;let h=this._properties[i];Ce(h)||(this._properties[i]=new Array(c),h=this._properties[i]),h[A]=on(a)}_checkBatchId(A){if(!(A>=0&&A<this.featureCount))throw new Error("batchId not in range [0, featureCount - 1].")}_getBinaryProperty(A,i){return A.unpack(A.typedArray,i)}_setBinaryProperty(A,i,a){A.pack(a,A.typedArray,i)}_initializeBinaryProperties(){let A=null;for(const i in this._properties){const a=this._properties[i],c=this._initializeBinaryProperty(i,a);c&&(A=A||{},A[i]=c)}return A}_initializeBinaryProperty(A,i){if("byteOffset"in i){const a=i;he(this.binary,`Property ${A} requires a batch table binary.`),he(a.type,`Property ${A} requires a type.`);const c=aw(a,this.binary.buffer,this.binary.byteOffset|0,this.featureCount);return{typedArray:c.values,componentCount:c.size,unpack:c.unpacker,pack:c.packer}}return null}_hasPropertyInHierarchy(A,i){if(!this._hierarchy)return!1;const a=_r(this._hierarchy,A,(c,h)=>{const g=c.classIds[h],m=c.classes[g].instances;return Ce(m[i])});return Ce(a)}_getPropertyNamesInHierarchy(A,i){_r(this._hierarchy,A,(a,c)=>{const h=a.classIds[c],g=a.classes[h].instances;for(const m in g)g.hasOwnProperty(m)&&i.indexOf(m)===-1&&i.push(m)})}_getHierarchyProperty(A,i){return _r(this._hierarchy,A,(a,c)=>{const h=a.classIds[c],g=a.classes[h],m=a.classIndexes[c],y=g.instances[i];return Ce(y)?Ce(y.typedArray)?this._getBinaryProperty(y,m):on(y[m]):null})}_setHierarchyProperty(A,i,a,c){const h=_r(this._hierarchy,i,(g,m)=>{const y=g.classIds[m],v=g.classes[y],_=g.classIndexes[m],S=v.instances[a];return Ce(S)?(he(m===i,`Inherited property "${a}" is read-only.`),Ce(S.typedArray)?this._setBinaryProperty(S,_,c):S[_]=on(c),!0):!1});return Ce(h)}}const W0=4;function Fn(e,A,i=0){const a=new DataView(A);if(e.magic=a.getUint32(i,!0),i+=W0,e.version=a.getUint32(i,!0),i+=W0,e.byteLength=a.getUint32(i,!0),i+=W0,e.version!==1)throw new Error(`3D Tile Version ${e.version} not supported`);return i}const Xt=4,Ca="b3dm tile in legacy format.";function Vi(e,A,i){const a=new DataView(A);let c;e.header=e.header||{};let h=a.getUint32(i,!0);i+=Xt;let g=a.getUint32(i,!0);i+=Xt;let m=a.getUint32(i,!0);i+=Xt;let y=a.getUint32(i,!0);return i+=Xt,m>=570425344?(i-=Xt*2,c=h,m=g,y=0,h=0,g=0,console.warn(Ca)):y>=570425344&&(i-=Xt,c=m,m=h,y=g,h=0,g=0,console.warn(Ca)),e.header.featureTableJsonByteLength=h,e.header.featureTableBinaryByteLength=g,e.header.batchTableJsonByteLength=m,e.header.batchTableBinaryByteLength=y,e.header.batchLength=c,i}function zi(e,A,i,a){return i=gw(e,A,i),i=pw(e,A,i),i}function gw(e,A,i,a){const{featureTableJsonByteLength:c,featureTableBinaryByteLength:h,batchLength:g}=e.header||{};if(e.featureTableJson={BATCH_LENGTH:g||0},c&&c>0){const m=Bu(A,i,c);e.featureTableJson=JSON.parse(m)}return i+=c||0,e.featureTableBinary=new Uint8Array(A,i,h),i+=h||0,i}function pw(e,A,i,a){const{batchTableJsonByteLength:c,batchTableBinaryByteLength:h}=e.header||{};if(c&&c>0){const g=Bu(A,i,c);e.batchTableJson=JSON.parse(g),i+=c,h&&h>0&&(e.batchTableBinary=new Uint8Array(A,i,h),e.batchTableBinary=new Uint8Array(e.batchTableBinary),i+=h)}return i}function xu(e,A,i){if(!A&&(!e||!e.batchIds||!i))return null;const{batchIds:a,isRGB565:c,pointCount:h=0}=e;if(a&&i){const g=new Uint8ClampedArray(h*3);for(let m=0;m<h;m++){const y=a[m],_=i.getProperty(y,"dimensions").map(S=>S*255);g[m*3]=_[0],g[m*3+1]=_[1],g[m*3+2]=_[2]}return{type:VA.UNSIGNED_BYTE,value:g,size:3,normalized:!0}}if(A&&c){const g=new Uint8ClampedArray(h*3);for(let m=0;m<h;m++){const y=tw(A[m]);g[m*3]=y[0],g[m*3+1]=y[1],g[m*3+2]=y[2]}return{type:VA.UNSIGNED_BYTE,value:g,size:3,normalized:!0}}return A&&A.length===h*3?{type:VA.UNSIGNED_BYTE,value:A,size:3,normalized:!0}:{type:VA.UNSIGNED_BYTE,value:A||new Uint8ClampedArray,size:4,normalized:!0}}const Sa=new H;function mw(e,A){if(!A)return null;if(e.isOctEncoded16P){const i=new Float32Array((e.pointsLength||0)*3);for(let a=0;a<(e.pointsLength||0);a++)nw(A[a*2],A[a*2+1],Sa),Sa.toArray(i,a*3);return{type:VA.FLOAT,size:2,value:i}}return{type:VA.FLOAT,size:2,value:A}}function ww(e,A,i){return e.isQuantized?i["3d-tiles"]&&i["3d-tiles"].decodeQuantizedPositions?(e.isQuantized=!1,yw(e,A)):{type:VA.UNSIGNED_SHORT,value:A,size:3,normalized:!0}:A}function yw(e,A){const i=new H,a=new Float32Array(e.pointCount*3);for(let c=0;c<e.pointCount;c++)i.set(A[c*3],A[c*3+1],A[c*3+2]).scale(1/e.quantizedRange).multiply(e.quantizedVolumeScale).add(e.quantizedVolumeOffset).toArray(a,c*3);return a}async function Tw(e,A,i,a,c){i=Fn(e,A,i),i=Vi(e,A,i),i=zi(e,A,i),vw(e);const{featureTable:h,batchTable:g}=_w(e);return await Sw(e,h,g,a,c),Ew(e,h,a),bw(e,h,g),Mw(e,h),i}function vw(e){e.attributes={positions:null,colors:null,normals:null,batchIds:null},e.isQuantized=!1,e.isTranslucent=!1,e.isRGB565=!1,e.isOctEncoded16P=!1}function _w(e){const A=new Qi(e.featureTableJson,e.featureTableBinary),i=A.getGlobalProperty("POINTS_LENGTH");if(!Number.isFinite(i))throw new Error("POINTS_LENGTH must be defined");A.featuresLength=i,e.featuresLength=i,e.pointsLength=i,e.pointCount=i,e.rtcCenter=A.getGlobalProperty("RTC_CENTER",VA.FLOAT,3);const a=Cw(e,A);return{featureTable:A,batchTable:a}}function Ew(e,A,i){if(e.attributes=e.attributes||{positions:null,colors:null,normals:null,batchIds:null},!e.attributes.positions){if(A.hasProperty("POSITION"))e.attributes.positions=A.getPropertyArray("POSITION",VA.FLOAT,3);else if(A.hasProperty("POSITION_QUANTIZED")){const a=A.getPropertyArray("POSITION_QUANTIZED",VA.UNSIGNED_SHORT,3);if(e.isQuantized=!0,e.quantizedRange=65535,e.quantizedVolumeScale=A.getGlobalProperty("QUANTIZED_VOLUME_SCALE",VA.FLOAT,3),!e.quantizedVolumeScale)throw new Error("QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");if(e.quantizedVolumeOffset=A.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",VA.FLOAT,3),!e.quantizedVolumeOffset)throw new Error("QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");e.attributes.positions=ww(e,a,i)}}if(!e.attributes.positions)throw new Error("Either POSITION or POSITION_QUANTIZED must be defined.")}function bw(e,A,i){if(e.attributes=e.attributes||{positions:null,colors:null,normals:null,batchIds:null},!e.attributes.colors){let a=null;A.hasProperty("RGBA")?(a=A.getPropertyArray("RGBA",VA.UNSIGNED_BYTE,4),e.isTranslucent=!0):A.hasProperty("RGB")?a=A.getPropertyArray("RGB",VA.UNSIGNED_BYTE,3):A.hasProperty("RGB565")&&(a=A.getPropertyArray("RGB565",VA.UNSIGNED_SHORT,1),e.isRGB565=!0),e.attributes.colors=xu(e,a,i)}A.hasProperty("CONSTANT_RGBA")&&(e.constantRGBA=A.getGlobalProperty("CONSTANT_RGBA",VA.UNSIGNED_BYTE,4))}function Mw(e,A){if(e.attributes=e.attributes||{positions:null,colors:null,normals:null,batchIds:null},!e.attributes.normals){let i=null;A.hasProperty("NORMAL")?i=A.getPropertyArray("NORMAL",VA.FLOAT,3):A.hasProperty("NORMAL_OCT16P")&&(i=A.getPropertyArray("NORMAL_OCT16P",VA.UNSIGNED_BYTE,2),e.isOctEncoded16P=!0),e.attributes.normals=mw(e,i)}}function Cw(e,A){let i=null;if(!e.batchIds&&A.hasProperty("BATCH_ID")&&(e.batchIds=A.getPropertyArray("BATCH_ID",VA.UNSIGNED_SHORT,1),e.batchIds)){const a=A.getGlobalProperty("BATCH_LENGTH");if(!a)throw new Error("Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.");const{batchTableJson:c,batchTableBinary:h}=e;i=new Pu(c,h,a)}return i}async function Sw(e,A,i,a,c){let h,g,m;const y=e.batchTableJson&&e.batchTableJson.extensions&&e.batchTableJson.extensions["3DTILES_draco_point_compression"];y&&(m=y.properties);const v=A.getExtension("3DTILES_draco_point_compression");if(v){g=v.properties;const S=v.byteOffset,P=v.byteLength;if(!g||!Number.isFinite(S)||!P)throw new Error("Draco properties, byteOffset, and byteLength must be defined");h=(e.featureTableBinary||[]).slice(S,S+P),e.hasPositions=Number.isFinite(g.POSITION),e.hasColors=Number.isFinite(g.RGB)||Number.isFinite(g.RGBA),e.hasNormals=Number.isFinite(g.NORMAL),e.hasBatchIds=Number.isFinite(g.BATCH_ID),e.isTranslucent=Number.isFinite(g.RGBA)}if(!h)return!0;const _={buffer:h,properties:{...g,...m},batchTableProperties:m};return await Iw(e,_,a,c)}async function Iw(e,A,i,a){if(!a)return;const c={...i,draco:{...i?.draco,extraAttributes:A.batchTableProperties||{}}};delete c["3d-tiles"];const h=await _i(A.buffer,Kh,c,a),g=h.attributes.POSITION&&h.attributes.POSITION.value,m=h.attributes.COLOR_0&&h.attributes.COLOR_0.value,y=h.attributes.NORMAL&&h.attributes.NORMAL.value,v=h.attributes.BATCH_ID&&h.attributes.BATCH_ID.value,_=g&&h.attributes.POSITION.value.quantization,S=y&&h.attributes.NORMAL.value.quantization;if(_){const N=h.POSITION.data.quantization,Y=N.range;e.quantizedVolumeScale=new H(Y,Y,Y),e.quantizedVolumeOffset=new H(N.minValues),e.quantizedRange=(1<<N.quantizationBits)-1,e.isQuantizedDraco=!0}S&&(e.octEncodedRange=(1<<h.NORMAL.data.quantization.quantizationBits)-1,e.isOctEncodedDraco=!0);const P={};if(A.batchTableProperties)for(const N of Object.keys(A.batchTableProperties))h.attributes[N]&&h.attributes[N].value&&(P[N.toLowerCase()]=h.attributes[N].value);e.attributes={positions:g,colors:xu(e,m,void 0),normals:y,batchIds:v,...P}}const pi={URI:0,EMBEDDED:1};function Nu(e,A,i,a){e.rotateYtoZ=!0;const c=(e.byteOffset||0)+(e.byteLength||0)-i;if(c===0)throw new Error("glTF byte length must be greater than 0.");return e.gltfUpAxis=a?.["3d-tiles"]&&a["3d-tiles"].assetGltfUpAxis?a["3d-tiles"].assetGltfUpAxis:"Y",e.gltfArrayBuffer=r2(A,i,c),e.gltfByteOffset=0,e.gltfByteLength=c,i%4===0||console.warn(`${e.type}: embedded glb is not aligned to a 4-byte boundary.`),(e.byteOffset||0)+(e.byteLength||0)}async function Ru(e,A,i,a){const c=i?.["3d-tiles"]||{};if(Bw(e,A),c.loadGLTF){if(!a)return;if(e.gltfUrl){const{fetch:h}=a,g=await h(e.gltfUrl,i);e.gltfArrayBuffer=await g.arrayBuffer(),e.gltfByteOffset=0}if(e.gltfArrayBuffer){const h=await _i(e.gltfArrayBuffer,Ja,i,a);e.gltf=Ka(h),e.gpuMemoryUsageInBytes=$a(e.gltf),delete e.gltfArrayBuffer,delete e.gltfByteOffset,delete e.gltfByteLength}}}function Bw(e,A,i){switch(A){case pi.URI:if(e.gltfArrayBuffer){const a=new Uint8Array(e.gltfArrayBuffer,e.gltfByteOffset),h=new TextDecoder().decode(a);e.gltfUrl=h.replace(/[\s\0]+$/,"")}delete e.gltfArrayBuffer,delete e.gltfByteOffset,delete e.gltfByteLength;break;case pi.EMBEDDED:break;default:throw new Error("b3dm: Illegal glTF format field")}}async function Lw(e,A,i,a,c){i=Pw(e,A,i,a),await Ru(e,pi.EMBEDDED,a,c);const h=e?.gltf?.extensions;return h&&h.CESIUM_RTC&&(e.rtcCenter=h.CESIUM_RTC.center),i}function Pw(e,A,i,a,c){i=Fn(e,A,i),i=Vi(e,A,i),i=zi(e,A,i),i=Nu(e,A,i,a);const h=new Qi(e.featureTableJson,e.featureTableBinary);return e.rtcCenter=h.getGlobalProperty("RTC_CENTER",VA.FLOAT,3),i}async function xw(e,A,i,a,c){return i=Nw(e,A,i,a),await Ru(e,e.gltfFormat||0,a,c),i}function Nw(e,A,i,a,c){if(i=Fn(e,A,i),e.version!==1)throw new Error(`Instanced 3D Model version ${e.version} is not supported`);i=Vi(e,A,i);const h=new DataView(A);if(e.gltfFormat=h.getUint32(i,!0),i+=4,i=zi(e,A,i),i=Nu(e,A,i,a),!e?.header?.featureTableJsonByteLength||e.header.featureTableJsonByteLength===0)throw new Error("i3dm parser: featureTableJsonByteLength is zero.");const g=new Qi(e.featureTableJson,e.featureTableBinary),m=g.getGlobalProperty("INSTANCES_LENGTH");if(g.featuresLength=m,!Number.isFinite(m))throw new Error("i3dm parser: INSTANCES_LENGTH must be defined");e.eastNorthUp=g.getGlobalProperty("EAST_NORTH_UP"),e.rtcCenter=g.getGlobalProperty("RTC_CENTER",VA.FLOAT,3);const y=new Pu(e.batchTableJson,e.batchTableBinary,m);return Rw(e,g,y,m),i}function Rw(e,A,i,a){const c=new Array(a),h=new H;new H,new H,new H;const g=new de,m=new wn,y=new H,v={},_=new KA,S=[],P=[],N=[],Y=[];for(let Z=0;Z<a;Z++){let tA;if(A.hasProperty("POSITION"))tA=A.getProperty("POSITION",VA.FLOAT,3,Z,h);else if(A.hasProperty("POSITION_QUANTIZED")){tA=A.getProperty("POSITION_QUANTIZED",VA.UNSIGNED_SHORT,3,Z,h);const j=A.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",VA.FLOAT,3);if(!j)throw new Error("i3dm parser: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");const eA=A.getGlobalProperty("QUANTIZED_VOLUME_SCALE",VA.FLOAT,3);if(!eA)throw new Error("i3dm parser: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");const lA=65535;for(let U=0;U<3;U++)tA[U]=tA[U]/lA*eA[U]+j[U]}if(!tA)throw new Error("i3dm: POSITION or POSITION_QUANTIZED must be defined for each instance.");if(h.copy(tA),v.translation=h,e.normalUp=A.getProperty("NORMAL_UP",VA.FLOAT,3,Z,S),e.normalRight=A.getProperty("NORMAL_RIGHT",VA.FLOAT,3,Z,P),e.normalUp){if(!e.normalRight)throw new Error("i3dm: Custom orientation requires both NORMAL_UP and NORMAL_RIGHT.");e.hasCustomOrientation=!0}else{if(e.octNormalUp=A.getProperty("NORMAL_UP_OCT32P",VA.UNSIGNED_SHORT,2,Z,S),e.octNormalRight=A.getProperty("NORMAL_RIGHT_OCT32P",VA.UNSIGNED_SHORT,2,Z,P),e.octNormalUp)throw e.octNormalRight?new Error("i3dm: oct-encoded orientation not implemented"):new Error("i3dm: oct-encoded orientation requires NORMAL_UP_OCT32P and NORMAL_RIGHT_OCT32P");e.eastNorthUp?($A.WGS84.eastNorthUpToFixedFrame(h,_),_.getRotationMatrix3(g)):g.identity()}m.fromMatrix3(g),v.rotation=m,y.set(1,1,1);const R=A.getProperty("SCALE",VA.FLOAT,1,Z,N);Number.isFinite(R)&&y.multiplyByScalar(R);const z=A.getProperty("SCALE_NON_UNIFORM",VA.FLOAT,3,Z,S);z&&y.scale(z),v.scale=y;let nA=A.getProperty("BATCH_ID",VA.UNSIGNED_SHORT,1,Z,Y);nA===void 0&&(nA=Z);const mA=new KA().fromQuaternion(v.rotation);_.identity(),_.translate(v.translation),_.multiplyRight(mA),_.scale(v.scale);const G=_.clone();c[Z]={modelMatrix:G,batchId:nA}}e.instances=c}async function Dw(e,A,i,a,c,h){i=Fn(e,A,i);const g=new DataView(A);for(e.tilesLength=g.getUint32(i,!0),i+=4,e.tiles=[];e.tiles.length<e.tilesLength&&(e.byteLength||0)-i>12;){const m={shape:"tile3d"};e.tiles.push(m),i=await h(A,i,a,c,m)}return i}async function Ow(e,A,i,a){if(e.rotateYtoZ=!0,e.gltfUpAxis=i?.["3d-tiles"]?.assetGltfUpAxis?i["3d-tiles"].assetGltfUpAxis:"Y",i?.["3d-tiles"]?.loadGLTF){if(!a)return A.byteLength;const c=await _i(A,Ja,i,a);e.gltf=Ka(c),e.gpuMemoryUsageInBytes=$a(e.gltf)}else e.gltfArrayBuffer=A;return A.byteLength}async function Du(e,A=0,i,a,c={shape:"tile3d"}){switch(c.byteOffset=A,c.type=K4(e,A),c.type){case vr.COMPOSITE:return await Dw(c,e,A,i,a,Du);case vr.BATCHED_3D_MODEL:return await Lw(c,e,A,i,a);case vr.GLTF:return await Ow(c,e,i,a);case vr.INSTANCED_3D_MODEL:return await xw(c,e,A,i,a);case vr.POINT_CLOUD:return await Tw(c,e,A,i,a);default:throw new Error(`3DTileLoader: unknown type ${c.type}`)}}const kw=1952609651,Fw=1;async function Uw(e,A,i){if(new Uint32Array(e.slice(0,4))[0]!==kw)throw new Error("Wrong subtree file magic number");if(new Uint32Array(e.slice(4,8))[0]!==Fw)throw new Error("Wrong subtree file verson, must be 1");const h=Ia(e.slice(8,16)),g=new Uint8Array(e,24,h),y=new TextDecoder("utf8").decode(g),v=JSON.parse(y),_=Ia(e.slice(16,24));let S=new ArrayBuffer(0);if(_&&(S=e.slice(24+h)),await an(v,v.tileAvailability,S,i),Array.isArray(v.contentAvailability))for(const P of v.contentAvailability)await an(v,P,S,i);else await an(v,v.contentAvailability,S,i);return await an(v,v.childSubtreeAvailability,S,i),v}async function an(e,A,i,a){const c=Number.isFinite(A.bitstream)?A.bitstream:A.bufferView;if(typeof c!="number")return;const h=e.bufferViews[c],g=e.buffers[h.buffer];if(!a?.baseUrl)throw new Error("Url is not provided");if(!a.fetch)throw new Error("fetch is not provided");if(g.uri){const y=`${a?.baseUrl||""}/${g.uri}`,_=await(await a.fetch(y)).arrayBuffer();A.explicitBitstream=new Uint8Array(_,h.byteOffset,h.byteLength);return}const m=e.buffers.slice(0,h.buffer).reduce((y,v)=>y+v.byteLength,0);A.explicitBitstream=new Uint8Array(i.slice(m,m+g.byteLength),h.byteOffset,h.byteLength)}function Ia(e){const A=new DataView(e),i=A.getUint32(0,!0),a=A.getUint32(4,!0);return i+2**32*a}const Ou={dataType:null,batchType:null,id:"3d-tiles-subtree",name:"3D Tiles Subtree",module:"3d-tiles",version:Iu,extensions:["subtree"],mimeTypes:["application/octet-stream"],tests:["subtree"],parse:Uw,options:{}};var Fe=null;try{Fe=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function HA(e,A,i){this.low=e|0,this.high=A|0,this.unsigned=!!i}HA.prototype.__isLong__;Object.defineProperty(HA.prototype,"__isLong__",{value:!0});function ye(e){return(e&&e.__isLong__)===!0}function Ba(e){var A=Math.clz32(e&-e);return e?31-A:A}HA.isLong=ye;var La={},Pa={};function Rt(e,A){var i,a,c;return A?(e>>>=0,(c=0<=e&&e<256)&&(a=Pa[e],a)?a:(i=zA(e,0,!0),c&&(Pa[e]=i),i)):(e|=0,(c=-128<=e&&e<128)&&(a=La[e],a)?a:(i=zA(e,e<0?-1:0,!1),c&&(La[e]=i),i))}HA.fromInt=Rt;function Ue(e,A){if(isNaN(e))return A?st:Ge;if(A){if(e<0)return st;if(e>=ku)return Qu}else{if(e<=-Na)return Ie;if(e+1>=Na)return Uu}return e<0?Ue(-e,A).neg():zA(e%ar|0,e/ar|0,A)}HA.fromNumber=Ue;function zA(e,A,i){return new HA(e,A,i)}HA.fromBits=zA;var Cn=Math.pow;function Gi(e,A,i){if(e.length===0)throw Error("empty string");if(typeof A=="number"?(i=A,A=!1):A=!!A,e==="NaN"||e==="Infinity"||e==="+Infinity"||e==="-Infinity")return A?st:Ge;if(i=i||10,i<2||36<i)throw RangeError("radix");var a;if((a=e.indexOf("-"))>0)throw Error("interior hyphen");if(a===0)return Gi(e.substring(1),A,i).neg();for(var c=Ue(Cn(i,8)),h=Ge,g=0;g<e.length;g+=8){var m=Math.min(8,e.length-g),y=parseInt(e.substring(g,g+m),i);if(m<8){var v=Ue(Cn(i,m));h=h.mul(v).add(Ue(y))}else h=h.mul(c),h=h.add(Ue(y))}return h.unsigned=A,h}HA.fromString=Gi;function Qe(e,A){return typeof e=="number"?Ue(e,A):typeof e=="string"?Gi(e,A):zA(e.low,e.high,typeof A=="boolean"?A:e.unsigned)}HA.fromValue=Qe;var xa=65536,Qw=1<<24,ar=xa*xa,ku=ar*ar,Na=ku/2,Ra=Rt(Qw),Ge=Rt(0);HA.ZERO=Ge;var st=Rt(0,!0);HA.UZERO=st;var er=Rt(1);HA.ONE=er;var Fu=Rt(1,!0);HA.UONE=Fu;var mi=Rt(-1);HA.NEG_ONE=mi;var Uu=zA(-1,2147483647,!1);HA.MAX_VALUE=Uu;var Qu=zA(-1,-1,!0);HA.MAX_UNSIGNED_VALUE=Qu;var Ie=zA(0,-2147483648,!1);HA.MIN_VALUE=Ie;var aA=HA.prototype;aA.toInt=function(){return this.unsigned?this.low>>>0:this.low};aA.toNumber=function(){return this.unsigned?(this.high>>>0)*ar+(this.low>>>0):this.high*ar+(this.low>>>0)};aA.toString=function(A){if(A=A||10,A<2||36<A)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(Ie)){var i=Ue(A),a=this.div(i),c=a.mul(i).sub(this);return a.toString(A)+c.toInt().toString(A)}else return"-"+this.neg().toString(A);for(var h=Ue(Cn(A,6),this.unsigned),g=this,m="";;){var y=g.div(h),v=g.sub(y.mul(h)).toInt()>>>0,_=v.toString(A);if(g=y,g.isZero())return _+m;for(;_.length<6;)_="0"+_;m=""+_+m}};aA.getHighBits=function(){return this.high};aA.getHighBitsUnsigned=function(){return this.high>>>0};aA.getLowBits=function(){return this.low};aA.getLowBitsUnsigned=function(){return this.low>>>0};aA.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Ie)?64:this.neg().getNumBitsAbs();for(var A=this.high!=0?this.high:this.low,i=31;i>0&&(A&1<<i)==0;i--);return this.high!=0?i+33:i+1};aA.isSafeInteger=function(){var A=this.high>>21;return A?this.unsigned?!1:A===-1&&!(this.low===0&&this.high===-2097152):!0};aA.isZero=function(){return this.high===0&&this.low===0};aA.eqz=aA.isZero;aA.isNegative=function(){return!this.unsigned&&this.high<0};aA.isPositive=function(){return this.unsigned||this.high>=0};aA.isOdd=function(){return(this.low&1)===1};aA.isEven=function(){return(this.low&1)===0};aA.equals=function(A){return ye(A)||(A=Qe(A)),this.unsigned!==A.unsigned&&this.high>>>31===1&&A.high>>>31===1?!1:this.high===A.high&&this.low===A.low};aA.eq=aA.equals;aA.notEquals=function(A){return!this.eq(A)};aA.neq=aA.notEquals;aA.ne=aA.notEquals;aA.lessThan=function(A){return this.comp(A)<0};aA.lt=aA.lessThan;aA.lessThanOrEqual=function(A){return this.comp(A)<=0};aA.lte=aA.lessThanOrEqual;aA.le=aA.lessThanOrEqual;aA.greaterThan=function(A){return this.comp(A)>0};aA.gt=aA.greaterThan;aA.greaterThanOrEqual=function(A){return this.comp(A)>=0};aA.gte=aA.greaterThanOrEqual;aA.ge=aA.greaterThanOrEqual;aA.compare=function(A){if(ye(A)||(A=Qe(A)),this.eq(A))return 0;var i=this.isNegative(),a=A.isNegative();return i&&!a?-1:!i&&a?1:this.unsigned?A.high>>>0>this.high>>>0||A.high===this.high&&A.low>>>0>this.low>>>0?-1:1:this.sub(A).isNegative()?-1:1};aA.comp=aA.compare;aA.negate=function(){return!this.unsigned&&this.eq(Ie)?Ie:this.not().add(er)};aA.neg=aA.negate;aA.add=function(A){ye(A)||(A=Qe(A));var i=this.high>>>16,a=this.high&65535,c=this.low>>>16,h=this.low&65535,g=A.high>>>16,m=A.high&65535,y=A.low>>>16,v=A.low&65535,_=0,S=0,P=0,N=0;return N+=h+v,P+=N>>>16,N&=65535,P+=c+y,S+=P>>>16,P&=65535,S+=a+m,_+=S>>>16,S&=65535,_+=i+g,_&=65535,zA(P<<16|N,_<<16|S,this.unsigned)};aA.subtract=function(A){return ye(A)||(A=Qe(A)),this.add(A.neg())};aA.sub=aA.subtract;aA.multiply=function(A){if(this.isZero())return this;if(ye(A)||(A=Qe(A)),Fe){var i=Fe.mul(this.low,this.high,A.low,A.high);return zA(i,Fe.get_high(),this.unsigned)}if(A.isZero())return this.unsigned?st:Ge;if(this.eq(Ie))return A.isOdd()?Ie:Ge;if(A.eq(Ie))return this.isOdd()?Ie:Ge;if(this.isNegative())return A.isNegative()?this.neg().mul(A.neg()):this.neg().mul(A).neg();if(A.isNegative())return this.mul(A.neg()).neg();if(this.lt(Ra)&&A.lt(Ra))return Ue(this.toNumber()*A.toNumber(),this.unsigned);var a=this.high>>>16,c=this.high&65535,h=this.low>>>16,g=this.low&65535,m=A.high>>>16,y=A.high&65535,v=A.low>>>16,_=A.low&65535,S=0,P=0,N=0,Y=0;return Y+=g*_,N+=Y>>>16,Y&=65535,N+=h*_,P+=N>>>16,N&=65535,N+=g*v,P+=N>>>16,N&=65535,P+=c*_,S+=P>>>16,P&=65535,P+=h*v,S+=P>>>16,P&=65535,P+=g*y,S+=P>>>16,P&=65535,S+=a*_+c*v+h*y+g*m,S&=65535,zA(N<<16|Y,S<<16|P,this.unsigned)};aA.mul=aA.multiply;aA.divide=function(A){if(ye(A)||(A=Qe(A)),A.isZero())throw Error("division by zero");if(Fe){if(!this.unsigned&&this.high===-2147483648&&A.low===-1&&A.high===-1)return this;var i=(this.unsigned?Fe.div_u:Fe.div_s)(this.low,this.high,A.low,A.high);return zA(i,Fe.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?st:Ge;var a,c,h;if(this.unsigned){if(A.unsigned||(A=A.toUnsigned()),A.gt(this))return st;if(A.gt(this.shru(1)))return Fu;h=st}else{if(this.eq(Ie)){if(A.eq(er)||A.eq(mi))return Ie;if(A.eq(Ie))return er;var g=this.shr(1);return a=g.div(A).shl(1),a.eq(Ge)?A.isNegative()?er:mi:(c=this.sub(A.mul(a)),h=a.add(c.div(A)),h)}else if(A.eq(Ie))return this.unsigned?st:Ge;if(this.isNegative())return A.isNegative()?this.neg().div(A.neg()):this.neg().div(A).neg();if(A.isNegative())return this.div(A.neg()).neg();h=Ge}for(c=this;c.gte(A);){a=Math.max(1,Math.floor(c.toNumber()/A.toNumber()));for(var m=Math.ceil(Math.log(a)/Math.LN2),y=m<=48?1:Cn(2,m-48),v=Ue(a),_=v.mul(A);_.isNegative()||_.gt(c);)a-=y,v=Ue(a,this.unsigned),_=v.mul(A);v.isZero()&&(v=er),h=h.add(v),c=c.sub(_)}return h};aA.div=aA.divide;aA.modulo=function(A){if(ye(A)||(A=Qe(A)),Fe){var i=(this.unsigned?Fe.rem_u:Fe.rem_s)(this.low,this.high,A.low,A.high);return zA(i,Fe.get_high(),this.unsigned)}return this.sub(this.div(A).mul(A))};aA.mod=aA.modulo;aA.rem=aA.modulo;aA.not=function(){return zA(~this.low,~this.high,this.unsigned)};aA.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32};aA.clz=aA.countLeadingZeros;aA.countTrailingZeros=function(){return this.low?Ba(this.low):Ba(this.high)+32};aA.ctz=aA.countTrailingZeros;aA.and=function(A){return ye(A)||(A=Qe(A)),zA(this.low&A.low,this.high&A.high,this.unsigned)};aA.or=function(A){return ye(A)||(A=Qe(A)),zA(this.low|A.low,this.high|A.high,this.unsigned)};aA.xor=function(A){return ye(A)||(A=Qe(A)),zA(this.low^A.low,this.high^A.high,this.unsigned)};aA.shiftLeft=function(A){return ye(A)&&(A=A.toInt()),(A&=63)===0?this:A<32?zA(this.low<<A,this.high<<A|this.low>>>32-A,this.unsigned):zA(0,this.low<<A-32,this.unsigned)};aA.shl=aA.shiftLeft;aA.shiftRight=function(A){return ye(A)&&(A=A.toInt()),(A&=63)===0?this:A<32?zA(this.low>>>A|this.high<<32-A,this.high>>A,this.unsigned):zA(this.high>>A-32,this.high>=0?0:-1,this.unsigned)};aA.shr=aA.shiftRight;aA.shiftRightUnsigned=function(A){return ye(A)&&(A=A.toInt()),(A&=63)===0?this:A<32?zA(this.low>>>A|this.high<<32-A,this.high>>>A,this.unsigned):A===32?zA(this.high,0,this.unsigned):zA(this.high>>>A-32,0,this.unsigned)};aA.shru=aA.shiftRightUnsigned;aA.shr_u=aA.shiftRightUnsigned;aA.rotateLeft=function(A){var i;return ye(A)&&(A=A.toInt()),(A&=63)===0?this:A===32?zA(this.high,this.low,this.unsigned):A<32?(i=32-A,zA(this.low<<A|this.high>>>i,this.high<<A|this.low>>>i,this.unsigned)):(A-=32,i=32-A,zA(this.high<<A|this.low>>>i,this.low<<A|this.high>>>i,this.unsigned))};aA.rotl=aA.rotateLeft;aA.rotateRight=function(A){var i;return ye(A)&&(A=A.toInt()),(A&=63)===0?this:A===32?zA(this.high,this.low,this.unsigned):A<32?(i=32-A,zA(this.high<<i|this.low>>>A,this.low<<i|this.high>>>A,this.unsigned)):(A-=32,i=32-A,zA(this.low<<i|this.high>>>A,this.high<<i|this.low>>>A,this.unsigned))};aA.rotr=aA.rotateRight;aA.toSigned=function(){return this.unsigned?zA(this.low,this.high,!1):this};aA.toUnsigned=function(){return this.unsigned?this:zA(this.low,this.high,!0)};aA.toBytes=function(A){return A?this.toBytesLE():this.toBytesBE()};aA.toBytesLE=function(){var A=this.high,i=this.low;return[i&255,i>>>8&255,i>>>16&255,i>>>24,A&255,A>>>8&255,A>>>16&255,A>>>24]};aA.toBytesBE=function(){var A=this.high,i=this.low;return[A>>>24,A>>>16&255,A>>>8&255,A&255,i>>>24,i>>>16&255,i>>>8&255,i&255]};HA.fromBytes=function(A,i,a){return a?HA.fromBytesLE(A,i):HA.fromBytesBE(A,i)};HA.fromBytesLE=function(A,i){return new HA(A[0]|A[1]<<8|A[2]<<16|A[3]<<24,A[4]|A[5]<<8|A[6]<<16|A[7]<<24,i)};HA.fromBytesBE=function(A,i){return new HA(A[4]<<24|A[5]<<16|A[6]<<8|A[7],A[0]<<24|A[1]<<16|A[2]<<8|A[3],i)};typeof BigInt=="function"&&(HA.fromBigInt=function(A,i){var a=Number(BigInt.asIntN(32,A)),c=Number(BigInt.asIntN(32,A>>BigInt(32)));return zA(a,c,i)},HA.fromValue=function(A,i){return typeof A=="bigint"?HA.fromBigInt(A,i):Qe(A,i)},aA.toBigInt=function(){var A=BigInt(this.low>>>0),i=BigInt(this.unsigned?this.high>>>0:this.high);return i<<BigInt(32)|A});const Vw=16;function Vu(e){e==="X"&&(e="");const A=e.padEnd(Vw,"0");return HA.fromString(A,!0,16)}function zw(e){if(e.isZero())return"X";let A=e.countTrailingZeros();const i=A%4;A=(A-i)/4;const a=A;A*=4;const h=e.shiftRightUnsigned(A).toString(16).replace(/0+$/,"");return Array(17-a-h.length).join("0")+h}function Gw(e,A){const i=qw(e).shiftRightUnsigned(2);return e.add(HA.fromNumber(2*A+1-4).multiply(i))}function qw(e){return e.and(e.not().add(1))}const Hw=3,jw=30,Ww=2*jw+1,Da=180/Math.PI;function Yw(e){if(e.length===0)throw new Error(`Invalid Hilbert quad key ${e}`);const A=e.split("/"),i=parseInt(A[0],10),a=A[1],c=a.length;let h=0;const g=[0,0];for(let m=c-1;m>=0;m--){h=c-m;const y=a[m];let v=0,_=0;y==="1"?_=1:y==="2"?(v=1,_=1):y==="3"&&(v=1);const S=Math.pow(2,h-1);Xw(S,g,v,_),g[0]+=S*v,g[1]+=S*_}if(i%2===1){const m=g[0];g[0]=g[1],g[1]=m}return{face:i,ij:g,level:h}}function Zw(e){if(e.isZero())return"";let A=e.toString(2);for(;A.length<Hw+Ww;)A="0"+A;const i=A.lastIndexOf("1"),a=A.substring(0,3),c=A.substring(3,i),h=c.length/2,g=HA.fromString(a,!0,2).toString(10);let m="";if(h!==0)for(m=HA.fromString(c,!0,2).toString(4);m.length<h;)m="0"+m;return`${g}/${m}`}function zu(e,A,i){const a=1<<A;return[(e[0]+i[0])/a,(e[1]+i[1])/a]}function Oa(e){return e>=.5?1/3*(4*e*e-1):1/3*(1-4*(1-e)*(1-e))}function Gu(e){return[Oa(e[0]),Oa(e[1])]}function qu(e,[A,i]){switch(e){case 0:return[1,A,i];case 1:return[-A,1,i];case 2:return[-A,-i,1];case 3:return[-1,-i,-A];case 4:return[i,-1,-A];case 5:return[i,A,-1];default:throw new Error("Invalid face")}}function Hu([e,A,i]){const a=Math.atan2(i,Math.sqrt(e*e+A*A));return[Math.atan2(A,e)*Da,a*Da]}function Xw(e,A,i,a){if(a===0){i===1&&(A[0]=e-1-A[0],A[1]=e-1-A[1]);const c=A[0];A[0]=A[1],A[1]=c}}function Jw(e){const A=zu(e.ij,e.level,[.5,.5]),i=Gu(A),a=qu(e.face,i);return Hu(a)}const Kw=100;function ka(e){const{face:A,ij:i,level:a}=e,c=[[0,0],[0,1],[1,1],[1,0],[0,0]],h=Math.max(1,Math.ceil(Kw*Math.pow(2,-a))),g=new Float64Array(4*h*2+2);let m=0,y=0;for(let v=0;v<4;v++){const _=c[v].slice(0),S=c[v+1],P=(S[0]-_[0])/h,N=(S[1]-_[1])/h;for(let Y=0;Y<h;Y++){_[0]+=P,_[1]+=N;const Z=zu(i,a,_),tA=Gu(Z),R=qu(A,tA),z=Hu(R);Math.abs(z[1])>89.999&&(z[0]=y);const nA=z[0]-y;z[0]+=nA>180?-360:nA<-180?360:0,g[m++]=z[0],g[m++]=z[1],y=z[0]}}return g[m++]=g[0],g[m++]=g[1],g}function qi(e){const A=$w(e);return Yw(A)}function $w(e){if(e.indexOf("/")>0)return e;const A=Vu(e);return Zw(A)}function Ay(e){const A=qi(e);return Jw(A)}function ey(e){let A;if(e.face===2||e.face===5){let i=null,a=0;for(let c=0;c<4;c++){const h=`${e.face}/${c}`,g=qi(h),m=ka(g);(typeof i>"u"||i===null)&&(i=new Float64Array(4*m.length)),i.set(m,a),a+=m.length}A=Fa(i)}else{const i=ka(e);A=Fa(i)}return A}function Fa(e){if(e.length%2!==0)throw new Error("Invalid corners");const A=[],i=[];for(let a=0;a<e.length;a+=2)A.push(e[a]),i.push(e[a+1]);return A.sort((a,c)=>a-c),i.sort((a,c)=>a-c),{west:A[0],east:A[A.length-1],north:i[i.length-1],south:i[0]}}function ty(e,A){const i=A?.minimumHeight||0,a=A?.maximumHeight||0,c=qi(e),h=ey(c),g=h.west,m=h.south,y=h.east,v=h.north,_=[];return _.push(new H(g,v,i)),_.push(new H(y,v,i)),_.push(new H(y,m,i)),_.push(new H(g,m,i)),_.push(new H(g,v,a)),_.push(new H(y,v,a)),_.push(new H(y,m,a)),_.push(new H(g,m,a)),_}function ju(e){const A=e.token,i={minimumHeight:e.minimumHeight,maximumHeight:e.maximumHeight},a=ty(A,i),c=Ay(A),h=c[0],g=c[1],m=$A.WGS84.cartographicToCartesian([h,g,i.maximumHeight]),y=new H(m[0],m[1],m[2]);a.push(y);const v=pu(a);return[...v.center,...v.halfAxes]}const ry=4,ny=8,iy={QUADTREE:ry,OCTREE:ny};function sy(e,A,i){if(e?.box){const a=Vu(e.s2VolumeInfo.token),c=Gw(a,A),h=zw(c),g={...e.s2VolumeInfo};if(g.token=h,i==="OCTREE"){const v=e.s2VolumeInfo,_=v.maximumHeight-v.minimumHeight,S=_/2,P=v.minimumHeight+_/2;v.minimumHeight=P-S,v.maximumHeight=P+S}return{box:ju(g),s2VolumeInfo:g}}}async function Wu(e){const{subtree:A,subtreeData:i={level:0,x:0,y:0,z:0},parentData:a={mortonIndex:0,localLevel:-1,localX:0,localY:0,localZ:0},childIndex:c=0,implicitOptions:h,loaderOptions:g,s2VolumeBox:m}=e,{subdivisionScheme:y,subtreeLevels:v,maximumLevel:_,contentUrlTemplate:S,subtreesUriTemplate:P,basePath:N}=h,Y={children:[],lodMetricValue:0,contentUrl:""};if(!_)return rl.once(`Missing 'maximumLevel' or 'availableLevels' property. The subtree ${S} won't be loaded...`),Y;const Z=a.localLevel+1,tA=i.level+Z;if(tA>_)return Y;const R=iy[y],z=Math.log2(R),nA=c&1,mA=c>>1&1,G=c>>2&1,j=Mt(a.localX,nA,1),eA=Mt(a.localY,mA,1),lA=Mt(a.localZ,G,1),U=Mt(i.x,j,Z),k=Mt(i.y,eA,Z),x=Mt(i.z,lA,Z),X=Mt(a.mortonIndex,c,z),J=Z===v&&Y0(A.childSubtreeAvailability,X);let yA,dA,OA,XA;if(J){const QA=`${N}/${P}`,jA=wi(QA,tA,U,k,x);yA=await Cr(jA,Ou,g),XA=0,dA={level:tA,x:U,y:k,z:x},OA={mortonIndex:0,localLevel:0,localX:0,localY:0,localZ:0}}else yA=A,XA=(R**Z-1)/(R-1)+X,dA=i,OA={mortonIndex:X,localLevel:Z,localX:j,localY:eA,localZ:lA};if(!Y0(yA.tileAvailability,XA))return Y;Y0(yA.contentAvailability,XA)&&(Y.contentUrl=wi(S,tA,U,k,x));for(let QA=0;QA<R;QA++){const jA=sy(m,QA,y),te=await Wu({subtree:yA,subtreeData:dA,parentData:OA,childIndex:QA,implicitOptions:h,loaderOptions:g,s2VolumeBox:jA});(te.contentUrl||te.children.length)&&Y.children.push(te)}return Y.contentUrl||Y.children.length?oy(Y,{level:tA,x:U,y:k,z:x},h,m):Y}function Y0(e,A){let i;return Array.isArray(e)?(i=e[0],e.length>1&&rl.once('Not supported extension "3DTILES_multiple_contents" has been detected')):i=e,"constant"in i?!!i.constant:i.explicitBitstream?uy(A,i.explicitBitstream):!1}function oy(e,A,i,a){const{basePath:c,refine:h,getRefine:g,lodMetricType:m,getTileType:y,rootLodMetricValue:v,rootBoundingVolume:_}=i,S=e.contentUrl&&e.contentUrl.replace(`${c}/`,""),P=v/2**A.level,N=a?.box?{box:a.box}:_,Y=ay(N,A,i.subdivisionScheme);return{children:e.children,contentUrl:e.contentUrl,content:{uri:S},id:e.contentUrl,refine:g(h),type:y(e),lodMetricType:m,lodMetricValue:P,geometricError:P,transform:e.transform,boundingVolume:Y}}function ay(e,A,i){if(e.region){const{level:a,x:c,y:h,z:g}=A,[m,y,v,_,S,P]=e.region,N=2**a,Y=(v-m)/N,[Z,tA]=[m+Y*c,m+Y*(c+1)],R=(_-y)/N,[z,nA]=[y+R*h,y+R*(h+1)];let mA,G;if(i==="OCTREE"){const j=(P-S)/N;[mA,G]=[S+j*g,S+j*(g+1)]}else[mA,G]=[S,P];return{region:[Z,z,tA,nA,mA,G]}}if(e.box)return e;throw new Error(`Unsupported bounding volume type ${JSON.stringify(e)}`)}function Mt(e,A,i){return(e<<i)+A}function wi(e,A,i,a,c){const h=ly({level:A,x:i,y:a,z:c});return e.replace(/{level}|{x}|{y}|{z}/gi,g=>h[g])}function ly(e){const A={};for(const i in e)A[`{${i}}`]=e[i];return A}function uy(e,A){const i=Math.floor(e/8),a=e%8;return(A[i]>>a&1)===1}function Hi(e,A=""){if(!A)return it.EMPTY;const a=A.split("?")[0].split(".").pop();switch(a){case"pnts":return it.POINTCLOUD;case"i3dm":case"b3dm":case"glb":case"gltf":return it.SCENEGRAPH;default:return a||it.EMPTY}}function ji(e){switch(e){case"REPLACE":case"replace":return He.REPLACE;case"ADD":case"add":return He.ADD;default:return e}}function yi(e,A){if(/^[a-z][0-9a-z+.-]*:/i.test(A)){const a=new URL(e,`${A}/`);return decodeURI(a.toString())}else if(e.startsWith("/"))return e;return n2(A,e)}function Ua(e,A){if(!e)return null;let i;if(e.content){const c=e.content.uri||e.content?.url;typeof c<"u"&&(i=yi(c,A))}return{...e,id:i,contentUrl:i,lodMetricType:or.GEOMETRIC_ERROR,lodMetricValue:e.geometricError,transformMatrix:e.transform,type:Hi(e,i),refine:ji(e.refine)}}async function cy(e,A,i){let a=null;const c=Va(e.root);c&&e.root?a=await Qa(e.root,e,A,c,i):a=Ua(e.root,A);const h=[];for(h.push(a);h.length>0;){const g=h.pop()||{},m=g.children||[],y=[];for(const v of m){const _=Va(v);let S;_?S=await Qa(v,e,A,_,i):S=Ua(v,A),S&&(y.push(S),h.push(S))}g.children=y}return a}async function Qa(e,A,i,a,c){const{subdivisionScheme:h,maximumLevel:g,availableLevels:m,subtreeLevels:y,subtrees:{uri:v}}=a,_=wi(v,0,0,0,0),S=yi(_,i),P=await Cr(S,Ou,c),N=e.content?.uri,Y=N?yi(N,i):"",Z=A?.root?.refine,tA=e.geometricError,R=e.boundingVolume.extensions?.["3DTILES_bounding_volume_S2"];if(R){const G={box:ju(R),s2VolumeInfo:R};e.boundingVolume=G}const z=e.boundingVolume,nA={contentUrlTemplate:Y,subtreesUriTemplate:v,subdivisionScheme:h,subtreeLevels:y,maximumLevel:Number.isFinite(m)?m-1:g,refine:Z,basePath:i,lodMetricType:or.GEOMETRIC_ERROR,rootLodMetricValue:tA,rootBoundingVolume:z,getTileType:Hi,getRefine:ji};return await fy(e,i,P,nA,c)}async function fy(e,A,i,a,c){if(!e)return null;const{children:h,contentUrl:g}=await Wu({subtree:i,implicitOptions:a,loaderOptions:c});let m,y=null;return g&&(m=g,y={uri:g.replace(`${A}/`,"")}),{...e,id:m,contentUrl:m,lodMetricType:or.GEOMETRIC_ERROR,lodMetricValue:e.geometricError,transformMatrix:e.transform,type:Hi(e,m),refine:ji(e.refine),content:y||e.content,children:h}}function Va(e){return e?.extensions?.["3DTILES_implicit_tiling"]||e?.implicitTiling}const Yu={dataType:null,batchType:null,id:"3d-tiles",name:"3D Tiles",module:"3d-tiles",version:Iu,extensions:["cmpt","pnts","b3dm","i3dm"],mimeTypes:["application/octet-stream"],tests:["cmpt","pnts","b3dm","i3dm"],parse:hy,options:{"3d-tiles":{loadGLTF:!0,decodeQuantizedPositions:!1,isTileset:"auto",assetGltfUpAxis:null}}};async function hy(e,A={},i){const a=A["3d-tiles"]||{};let c;return a.isTileset==="auto"?c=i?.url&&i.url.indexOf(".json")!==-1:c=a.isTileset,c?dy(e,A,i):gy(e,A,i)}async function dy(e,A,i){const a=JSON.parse(new TextDecoder().decode(e)),c=i?.url||"",h=py(c),g=await cy(a,h,A||{});return{...a,shape:"tileset3d",loader:Yu,url:c,queryString:i?.queryString||"",basePath:h,root:g||a.root,type:Se.TILES3D,lodMetricType:or.GEOMETRIC_ERROR,lodMetricValue:a.root?.geometricError||0}}async function gy(e,A,i){const a={content:{shape:"tile3d",featureIds:null}};return await Du(e,0,A,i,a.content),a.content}function py(e){return Al(e)}const za=[0],my={getPointColor:{type:"accessor",value:[0,0,0,255]},pointSize:1,data:"",loader:Yu,onTilesetLoad:{type:"function",value:e=>{}},onTileLoad:{type:"function",value:e=>{}},onTileUnload:{type:"function",value:e=>{}},onTileError:{type:"function",value:(e,A,i)=>{}},_getMeshColor:{type:"function",value:e=>[255,255,255]}};class Zu extends lr{initializeState(){"onTileLoadFail"in this.props&&vi.removed("onTileLoadFail","onTileError")(),this.state={layerMap:{},tileset3d:null,activeViewports:{},lastUpdatedViewports:null}}get isLoaded(){return!!(this.state?.tileset3d?.isLoaded()&&super.isLoaded)}shouldUpdateState({changeFlags:A}){return A.somethingChanged}updateState({props:A,oldProps:i,changeFlags:a}){if(A.data&&A.data!==i.data&&this._loadTileset(A.data),a.viewportChanged){const{activeViewports:c}=this.state;Object.keys(c).length&&(this._updateTileset(c),this.state.lastUpdatedViewports=c,this.state.activeViewports={})}if(a.propsChanged){const{layerMap:c}=this.state;for(const h in c)c[h].needsUpdate=!0}}activateViewport(A){const{activeViewports:i,lastUpdatedViewports:a}=this.state;this.internalState.viewport=A,i[A.id]=A;const c=a?.[A.id];(!c||!A.equals(c))&&(this.setChangeFlags({viewportChanged:!0}),this.setNeedsUpdate())}getPickingInfo({info:A,sourceLayer:i}){const a=i&&i.props.tile;return A.picked&&(A.object=a),A.sourceTile=a,A}filterSubLayer({layer:A,viewport:i}){const{tile:a}=A.props,{id:c}=i;return a.selected&&a.viewportIds.includes(c)}_updateAutoHighlight(A){const i=A.sourceTile,a=this.state.layerMap[i?.id];a&&a.layer&&a.layer.updateAutoHighlight(A)}async _loadTileset(A){const{loadOptions:i={}}=this.props,a=this.props.loader||this.props.loaders,c=Array.isArray(a)?a[0]:a,h={loadOptions:{...i}};let g=A;if(c.preload){const v=await c.preload(A,i);v.url&&(g=v.url),v.headers&&(h.loadOptions.fetch={...h.loadOptions.fetch,headers:v.headers}),Object.assign(h,v)}const m=await Cr(g,c,h.loadOptions),y=new J4(m,{onTileLoad:this._onTileLoad.bind(this),onTileUnload:this._onTileUnload.bind(this),onTileError:this.props.onTileError,...h});this.setState({tileset3d:y,layerMap:{}}),this._updateTileset(this.state.activeViewports),this.props.onTilesetLoad(y)}_onTileLoad(A){const{lastUpdatedViewports:i}=this.state;this.props.onTileLoad(A),this._updateTileset(i),this.setNeedsUpdate()}_onTileUnload(A){delete this.state.layerMap[A.id],this.props.onTileUnload(A)}_updateTileset(A){if(!A)return;const{tileset3d:i}=this.state,{timeline:a}=this.context,c=Object.keys(A).length;!a||!c||!i||i.selectTiles(Object.values(A)).then(h=>{this.state.frameNumber!==h&&this.setState({frameNumber:h})})}_getSubLayer(A,i){if(!A.content)return null;switch(A.type){case it.POINTCLOUD:return this._makePointCloudLayer(A,i);case it.SCENEGRAPH:return this._make3DModelLayer(A);case it.MESH:return this._makeSimpleMeshLayer(A,i);default:throw new Error(`Tile3DLayer: Failed to render layer of type ${A.content.type}`)}}_makePointCloudLayer(A,i){const{attributes:a,pointCount:c,constantRGBA:h,cartographicOrigin:g,modelMatrix:m}=A.content,{positions:y,normals:v,colors:_}=a;if(!y)return null;const S=i&&i.props.data||{header:{vertexCount:c},attributes:{POSITION:y,NORMAL:v,COLOR_0:_}},{pointSize:P,getPointColor:N}=this.props,Y=this.getSubLayerClass("pointcloud",Nh);return new Y({pointSize:P},this.getSubLayerProps({id:"pointcloud"}),{id:`${this.id}-pointcloud-${A.id}`,tile:A,data:S,coordinateSystem:Ct.METER_OFFSETS,coordinateOrigin:g,modelMatrix:m,getColor:h||N,_offset:0})}_make3DModelLayer(A){const{gltf:i,instances:a,cartographicOrigin:c,modelMatrix:h}=A.content,g=this.getSubLayerClass("scenegraph",$h);return new g({_lighting:"pbr"},this.getSubLayerProps({id:"scenegraph"}),{id:`${this.id}-scenegraph-${A.id}`,tile:A,data:a||za,scenegraph:i,coordinateSystem:Ct.METER_OFFSETS,coordinateOrigin:c,modelMatrix:h,getTransformMatrix:m=>m.modelMatrix,getPosition:[0,0,0],_offset:0})}_makeSimpleMeshLayer(A,i){const a=A.content,{attributes:c,indices:h,modelMatrix:g,cartographicOrigin:m,coordinateSystem:y=Ct.METER_OFFSETS,material:v,featureIds:_}=a,{_getMeshColor:S}=this.props,P=i&&i.props.mesh||new o2({topology:"triangle-list",attributes:wy(c),indices:h}),N=this.getSubLayerClass("mesh",Ui);return new N(this.getSubLayerProps({id:"mesh"}),{id:`${this.id}-mesh-${A.id}`,tile:A,mesh:P,data:za,getColor:S(A),pbrMaterial:v,modelMatrix:g,coordinateOrigin:m,coordinateSystem:y,featureIds:_,_offset:0})}renderLayers(){const{tileset3d:A,layerMap:i}=this.state;return A?A.tiles.map(a=>{const c=i[a.id]=i[a.id]||{tile:a};let{layer:h}=c;return a.selected&&(h?c.needsUpdate&&(h=this._getSubLayer(a,h),c.needsUpdate=!1):h=this._getSubLayer(a)),c.layer=h,h}).filter(Boolean):null}}Zu.defaultProps=my;Zu.layerName="Tile3DLayer";function wy(e){const A={};return A.positions={...e.positions,value:new Float32Array(e.positions.value)},e.normals&&(A.normals=e.normals),e.texCoords&&(A.texCoords=e.texCoords),e.colors&&(A.colors=e.colors),e.uvRegions&&(A.uvRegions=e.uvRegions),A}const yy="4.3.3",Xu={dataType:null,batchType:null,name:"Terrain",id:"terrain",module:"terrain",version:yy,worker:!0,extensions:["png","pngraw","jpg","jpeg","gif","webp","bmp"],mimeTypes:["image/png","image/jpeg","image/gif","image/webp","image/bmp"],options:{terrain:{tesselator:"auto",bounds:void 0,meshMaxError:10,elevationDecoder:{rScaler:1,gScaler:0,bScaler:0,offset:0},skirtHeight:void 0}}};({...Xu});const Ga=[1],Ty={...Lr.defaultProps,elevationData:bn,texture:{...bn,optional:!0},meshMaxError:{type:"number",value:4},bounds:{type:"array",value:null,optional:!0,compare:!0},color:{type:"color",value:[255,255,255]},elevationDecoder:{type:"object",value:{rScaler:1,gScaler:0,bScaler:0,offset:0}},workerUrl:"",wireframe:!1,material:!0,loaders:[Xu]};function qa(e){return Array.isArray(e)?e.join(";"):e||""}class Ju extends lr{updateState({props:A,oldProps:i}){const a=A.elevationData!==i.elevationData;if(a){const{elevationData:h}=A,g=h&&(Array.isArray(h)||vy(h));this.setState({isTiled:g})}const c=a||A.meshMaxError!==i.meshMaxError||A.elevationDecoder!==i.elevationDecoder||A.bounds!==i.bounds;if(!this.state.isTiled&&c){const h=this.loadTerrain(A);this.setState({terrain:h})}A.workerUrl&&vi.removed("workerUrl","loadOptions.terrain.workerUrl")()}loadTerrain({elevationData:A,bounds:i,elevationDecoder:a,meshMaxError:c,signal:h}){if(!A)return null;let g=this.getLoadOptions();g={...g,terrain:{skirtHeight:this.state.isTiled?c*2:0,...g?.terrain,bounds:i,meshMaxError:c,elevationDecoder:a}};const{fetch:m}=this.props;return m(A,{propName:"elevationData",layer:this,loadOptions:g,signal:h})}getTiledTerrainData(A){const{elevationData:i,fetch:a,texture:c,elevationDecoder:h,meshMaxError:g}=this.props,{viewport:m}=this.context,y=Mn(i,A),v=c&&Mn(c,A),{signal:_}=A;let S=[0,0],P=[0,0];if(m.isGeospatial){const tA=A.bbox;S=m.projectFlat([tA.west,tA.south]),P=m.projectFlat([tA.east,tA.north])}else{const tA=A.bbox;S=[tA.left,tA.bottom],P=[tA.right,tA.top]}const N=[S[0],S[1],P[0],P[1]],Y=this.loadTerrain({elevationData:y,bounds:N,elevationDecoder:h,meshMaxError:g,signal:_}),Z=v?a(v,{propName:"texture",layer:this,loaders:[],signal:_}).catch(tA=>null):Promise.resolve(null);return Promise.all([Y,Z])}renderSubLayers(A){const i=this.getSubLayerClass("mesh",K0),{color:a,wireframe:c,material:h}=this.props,{data:g}=A;if(!g)return null;const[m,y]=g;return new i(A,{data:Ga,mesh:m,texture:y,_instanced:!1,coordinateSystem:Ct.CARTESIAN,getPosition:v=>[0,0,0],getColor:a,wireframe:c,material:h})}onViewportLoad(A){if(!A)return;const{zRange:i}=this.state,a=A.map(g=>g.content).filter(Boolean).map(g=>g[0].header.boundingBox.map(y=>y[2]));if(a.length===0)return;const c=Math.min(...a.map(g=>g[0])),h=Math.max(...a.map(g=>g[1]));(!i||c<i[0]||h>i[1])&&this.setState({zRange:[c,h]})}renderLayers(){const{color:A,material:i,elevationData:a,texture:c,wireframe:h,meshMaxError:g,elevationDecoder:m,tileSize:y,maxZoom:v,minZoom:_,extent:S,maxRequests:P,onTileLoad:N,onTileUnload:Y,onTileError:Z,maxCacheSize:tA,maxCacheByteSize:R,refinementStrategy:z}=this.props;if(this.state.isTiled)return new Lr(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledTerrainData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:{elevationData:qa(a),texture:qa(c),meshMaxError:g,elevationDecoder:m}},onViewportLoad:this.onViewportLoad.bind(this),zRange:this.state.zRange||null,tileSize:y,maxZoom:v,minZoom:_,extent:S,maxRequests:P,onTileLoad:N,onTileUnload:Y,onTileError:Z,maxCacheSize:tA,maxCacheByteSize:R,refinementStrategy:z});if(!a)return null;const nA=this.getSubLayerClass("mesh",K0);return new nA(this.getSubLayerProps({id:"mesh"}),{data:Ga,mesh:this.state.terrain,texture:c,_instanced:!1,getPosition:mA=>[0,0,0],getColor:A,material:i,wireframe:h})}}Ju.defaultProps=Ty;Ju.layerName="TerrainLayer";const vy=e=>e.includes("{x}")&&(e.includes("{y}")||e.includes("{-y}"));function Ha(e,A){const i=A?.globalFeatureId;return i!==void 0?_y(e,i):Ey(e,A?.type)}function _y(e,A){const i=Ku(e);for(const a of i){let c=0,h=a.featureIds.value[0];for(let g=0;g<a.featureIds.value.length;g++){const m=a.featureIds.value[g];if(m!==h){if(A===a.globalFeatureIds.value[c])return Sn(a,c,g);c=g,h=m}}if(A===a.globalFeatureIds.value[c])return Sn(a,c,a.featureIds.value.length)}throw new Error(`featureId:${A} not found`)}function Ey(e,A){const i=Ku(e);return My(i)}function by(e,A,i){switch(e.type){case"Point":return By(e,A,i);case"LineString":return Iy(e,A,i);case"Polygon":return $u(e,A,i);default:const a=e;throw new Error(`Unsupported geometry type: ${a?.type}`)}}function Ku(e,A){const i=[];return e.points&&(e.points.type="Point",i.push(e.points)),e.lines&&(e.lines.type="LineString",i.push(e.lines)),e.polygons&&(e.polygons.type="Polygon",i.push(e.polygons)),i}function My(e){const A=[];for(const i of e){if(i.featureIds.value.length===0)continue;let a=0,c=i.featureIds.value[0];for(let h=0;h<i.featureIds.value.length;h++){const g=i.featureIds.value[h];g!==c&&(A.push(Sn(i,a,h)),a=h,c=g)}A.push(Sn(i,a,i.featureIds.value.length))}return A}function Sn(e,A,i){const a=by(e,A,i),c=Sy(e,A),h=Cy(e,A);return{type:"Feature",geometry:a,properties:c,...h}}function Cy(e,A=0,i){return e.fields&&e.fields[e.featureIds.value[A]]}function Sy(e,A=0,i){const a=Object.assign({},e.properties[e.featureIds.value[A]]);for(const c in e.numericProps)a[c]=e.numericProps[c].value[A];return a}function $u(e,A=-1/0,i=1/0){const{positions:a}=e,c=e.polygonIndices.value.filter(y=>y>=A&&y<=i),h=e.primitivePolygonIndices.value.filter(y=>y>=A&&y<=i);if(!(c.length>2)){const y=[];for(let v=0;v<h.length-1;v++){const _=h[v],S=h[v+1],P=In(a,_,S);y.push(P)}return{type:"Polygon",coordinates:y}}const m=[];for(let y=0;y<c.length-1;y++){const v=c[y],_=c[y+1],S=$u(e,v,_).coordinates;m.push(S)}return{type:"MultiPolygon",coordinates:m}}function Iy(e,A=-1/0,i=1/0){const{positions:a}=e,c=e.pathIndices.value.filter(m=>m>=A&&m<=i);if(!(c.length>2))return{type:"LineString",coordinates:In(a,c[0],c[1])};const g=[];for(let m=0;m<c.length-1;m++){const y=In(a,c[m],c[m+1]);g.push(y)}return{type:"MultiLineString",coordinates:g}}function By(e,A,i){const{positions:a}=e,c=In(a,A,i);return c.length>1?{type:"MultiPoint",coordinates:c}:{type:"Point",coordinates:c[0]}}function In(e,A,i){A=A||0,i=i||e.value.length/e.size;const a=[];for(let c=A;c<i;c++){const h=Array();for(let g=c*e.size;g<(c+1)*e.size;g++)h.push(Number(e.value[g]));a.push(h)}return a}const Ly="4.3.3",Ac={dataType:null,batchType:null,name:"Mapbox Vector Tile",id:"mvt",module:"mvt",version:Ly,extensions:["mvt","pbf"],mimeTypes:["application/vnd.mapbox-vector-tile","application/x-protobuf"],worker:!0,category:"geometry",options:{mvt:{shape:"geojson",coordinates:"local",layerProperty:"layerName",layers:void 0,tileIndex:void 0}}};({...Ac});const Py={Point:ec,MultiPoint:xy,LineString:tc,MultiLineString:Ny,Polygon:rc,MultiPolygon:Ry};function ec([e,A],[i,a],c){const h=mn(i[0],a[0],e),g=mn(i[1],a[1],A);return c.unprojectFlat([h,g])}function Wi(e,A,i){return e.map(a=>ec(a,A,i))}function xy(e,A,i){return Wi(e,A,i)}function tc(e,A,i){return Wi(e,A,i)}function Ny(e,A,i){return e.map(a=>tc(a,A,i))}function rc(e,A,i){return e.map(a=>Wi(a,A,i))}function Ry(e,A,i){return e.map(a=>rc(a,A,i))}function Dy(e,A,i){const a=i.projectFlat([A.west,A.north]),c=i.projectFlat([A.east,A.south]),h=[a,c];return{...e,coordinates:Py[e.type](e.coordinates,h,i)}}const Oy=["points","lines","polygons"];function ky(e,A,i,a){for(const c of Oy){const h=e[c]&&Fy(e[c],A,i,a);if(h>=0)return h}return-1}function Fy(e,A,i,a){const c=e.featureIds.value;if(!c.length)return-1;let h=0,g=c[c.length-1]+1;if(a){const y=Uy(e,a);if(y)h=y[0],g=y[1]+1;else return-1}let m=-1;if(A in e.numericProps){const y=e.numericProps[A].value.findIndex((v,_)=>v===i&&c[_]>=h&&c[_]<g);return y>=0?e.globalFeatureIds.value[y]:-1}else A?m=ja(e.properties,y=>y[A]===i,h,g):e.fields&&(m=ja(e.fields,y=>y.id===i,h,g));return m>=0?Qy(e,m):-1}function Uy(e,A){if(!e.__layers){const i={},{properties:a}=e;for(let c=0;c<a.length;c++){const{layerName:h}=a[c];h&&(i[h]?i[h][1]=c:i[h]=[c,c])}e.__layers=i}return e.__layers[A]}function Qy(e,A){if(!e.__ids){const i=[],a=e.featureIds.value,c=e.globalFeatureIds.value;for(let h=0;h<a.length;h++)i[a[h]]=c[h];e.__ids=i}return e.__ids[A]}function ja(e,A,i,a){for(let c=i;c<a;c++)if(A(e[c],c))return c;return-1}const Z0=512,Vy={...Ti.defaultProps,data:bn,onDataLoad:{type:"function",value:null,optional:!0,compare:!1},uniqueIdProperty:"",highlightedFeatureId:null,loaders:[Ac],binary:!0};class nc extends Lr{initializeState(){super.initializeState();const A=this.context.viewport.resolution!==void 0?!1:this.props.binary;this.setState({binary:A,data:null,tileJSON:null,hoveredFeatureId:null,hoveredFeatureLayerName:null})}get isLoaded(){return!!(this.state?.data&&super.isLoaded)}updateState({props:A,oldProps:i,context:a,changeFlags:c}){c.dataChanged&&this._updateTileData(),this.state?.data&&(super.updateState({props:A,oldProps:i,context:a,changeFlags:c}),this._setWGS84PropertyForTiles());const{highlightColor:h}=A;h!==i.highlightColor&&Array.isArray(h)&&this.setState({highlightColor:h})}async _updateTileData(){let A=this.props.data,i=null;if(typeof A=="string"&&!x3(A)){const{onDataLoad:a,fetch:c}=this.props;this.setState({data:null,tileJSON:null});try{i=await c(A,{propName:"data",layer:this,loaders:[]})}catch(h){this.raiseError(h,"loading TileJSON"),A=null}a&&a(i,{propName:"data",layer:this})}else A&&typeof A=="object"&&"tilejson"in A&&(i=A);i&&(A=i.tiles),this.setState({data:A,tileJSON:i})}_getTilesetOptions(){const A=super._getTilesetOptions(),i=this.state.tileJSON,{minZoom:a,maxZoom:c}=this.props;return i&&(Number.isFinite(i.minzoom)&&i.minzoom>a&&(A.minZoom=i.minzoom),Number.isFinite(i.maxzoom)&&(!Number.isFinite(c)||i.maxzoom<c)&&(A.maxZoom=i.maxzoom)),A}renderLayers(){return this.state?.data?super.renderLayers():null}getTileData(A){const{data:i,binary:a}=this.state,{index:c,signal:h}=A,g=Mn(i,A);if(!g)return Promise.reject("Invalid URL");let m=this.getLoadOptions();const{fetch:y}=this.props;return m={...m,mimeType:"application/x-protobuf",mvt:{...m?.mvt,coordinates:this.context.viewport.resolution?"wgs84":"local",tileIndex:c},gis:a?{format:"binary"}:{}},y(g,{propName:"data",layer:this,loadOptions:m,signal:h})}renderSubLayers(A){const{x:i,y:a,z:c}=A.tile.index,h=Math.pow(2,c),g=Z0/h,m=-g,y=Z0*i/h,v=Z0*(1-a/h),_=new KA().scale([g,m,1]);A.autoHighlight=!1,this.context.viewport.resolution||(A.modelMatrix=_,A.coordinateOrigin=[y,v,0],A.coordinateSystem=Ct.CARTESIAN,A.extensions=[...A.extensions||[],new l2]);const S=super.renderSubLayers(A);return this.state.binary&&!(S instanceof Ti)&&vi.warn("renderSubLayers() must return GeoJsonLayer when using binary:true")(),S}_updateAutoHighlight(A){const{uniqueIdProperty:i}=this.props,{hoveredFeatureId:a,hoveredFeatureLayerName:c}=this.state,h=A.object;let g=null,m=null;h&&(g=X0(h,i),m=Wa(h));let{highlightColor:y}=this.props;typeof y=="function"&&(y=y(A)),(a!==g||c!==m)&&this.setState({highlightColor:y,hoveredFeatureId:g,hoveredFeatureLayerName:m})}_isWGS84(){return!!this.context.viewport.resolution}getPickingInfo(A){const i=super.getPickingInfo(A);if(this.state.binary&&i.index!==-1){const{data:a}=A.sourceLayer.props;i.object=Ha(a,{globalFeatureId:i.index})}return i.object&&!this._isWGS84()&&(i.object=Za(i.object,i.tile.bbox,this.context.viewport)),i}getSubLayerPropsByTile(A){return{highlightedObjectIndex:this.getHighlightedObjectIndex(A),highlightColor:this.state.highlightColor}}getHighlightedObjectIndex(A){const{hoveredFeatureId:i,hoveredFeatureLayerName:a,binary:c}=this.state,{uniqueIdProperty:h,highlightedFeatureId:g}=this.props,m=A.content,y=Ya(g);if(!(Ya(i)||y))return-1;const _=y?g:i;return Array.isArray(m)?m.findIndex(S=>{const P=X0(S,h)===_,N=y||Wa(S)===a;return P&&N}):m&&c?ky(m,h,_,y?"":a):-1}_pickObjects(A){const{deck:i,viewport:a}=this.context,c=a.width,h=a.height,g=a.x,m=a.y,y=[this.id];return i.pickObjects({x:g,y:m,width:c,height:h,layerIds:y,maxObjects:A})}getRenderedFeatures(A=null){const i=this._pickObjects(A),a=new Set,c=[];for(const h of i){const g=X0(h.object,this.props.uniqueIdProperty);g===void 0?c.push(h.object):a.has(g)||(a.add(g),c.push(h.object))}return c}_setWGS84PropertyForTiles(){const A="dataInWGS84";this.state.tileset.selectedTiles.forEach(a=>{a.hasOwnProperty(A)||Object.defineProperty(a,A,{get:()=>{if(!a.content)return null;if(this.state.binary&&Array.isArray(a.content)&&!a.content.length)return[];const{bbox:c}=a;if(a._contentWGS84===void 0&&N3(c)){const h=this.state.binary?Ha(a.content):a.content;a._contentWGS84=h.map(g=>Za(g,c,this.context.viewport))}return a._contentWGS84}})})}}nc.layerName="MVTLayer";nc.defaultProps=Vy;function X0(e,A){if(e.properties&&A)return e.properties[A];if("id"in e)return e.id}function Wa(e){return e.properties?.layerName||null}function Ya(e){return e!=null&&e!==""}function Za(e,A,i){const a={...e,geometry:{type:e.geometry.type}};return Object.defineProperty(a.geometry,"coordinates",{get:()=>Dy(e.geometry,A,i).coordinates}),a}const Xa="0123456789bcdefghjkmnpqrstuvwxyz",ic={};for(let e=0;e<Xa.length;e++)ic[Xa.charAt(e)]=e;const zy=-90,Gy=90,qy=-180,Hy=180;function jy(e){let A=!0,i=Gy,a=zy,c=Hy,h=qy,g,m=0;for(let y=0,v=e.length;y<v;y++){const _=e[y].toLowerCase();m=ic[_];for(let S=4;S>=0;S--){const P=m>>S&1;A?(g=(c+h)/2,P===1?h=g:c=g):(g=(i+a)/2,P===1?a=g:i=g),A=!A}}return[a,h,i,c]}function Wy(e){const[A,i,a,c]=jy(e);return[c,a,c,A,i,A,i,a,c,a]}const Yy={getGeohash:{type:"accessor",value:e=>e.geohash}};class sc extends Nt{indexToBounds(){const{data:A,getGeohash:i}=this.props;return{data:A,_normalize:!1,positionFormat:"XY",getPolygon:(a,c)=>Wy(i(a,c))}}}sc.layerName="GeohashLayer";sc.defaultProps=Yy;export{ou as A5Layer,sc as GeohashLayer,hu as GreatCircleLayer,vu as H3ClusterLayer,ur as H3HexagonLayer,nc as MVTLayer,gu as QuadkeyLayer,du as S2Layer,Ju as TerrainLayer,Zu as Tile3DLayer,Lr as TileLayer,Tu as TripsLayer,Nt as _GeoCellLayer,r3 as _Tile2DHeader,V3 as _Tileset2D,fu as _WMSLayer,Mn as _getURLFromTemplate};
115
+ //# sourceMappingURL=geo-layers.js.map