@arcgis/core 5.2.0-next.121 → 5.2.0-next.123

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 (228) hide show
  1. package/Ground.js +1 -1
  2. package/arcgisGlobal.d.ts +2 -0
  3. package/assets/esri/core/workers/RemoteClient.js +1 -1
  4. package/assets/esri/core/workers/chunks/0148cb611bf7c8c5fe8a.js +1 -0
  5. package/assets/esri/core/workers/chunks/{deb5b1d772ca407654d4.js → 0acc754907395e83bbc6.js} +1 -1
  6. package/assets/esri/core/workers/chunks/{bcb06a0643b4c83535ee.js → 1302bf9718747cd9fdd9.js} +1 -1
  7. package/assets/esri/core/workers/chunks/{956432c9d45940983bc2.js → 1b42d163ef22e3565bb7.js} +1 -1
  8. package/assets/esri/core/workers/chunks/1b551ef3d84d9c1e93f9.js +1 -0
  9. package/assets/esri/core/workers/chunks/{4adad3312caa24af98ac.js → 1c38ce72160d5a4e4b3d.js} +1 -1
  10. package/assets/esri/core/workers/chunks/1c3b087fbf2d102376fc.js +1 -0
  11. package/assets/esri/core/workers/chunks/{9b3813e39992b1b99941.js → 1e46703cb566c25458ad.js} +1 -1
  12. package/assets/esri/core/workers/chunks/{015cb790262a59857c5f.js → 1f135269aea3931e11b2.js} +1 -1
  13. package/assets/esri/core/workers/chunks/23279303cd7698314c56.js +1 -0
  14. package/assets/esri/core/workers/chunks/{4bf2cc4d092601ff2b86.js → 24673aac70d6c949b6fa.js} +1 -1
  15. package/assets/esri/core/workers/chunks/24cf91aeab53a897e951.js +1 -0
  16. package/assets/esri/core/workers/chunks/26bc509a031788bfa678.js +1 -0
  17. package/assets/esri/core/workers/chunks/2ae6deade655fdbc28de.js +1 -0
  18. package/assets/esri/core/workers/chunks/{37cf4ca2083cd3b6002e.js → 2c7bb5c9751524687002.js} +1 -1
  19. package/assets/esri/core/workers/chunks/2c8957f9c7610805208c.js +1 -0
  20. package/assets/esri/core/workers/chunks/{a3c1a5a5c5cbf27b376d.js → 2d592c935571de80a2e2.js} +1 -1
  21. package/assets/esri/core/workers/chunks/{a917a1df8270860dc514.js → 2f52ad525744b8793d49.js} +1 -1
  22. package/assets/esri/core/workers/chunks/{6efc5873747b9cd44fb9.js → 323451ef52d0c2805f1d.js} +1 -1
  23. package/assets/esri/core/workers/chunks/37ae52c71bf9c70fbb92.js +1 -0
  24. package/assets/esri/core/workers/chunks/38890ac5917942374ab8.js +1 -0
  25. package/assets/esri/core/workers/chunks/3e33d953e41b281a120b.js +1 -0
  26. package/assets/esri/core/workers/chunks/3e52351e06d85bf9bedd.js +1 -0
  27. package/assets/esri/core/workers/chunks/{fbc5f275c4e5e6bfffaa.js → 462fd57af8ed7921d6ba.js} +1 -1
  28. package/assets/esri/core/workers/chunks/{1846296be959e28c42bb.js → 475906b079f4f1ddacf2.js} +1 -1
  29. package/assets/esri/core/workers/chunks/{ea49721fdd2172d1c799.js → 48a2f68e06a2e90b77d0.js} +1 -1
  30. package/assets/esri/core/workers/chunks/{b6ca73c1384f07b30b74.js → 4bb8432d99a39733368f.js} +1 -1
  31. package/assets/esri/core/workers/chunks/{c44cbe04efddbbbaec13.js → 4f58e0322707f63f5bf2.js} +1 -1
  32. package/assets/esri/core/workers/chunks/{0e9f54d7f158195bd203.js → 59cd139712d919e6a738.js} +1 -1
  33. package/assets/esri/core/workers/chunks/59d5247ac4075b024244.js +1 -0
  34. package/assets/esri/core/workers/chunks/5afc12671a9a1bb6c56c.js +1 -0
  35. package/assets/esri/core/workers/chunks/5b9f3c4f65412c66316f.js +1 -0
  36. package/assets/esri/core/workers/chunks/{be3421ffb5b391bca02e.js → 5d35e0c2665f5e625ee9.js} +1 -1
  37. package/assets/esri/core/workers/chunks/5e70bfb9d6235a87b87a.js +1 -0
  38. package/assets/esri/core/workers/chunks/6006bd8a5ed945fa2776.js +1 -0
  39. package/assets/esri/core/workers/chunks/618927cfcb93dd1d92fd.js +1 -0
  40. package/assets/esri/core/workers/chunks/6709d24867d275b33d24.js +1 -0
  41. package/assets/esri/core/workers/chunks/68e24fa3f564c2a5c9fd.js +1 -0
  42. package/assets/esri/core/workers/chunks/{fd5e61cb6f936eadcfe3.js → 724ea2e2843e6dac0a90.js} +1 -1
  43. package/assets/esri/core/workers/chunks/7441d121f00ce747c08e.js +1 -0
  44. package/assets/esri/core/workers/chunks/{e86f83a6514a35255f64.js → 781fa83e8063b8f685dc.js} +1 -1
  45. package/assets/esri/core/workers/chunks/{a005efcde3ca9def4e6b.js → 78c1b75b1a8937eaa3cd.js} +1 -1
  46. package/assets/esri/core/workers/chunks/793b072519ded0dc6f34.js +1 -0
  47. package/assets/esri/core/workers/chunks/{1086f190f94c715bbfe4.js → 7994fce5f36963aadc51.js} +1 -1
  48. package/assets/esri/core/workers/chunks/7adee504107cb9ad8563.js +1 -0
  49. package/assets/esri/core/workers/chunks/7efc45858ebd3fd3302e.js +1 -0
  50. package/assets/esri/core/workers/chunks/7ff536284942c5284a16.js +1 -0
  51. package/assets/esri/core/workers/chunks/813dd84933b407c8fe86.js +1 -0
  52. package/assets/esri/core/workers/chunks/8daeac785af725c3ebdf.js +1 -0
  53. package/assets/esri/core/workers/chunks/{3ab25279aaa30f035038.js → 8daed13400d9e63e65ae.js} +1 -1
  54. package/assets/esri/core/workers/chunks/9020bd7a0e488d55ef14.js +1 -0
  55. package/assets/esri/core/workers/chunks/{cf7c06702babd6fa88b4.js → 9af36ee6a0df224859bc.js} +1 -1
  56. package/assets/esri/core/workers/chunks/{452d069ba7ad6759b558.js → 9c46c7f00d42f5c02b26.js} +1 -1
  57. package/assets/esri/core/workers/chunks/a3ab53b534e2872131be.js +1 -0
  58. package/assets/esri/core/workers/chunks/{fa3f824c874f29d24953.js → aa6b2cc8f6f5627891c1.js} +1 -1
  59. package/assets/esri/core/workers/chunks/ac7af417ebf7721d7400.js +1 -0
  60. package/assets/esri/core/workers/chunks/aed479c14d93955f4798.js +1 -0
  61. package/assets/esri/core/workers/chunks/{60c61f34733063730386.js → b013b70e40dfb6ce013e.js} +1 -1
  62. package/assets/esri/core/workers/chunks/b22de8bf4a4a739bc36d.js +1 -0
  63. package/assets/esri/core/workers/chunks/b39cd78d2d97bef9909e.js +1 -0
  64. package/assets/esri/core/workers/chunks/b5f50955c1eee55b67d1.js +1 -0
  65. package/assets/esri/core/workers/chunks/bdf012e591a8476db467.js +1 -0
  66. package/assets/esri/core/workers/chunks/{daf7b647bd960d8bad56.js → be52c319a0a81ce1ba36.js} +1 -1
  67. package/assets/esri/core/workers/chunks/{89edaa1ffa566908ebca.js → ca5a4f62b09cc8579dc0.js} +1 -1
  68. package/assets/esri/core/workers/chunks/{fbb390c0d92d1536fce3.js → ce1ccf9ec90b786591e5.js} +1 -1
  69. package/assets/esri/core/workers/chunks/cf0bed7ae27021fd7b05.js +1 -0
  70. package/assets/esri/core/workers/chunks/cf6f671823fa6c2a9a5e.js +1 -0
  71. package/assets/esri/core/workers/chunks/{39c5e0f6262f69a62c66.js → d25210574168ead2f813.js} +1 -1
  72. package/assets/esri/core/workers/chunks/d3378c479052d566317c.js +1 -0
  73. package/assets/esri/core/workers/chunks/d3ef23923424ad8c5048.js +1 -0
  74. package/assets/esri/core/workers/chunks/{46388b86d1b10e6121bd.js → d507d7d7a7282fc38e8d.js} +1 -1
  75. package/assets/esri/core/workers/chunks/dc0816f064be576a2fa6.js +1 -0
  76. package/assets/esri/core/workers/chunks/{d9b761104ab6e4acaf91.js → dd4ecf81250cc001d040.js} +1 -1
  77. package/assets/esri/core/workers/chunks/{ab60f3bc18b5ea504f70.js → e0eb89a935509ba34d9b.js} +1 -1
  78. package/assets/esri/core/workers/chunks/e10fe4c77b8dc4492092.js +1 -0
  79. package/assets/esri/core/workers/chunks/e4e1db4e9e5f13167401.js +1 -0
  80. package/assets/esri/core/workers/chunks/e5ee64e2fb5bfcb716d8.js +1 -0
  81. package/assets/esri/core/workers/chunks/{e755075ac2e02e881fad.js → e6637f9176566382ed3e.js} +1 -1
  82. package/assets/esri/core/workers/chunks/e6dc68c4bd8eddb168d1.js +1 -0
  83. package/assets/esri/core/workers/chunks/eb780f2dafa14f776166.js +1 -0
  84. package/assets/esri/core/workers/chunks/{d9d5f50af047ee7af129.js → eb7f45736c852725b0bb.js} +89 -58
  85. package/assets/esri/core/workers/chunks/ed31ec586b754241474d.js +1 -0
  86. package/assets/esri/core/workers/chunks/f38d11be766043413659.js +1 -0
  87. package/assets/esri/libs/pdfjs/pdf.worker.mjs +63075 -0
  88. package/assets/esri/libs/pdfjs/wasm/jbig2.wasm +0 -0
  89. package/assets/esri/libs/pdfjs/wasm/openjpeg.wasm +0 -0
  90. package/assets/esri/libs/pdfjs/wasm/qcms_bg.wasm +0 -0
  91. package/assets/esri/libs/pdfjs/wasm/quickjs-eval.wasm +0 -0
  92. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.en.json +1 -1
  93. package/chunks/CloudsComposition.glsl.js +2 -2
  94. package/chunks/GlobalIllumination.glsl.js +42 -13
  95. package/chunks/GlobalIlluminationBlur.glsl.js +1 -1
  96. package/config.js +1 -1
  97. package/core/arrayUtils.js +1 -1
  98. package/core/workers/registry.js +1 -1
  99. package/geometry/support/geometryUtils.js +1 -1
  100. package/geometry/support/heightModelInfoUtils.js +1 -1
  101. package/geometry/support/meshUtils/elevation.js +1 -1
  102. package/kernel.js +1 -1
  103. package/layers/GeospatialPDFLayer.d.ts +40 -0
  104. package/layers/GeospatialPDFLayer.js +2 -0
  105. package/layers/IntegratedMeshLayer.js +1 -1
  106. package/layers/geospatialPDF/GeospatialPDFFrame.js +2 -0
  107. package/layers/geospatialPDF/GeospatialPDFLayerWorker.js +5 -0
  108. package/layers/geospatialPDF/GeospatialPDFParserUtils.js +2 -0
  109. package/layers/geospatialPDF/GeospatialPDFWorkerClient.js +2 -0
  110. package/layers/geospatialPDF/LGIDictMapFrame.js +2 -0
  111. package/layers/geospatialPDF/Projection.js +2 -0
  112. package/layers/geospatialPDF/ViewportMeasureFrame.js +2 -0
  113. package/layers/geospatialPDF/renderExtentUtils.js +2 -0
  114. package/layers/geospatialPDF/sharedUtils.js +2 -0
  115. package/layers/mixins/ArcGISImageService.js +1 -1
  116. package/layers/raster/datasets/GeospatialPDFRaster.js +2 -0
  117. package/layers/support/ElevationQuery.js +1 -1
  118. package/layers/support/LabelClass.js +1 -1
  119. package/layers/support/layersLoader.js +1 -1
  120. package/layers/types.d.ts +1 -1
  121. package/package.json +4 -4
  122. package/portal/PortalItem.js +1 -1
  123. package/portal/support/portalLayers.js +1 -1
  124. package/support/revision.js +1 -1
  125. package/symbols/cim/OverrideHelper.js +1 -1
  126. package/views/2d/engine/webgl/mesh/templates/shapingUtils.js +1 -1
  127. package/views/2d/input/MapViewInputManager.js +1 -1
  128. package/views/2d/input/handlers/KeyPan.js +1 -1
  129. package/views/2d/input/handlers/KeyRotate.js +1 -1
  130. package/views/2d/layerViewModuleImportUtils.js +1 -1
  131. package/views/2d/layers/GeospatialPDFLayerView2D.js +2 -0
  132. package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
  133. package/views/2d/layers/imagery/ImageryTileView2D.js +1 -1
  134. package/views/2d/layers/support/annodime/virtualFields.js +1 -1
  135. package/views/2d/types.d.ts +2 -0
  136. package/views/3d/GroundView3D.js +1 -1
  137. package/views/3d/analysis/Slice/SliceTool.js +1 -1
  138. package/views/3d/input/handlers/KeyboardNavigation.js +1 -1
  139. package/views/3d/layerViewModuleImportUtils.js +1 -1
  140. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  141. package/views/3d/layers/GeospatialPDFLayerView3D.js +2 -0
  142. package/views/3d/layers/I3SMeshView3D.js +1 -1
  143. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  144. package/views/3d/layers/IntegratedMeshLayerView3D.js +1 -1
  145. package/views/3d/layers/LayerView3D.js +1 -1
  146. package/views/3d/layers/i3s/I3SMaterialUtil.js +1 -1
  147. package/views/3d/layers/i3s/Intersector.js +1 -1
  148. package/views/3d/state/controllers/GamepadKeyboardController.js +1 -1
  149. package/views/3d/support/GroundAndIMSurface.js +1 -1
  150. package/views/3d/support/hitTest.js +1 -1
  151. package/views/3d/terrain/isTerrainSurfaceLayer.js +1 -1
  152. package/views/3d/types.d.ts +2 -0
  153. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  154. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +8 -6
  155. package/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js +2 -2
  156. package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterColor.glsl.js +1 -1
  157. package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +6 -6
  158. package/views/3d/webgl-engine/effects/clouds/CloudsComposition.js +1 -1
  159. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
  160. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  161. package/views/3d/webgl-engine/lib/intersectorUtilsConversions.js +1 -1
  162. package/views/SceneView.d.ts +31 -0
  163. package/views/SceneView.js +1 -1
  164. package/views/View.d.ts +35 -0
  165. package/views/View.js +1 -1
  166. package/views/analysis/ElevationProfile/ElevationProfileLineGroundComputation.js +1 -1
  167. package/views/analysis/ElevationProfile/elevationProfileQuerySourceUtils.js +1 -1
  168. package/views/interactive/options/ViewOptions.d.ts +98 -0
  169. package/views/interactive/options/ViewOptions.js +2 -0
  170. package/views/interactive/support/Units.d.ts +10 -2
  171. package/views/interactive/support/Units.js +1 -1
  172. package/views/layers/FeatureLikeLayerView.d.ts +27 -5
  173. package/views/layers/GraphicsLayerView.d.ts +25 -2
  174. package/views/layers/ImageryTileLayerView.js +1 -1
  175. package/views/selection/types.d.ts +1 -1
  176. package/views/support/DefaultsFromMap.js +1 -1
  177. package/views/types.d.ts +9 -3
  178. package/widgets/ElevationProfile/ElevationProfileLineGround.js +1 -1
  179. package/widgets/support/SelectionToolbar/SelectionToolbarViewModel.d.ts +8 -2
  180. package/widgets/support/SelectionToolbar/SelectionToolbarViewModel.js +1 -1
  181. package/widgets/support/SelectionToolbar/VisibleElements.d.ts +8 -1
  182. package/widgets/support/SelectionToolbar/VisibleElements.js +1 -1
  183. package/widgets/support/SelectionToolbar.d.ts +7 -1
  184. package/widgets/support/SelectionToolbar.js +1 -1
  185. package/assets/esri/core/workers/chunks/01ca17092545d72be7b6.js +0 -1
  186. package/assets/esri/core/workers/chunks/0b727d7bf3e36e146725.js +0 -1
  187. package/assets/esri/core/workers/chunks/0bd067a5c0bac96caeb5.js +0 -1
  188. package/assets/esri/core/workers/chunks/0ff13f7a18b0123d253e.js +0 -1
  189. package/assets/esri/core/workers/chunks/114bc14c49176f64a2c5.js +0 -1
  190. package/assets/esri/core/workers/chunks/173417fe995e9bfc49d8.js +0 -1
  191. package/assets/esri/core/workers/chunks/2cf571d968118b6bdde0.js +0 -1
  192. package/assets/esri/core/workers/chunks/43436c7ccc6baefc885d.js +0 -1
  193. package/assets/esri/core/workers/chunks/445b0ca1b70730c9a2e6.js +0 -1
  194. package/assets/esri/core/workers/chunks/48d3da636be15581fd7d.js +0 -1
  195. package/assets/esri/core/workers/chunks/501df20cdd09384f6ee2.js +0 -1
  196. package/assets/esri/core/workers/chunks/50ae209237f104735a30.js +0 -1
  197. package/assets/esri/core/workers/chunks/54f9062526c2002b7fd7.js +0 -1
  198. package/assets/esri/core/workers/chunks/56b7ac280bf0be938c14.js +0 -1
  199. package/assets/esri/core/workers/chunks/61bcbafd676804ce3e1d.js +0 -1
  200. package/assets/esri/core/workers/chunks/63f7141c71f29dbe8270.js +0 -1
  201. package/assets/esri/core/workers/chunks/726ca458b98bb4334431.js +0 -1
  202. package/assets/esri/core/workers/chunks/75410a4de76e67ed5da4.js +0 -1
  203. package/assets/esri/core/workers/chunks/85780f4fa4b5509f864e.js +0 -1
  204. package/assets/esri/core/workers/chunks/862754d2d659528fe884.js +0 -1
  205. package/assets/esri/core/workers/chunks/8675ab3c4dec2f13b9c6.js +0 -1
  206. package/assets/esri/core/workers/chunks/8a103b6e9534516421e2.js +0 -1
  207. package/assets/esri/core/workers/chunks/917dec9c004218c58950.js +0 -1
  208. package/assets/esri/core/workers/chunks/91a51d959ee5c6123c46.js +0 -1
  209. package/assets/esri/core/workers/chunks/91f451b98e0f696043df.js +0 -1
  210. package/assets/esri/core/workers/chunks/99ebc99e8d1bca105b5e.js +0 -1
  211. package/assets/esri/core/workers/chunks/9d92e6f0beed9a8580fa.js +0 -1
  212. package/assets/esri/core/workers/chunks/a42505b978d54d36d3b6.js +0 -1
  213. package/assets/esri/core/workers/chunks/a70c59129ea808857d07.js +0 -1
  214. package/assets/esri/core/workers/chunks/a86a4e550a92f770d6d5.js +0 -1
  215. package/assets/esri/core/workers/chunks/b45ebb1b64ee7314375e.js +0 -1
  216. package/assets/esri/core/workers/chunks/b5b30c8447a0f967fa79.js +0 -1
  217. package/assets/esri/core/workers/chunks/baa8bce361a2677533ec.js +0 -1
  218. package/assets/esri/core/workers/chunks/c70a32ac0fa49f4493ca.js +0 -1
  219. package/assets/esri/core/workers/chunks/cf1106eda10f3cccb1bd.js +0 -1
  220. package/assets/esri/core/workers/chunks/d1b5be1aeab16d36d4b1.js +0 -1
  221. package/assets/esri/core/workers/chunks/d38252956c3d9e2168f7.js +0 -1
  222. package/assets/esri/core/workers/chunks/d6130cd8a20d24dd9d3c.js +0 -1
  223. package/assets/esri/core/workers/chunks/da161f8cbe1cfc5fcf7c.js +0 -1
  224. package/assets/esri/core/workers/chunks/da5b3421a984cb94fd58.js +0 -1
  225. package/assets/esri/core/workers/chunks/e52f30dfb7c82491a7f2.js +0 -1
  226. package/assets/esri/core/workers/chunks/e88eee4c2fc4229c2a8b.js +0 -1
  227. package/assets/esri/core/workers/chunks/f75e57d3e02f9828b049.js +0 -1
  228. package/assets/esri/core/workers/chunks/f774e5b94710ccee1af0.js +0 -1
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[9078],{32198(e,t,r){function n(e,t,r,n){var s,i=arguments.length,o=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(s=e[a])&&(o=(i<3?s(o):i>3?s(t,r,o):s(t,r))||o);return i>3&&o&&Object.defineProperty(t,r,o),o}function s(e,t,r){if(null!=t){if("object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object expected.");var n,s;if(r){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");n=t[Symbol.asyncDispose]}if(void 0===n){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");n=t[Symbol.dispose],r&&(s=n)}if("function"!=typeof n)throw new TypeError("Object not disposable.");s&&(n=function(){try{s.call(this)}catch(e){return Promise.reject(e)}}),e.stack.push({value:t,dispose:n,async:r})}else r&&e.stack.push({async:!0});return t}r.d(t,{Cg:()=>n,hk:()=>o,mS:()=>s}),Object.create,Object.create;var i="function"==typeof SuppressedError?SuppressedError:function(e,t,r){var n=new Error(r);return n.name="SuppressedError",n.error=e,n.suppressed=t,n};function o(e){function t(t){e.error=e.hasError?new i(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}var r,n=0;return function s(){for(;r=e.stack.pop();)try{if(!r.async&&1===n)return n=0,e.stack.push(r),Promise.resolve().then(s);if(r.dispose){var i=r.dispose.call(r.value);if(r.async)return n|=2,Promise.resolve(i).then(s,function(e){return t(e),s()})}else n|=1}catch(e){t(e)}if(1===n)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}()}},9093(e,t,r){function n(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function s(e){return[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]}r.d(t,{o8:()=>s,vt:()=>n});const i=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];Object.freeze(Object.defineProperty({__proto__:null,IDENTITY:i,clone:s,create:n,fromValues:function(e,t,r,n,s,i,o,a,u,l,c,h,p,f,d,g){return[e,t,r,n,s,i,o,a,u,l,c,h,p,f,d,g]}},Symbol.toStringTag,{value:"Module"})),r.d(t,["zK",0,i])},51850(e,t,r){function n(){return[0,0,0]}function s(e){return[e[0],e[1],e[2]]}function i(e,t,r){return[e,t,r]}function o(e,t,r){return[e,t,r]}function a(e,t=[0,0,0]){const r=Math.min(3,e.length);for(let n=0;n<r;++n)t[n]=e[n];return t}function u(){return i(1,1,1)}function l(){return i(1,0,0)}function c(){return i(0,1,0)}function h(){return i(0,0,1)}r.d(t,{CN:()=>o,ci:()=>a,fA:()=>i,o8:()=>s,vt:()=>n});const p=[0,0,0],f=u(),d=l(),g=c(),y=h();Object.freeze(Object.defineProperty({__proto__:null,ONES:f,UNIT_X:d,UNIT_Y:g,UNIT_Z:y,ZEROS:p,clone:s,create:n,freeze:o,fromArray:a,fromValues:i,ones:u,unitX:l,unitY:c,unitZ:h,zeros:function(){return[0,0,0]}},Symbol.toStringTag,{value:"Module"})),r.d(t,["Cb",0,y,"Cw",0,d,"JP",0,g,"Un",0,f,"uY",0,p])},34304(e,t,r){r.d(t,{DF:()=>u,FD:()=>s,ct:()=>l});let n=1e-6;function s(){return n}const i=Math.random,o=Math.PI/180,a=180/Math.PI;function u(e){return e*o}function l(e){return e*a}Object.freeze(Object.defineProperty({__proto__:null,RANDOM:i,equals:function(e,t){return Math.abs(e-t)<=n*Math.max(1,Math.abs(e),Math.abs(t))},getEpsilon:s,setEpsilon:function(e){n=e},toDegree:l,toRadian:u},Symbol.toStringTag,{value:"Module"})),r.d(t,["Ov",0,i])},35522(e,t,r){r.d(t,{$A:()=>x,Bw:()=>i,C:()=>o,Cc:()=>k,DI:()=>w,Io:()=>_,Ln:()=>m,Om:()=>T,Qr:()=>h,Re:()=>l,S8:()=>S,T9:()=>g,WQ:()=>u,Z0:()=>I,_S:()=>f,aI:()=>N,ei:()=>P,fw:()=>V,gL:()=>A,hG:()=>b,hZ:()=>a,hs:()=>y,jk:()=>d,lw:()=>c,m3:()=>M,oW:()=>O,t2:()=>R,tn:()=>p,ze:()=>v});var n=r(51850),s=r(34304);function i(e){const t=e[0],r=e[1],n=e[2];return Math.sqrt(t*t+r*r+n*n)}function o(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function a(e,t,r,n){return e[0]=t,e[1]=r,e[2]=n,e}function u(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e}function l(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e}function c(e,t,r){return e[0]=t[0]*r[0],e[1]=t[1]*r[1],e[2]=t[2]*r[2],e}function h(e,t,r){return e[0]=t[0]/r[0],e[1]=t[1]/r[1],e[2]=t[2]/r[2],e}function p(e,t){return e[0]=Math.abs(t[0]),e[1]=Math.abs(t[1]),e[2]=Math.abs(t[2]),e}function f(e,t){return e[0]=Math.sign(t[0]),e[1]=Math.sign(t[1]),e[2]=Math.sign(t[2]),e}function d(e,t,r){return e[0]=Math.min(t[0],r[0]),e[1]=Math.min(t[1],r[1]),e[2]=Math.min(t[2],r[2]),e}function g(e,t,r){return e[0]=Math.max(t[0],r[0]),e[1]=Math.max(t[1],r[1]),e[2]=Math.max(t[2],r[2]),e}function y(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e}function m(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e}function _(e,t){const r=t[0]-e[0],n=t[1]-e[1],s=t[2]-e[2];return Math.sqrt(r*r+n*n+s*s)}function b(e,t){const r=t[0]-e[0],n=t[1]-e[1],s=t[2]-e[2];return r*r+n*n+s*s}function M(e){const t=e[0],r=e[1],n=e[2];return t*t+r*r+n*n}function v(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function w(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function S(e,t=e){const r=t[0],n=t[1],s=t[2];let i=r*r+n*n+s*s;return i>0&&(i=1/Math.sqrt(i),e[0]=t[0]*i,e[1]=t[1]*i,e[2]=t[2]*i),e}function T(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function x(e,t,r){const n=t[0],s=t[1],i=t[2],o=r[0],a=r[1],u=r[2];return e[0]=s*u-i*a,e[1]=i*o-n*u,e[2]=n*a-s*o,e}function k(e,t,r,n){const s=t[0],i=t[1],o=t[2];return e[0]=s+n*(r[0]-s),e[1]=i+n*(r[1]-i),e[2]=o+n*(r[2]-o),e}function I(e,t,r){const n=t[0],s=t[1],i=t[2];return e[0]=r[0]*n+r[4]*s+r[8]*i+r[12],e[1]=r[1]*n+r[5]*s+r[9]*i+r[13],e[2]=r[2]*n+r[6]*s+r[10]*i+r[14],e}function P(e,t,r){const n=t[0],s=t[1],i=t[2];return e[0]=n*r[0]+s*r[3]+i*r[6],e[1]=n*r[1]+s*r[4]+i*r[7],e[2]=n*r[2]+s*r[5]+i*r[8],e}function A(e,t,r){return V(e,t,r[0],r[1],r[2],r[3])}function V(e,t,r,n,s,i){const o=t[0],a=t[1],u=t[2],l=n*u-s*a,c=s*o-r*u,h=r*a-n*o,p=n*h-s*c,f=s*l-r*h,d=r*c-n*l,g=2*i;return e[0]=o+l*g+2*p,e[1]=a+c*g+2*f,e[2]=u+h*g+2*d,e}const C=(0,n.vt)(),F=(0,n.vt)();function R(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function N(e,t){if(e===t)return!0;const r=e[0],n=e[1],i=e[2],o=t[0],a=t[1],u=t[2],l=(0,s.FD)();return Math.abs(r-o)<=l*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(n-a)<=l*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(i-u)<=l*Math.max(1,Math.abs(i),Math.abs(u))}function O(e,t,r){const n=r[0]-t[0],s=r[1]-t[1],i=r[2]-t[2];let o=n*n+s*s+i*i;return o>0?(o=1/Math.sqrt(o),e[0]=n*o,e[1]=s*o,e[2]=i*o,e):(e[0]=0,e[1]=0,e[2]=0,e)}const q=l,Z=c,D=h,E=_,G=b,j=i,U=M;Object.freeze(Object.defineProperty({__proto__:null,abs:p,add:u,angle:function(e,t){S(C,e),S(F,t);const r=T(C,F);return r>1?0:r<-1?Math.PI:Math.acos(r)},bezier:function(e,t,r,n,s,i){const o=1-i,a=o*o,u=i*i,l=a*o,c=3*i*a,h=3*u*o,p=u*i;return e[0]=t[0]*l+r[0]*c+n[0]*h+s[0]*p,e[1]=t[1]*l+r[1]*c+n[1]*h+s[1]*p,e[2]=t[2]*l+r[2]*c+n[2]*h+s[2]*p,e},ceil:function(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e},clamp:function(e,t=0,r=1){return e[0]=Math.min(Math.max(e[0],t),r),e[1]=Math.min(Math.max(e[1],t),r),e[2]=Math.min(Math.max(e[2],t),r),e},copy:o,cross:x,crossAndNormalize:function(e,t,r){const n=t[0],s=t[1],i=t[2],o=r[0],a=r[1],u=r[2],l=s*u-i*a,c=i*o-n*u,h=n*a-s*o,p=Math.sqrt(l*l+c*c+h*h);return e[0]=l/p,e[1]=c/p,e[2]=h/p,e},direction:O,dist:E,distance:_,div:D,divide:h,dot:T,equals:N,exactEquals:R,floor:function(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e},hermite:function(e,t,r,n,s,i){const o=i*i,a=o*(2*i-3)+1,u=o*(i-2)+i,l=o*(i-1),c=o*(3-2*i);return e[0]=t[0]*a+r[0]*u+n[0]*l+s[0]*c,e[1]=t[1]*a+r[1]*u+n[1]*l+s[1]*c,e[2]=t[2]*a+r[2]*u+n[2]*l+s[2]*c,e},inverse:w,len:j,length:i,lerp:k,max:g,min:d,mul:Z,multiply:c,negate:v,normalize:S,random:function(e,t=1){const r=s.Ov,n=2*r()*Math.PI,i=2*r()-1,o=Math.sqrt(1-i*i)*t;return e[0]=Math.cos(n)*o,e[1]=Math.sin(n)*o,e[2]=i*t,e},rotateX:function(e,t,r,n){const s=[],i=[];return s[0]=t[0]-r[0],s[1]=t[1]-r[1],s[2]=t[2]-r[2],i[0]=s[0],i[1]=s[1]*Math.cos(n)-s[2]*Math.sin(n),i[2]=s[1]*Math.sin(n)+s[2]*Math.cos(n),e[0]=i[0]+r[0],e[1]=i[1]+r[1],e[2]=i[2]+r[2],e},rotateY:function(e,t,r,n){const s=[],i=[];return s[0]=t[0]-r[0],s[1]=t[1]-r[1],s[2]=t[2]-r[2],i[0]=s[2]*Math.sin(n)+s[0]*Math.cos(n),i[1]=s[1],i[2]=s[2]*Math.cos(n)-s[0]*Math.sin(n),e[0]=i[0]+r[0],e[1]=i[1]+r[1],e[2]=i[2]+r[2],e},rotateZ:function(e,t,r,n){const s=[],i=[];return s[0]=t[0]-r[0],s[1]=t[1]-r[1],s[2]=t[2]-r[2],i[0]=s[0]*Math.cos(n)-s[1]*Math.sin(n),i[1]=s[0]*Math.sin(n)+s[1]*Math.cos(n),i[2]=s[2],e[0]=i[0]+r[0],e[1]=i[1]+r[1],e[2]=i[2]+r[2],e},round:function(e,t){return e[0]=Math.round(t[0]),e[1]=Math.round(t[1]),e[2]=Math.round(t[2]),e},scale:y,scaleAndAdd:m,scaleTo:function(e,t){return y(e,e,t/j(e))},set:a,sign:f,sqrDist:G,sqrLen:U,squaredDistance:b,squaredLength:M,str:function(e){return"vec3("+e[0]+", "+e[1]+", "+e[2]+")"},sub:q,subtract:l,transformMat3:P,transformMat4:I,transformMat4Z:function(e,t){return t[2]*e[0]+t[6]*e[1]+t[10]*e[2]+t[14]},transformQuat:A,transformQuatValues:V},Symbol.toStringTag,{value:"Module"})),r.d(t,["Il",0,j,"jb",0,q,"lo",0,G,"uE",0,U])},69397(e,t,r){r.d(t,{Qf:()=>a,Qh:()=>i,lM:()=>s});var n=r(34275);function s(e){if(!e)return 0;let t=l;for(const r in e)e.hasOwnProperty(r)&&(t+=o(e[r],!1));return t}function i(e){if(!e)return 0;if("number"==typeof e[0])return a(e);if(Array.isArray(e))return function(e){const t=e.length;if(0===t||"number"==typeof e[0])return u(e,8);let r=c;for(let n=0;n<t;n++)r+=o(e[n]);return r}(e);let t=l;for(const r in e)e.hasOwnProperty(r)&&(t+=o(e[r]));return t}function o(e,t=!0){switch(typeof e){case"object":return t?i(e):l;case"string":return function(e){return 32+e.length}(e);case"number":return 16;case"boolean":return 4;default:return 8}}function a(...e){return e.reduce((e,t)=>e+(t?(0,n.iu)(t)?t.byteLength+h:Array.isArray(t)?u(t,16):0:0),0)}function u(e,t){return c+e.length*t}const l=32,c=16,h=145},51624(e,t,r){r.d(t,{A:()=>l});var n=r(44208),s=r(69397),i=r(93687);const o=4294967296,a=new TextDecoder("utf-8"),u=(0,n.A)("safari")||(0,n.A)("ios")?6:(0,n.A)("ff")?12:32;class l{constructor(e,t,r=0,n=e?.byteLength??0){this._tag=0,this._dataType=99,this._init(e,t,r,n)}[Symbol.dispose](){this.release()}_init(e,t,r,n){this._data=e,this._dataView=t,this._pos=r,this._end=n}get usedMemory(){return 64+(0,s.Qf)(this._data)}asUnsafe(){return this}clone(){return new l(this._data,this._dataView,this._pos,this._end)}clonePooled(){return l.constructPooled(this._data,this._dataView,this._pos,this._end)}static constructPooled(e,t,r=0,n=e?.byteLength??0){const s=l.pool.acquire();return s._init(e,t,r,n),s}pos(){return this._pos}move(e){this._pos=e}nextTag(e){for(;;){if(this._pos===this._end)return!1;const t=this._decodeVarint();if(this._tag=t>>3,this._dataType=7&t,!e||e===this._tag)break;this.skip()}return!0}next(){if(this._pos===this._end)return!1;const e=this._decodeVarint();return this._tag=e>>3,this._dataType=7&e,!0}empty(){return this._pos>=this._end}tag(){return this._tag}getInt32(){return this._decodeVarint()}getInt64(){return this._decodeVarint()}getUInt32(){let e=4294967295;if(e=(127&this._data[this._pos])>>>0,this._data[this._pos++]<128)return e;if(e=(e|(127&this._data[this._pos])<<7)>>>0,this._data[this._pos++]<128)return e;if(e=(e|(127&this._data[this._pos])<<14)>>>0,this._data[this._pos++]<128)return e;if(e=(e|(127&this._data[this._pos])<<21)>>>0,this._data[this._pos++]<128)return e;if(e=(e|(15&this._data[this._pos])<<28)>>>0,this._data[this._pos++]<128)return e;throw new Error("Varint overflow")}getPackedEnd(){const e=this.getUInt32();return this._pos+e}getUInt64(){return this._decodeVarint()}getSInt32(){const e=this.getUInt32();return e>>>1^-(1&e)}getSInt64(){return this._decodeSVarint()}getBool(){const e=0!==this._data[this._pos];return this._skip(1),e}getEnum(){return this._decodeVarint()}getFixed64(){const e=this._dataView,t=this._pos,r=e.getUint32(t,!0)+e.getUint32(t+4,!0)*o;return this._skip(8),r}getSFixed64(){const e=this._dataView,t=this._pos,r=e.getUint32(t,!0)+e.getInt32(t+4,!0)*o;return this._skip(8),r}getDouble(){const e=this._dataView.getFloat64(this._pos,!0);return this._skip(8),e}getFixed32(){const e=this._dataView.getUint32(this._pos,!0);return this._skip(4),e}getSFixed32(){const e=this._dataView.getInt32(this._pos,!0);return this._skip(4),e}getFloat(){const e=this._dataView.getFloat32(this._pos,!0);return this._skip(4),e}getString(){const e=this._getLength(),t=this._pos,r=this._toString(this._data,t,t+e);return this._skip(e),r}getBytes(){const e=this._getLength(),t=this._pos,r=this._toBytes(this._data,t,t+e);return this._skip(e),r}getLength(){return this._getLengthUnsafe()}processMessageWithArgs(e,t,r,n){const s=this.getMessage(),i=e(s,t,r,n);return s.release(),i}processMessage(e){const t=this.getMessage(),r=e(t);return t.release(),r}getMessage(){const e=this._getLength(),t=l.pool.acquire();return t._init(this._data,this._dataView,this._pos,this._pos+e),this._skip(e),t}release(){l.pool.release(this)}dataType(){return this._dataType}skip(){switch(this._dataType){case 0:this._decodeVarint();break;case 1:this._skip(8);break;case 2:this._skip(this._getLength());break;case 5:this._skip(4);break;default:throw new Error("Invalid data type!")}}skipToEnd(){for(;this.next();)this.skip()}skipLen(e){this._skip(e)}_skip(e){if(this._pos+e>this._end)throw new Error("Attempt to skip past the end of buffer!");this._pos+=e}_decodeVarint(){const e=this._data;let t=this._pos,r=0,n=0;if(this._end-t>=10)do{if(n=e[t++],r|=127&n,!(128&n))break;if(n=e[t++],r|=(127&n)<<7,!(128&n))break;if(n=e[t++],r|=(127&n)<<14,!(128&n))break;if(n=e[t++],r|=(127&n)<<21,!(128&n))break;if(n=e[t++],r+=268435456*(127&n),!(128&n))break;if(n=e[t++],r+=34359738368*(127&n),!(128&n))break;if(n=e[t++],r+=4398046511104*(127&n),!(128&n))break;if(n=e[t++],r+=562949953421312*(127&n),!(128&n))break;if(n=e[t++],r+=72057594037927940*(127&n),!(128&n))break;if(n=e[t++],r+=0x8000000000000000*(127&n),!(128&n))break;throw new Error("Varint too long!")}while(0);else{let s=1;for(;t!==this._end&&(n=e[t],128&n);)++t,r+=(127&n)*s,s*=128;if(t===this._end)throw new Error("Varint overrun!");++t,r+=n*s}return this._pos=t,r}_decodeSVarint(){const e=this._data;let t,r=0,n=0;const s=1&e[this._pos];if(n=e[this._pos++],r|=127&n,!(128&n))return s?-(r+1)/2:r/2;if(n=e[this._pos++],r|=(127&n)<<7,!(128&n))return s?-(r+1)/2:r/2;if(n=e[this._pos++],r|=(127&n)<<14,!(128&n))return s?-(r+1)/2:r/2;if(n=e[this._pos++],r|=(127&n)<<21,!(128&n))return s?-(r+1)/2:r/2;if(n=e[this._pos++],r+=268435456*(127&n),!(128&n))return s?-(r+1)/2:r/2;if(n=e[this._pos++],r+=34359738368*(127&n),!(128&n))return s?-(r+1)/2:r/2;if(n=e[this._pos++],r+=4398046511104*(127&n),!(128&n))return s?-(r+1)/2:r/2;if(t=BigInt(r),n=e[this._pos++],t+=0x2000000000000n*BigInt(127&n),!(128&n))return Number(s?-(t+1n)/2n:t/2n);if(n=e[this._pos++],t+=0x100000000000000n*BigInt(127&n),!(128&n))return Number(s?-(t+1n)/2n:t/2n);if(n=e[this._pos++],t+=0x8000000000000000n*BigInt(127&n),!(128&n))return Number(s?-(t+1n)/2n:t/2n);throw new Error("Varint too long!")}_getLength(){if(2!==this._dataType)throw new Error("Not a delimited data type!");return this._decodeVarint()}_getLengthUnsafe(){return this.getUInt32()}_toString(e,t,r){if((r=Math.min(this._end,r))-t>u){const n=e.subarray(t,r);return a.decode(n)}let n="",s="";for(let i=t;i<r;++i){const t=e[i];128&t?s+="%"+t.toString(16):(n+=decodeURIComponent(s)+String.fromCharCode(t),s="")}return s.length&&(n+=decodeURIComponent(s)),n}_toBytes(e,t,r){return r=Math.min(this._end,r),new Uint8Array(e.buffer,t,r-t)}static{this.pool=new i.A(()=>new l(null,null),void 0,e=>{e._data=null,e._dataView=null})}}},48526(e,t,r){r.d(t,{A:()=>y});var n,s=r(32198),i=r(4576),o=r(4718),a=r(91429),u=r(5443),l=r(91075),c=r(86738),h=r(16930),p=r(90634),f=r(47610),d=r(56993),g=r(43937);let y=n=class extends l.A{constructor(e){super(function(e){if(!e)return;let{points:t,hasM:r,hasZ:n,spatialReference:s}=e;switch(t??=[],t?.at(0)?.length){case 4:n??=!0,r??=!0;break;case 3:n??=!0!==r,r??=!n;break;default:n??=!1,r??=!1}return s??=h.A.WGS84,{...e,hasM:r,hasZ:n,points:t,spatialReference:s}}(e)),this.points=[],this.type="multipoint"}get cache(){return this.commitProperty("points"),this.commitProperty("hasZ"),this.commitProperty("hasM"),this.commitProperty("spatialReference"),{}}get extent(){const e=(0,p.ge)(this);return e?new u.A({...e,spatialReference:this.spatialReference}):null}writePoints(e,t){t.points=(0,o.o8)(this.points)}clone(){const{points:e,spatialReference:t,hasM:r,hasZ:s}=this;return new n({points:(0,o.o8)(e),spatialReference:t.clone(),hasM:r,hasZ:s})}equals(e){if(this===e)return!0;if(null==e)return!1;const t=this.spatialReference,r=e.spatialReference;return null!=t==(null!=r)&&!(null!=t&&null!=r&&!t.equals(r))&&(0,i.aI)(this.points,e.points,f.v6)}addPoint(e){return(0,d.h)(this,e),Array.isArray(e)?this.points.push(e):this.points.push(e.toArray()),this.notifyChange("points"),this}getPoint(e){if(!this._validateInputs(e))return null;const t=this.points[e],r={x:t[0],y:t[1],spatialReference:this.spatialReference};let n=2;return this.hasZ&&(r.z=t[2],n=3),this.hasM&&(r.m=t[n]),new c.A(r)}removePoint(e){if(!this._validateInputs(e))return null;const t=new c.A(this.points.splice(e,1)[0],this.spatialReference);return this.notifyChange("points"),t}setPoint(e,t){return this._validateInputs(e)?((0,d.h)(this,t),Array.isArray(t)||(t=t.toArray()),this.points[e]=t,this.notifyChange("points"),this):this}toJSON(e){return this.write({},e)}_validateInputs(e){return null!=e&&e>=0&&e<this.points.length}};(0,s.Cg)([(0,a.MZ)({readOnly:!0})],y.prototype,"cache",null),(0,s.Cg)([(0,a.MZ)({readOnly:!0})],y.prototype,"extent",null),(0,s.Cg)([(0,a.MZ)({type:[[Number]],json:{write:{isRequired:!0}}})],y.prototype,"points",void 0),(0,s.Cg)([(0,g.K)("points")],y.prototype,"writePoints",null),y=n=(0,s.Cg)([(0,a.$K)("esri.geometry.Multipoint")],y),y.prototype.toJSON.isDefaultToJSON=!0},82799(e,t,r){r.d(t,{A:()=>d});var n,s=r(32198),i=r(4718),o=r(91429),a=r(5443),u=r(91075),l=r(86738),c=r(16930),h=r(90634),p=r(56993),f=r(43937);let d=n=class extends u.A{constructor(e){super(function(e){if(!e)return;let{paths:t,hasM:r,hasZ:n,spatialReference:s}=e;switch(t??=[],function(e){return"number"==typeof e[0]?.[0]}(t)&&(t=[t]),t[0]?.[0]?.length){case 4:n??=!0,r??=!0;break;case 3:n??=!0!==r,r??=!n;break;default:n??=!1,r??=!1}return s??=c.A.WGS84,{...e,hasM:r,hasZ:n,paths:t,spatialReference:s}}(e)),this.curvePaths=void 0,this.paths=[],this.type="polyline"}get cache(){return this.commitProperty("curvePaths"),this.commitProperty("hasM"),this.commitProperty("hasZ"),this.commitProperty("paths"),this.commitProperty("spatialReference"),{}}writeCurvePaths(e,t){t.curvePaths=(0,i.o8)(e)}get extent(){const e=(0,h.Z3)(this),{spatialReference:t}=this;return e?new a.A({...e,spatialReference:t}):null}writePaths(e,t){t.paths=(0,i.o8)(this.paths)}addPath(e){if(!e)return;const t=this.paths,r=t.length;if(function(e){return!Array.isArray(e[0])}(e)){const n=[];for(let t=0,r=e.length;t<r;t++)n[t]=e[t].toArray();t[r]=n}else t[r]=e.slice();return this.notifyChange("paths"),this}clone(){const e=new n;return e.spatialReference=this.spatialReference,e.paths=(0,i.o8)(this.paths),e.curvePaths=(0,i.o8)(this.curvePaths),e.hasZ=this.hasZ,e.hasM=this.hasM,e}getPoint(e,t){if(!this._validateInputs(e,t))return null;const r=this.paths[e][t],n=this.hasZ,s=this.hasM;return n&&!s?new l.A(r[0],r[1],r[2],void 0,this.spatialReference):s&&!n?new l.A(r[0],r[1],void 0,r[2],this.spatialReference):n&&s?new l.A(r[0],r[1],r[2],r[3],this.spatialReference):new l.A(r[0],r[1],this.spatialReference)}insertPoint(e,t,r){return this._validateInputs(e,t,!0)?((0,p.h)(this,r),Array.isArray(r)||(r=r.toArray()),this.paths[e].splice(t,0,r),this.notifyChange("paths"),this):this}removePath(e){if(!this._validateInputs(e,null))return null;const t=this.paths.splice(e,1)[0],r=this.spatialReference,n=t.map(e=>new l.A(e,r));return this.notifyChange("paths"),n}removePoint(e,t){if(!this._validateInputs(e,t))return null;const r=new l.A(this.paths[e].splice(t,1)[0],this.spatialReference);return this.notifyChange("paths"),r}setPoint(e,t,r){return this._validateInputs(e,t)?((0,p.h)(this,r),Array.isArray(r)||(r=r.toArray()),this.paths[e][t]=r,this.notifyChange("paths"),this):this}_validateInputs(e,t,r=!1){if(null==e||e<0||e>=this.paths.length)return!1;if(null!=t){const n=this.paths[e];if(r&&(t<0||t>n.length))return!1;if(!r&&(t<0||t>=n.length))return!1}return!0}toJSON(e){return this.write({},e)}};(0,s.Cg)([(0,o.MZ)({readOnly:!0})],d.prototype,"cache",null),(0,s.Cg)([(0,o.MZ)({json:{write:!0,origins:{"portal-item":{write:!1},"web-map":{write:!1},"web-scene":{write:!1}}}})],d.prototype,"curvePaths",void 0),(0,s.Cg)([(0,f.K)("curvePaths")],d.prototype,"writeCurvePaths",null),(0,s.Cg)([(0,o.MZ)({readOnly:!0})],d.prototype,"extent",null),(0,s.Cg)([(0,o.MZ)({type:[[[Number]]],json:{write:{isRequired:!0}}})],d.prototype,"paths",void 0),(0,s.Cg)([(0,f.K)("paths")],d.prototype,"writePaths",null),d=n=(0,s.Cg)([(0,o.$K)("esri.geometry.Polyline")],d),d.prototype.toJSON.isDefaultToJSON=!0},4197(e,t,r){r.d(t,{Vj:()=>c,cj:()=>l,jh:()=>i,l5:()=>a,yH:()=>u});var n=r(34275),s=r(9093);function i(e){return e<=1024?new Array(e).fill(0):new Float64Array(e)}function o(e){return((0,n.iu)(e)?e.byteLength/8:e.length)<=1024?Array.from(e):new Float64Array(e)}function a(e,t,r){return Array.isArray(e)?e.slice(t,t+r):e.subarray(t,t+r)}function u(e,t){if(0===t.length)return o(e);if(0===e.length)return o(t);const r=i(e.length+t.length);for(let t=0;t<e.length;++t)r[t]=e[t];for(let n=0;n<t.length;++n)r[e.length+n]=t[n];return r}function l(e){return[...e]}function c(e){const t=(0,s.vt)();for(let r=0;r<16;++r)t[r]=e[r];return t}},70328(e,t,r){r.d(t,{BI:()=>I,C:()=>o,DC:()=>p,Ej:()=>b,Ie:()=>x,Jt:()=>k,Lu:()=>v,Ne:()=>w,RF:()=>h,TF:()=>m,VL:()=>d,aI:()=>A,fA:()=>a,gE:()=>l,gX:()=>_,hZ:()=>T,iT:()=>f,is:()=>P,pg:()=>M,uJ:()=>y,vI:()=>S,vY:()=>u,vt:()=>i,w1:()=>c,yr:()=>g}),r(35522);var n=r(5443),s=(r(19419),r(4197));function i(e=C){return[e[0],e[1],e[2],e[3],e[4],e[5]]}function o(e,t){for(let r=0;r<6;r++)e[r]=t[r];return e}function a(e,t,r,n,s,o,a=i()){return a[0]=e,a[1]=t,a[2]=r,a[3]=n,a[4]=s,a[5]=o,a}function u(e,t=i()){return function(e,t,r,n=i()){return T(n,V),function(e,t,r=0,n=t.length/3){let s=e[0],i=e[1],o=e[2],a=e[3],u=e[4],l=e[5];for(let e=0;e<n;e++)s=Math.min(s,t[r+3*e]),i=Math.min(i,t[r+3*e+1]),o=Math.min(o,t[r+3*e+2]),a=Math.max(a,t[r+3*e]),u=Math.max(u,t[r+3*e+1]),l=Math.max(l,t[r+3*e+2]);e[0]=s,e[1]=i,e[2]=o,e[3]=a,e[4]=u,e[5]=l}(n,e,t,r),n}(e,0,e.length/3,t)}function l(e,t=(0,s.jh)(24)){const[r,n,i,o,a,u]=e;return t[0]=r,t[1]=n,t[2]=i,t[3]=r,t[4]=n,t[5]=u,t[6]=r,t[7]=a,t[8]=i,t[9]=r,t[10]=a,t[11]=u,t[12]=o,t[13]=n,t[14]=i,t[15]=o,t[16]=n,t[17]=u,t[18]=o,t[19]=a,t[20]=i,t[21]=o,t[22]=a,t[23]=u,t}function c(e,t){const r=isFinite(e[2])||isFinite(e[5]);return new n.A(r?{xmin:e[0],xmax:e[3],ymin:e[1],ymax:e[4],zmin:e[2],zmax:e[5],spatialReference:t}:{xmin:e[0],xmax:e[3],ymin:e[1],ymax:e[4],spatialReference:t})}function h(e,t,r=e){r[0]=Math.min(e[0],t[0]),r[1]=Math.min(e[1],t[1]),r[2]=Math.min(e[2],t[2]),r[3]=Math.max(e[3],t[3]),r[4]=Math.max(e[4],t[4]),r[5]=Math.max(e[5],t[5])}function p(e,t){e[0]=Math.min(e[0],t[0]),e[1]=Math.min(e[1],t[1]),e[3]=Math.max(e[3],t[2]),e[4]=Math.max(e[4],t[3])}function f(e,[t,r,n]){!function(e,t,r,n){e[0]=Math.min(e[0],t),e[1]=Math.min(e[1],r),e[2]=Math.min(e[2],n),e[3]=Math.max(e[3],t),e[4]=Math.max(e[4],r),e[5]=Math.max(e[5],n)}(e,t,r,n)}function d(e){return e[0]>=e[3]?0:e[3]-e[0]}function g(e){return e[1]>=e[4]?0:e[4]-e[1]}function y(e){return e[2]>=e[5]?0:e[5]-e[2]}function m(e){const t=d(e),r=y(e),n=g(e);return t*t+r*r+n*n}function _(e,t=[0,0,0]){return t[0]=e[0]+d(e)/2,t[1]=e[1]+g(e)/2,t[2]=e[2]+y(e)/2,t}function b(e,t=[0,0,0]){return t[0]=d(e),t[1]=g(e),t[2]=y(e),t}function M(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function v(e,t){return t[0]=e[3],t[1]=e[4],t[2]=e[5],t}function w(e,t,r=e){return r[0]=t[0],r[1]=t[1],r[2]=t[2],r!==e&&(r[3]=e[3],r[4]=e[4],r[5]=e[5]),r}function S(e,t,r=e){return r[3]=t[0],r[4]=t[1],r[5]=t[2],r!==e&&(r[0]=e[0],r[1]=e[1],r[2]=e[2]),e}function T(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function x(e){return e?T(e,V):i(V)}function k(e,t){return e[0]=t[0],e[1]=t[1],e[2]=Number.NEGATIVE_INFINITY,e[3]=t[2],e[4]=t[3],e[5]=Number.POSITIVE_INFINITY,e}function I(e,t,r,n,s){return e[0]=t,e[1]=r,e[2]=Number.NEGATIVE_INFINITY,e[3]=n,e[4]=s,e[5]=Number.POSITIVE_INFINITY,e}function P(e){return 6===e.length}function A(e,t,r){if(null==e||null==t)return e===t;if(!P(e)||!P(t))return!1;if(r){for(let n=0;n<e.length;n++)if(!r(e[n],t[n]))return!1}else for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}const V=[1/0,1/0,1/0,-1/0,-1/0,-1/0],C=[0,0,0,0,0,0];i(),r.d(t,["qv",0,V,"v_",0,C])},52006(e,t,r){function n(e){return"curveRings"in e&&!!e.curveRings?.length||"curvePaths"in e&&!!e.curvePaths?.length}function s(e){return"curveRings"in e?e.curveRings:e.curvePaths}function i(e){return"b"in e}function o(e){return"c"in e}function a(e){return Array.isArray(e)}function u(e){return"a"in e}function l(e){return"a"in e&&4===e.a.length}function c(e){return"a"in e&&7===e.a.length}function h(e,t){return s(e).flat().some(e=>function(e,t){return!(a(e)||(i(e)?t.has("cubic-bezier"):o(e)?t.has("circular-arc"):!l(e)&&!c(e)||t.has("elliptic-arc")))}(e,t))}function p(e){return a(e)?e:i(e)?e.b[0]:o(e)?e.c[0]:e.a[0]}function f(e){if(i(e)){const[t,r,n]=e.b;return{b:[[...t],[...r],[...n]]}}if(o(e)){const[t,r]=e.c;return{c:[[...t],[...r]]}}if(a(e))return[...e];if(l(e)){const[t,r,n,s]=e.a;return{a:[[...t],[...r],n,s]}}if(c(e)){const[t,r,n,s,i,o,a]=e.a;return{a:[[...t],[...r],n,s,i,o,a]}}return e}r.d(t,{DA:()=>l,Ed:()=>n,FD:()=>s,FG:()=>u,V8:()=>h,Xq:()=>a,aO:()=>o,n1:()=>i,tk:()=>f,wY:()=>c,yP:()=>p}),r(4576)},50498(e,t,r){var n=r(66552),s=r(5443),i=r(91075),o=r(48526),a=r(86738),u=r(39829),l=r(82799);const c=(0,n.O)()({esriGeometryPoint:"point",esriGeometryMultipoint:"multipoint",esriGeometryPolyline:"polyline",esriGeometryPolygon:"polygon"}),h=(0,n.O)()({esriGeometryPoint:"point",esriGeometryMultipoint:"multipoint",esriGeometryPolyline:"polyline",esriGeometryPolygon:"polygon",esriGeometryEnvelope:"extent",mesh:"mesh"}),p={base:i.A,key:"type",typeMap:{extent:s.A,multipoint:o.A,point:a.A,polyline:l.A,polygon:u.A}},f=new n.J({esriGeometryBezier3Curve:"cubic-bezier",esriGeometryCircularArc:"circular-arc",esriGeometryEllipticArc:"elliptic-arc"},{ignoreUnknown:!0});r.d(t,["Ye",0,h,"gy",0,c,"iI",0,f,"yR",0,p])},62815(e,t,r){r.d(t,{N:()=>a,d:()=>u});var n=r(86211),s=r(73941),i=r(21325),o=r(52006);function a(e,t,r){const n=u(t,r);if(1!==n)switch(e){case"point":case"esriGeometryPoint":return e=>function(e,t){null!=e?.z&&(e.z*=t)}(e,n);case"polyline":case"esriGeometryPolyline":return e=>function(e,t){if(e){if(e.curvePaths)for(const r of e.curvePaths)for(const e of r){const r=(0,o.yP)(e);r.length>2&&(r[2]*=t)}if(e.paths)for(const r of e.paths)for(const e of r)e.length>2&&(e[2]*=t)}}(e,n);case"polygon":case"esriGeometryPolygon":return e=>function(e,t){if(e){if(e.curveRings)for(const r of e.curveRings)for(const e of r){const r=(0,o.yP)(e);r.length>2&&(r[2]*=t)}if(e.rings)for(const r of e.rings)for(const e of r)e.length>2&&(e[2]*=t)}}(e,n);case"multipoint":case"esriGeometryMultipoint":return e=>function(e,t){if(e)for(const r of e.points)r.length>2&&(r[2]*=t)}(e,n);case"extent":case"esriGeometryEnvelope":return e=>function(e,t){e&&null!=e.zmin&&null!=e.zmax&&(e.zmin*=t,e.zmax*=t)}(e,n);default:return}}function u(e,t){return null==e||null==t||(0,i.aI)(e,t)||(0,s.xP)(e)||(0,s.xP)(t)?1:(0,n.G9)(e)/(0,n.G9)(t)}},39357(e,t,r){r.d(t,{A:()=>a});var n,s=r(32198),i=r(25482),o=r(91429);let a=n=class extends i.o{constructor(e){super(e),this.name=null,this.code=null}clone(){return new n({name:this.name,code:this.code})}};(0,s.Cg)([(0,o.MZ)({type:String,json:{write:{isRequired:!0}}})],a.prototype,"name",void 0),(0,s.Cg)([(0,o.MZ)({type:[String,Number],json:{write:{isRequired:!0}}})],a.prototype,"code",void 0),a=n=(0,s.Cg)([(0,o.$K)("esri.layers.support.CodedValue")],a)},53177(e,t,r){r.d(t,{A:()=>c});var n,s=r(32198),i=r(4718),o=r(91429),a=r(39357),u=r(76357),l=r(93223);let c=class extends u.A{static{n=this}constructor(e){super(e),this.codedValues=null,this.type="coded-value"}getName(e){let t=null;if(this.codedValues){const r=String(e);this.codedValues.some(e=>(String(e.code)===r&&(t=e.name),!!t))}return t}clone(){return new n({codedValues:(0,i.o8)(this.codedValues),name:this.name})}};(0,s.Cg)([(0,o.MZ)({type:[a.A],json:{write:{isRequired:!0}}})],c.prototype,"codedValues",void 0),(0,s.Cg)([(0,l.e)({codedValue:"coded-value"})],c.prototype,"type",void 0),c=n=(0,s.Cg)([(0,o.$K)("esri.layers.support.CodedValueDomain")],c)},76357(e,t,r){r.d(t,{A:()=>l});var n=r(32198),s=r(66552),i=r(25482),o=r(91429),a=r(93223);const u=new s.J({inherited:"inherited",codedValue:"coded-value",range:"range"});let l=class extends i.o{constructor(e){super(e),this.name=null,this.type=null}};(0,n.Cg)([(0,o.MZ)({type:String,json:{write:!0}})],l.prototype,"name",void 0),(0,n.Cg)([(0,a.e)(u),(0,o.MZ)({json:{write:{isRequired:!0}}})],l.prototype,"type",void 0),l=(0,n.Cg)([(0,o.$K)("esri.layers.support.Domain")],l)},20437(e,t,r){r.d(t,{A:()=>d});var n,s=r(32198),i=r(66552),o=r(25482),a=r(91429),u=r(78888),l=r(8631),c=r(98453),h=r(36005),p=r(93223);const f=new i.J({binary:"binary",coordinate:"coordinate",countOrAmount:"count-or-amount",currency:"currency",dateAndTime:"date-and-time",description:"description",emailAddress:"email-address",locationOrPlaceName:"location-or-place-name",marginOfError:"margin-of-error",measurement:"measurement",nameOrTitle:"name-or-title",none:"none",orderedOrRanked:"ordered-or-ranked",percentageOrRatio:"percentage-or-ratio",phoneNumber:"phone-number",typeOrCategory:"type-or-category",uniqueIdentifier:"unique-identifier",url:"url"});let d=class extends o.o{static{n=this}constructor(e){super(e),this.alias=null,this.defaultValue=void 0,this.description=null,this.domain=null,this.editable=!0,this.length=void 0,this.name=null,this.nullable=!0,this.type=null,this.valueType=null,this.visible=!0}readDescription(e,{description:t}){let r=null;try{r=t?JSON.parse(t):null}catch(e){}return r?.value??null}readValueType(e,{description:t}){let r=null;try{r=t?JSON.parse(t):null}catch(e){}return r?f.fromJSON(r.fieldValueType):null}clone(){return new n({alias:this.alias,defaultValue:this.defaultValue,description:this.description,domain:this.domain?.clone()??null,editable:this.editable,length:this.length,name:this.name,nullable:this.nullable,type:this.type,valueType:this.valueType,visible:this.visible})}};(0,s.Cg)([(0,a.MZ)({type:String,json:{write:!0}})],d.prototype,"alias",void 0),(0,s.Cg)([(0,a.MZ)({type:[String,Number],json:{write:{allowNull:!0}}})],d.prototype,"defaultValue",void 0),(0,s.Cg)([(0,a.MZ)()],d.prototype,"description",void 0),(0,s.Cg)([(0,h.w)("description")],d.prototype,"readDescription",null),(0,s.Cg)([(0,a.MZ)({types:l.g,json:{read:{reader:l.r},write:!0}})],d.prototype,"domain",void 0),(0,s.Cg)([(0,a.MZ)({type:Boolean,json:{write:!0}})],d.prototype,"editable",void 0),(0,s.Cg)([(0,a.MZ)({type:u.jz,json:{write:{overridePolicy:e=>({enabled:Number.isFinite(e)})}}})],d.prototype,"length",void 0),(0,s.Cg)([(0,a.MZ)({type:String,json:{write:!0}})],d.prototype,"name",void 0),(0,s.Cg)([(0,a.MZ)({type:Boolean,json:{write:!0}})],d.prototype,"nullable",void 0),(0,s.Cg)([(0,p.e)(c.m)],d.prototype,"type",void 0),(0,s.Cg)([(0,a.MZ)()],d.prototype,"valueType",void 0),(0,s.Cg)([(0,h.w)("valueType",["description"])],d.prototype,"readValueType",null),(0,s.Cg)([(0,a.MZ)({type:Boolean,json:{read:!1}})],d.prototype,"visible",void 0),d=n=(0,s.Cg)([(0,a.$K)("esri.layers.support.Field")],d)},41628(e,t,r){r.d(t,{A:()=>u});var n,s=r(32198),i=r(91429),o=r(76357),a=r(93223);let u=class extends o.A{static{n=this}constructor(e){super(e),this.maxValue=null,this.minValue=null,this.type="range"}clone(){return new n({maxValue:this.maxValue,minValue:this.minValue,name:this.name})}};(0,s.Cg)([(0,i.MZ)({json:{type:[Number],read:{source:"range",reader:(e,t)=>t.range?.[1]},write:{enabled:!1,overridePolicy(){return{enabled:null!=this.maxValue&&null==this.minValue}},target:"range",writer(e,t,r){t[r]=[this.minValue||0,e]},isRequired:!0}}})],u.prototype,"maxValue",void 0),(0,s.Cg)([(0,i.MZ)({json:{type:[Number],read:{source:"range",reader:(e,t)=>t.range?.[0]},write:{target:"range",writer(e,t,r){t[r]=[e,this.maxValue||0]},isRequired:!0}}})],u.prototype,"minValue",void 0),(0,s.Cg)([(0,a.e)({range:"range"})],u.prototype,"type",void 0),u=n=(0,s.Cg)([(0,i.$K)("esri.layers.support.RangeDomain")],u)},8631(e,t,r){r.d(t,{r:()=>p,g:()=>h});var n,s=r(53177),i=r(76357),o=r(32198),a=r(91429),u=r(93223);let l=class extends i.A{static{n=this}constructor(e){super(e),this.type="inherited"}clone(){return new n}};(0,o.Cg)([(0,u.e)({inherited:"inherited"})],l.prototype,"type",void 0),l=n=(0,o.Cg)([(0,a.$K)("esri.layers.support.InheritedDomain")],l);var c=r(41628);const h={key:"type",base:i.A,typeMap:{range:c.A,"coded-value":s.A,inherited:l}};function p(e){if(!e?.type)return null;switch(e.type){case"range":return c.A.fromJSON(e);case"codedValue":return s.A.fromJSON(e);case"inherited":return l.fromJSON(e)}return null}},98453(e,t,r){const n=new(r(66552).J)({esriFieldTypeSmallInteger:"small-integer",esriFieldTypeInteger:"integer",esriFieldTypeSingle:"single",esriFieldTypeDouble:"double",esriFieldTypeLong:"long",esriFieldTypeString:"string",esriFieldTypeDate:"date",esriFieldTypeOID:"oid",esriFieldTypeGeometry:"geometry",esriFieldTypeBlob:"blob",esriFieldTypeRaster:"raster",esriFieldTypeGUID:"guid",esriFieldTypeGlobalID:"global-id",esriFieldTypeXML:"xml",esriFieldTypeBigInteger:"big-integer",esriFieldTypeDateOnly:"date-only",esriFieldTypeTimeOnly:"time-only",esriFieldTypeTimestampOffset:"timestamp-offset"});r.d(t,["m",0,n])},53655(e,t,r){r.d(t,{SH:()=>R,ae:()=>P,cn:()=>g});var n=r(32198),s=r(49186),i=r(51624),o=r(50498);const a=["esriGeometryPoint","esriGeometryMultipoint","esriGeometryPolyline","esriGeometryPolygon"],u=["esriFieldTypeSmallInteger","esriFieldTypeInteger","esriFieldTypeSingle","esriFieldTypeDouble","esriFieldTypeString","esriFieldTypeDate","esriFieldTypeOID","esriFieldTypeGeometry","esriFieldTypeBlob","esriFieldTypeRaster","esriFieldTypeGUID","esriFieldTypeGlobalID","esriFieldTypeXML","esriFieldTypeBigInteger","esriFieldTypeDateOnly","esriFieldTypeTimeOnly","esriFieldTypeTimestampOffset"],l=["sqlTypeBigInt","sqlTypeBinary","sqlTypeBit","sqlTypeChar","sqlTypeDate","sqlTypeDecimal","sqlTypeDouble","sqlTypeFloat","sqlTypeGeometry","sqlTypeGUID","sqlTypeInteger","sqlTypeLongNVarchar","sqlTypeLongVarbinary","sqlTypeLongVarchar","sqlTypeNChar","sqlTypeNVarchar","sqlTypeOther","sqlTypeReal","sqlTypeSmallInt","sqlTypeSqlXml","sqlTypeTime","sqlTypeTimestamp","sqlTypeTimestamp2","sqlTypeTinyInt","sqlTypeVarbinary","sqlTypeVarchar"],c=["upperLeft","lowerLeft"];function h(e,t){const r=e.getEnum();return r<t.length?t[r]:void 0}function p(e,t){e.featureSet.geometryType=e.usesShortGeometryTypes?o.gy.fromJSON(t):t}function f(e,t=e.featureSet.geometryType){return e.usesShortGeometryTypes?o.gy.toJSON(t):t}function d(e){const t=e.asUnsafe();for(;t.next();)switch(t.tag()){case 1:return t.getString();case 2:return t.getFloat();case 3:return t.getDouble();case 4:return t.getSInt32();case 5:return t.getUInt32();case 6:return t.getInt64();case 7:return t.getUInt64();case 8:return t.getSInt64();case 9:return t.getBool();default:return t.skip(),null}return null}function g(e){const t=e.asUnsafe(),r={type:u[0]};for(;t.next();)switch(t.tag()){case 1:r.name=t.getString();break;case 2:r.type=h(t,u);break;case 3:r.alias=t.getString();break;case 4:r.sqlType=h(t,l);break;case 5:default:t.skip();break;case 6:r.defaultValue=t.getString()}return r}function y(e){const t={},r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t.name=r.getString();break;case 2:t.isSystemMaintained=r.getBool();break;default:r.skip()}return t}let m=[];function _(e,t,r){let n=f(t),s=0;const i=e.asUnsafe();for(;i.next();)switch(i.tag()){case 1:1===r?n=f(t,h(i,a)):i.skip();continue;case 2:for(const e=i.getPackedEnd();i.pos()<e;)m[s++]=i.getUInt32();continue;case 3:s>0?(m.length=s,null!=t.geometry(r,n,m)&&(m=[])):t.geometry(r,n,[]);for(const e=i.getPackedEnd();i.pos()<e;)t.coord(i.getSInt64());continue;default:i.skip()}}function b(e,t){const r=[],n=e.asUnsafe();for(;n.next();)if(3!==n.tag())n.skip();else for(const e=n.getPackedEnd();n.pos()<e;)r.push(n.getSInt64());t.centroid(r)}let M=[],v=[],w=[];function S(e,t){const r={stack:[],error:void 0,hasError:!1};try{let s=0;const i=m;let o=0;const a=e.asUnsafe(),u=(0,n.mS)(r,a.clonePooled().asUnsafe(),!1);for(;a.next();)switch(a.tag()){case 2:for(const l=a.getPackedEnd();a.pos()<l;)i[s++]=a.getUInt32();continue;case 3:if(!("curvedGeometry"in t))throw new Error(`Tried to parse curved geometry in a ${t.constructor.name}, which doesn't support them.`);a.processMessageWithArgs(T,o++);continue;case 4:{const c=a.getUInt32(),h=a.pos()+c;if(0===o||0===s||0===c){a.move(h);continue}i.length=s,w.length=v.length=o,t.curvedGeometry(f(t),i,v,w);const{hasZ:p,hasM:d}=t.featureSet,g=[],y=[0,0];function _(){for(let e=0;e<y.length;++e)g[e]=y[e],y[e]=a.getSInt64()}p&&y.push(0),d&&y.push(0);const b=[0,0],S=[0,0],x=b,k=b;let I=0;for(let P=0;P<s;++P){_(),g.fill(0),t.startCurvedPart(y);for(const A=I+i[P];I<A;++I){const V=v[I],C=w[I];switch(V){case 0:for(let F=0;F<C;++F)_(),y[0]+=g[0],y[1]+=g[1],t.lineSegment(g,y);continue;case 1:for(let R=0;R<C;++R)_(),x[0]=a.getSInt64(),x[1]=a.getSInt64(),t.circularArcSegment(g,y,x);continue;case 2:for(let N=0;N<C;++N)_(),b[0]=a.getSInt64(),b[1]=a.getSInt64(),S[0]=a.getSInt64(),S[1]=a.getSInt64(),t.bezierSegment(g,y,b,S);continue;case 3:if(u.move(M[I]),u.getUInt32()<7*C)throw new Error("Not implemented: compressed full circle encoding");for(let O=0;O<C;++O){_(),k[0]=u.getDouble(),k[1]=u.getDouble();const q=u.getDouble(),Z=u.getDouble(),D=u.getDouble(),E=u.getDouble(),G=u.getDouble();t.ellipticArcSegment(g,y,k,q,Z,D,E,G)}continue}}t.finishCurvedPart(y)}continue}default:a.skip()}}catch(j){r.error=j,r.hasError=!0}finally{(0,n.hk)(r)}}function T(e,t){const r=e.asUnsafe();let n=0,s=0,i=0;for(;r.next();)switch(r.tag()){case 1:n=r.getEnum();continue;case 2:s=r.getUInt32();continue;case 3:i=r.pos(),r.skip();continue;default:r.skip()}if(3===n&&0===i)throw new Error("An elliptic arc segment set did not include a parameters array");v[t]=n,w[t]=s,M[t]=i}function x(e,t){t.feature();const r=t.featureSet.features.at(-1);let n=0;const{fields:s}=t.featureSet;for(;e.next();)switch(e.tag()){case 1:if(null==s)throw new Error("A Feature had attributes but the FeatureResult didn't include any fields");r.attributes[s[n++].name]=e.processMessage(d);continue;case 2:e.processMessageWithArgs(_,t,0);continue;case 4:e.processMessageWithArgs(b,t);continue;case 7:e.processMessageWithArgs(S,t);continue;case 11:r.distance=e.getDouble();continue;default:e.skip();continue}t.finishFeature?.()}function k(e){const t=[1,1,1,1],r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t[0]=r.getDouble();break;case 2:t[1]=r.getDouble();break;case 4:t[2]=r.getDouble();break;case 3:t[3]=r.getDouble();break;default:r.skip()}return t}function I(e){const t=[0,0,0,0],r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t[0]=r.getDouble();break;case 2:t[1]=r.getDouble();break;case 4:t[2]=r.getDouble();break;case 3:t[3]=r.getDouble();break;default:r.skip()}return t}function P(e){const t={originPosition:c[0]},r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t.originPosition=h(r,c);break;case 2:t.scale=r.processMessage(k);break;case 3:t.translate=r.processMessage(I);break;default:r.skip()}return t}function A(e){const t={},r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t.shapeAreaFieldName=r.getString();break;case 2:t.shapeLengthFieldName=r.getString();break;case 3:t.units=r.getString();break;default:r.skip()}return t}function V(e){const t={};for(;e.next();)switch(e.tag()){case 1:t.wkid=e.getUInt32();break;case 5:t.wkt=e.getString();break;case 2:t.latestWkid=e.getUInt32();break;case 3:t.vcsWkid=e.getUInt32();break;case 4:t.latestVcsWkid=e.getUInt32();break;default:e.skip()}return t}function C(e,t){const r=e.asUnsafe();if(t.featureSet.features.length=0,"features"===t.parseOnly?.type){const e=t.parseOnly.indices.values();let n=0,s=e.next().value;for(;r.next();)15===r.tag()&&n++===s?(s=e.next().value,r.processMessageWithArgs(x,t)):r.skip();return}let n=!1;for("metadata"===t.parseOnly?.type&&(n=!0,t.parseOnly.featureCount=0),p(t,"esriGeometryPoint");r.next();)switch(r.tag()){case 1:t.idField(r.getString());continue;case 3:t.featureSet.globalIdFieldName=r.getString();continue;case 4:t.featureSet.geohashFieldName=r.getString();continue;case 5:t.featureSet.geometryProperties=r.processMessage(A);continue;case 7:p(t,h(r,a));continue;case 8:t.featureSet.spatialReference=r.processMessageWithArgs(V);continue;case 10:t.featureSet.hasZ=r.getBool();continue;case 11:t.featureSet.hasM=r.getBool();continue;case 12:t.featureSet.transform=r.processMessage(P);continue;case 9:t.featureSet.exceededTransferLimit=r.getBool();continue;case 13:t.featureSet.fields??=[],t.featureSet.fields.push(r.processMessage(g));continue;case 15:if(n){++t.parseOnly.featureCount,r.skip();continue}r.processMessageWithArgs(x,t);continue;case 2:t.idField(r.processMessage(y));continue;default:r.skip()}}function F(e,t,r){let n=-1;for(;e.next();)switch(e.tag()){case 4:n=e.pos(),e.skip();continue;case 1:e.processMessageWithArgs(C,t);continue;default:e.skip()}if(-1!==n){if(!t.queryGeometry()){const r=e.pos();e.move(n),e.processMessageWithArgs(_,t,1),e.move(r)}r.queryGeometryType=t.queryGeometryType(),r.queryGeometry=t.queryGeometry()}t.finish(),r.featureResult=t.featureSet}function R(e,t){const r={stack:[],error:void 0,hasError:!1};try{(0,n.mS)(r,{[Symbol.dispose](){m=[],M=[],v=[],w=[]}},!1);try{const r={stack:[],error:void 0,hasError:!1};try{const s=(0,n.mS)(r,i.A.constructPooled(new Uint8Array(e),new DataView(e)),!1);let o;for(;s.next();)2===s.tag()?(o={},s.processMessageWithArgs(F,t,o)):s.skip();return o}catch(e){r.error=e,r.hasError=!0}finally{(0,n.hk)(r)}}catch(e){throw new s.A("query:parsing-pbf","Error while parsing FeatureSet PBF payload",{error:e})}}catch(e){r.error=e,r.hasError=!0}finally{(0,n.hk)(r)}}},63746(e,t,r){function n(e){return class{constructor(){for(const t of e)this[t]=null}}}function s(e,t=1){const{transform:r,hasZ:n,hasM:s}=e;if(null==r)return n&&1!==t?e=>{e[2]*=t}:null;const[i,o]=function(e,t,r,n){let{scale:s,translate:i,originPosition:o}=e;return"upperLeft"===o&&(s=s.map((e,t)=>1===t?-e:e)),t&&(s=s.map((e,t)=>2===t?e*n:e),i=i.map((e,t)=>2===t?e*n:e)),!t&&r&&(s=s.filter((e,t)=>2!==t),i=i.filter((e,t)=>2!==t)),[s,i]}(r,n,s,t),a=e.hasZ?3:2;return e=>{for(let t=0;t<e.length&&(t!==a||0!==e[t]);++t)e[t]=e[t]*i[t]+o[t]}}r.d(t,{M:()=>s,_:()=>n})},66208(e,t,r){r.d(t,{m:()=>s});var n=r(53655);function s(e,t){const{featureResult:r}=(0,n.SH)(e,t);return r}},39078(e,t,r){r.r(t),r.d(t,{default:()=>f});var n=r(24326),s=r(16930),i=r(62815),o=(r(70328),r(19419),r(50498),r(20437));r(44208),r(34727),r(21325);class a{constructor(e,t,r){this.uid=e,this.geometry=t,this.attributes=r,this.visible=!0,this.objectId=null,this.centroid=null}}class u{constructor(){this.exceededTransferLimit=!1,this.features=[],this.fields=[],this.hasM=!1,this.hasZ=!1,this.geometryType=null,this.objectIdFieldName=null,this.globalIdFieldName=null,this.geometryProperties=null,this.geohashFieldName=null,this.spatialReference=null,this.transform=null}}var l=r(63746);class c{constructor(e){this._options=e,this.featureSet=new u,this.usesShortGeometryTypes=!0,this._queryGeometryType=null,this._queryGeometry=null,this.parseOnly=null,this.missingAttributes=[],this._transformInPlace=null,this._attributesClass=null,this._previousX=0,this._previousY=0,this._point=null,this._lengths=null,this._vertex=[],this._part=null,this._parts=null,this._i=0,this._finishVertex=c._finishVertexNonPoint}queryGeometryType(){return this._queryGeometryType}queryGeometry(){return this._queryGeometry}idField(e){"string"==typeof e&&(this.featureSet.objectIdFieldName=e)}finish(){this._options.applyTransform&&(this.featureSet.transform=null);let{spatialReference:e,features:t,fields:r}=this.featureSet;if(!e||e instanceof s.A||(this.featureSet.spatialReference=e=s.A.fromJSON(e)),e)for(const{geometry:r}of t)r&&(r.spatialReference=e);r.forEach((e,t)=>{e instanceof o.A||(r[t]=o.A.fromJSON(e))})}_setVertexTransformer(){const{sourceSpatialReference:e}=this._options,{spatialReference:t,hasZ:r}=this.featureSet,n=r?(0,i.d)(e,t):1;this._transformInPlace??=(0,l.M)(this.featureSet,n)}feature(){this._attributesClass??=(0,l._)(this.featureSet.fields?.map(e=>e.name)??[]),this.featureSet.features.push(new a((0,n.c)(),null,new this._attributesClass)),this._options.applyTransform&&this._setVertexTransformer()}finishFeature(){const{maxStringAttributeLength:e,maxStringAttributeFields:t}=this._options,{attributes:r}=this.featureSet.features.at(-1),n=r[this.featureSet.objectIdFieldName];!function(e,t,r,n){if(t?.size&&null!=r&&e)for(const s in e){if(!t.has(s))continue;const i=e[s];"string"==typeof i&&i.length>r&&(n(s),e[s]="")}}(r,t,e,e=>{null!=n&&this.missingAttributes.push({objectId:n,attribute:e})})}_createPoint(){const{hasZ:e,hasM:t,spatialReference:r}=this.featureSet,n={type:"point",x:0,y:0,spatialReference:r,hasZ:e,hasM:t};return e&&(n.z=0),t&&(n.m=0),n}centroid(e){const{hasZ:t,hasM:r}=this.featureSet,n=this._createPoint();[n.x,n.y]=e,t&&(n.z=e[2]),r&&(n.m=e.at(-1)),this.featureSet.features.at(-1).centroid=n}geometry(e,t,r){this._previousX=this._previousY=0,this._lengths=r;let n,{spatialReference:s,hasZ:i,hasM:o}=this.featureSet;switch(i??=!1,o??=!1,this._vertex=[0,0],i&&this._vertex.push(0),o&&this._vertex.push(0),this._finishVertex=c._finishVertexNonPoint,t){case"esriGeometryPoint":this._point=this._createPoint(),n=this._point,this._finishVertex=i?o?c._finishVertexPointXYZM:c._finishVertexPointXYZ:o?c._finishVertexPointXYM:c._finishVertexPointXY;break;case"esriGeometryMultipoint":n={type:"multipoint",points:[],spatialReference:s,hasZ:i,hasM:o},this._part=n.points,this._parts=[];break;case"esriGeometryPolyline":n={type:"polyline",paths:[],spatialReference:s,hasZ:i,hasM:o},this._parts=n.paths,this._part=[];break;case"esriGeometryPolygon":n={type:"polygon",rings:[],spatialReference:s,hasZ:i,hasM:o},this._parts=n.rings,this._part=[]}1===e?(this._queryGeometry=n,this._queryGeometryType=t,this._options.applyTransform||this._setVertexTransformer()):this.featureSet.features.at(-1).geometry=n}coord(e){const t=this._vertex;t[this._i++]=e,this._i<t.length||(this._i=0,this._transformInPlace&&(t[0]+=this._previousX,t[1]+=this._previousY,[this._previousX,this._previousY]=t,this._transformInPlace(t)),this._finishVertex(this))}static _finishVertexPointXY({_point:e,_vertex:t}){[e.x,e.y]=t}static _finishVertexPointXYZ({_point:e,_vertex:t}){[e.x,e.y,e.z]=t}static _finishVertexPointXYM({_point:e,_vertex:t}){[e.x,e.y,e.m]=t}static _finishVertexPointXYZM({_point:e,_vertex:t}){[e.x,e.y,e.z,e.m]=t}static _finishVertexNonPoint(e){const{_part:t,_parts:r,_lengths:n,_vertex:s}=e;t.push([...s]),t.length<n[r.length]||(e._previousX=e._previousY=0,e._part=[],r.push(t))}}var h=r(66208);class p{_parseFeatureQuery(e){const t=new c(e.options),r=(0,h.m)(e.buffer,t),n={...r,spatialReference:r.spatialReference?.toJSON(),fields:r.fields?r.fields.map(e=>e.toJSON()):void 0,missingAttributes:t.missingAttributes};return Promise.resolve(n)}}function f(){return new p}}}]);
@@ -1 +1 @@
1
- "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[1003],{1003(e,t,s){s.r(t),s.d(t,{default:()=>pe});var i=s(49186),n=s(32198),a=s(91429),r=s(49859),o=s(68197),l=s(5443),c=s(16930),f=s(73444),u=s(94778),h=s(14140);function p(e){return["x","e","east","long","longitude"].includes(e.toLowerCase())}function d(e){return["y","n","west","lat","latitude"].includes(e.toLowerCase())}function m(e){const{axes:t}=e.domain,s=Object.keys(t),i=[],n=[];let a=-1,r=-1,o=[];for(let e=0;e<s.length;e++){const l=s[e];p(l)?a=e:d(l)&&(r=e);const c=t[l],f=[];if("values"in c){c.values.forEach(e=>f.push("string"==typeof e?new Date(e).getTime():e));const e=f[1]-f[0];i.push([f[0]-.5*e,f[f.length-1]+.5*e]),n.push(e)}else{const{start:e,stop:t,num:s}=c,a=(t-e)/(s-1);i.push([e-.5*a,t+.5*a]),n.push(a);for(let t=0;t<s;t++)f.push(e+a*t)}o.push({name:l,values:f,extent:[f[0],f[f.length-1]]})}a>-1&&-1===r?r=0===a?1:0:r>-1&&-1===a?a=0===r?1:0:-1===r&&-1===a&&(a=0,r=1),o=o.filter((e,t)=>!(t===a||t===r));const{referencing:f}=e.domain,u=f.find(e=>e.coordinates.includes(s[a])).system.id,h=u?.slice(u.lastIndexOf("/")+1),m=null==h||"CRS84"===h?4326:Number(h),g=new c.A({wkid:m}),[y,x]=i[a],[w,I]=i[r],b=new l.A({xmin:y,xmax:x,ymin:w,ymax:I,spatialReference:g});return{width:Math.round(b.width/n[a]),height:Math.round(b.height/n[r]),extent:b,dimensions:o}}function g(e){const t=(0,f.lR)();return t?e[t]??Object.values(e)[0]:Object.values(e)[0]}function y(){return Math.round(255*Math.random())}function x(e){const t={},{parameters:s}=e;if(!s)return t;for(const[e,i]of Object.entries(s)){const{type:s,description:n,unit:a,categoryEncoding:r,observedProperty:l}=i;if("Parameter"===s&&(t[e]={},n&&(t[e].description=g(n)),a&&(t[e].unit=a.label?g(a.label):null,t[e].symbol=a.symbol?.value),r)){const s=Object.entries(r).map((e,t)=>({OID:t,Value:Number(e[1]),ClassName:e[0].slice(e[0].lastIndexOf("/")+1),Count:1}));let i=!1;l?.categories?.length&&(l.categories.forEach(e=>{if(!e.id)return;const t=e.id.slice(e.id.lastIndexOf("/")+1),n=s.find(e=>e.ClassName===t);if(!n)return;const a=e.label?g(e.label):null;if(n.Label=a,e.preferredColor){const t=o.A.fromHex(e.preferredColor);t&&(i=!0,n.Red=t.r,n.Green=t.g,n.Blue=t.b)}}),i&&s.forEach(e=>{null==e.Red&&(e.Red=y(),e.Green=y(),e.Blue=y())}));const n={objectIdFieldName:"",fields:[{name:"OID",type:"esriFieldTypeOID",alias:"OID",domain:null},{name:"Value",type:"esriFieldTypeInteger",alias:"Value",domain:null},{name:"Count",type:"esriFieldTypeDouble",alias:"Count",domain:null},{name:"ClassName",type:"esriFieldTypeString",alias:"ClassName",domain:null,length:50},{name:"Label",type:"esriFieldTypeString",alias:"Label",domain:null,length:50}],features:s.map(e=>({attributes:e}))};i&&n.fields.push({name:"Red",type:"esriFieldTypeInteger",alias:"Red",domain:null},{name:"Green",type:"esriFieldTypeInteger",alias:"Green",domain:null},{name:"Blue",type:"esriFieldTypeInteger",alias:"Blue",domain:null}),t[e].attributeTable=n}}return t}function w(e){let t=Number.MAX_VALUE,s=-Number.MAX_VALUE;for(let i=0;i<e.length;i++){const n=e[i];null!=n&&(n<t&&(t=n),n>s&&(s=n))}return(0,u.X1)(t,s)}function I(e,t,s){const i=e.map((e,s)=>({name:e,count:t[s]})).sort((e,t)=>e.name>t.name?-1:1),n=(a=1,e=>a*=e.count);var a;const r=[...i.slice(1),{name:"",count:1}].reverse().map(n).reverse();let o=0;for(let n=e.length-1;n>=0;n--)o+=r[i.findIndex(({name:t})=>t===e[n])]*(s%t[n]),s=Math.floor(s/t[n]);return o}var b=s(17676),v=s(4366),C=s(47520),S=s(51927),T=s(45617),A=s(87186);let R=class extends r.A{constructor(){super(...arguments),this.datasetFormat="MEMORY",this.preGenerateTiles=!0,this.source=null}get url(){return""}fetchRawTile(e,t,s,i={}){if(!this._pixelBlockTiles){const{rasterInfo:n}=this,[a,r]=n.storageInfo.tileInfo.size,{sliceId:o}=i,{pixelBlocks:l}=this.source,c={pixelBlock:null==o?l[0]:l[o],useBilinear:"thematic"!==n.dataType,tileSize:{width:a,height:r},level:e,row:t,col:s},f=this.rasterJobHandler?this.rasterJobHandler.clipTile(c,i):(0,C.J$)(c);return Promise.resolve(f)}const n=this._pixelBlockTiles.get(`${e}/${t}/${s}`);return Promise.resolve(n)}async _open(e){const t=this.source,{pixelBlocks:s,attributeTable:i,statistics:n,histograms:a,name:r,nativeExtent:o,transform:f,colormap:u}=t,h=s[0],{width:p,height:d,pixelType:m}=h,g=t.extent??new l.A({xmin:-.5,ymin:.5,xmax:p-.5,ymax:d-.5,spatialReference:new c.A({wkid:3857})}),y=t.isPseudoSpatialReference??!t.extent,x={x:g.width/p,y:g.height/d},w={...t.keyProperties};t.dataType&&(w.DataType=t.dataType),t.bandInfos&&(w.BandProperties=t.bandInfos.map(e=>e.toJSON())),i&&(w.DataType="Thematic");const I=new A.A({width:p,height:d,pixelType:m,extent:g,nativeExtent:o,attributeTable:i,colormap:u,transform:f,pixelSize:x,spatialReference:g.spatialReference,bandCount:h.pixels.length,keyProperties:w,multidimensionalInfo:t.multidimensionalInfo,statistics:n,isPseudoSpatialReference:y,histograms:a});this.ioConfig.skipMapInfo&&this.updateImageSpaceRasterInfo(I),this.createRemoteDatasetStorageInfo(I,512,512),this._set("rasterInfo",I),this.updateTileInfo(),I.multidimensionalInfo?await this._buildMDimStats(t.pixelBlocks,I.multidimensionalInfo):this.preGenerateTiles&&await this._buildInMemoryRaster(h,{width:512,height:512},e),I.multidimensionalInfo||(this.source=null),this.datasetName=r}async _buildInMemoryRaster(e,t,s){const{rasterInfo:n}=this,a=n.storageInfo.maximumPyramidLevel??0,r="thematic"!==n.dataType,o=this.rasterJobHandler?this.rasterJobHandler.split({pixelBlock:e,tileSize:t,maximumPyramidLevel:a,useBilinear:r},s):Promise.resolve((0,C.lD)(e,t,a,r)),l=null!=n.statistics,c=null!=n.histograms,f=this.ioConfig.skipStatistics||l?Promise.resolve({statistics:null,histograms:null}):this.rasterJobHandler?this.rasterJobHandler.estimateStatisticsHistograms({pixelBlock:e},s):Promise.resolve((0,S.f4)(e)),u=await(0,b.Lx)([o,f]);if(!u[0].value&&u[1].value)throw new i.A("inmemory-raster:open","failed to build in memory raster");this._pixelBlockTiles=u[0].value,l||(n.statistics=u[1].value?.statistics),c||(n.histograms=u[1].value?.histograms)}async _buildMDimStats(e,t,s){for(let i=0;i<t.variables.length;i++){const n=t.variables[i];if(n.statistics)continue;const a=n.dimensions.map(e=>new T.A({variableName:n.name,dimensionName:e.name,values:[e.values?.[0]??e.extent?.[0]],isSlice:!0})),r=(0,v.NG)(a,t),o=null==r?null:e[r];if(null==o)continue;const l=this.rasterJobHandler?await this.rasterJobHandler.computeStatisticsHistograms({pixelBlock:o},s):(0,S.eH)(o);n.statistics=l.statistics,n.histograms||(n.histograms=l.histograms)}}};(0,n.Cg)([(0,a.MZ)({type:String,json:{write:!0}})],R.prototype,"datasetFormat",void 0),(0,n.Cg)([(0,a.MZ)({constructOnly:!0})],R.prototype,"preGenerateTiles",void 0),(0,n.Cg)([(0,a.MZ)()],R.prototype,"source",void 0),(0,n.Cg)([(0,a.MZ)()],R.prototype,"url",null),R=(0,n.Cg)([(0,a.$K)("esri.layers.raster.datasets.InMemoryRaster")],R);const M=R;var O=s(22671);let _=class extends r.A{constructor(){super(...arguments),this.datasetFormat="CovJSON"}fetchRawTile(e,t,s,i={}){return this._inMemoryRaster.fetchRawTile(e,t,s,i)}async _open(e){const{extent:t,pixelBlocks:s,multidimensionalInfo:i,attributeTable:n,bandNames:a}=await this._fetchData(e),{statistics:r,histograms:o}=(0,S.eH)(s[0]),l=a?.map(e=>({BandName:e})),c={DataType:n?"Thematic":i?"Scientific":"Generic",BandProperties:l},f=new M({source:{extent:t,pixelBlocks:s,attributeTable:n?O.A.fromJSON(n):null,multidimensionalInfo:i,statistics:r,histograms:o,keyProperties:c,isPseudoSpatialReference:!1}});await f.open(),this._inMemoryRaster=f;const u=this.source?"":this.url.slice(this.url.lastIndexOf("/")+1);this._set("datasetName",u.slice(0,u.indexOf("."))),this._set("rasterInfo",f.rasterInfo)}async _fetchData(e){const t=this.source??(await this.request(this.url,{signal:e?.signal})).data,s="imagery-tile-layer:open-coverage-json";if("coverage"!==t.type?.toLowerCase()||"grid"!==t.domain?.domainType?.toLowerCase())throw new i.A(s,"Only coverage with Grid domain type is supported");if(!t.ranges)throw new i.A(s,"Missing ranges in the grid coverage data");if(!t.domain.referencing?.length)throw new i.A(s,"Missing domain referencing in the grid coverage data");const n=Object.values(t.ranges);for(let e=0;e<n.length;e++){const{axisNames:t,shape:a,type:r,values:o}=n[e];if(!("ndarray"===r.toLowerCase()&&o?.length&&t?.length&&a?.length))throw new i.A(s,"Only ranges with valid NdArray, axisNames, shape, and inline values are supported");if(!p(t[t.length-1])||!d(t[t.length-2]))throw new i.A(s,"Only row-major ordered pixel values are supported. X axis must be the last axis.")}return function(e){const{width:t,height:s,extent:i,dimensions:n}=m(e),{ranges:a}=e,r=Object.keys(a).sort((e,t)=>e<t?-1:1),o=[];for(let e=0;e<r.length;e++){const t=r[e];n?.length&&o.push({name:t,dimensions:n})}const l=x(e);o.forEach(e=>l[e.name]&&Object.assign(e,l[e.name]));const c=o.length?{variables:o}:void 0,f=[];for(let e=0;e<r.length;e++){const i=r[e],{values:o,dataType:l,axisNames:c,shape:u}=a[i],p=u.length>2?e*u.slice(0,-2).reduce((e,t)=>e*t):0,d=c.slice(0,-2),m=u.slice(0,-2),g="float"===l?"f32":w(o),y=t*s,x=o.length/y;for(let i=0;i<x;i++){const a=h.A.createEmptyBand(g,y),r=new Uint8Array(y).fill(255);let l=!1;const c=i*y;for(let e=0;e<y;e++){const t=o[c+e];null==t?(r[e]=0,l=!0):a[e]=t}if(0===e||n?.length){const e=new h.A({width:t,height:s,mask:l?r:null,pixels:[a],pixelType:g});e.updateStatistics(),n?.length?f[I(d,m,i)+p]=e:f.push(e)}else{const e=f[i];e.pixels.push(a),l?e.mask&&(e.mask=h.A.combineBandMasks([e.mask,r])):e.mask=l?r:null}}}const u=Object.values(l).find(e=>e.attributeTable)?.attributeTable;return{extent:i,pixelBlocks:f,multidimensionalInfo:c,attributeTable:u,bandNames:c?void 0:r}}(t)}};(0,n.Cg)([(0,a.MZ)({type:String,json:{write:!0}})],_.prototype,"datasetFormat",void 0),(0,n.Cg)([(0,a.MZ)({constructOnly:!0})],_.prototype,"source",void 0),_=(0,n.Cg)([(0,a.$K)("esri.layers.raster.datasets.CovJSONRaster")],_);const k=_;var F=s(4576),P=s(21325),B=s(330),D=s(43163);function N(e,t){if(!e||!t)return null;const s=[];for(let i=0;i<e.length;i++)s.push(e[i]),s.push(t[i]);return s}function E(e){if(!e)return null;let t=Number(e);if(!isNaN(t)&&0!==t)return new c.A({wkid:t});if(e=String(e).trim(),(0,P.jp)(e))return new c.A({wkt2:e});const s=e.toUpperCase();if(s.startsWith("COMPD_CS")){if(!s.includes("VERTCS")||!s.includes("GEOGCS")&&!s.startsWith("PROJCS"))return null;const i=s.indexOf("VERTCS"),n=s.indexOf("PROJCS"),a=n>-1?n:s.indexOf("GEOGCS");if(-1===a)return null;const r=e.slice(a,e.lastIndexOf("]",i)+1).trim(),o=e.slice(i,e.lastIndexOf("]")).trim();t=L(r);const l=new c.A(t?{wkid:t}:{wkt:r}),f=L(o);return f&&(l.vcsWkid=f),l}return s.startsWith("GEOGCS")||s.startsWith("PROJCS")?(t=L(e),new c.A(0!==t?{wkid:t}:{wkt:e})):null}function L(e){const t=e.replaceAll("]","[").replaceAll('"',"").split("[").map(e=>e.trim()).filter(e=>""!==e),s=t[t.length-1].split(","),i=s[0]?.toLowerCase();if(("epsg"===i||"esri"===i)&&e.endsWith('"]]')){const e=Number(s[1]);if(!isNaN(e)&&0!==e)return e}return 0}function J(e){if("pamdataset"!==e?.documentElement.tagName?.toLowerCase())return{};const t={spatialReference:null,transform:null,metadata:{},rasterBands:[],statistics:null,histograms:null};e.documentElement.childNodes.forEach(e=>{if(1===e.nodeType)if((0,B.g7)(e,"SRS")){if(!t.spatialReference){const s=(0,B.mX)(e);t.spatialReference=E(s)}}else if((0,B.g7)(e,"Metadata"))if("xml:ESRI"===e.getAttribute("domain")){const{spatialReference:s,transform:i}=function(e){const t=(0,B.V6)(e,"GeodataXform"),s=E((0,B.v7)(t,"SpatialReference/WKID")||(0,B.mX)(t,"SpatialReference/WKT"));if("typens:PolynomialXform"!==t.getAttribute("xsi:type"))return{spatialReference:s,transform:null};const i=(0,B.v7)(t,"PolynomialOrder")??1,n=(0,B.Ui)(t,"CoeffX/Double"),a=(0,B.Ui)(t,"CoeffY/Double"),r=(0,B.Ui)(t,"InverseCoeffX/Double"),o=(0,B.Ui)(t,"InverseCoeffY/Double"),l=N(n,a),c=N(r,o);return{spatialReference:s,transform:l&&c&&l.length&&c.length?new D.A({spatialReference:s,polynomialOrder:i,forwardCoefficients:l,inverseCoefficients:c}):null}}(e);t.transform=i,t.spatialReference||(t.spatialReference=s)}else(0,B.IC)(e,"MDI").forEach(e=>t.metadata[e.getAttribute("key")]=(0,B.mX)(e));else if((0,B.g7)(e,"PAMRasterBand")){const s=function(e){const t=(0,B.v7)(e,"NoDataValue"),s=(0,B.V6)(e,"Histograms/HistItem"),i=(0,B.v7)(s,"HistMin"),n=(0,B.v7)(s,"HistMax"),a=(0,B.v7)(s,"BucketCount"),r=(0,B.mX)(s,"HistCounts")?.split("|").map(e=>Number(e));let o,l,c,f;(0,B.IC)(e,"Metadata/MDI").forEach(e=>{const t=Number(e.textContent??e.nodeValue);switch(e.getAttribute("key").toUpperCase()){case"STATISTICS_MINIMUM":o=t;break;case"STATISTICS_MAXIMUM":l=t;break;case"STATISTICS_MEAN":c=t;break;case"STATISTICS_STDDEV":f=t}});const u=(0,B.v7)(e,"Metadata/SourceBandIndex");return{noDataValue:t,histogram:r?.length&&null!=i&&null!=n?{min:i,max:n,size:a||r.length,counts:r}:null,sourceBandIndex:u,statistics:null!=o&&null!=l?{min:o,max:l,avg:c,stddev:f}:null}}(e);null!=s.sourceBandIndex&&null==t.rasterBands[s.sourceBandIndex]?t.rasterBands[s.sourceBandIndex]=s:t.rasterBands.push(s)}});const s=t.rasterBands;if(s.length){const e=!!s[0].statistics;t.statistics=e?s.map(e=>e.statistics).filter(F.Ru):null;const i=!!s[0].histogram;t.histograms=i?s.map(e=>e.histogram).filter(F.Ru):null}return t}var z=s(96271);let H=class extends r.A{set rasterJobHandler(e){this._set("rasterJobHandler",e),this._inMemoryRaster&&(this._inMemoryRaster.rasterJobHandler=e)}fetchRawTile(e,t,s,i={}){if(this._imageBlob){const{blockWidth:i,blockHeight:n}=this.rasterInfo.storageInfo;return this.decodePixelBlock(this._imageBlob,{tileSize:[i,n],tileIndex:[e,t,s],canvasUsage:"canvas-only",cloneSource:!0,skipStatistics:!0})}return this._inMemoryRaster.fetchRawTile(e,t,s,i)}async _open(e){const t=await this._fetchData(e);if(null==t)throw new i.A("image-aux-raster:open","the data cannot be decoded");let{spatialReference:s,statistics:n,histograms:a,transform:r}=await this._fetchAuxiliaryData(e);const o=!s;o&&(s=new c.A({wkid:3857})),a?.length&&null==n&&(n=(0,S.Pg)(a));const{width:f,height:u}=t;let h=new l.A({xmin:-.5,ymin:.5-u,xmax:f-.5,ymax:.5,spatialReference:s});const p=r?r.forwardTransform(h):h;let d=!0;if(r){const e=r.forwardCoefficients;d=e&&0===e[1]&&0===e[2],d&&(r=null,h=p)}const{rasterJobHandler:m,ioConfig:g}=this,y=new M({preGenerateTiles:!1,rasterJobHandler:m,source:{extent:p,nativeExtent:h,transform:r,pixelBlocks:[t],statistics:n,histograms:a,keyProperties:{DateType:"Processed"},isPseudoSpatialReference:o},ioConfig:{...g,sampling:"closest",skipStatistics:!0}});await y.open(),y.source=null,this._set("rasterInfo",y.rasterInfo),this._inMemoryRaster=y}async _fetchData(e){const{data:t}=await this.request(this.url,{responseType:"array-buffer",signal:e?.signal}),s=(0,z.g)(t);if("jpg"!==s&&"png"!==s&&"gif"!==s&&"bmp"!==s)throw new i.A("image-aux-raster:open","the data is not a supported format");this._set("datasetFormat",s.toUpperCase());const n=s.toLowerCase();try{const e=await this.decodePixelBlock(t,{format:n,canvasUsage:"canvas-only",cloneSource:!0,skipStatistics:!0});return this._imageBlob=t,e}catch{return this.decodePixelBlock(t,{format:n,canvasUsage:"no-canvas",skipStatistics:!0})}}async _fetchAuxiliaryData(e){const t=e?.signal,{skipExtensions:s=[],skipMapInfo:i}=this.ioConfig,n=i||s.includes("aux.xml")?null:this.request(this.url+".aux.xml",{responseType:"xml",signal:t}),a=this.datasetFormat,r="JPG"===a?"jgw":"PNG"===a?"pgw":"BMP"===a?"bpw":null,o=r&&s.includes(r)?null:this.request(this.url.slice(0,this.url.lastIndexOf("."))+"."+r,{responseType:"text",signal:t}),l=await(0,b.Lx)([n,o]);if(t?.aborted)throw(0,b.NK)();const c=J(l[0].value?.data);if(!c.transform){const e=l[1].value?l[1].value.data.split("\n").slice(0,6).map(e=>Number(e)):null;c.transform=6===e?.length?new D.A({forwardCoefficients:[e[4],e[5],e[0],-e[1],e[2],-e[3]]}):null}return c}};(0,n.Cg)([(0,a.MZ)({type:String,json:{write:!0}})],H.prototype,"datasetFormat",void 0),(0,n.Cg)([(0,a.MZ)()],H.prototype,"rasterJobHandler",null),H=(0,n.Cg)([(0,a.$K)("esri.layers.raster.datasets.ImageAuxRaster")],H);const U=H;var G=s(97768),q=s(84952),j=s(86738),V=s(75414),W=s(20223),Z=s(87045),X=s(25943),$=s(82371);let Y=class extends r.A{constructor(){super(...arguments),this._levelOffset=0,this._tilemapCache=null,this._slices=null,this.datasetFormat="RasterTileServer",this.tileType=null}async fetchRawTile(e,t,s,i={}){const{storageInfo:n,extent:a}=this.rasterInfo,{transposeInfo:r}=n,o=null!=r&&!!i.transposedVariableName;if(this._slices&&!o&&null==i.sliceId)return null;const l=o?0:n.maximumPyramidLevel-e+this._levelOffset,c=`${this.url}/tile/${l}/${t}/${s}`,f={...this._slices?o?{variable:i.transposedVariableName}:{sliceId:i.sliceId||0}:null,...i.refreshParameters};let u,h;if(n.isBsqTile){const e=(i.bandIds?.length?i.bandIds:[0,1,2]).map(e=>this.request(c,{query:{...f,bandId:e},responseType:"array-buffer",signal:i.signal})),t=await Promise.all(e),s=t.map(e=>e.data.byteLength).reduce((e,t)=>e+t),n=new Uint8Array(s);h=[];let a=0;for(const{data:e}of t)h.push(a),n.set(new Uint8Array(e),a),a+=e.byteLength;u=n.buffer}else u=(await this.request(c,{query:f,responseType:"array-buffer",signal:i.signal})).data;if(!u)return null;const{tileInfo:p}=n,d=o?r.tileSize:p.size,m=/^(mixed|jp)/i.test(p.format),g=await this.decodePixelBlock(u,{width:d[0],height:d[1],planes:h?.length,offsets:h,pixelType:null,isPoint:"Elevation"===this.tileType,returnInterleaved:o,noDataValue:this.rasterInfo.noDataValue,applyJpegMask:m});if(null==g)return null;const y=n.blockBoundary[e];if("jpg"!==n.compression||s>y.minCol&&s<y.maxCol&&t>y.minRow&&t<y.maxRow)return g;const{origin:x,blockWidth:w,blockHeight:I}=n,{x:b,y:v}=this.getPyramidPixelSize(e),S=Math.round((a.xmin-x.x)/b)%w,T=Math.round((a.xmax-x.x)/b)%w||w,A=Math.round((x.y-a.ymax)/v)%I,R=Math.round((x.y-a.ymin)/v)%I||I,M=s===y.minCol?S:0,O=t===y.minRow?A:0,_=s===y.maxCol?T:w,k=t===y.maxRow?R:I;return(0,C.z$)(g,{x:M,y:O},{width:_-M,height:k-O}),g}getSliceIndex(e){if(!this._slices||null==e||0===e.length)return null;const t=e;for(let e=0;e<this._slices.length;e++){const s=this._slices[e].multidimensionalDefinition;if(s.length===t.length&&!s.some(e=>{const s=t.find(t=>e.variableName===t.variableName&&t.dimensionName===e.dimensionName);return!s||(Array.isArray(e.values[0])?`${e.values[0][0]}-${e.values[0][1]}`:e.values[0])!==(Array.isArray(s.values[0])?`${s.values[0][0]}-${s.values[0][1]}`:s.values[0])}))return e}return null}async fetchVariableStatisticsHistograms(e,t){const s=this.request(this.url+"/statistics",{query:{variable:e,f:"json"},signal:t}).then(e=>e.data?.statistics),i=this.request(this.url+"/histograms",{query:{variable:e,f:"json"},signal:t}).then(e=>e.data?.histograms),n=await Promise.all([s,i]);return n[0]&&n[0].forEach(e=>{e.avg=e.mean,e.stddev=e.standardDeviation}),n[1]?.[0]?.counts?.length||(n[1]=null),{statistics:n[0]||null,histograms:n[1]||null}}async computeBestPyramidLevelForLocation(e,t={}){if(!this._tilemapCache)return 0;let s=this.identifyPixelLocation(e,0,t.datumTransformation);if(null===s)return null;let i=0;const{maximumPyramidLevel:n}=this.rasterInfo.storageInfo;let a=n-i+this._levelOffset;const r=s.srcLocation;for(;a>=0;){try{if("available"===await this._tilemapCache.fetchAvailability(a,s.row,s.col,t))break}catch{}if(a--,i++,s=this.identifyPixelLocation(r,i,t.datumTransformation),null===s)return null}return-1===a||null==s?null:i}async _open(e){const t=e?.signal,s=this.sourceJSON?{data:this.sourceJSON}:await this.request(this.url,{query:{f:"json"},signal:t});s.ssl&&(this.url=this.url.replace(/^http:/i,"https:"));const n=s.data;if(this.sourceJSON=n,!n)throw new i.A("imageserverraster:open","cannot initialize tiled image service, missing service info");if(!n.tileInfo)throw new i.A("imageserverraster:open","use ImageryLayer to open non-tiled image services");this._fixScaleInServiceInfo(),this.tileType=n.cacheType,null==this.tileType&&(["jpg","jpeg","png","png8","png24","png32","mixed"].includes(n.tileInfo.format.toLowerCase())?this.tileType="Map":"lerc"===n.tileInfo.format.toLowerCase()?this.tileType="Elevation":this.tileType="Raster"),this.datasetName=n.name?.slice(n.name.indexOf("/")+1)??"";const a=this.rasterInfo??await this._fetchRasterInfo({signal:t});if(null==a)throw new i.A("image-server-raster:open","cannot initialize image service");(0,$.E9)(a,n);const r="Map"===this.tileType?function(e,t){if(!e)return null;const{minScale:s,maxScale:i,minLOD:n,maxLOD:a}=t;if(null!=n&&null!=a)return Z.A.fromJSON({...e,lods:e.lods.filter(({level:e})=>null!=e&&e>=n&&e<=a)});if(0!==s&&0!==i){const t=e=>Math.round(1e4*e)/1e4,n=s?t(s):1/0,a=i?t(i):-1/0;return Z.A.fromJSON({...e,lods:e.lods.filter(e=>{const s=t(e.scale);return s<=n&&s>=a})})}return Z.A.fromJSON(e)}(n.tileInfo,n):Z.A.fromJSON(n.tileInfo);(0,G.Lw)(r);const[o,l]=this._computeMinMaxLOD(a,r),{extent:c,pixelSize:f}=a,u=.001*Math.min(f.x,f.y);(f.x!==f.y||Math.abs(o.resolution-f.x)>u)&&(f.x=f.y=o.resolution,a.width=Math.ceil((c.xmax-c.xmin)/f.x-.1),a.height=Math.ceil((c.ymax-c.ymin)/f.y-.1));const h=o.level-l.level,[p,d]=r.size,m=[],g=[],{lods:y}=r;y.forEach((e,t)=>{e.level>=l.level&&e.level<=o.level&&m.push({x:e.resolution,y:e.resolution}),t<y.length-1&&g.push(Math.round(10*e.resolution/y[t+1].resolution)/10)}),m.sort((e,t)=>e.x-t.x);const x=this.computeBlockBoundary(c,p,d,r.origin,m,h),w=m.length>1?m.slice(1):null;let I;n.transposeInfo&&(I={tileSize:[n.transposeInfo.rows,n.transposeInfo.cols],packetSize:a.keyProperties?._yxs.PacketSize??0});const b=g.length<=1||g.length>=3&&g.slice(0,-1).every(e=>e===g[0])?g[0]??2:Math.round(10/(l.resolution/o.resolution)**(-1/h))/10,v=!!n.bsq&&"Raster"===this.tileType;if(a.storageInfo=new W.A({blockWidth:r.size[0],blockHeight:r.size[1],pyramidBlockWidth:r.size[0],pyramidBlockHeight:r.size[1],pyramidResolutions:w,pyramidScalingFactor:b,compression:r.format,origin:r.origin,firstPyramidLevel:1,maximumPyramidLevel:h,tileInfo:r,isBsqTile:v,transposeInfo:I,blockBoundary:x}),function(e){const{extent:t,spatialReference:s}=e;t.xmin>-1&&t.xmax>181&&s?.wkid&&s.isGeographic&&(e.nativeExtent=e.extent,e.transform=new V.A,e.extent=e.transform.forwardTransform(t))}(a),this._set("rasterInfo",a),n.capabilities.toLowerCase().includes("tilemap")){const e={tileInfo:a.storageInfo.tileInfo,parsedUrl:(0,q.An)(this.url),url:this.url,tileServers:[]};this._tilemapCache=new X.d({layer:e})}}async _fetchRasterInfo(e){const t=this.sourceJSON;if("Map"===this.tileType){const e=t.fullExtent||t.extent,s=Math.ceil((e.xmax-e.xmin)/t.pixelSizeX-.1),i=Math.ceil((e.ymax-e.ymin)/t.pixelSizeY-.1),n=c.A.fromJSON(t.spatialReference||e.spatialReference),a=new j.A({x:t.pixelSizeX,y:t.pixelSizeY,spatialReference:n});return new A.A({width:s,height:i,bandCount:3,extent:l.A.fromJSON(e),spatialReference:n,pixelSize:a,pixelType:"u8",statistics:null,keyProperties:{DataType:"processed"}})}const s={...e,query:{...this.ioConfig.customFetchParameters,f:"json"}},i=(0,$.Tw)(this.url,this.sourceJSON,s),n=t.hasMultidimensions?this.request(`${this.url}/slices`,s).then(e=>e.data?.slices).catch(()=>null):null,a=await Promise.all([i,n]);return this._slices=a[1],a[0]}_fixScaleInServiceInfo(){const{sourceJSON:e}=this;e.minScale&&e.minScale<0&&(e.minScale=0),e.maxScale&&e.maxScale<0&&(e.maxScale=0)}_computeMinMaxLOD(e,t){const{pixelSize:s}=e,i=.5/e.width*s.x,{lods:n}=t,a=t.lodAt(Math.max.apply(null,n.map(e=>e.level))),r=t.lodAt(Math.min.apply(null,n.map(e=>e.level))),{tileType:o}=this;if("Map"===o)return this._levelOffset=n[0].level,[a,r];if("Raster"===o)return[n.find(e=>e.resolution===s.x)??a,r];const{minScale:l,maxScale:c}=this.sourceJSON;let f=a;c>0&&(f=n.find(e=>Math.abs(e.scale-c)<i),f||(f=n.filter(e=>e.scale>c).sort((e,t)=>e.scale>t.scale?1:-1)[0]??a));let u=r;return l>0&&(u=n.find(e=>Math.abs(e.scale-l)<i)??r,this._levelOffset=u.level-r.level),[f,u]}};(0,n.Cg)([(0,a.MZ)({type:String,json:{write:!0}})],Y.prototype,"datasetFormat",void 0),(0,n.Cg)([(0,a.MZ)()],Y.prototype,"tileType",void 0),Y=(0,n.Cg)([(0,a.$K)("esri.layers.raster.datasets.ImageServerRaster")],Y);const K=Y;var Q=s(10713);const ee=new Map([["byte","u8"],["signedbyte","s8"],["int8","s8"],["uint8","u8"],["int16","s16"],["uint16","u16"],["int32","s32"],["uint32","u32"],["float32","f32"],["float64","f64"],["double64","f64"]]),te=new Map;te.set("none",{blobExtension:".til",isOneSegment:!0,decoderFormat:"bip"}),te.set("lerc",{blobExtension:".lrc",isOneSegment:!1,decoderFormat:"lerc"}),te.set("deflate",{blobExtension:".pzp",isOneSegment:!0,decoderFormat:"deflate"}),te.set("jpeg",{blobExtension:".pjg",isOneSegment:!0,decoderFormat:"jpg"}),te.set("qb3",{blobExtension:".pq3",isOneSegment:!0,decoderFormat:"qb3"});let se=class extends r.A{constructor(){super(...arguments),this._files=null,this._storageIndex=null,this._isBsq=!1,this.datasetFormat="MRF"}async fetchRawTile(e,t,s,i={}){const{blockWidth:n,blockHeight:a,blockBoundary:r}=this.rasterInfo.storageInfo,o=r[e];if(!o||o.maxRow<t||o.maxCol<s||o.minRow>t||o.minCol>s)return null;const{bandCount:l,pixelType:c}=this.rasterInfo,{ranges:f,actualTileWidth:u,actualTileHeight:p}=this._getTileLocation(e,t,s);if(!f||0===f.length)return null;if(f.some(e=>e.from>e.to)){const e=new Uint8Array(n*a);return new h.A({width:n,height:a,pixels:void 0,mask:e,validPixelCount:0})}const{bandIds:d}=this.ioConfig,m=this._getBandSegmentCount(),g=[];let y=0;for(y=0;y<m;y++)d&&!d.includes(y)||g.push(this.request(this._files.data,{range:{from:f[y].from,to:f[y].to},responseType:"array-buffer",signal:i.signal}));const x=await Promise.all(g),w=x.map(e=>e.data.byteLength).reduce((e,t)=>e+t),I=new Uint8Array(w),b=[];let v=0;for(y=0;y<m;y++)b.push(v),I.set(new Uint8Array(x[y].data),v),v+=x[y].data.byteLength;const C=te.get(this.rasterInfo.storageInfo.compression).decoderFormat,S="jpg"===C&&4===l&&1===b.length,T=await this.decodePixelBlock(I.buffer,{width:n,height:a,format:C,planes:d?.length||l,offsets:b,pixelType:c,canvasUsage:S?"no-canvas":void 0,decodeJpegAsRgb:!1}).catch(()=>null);if(null==T)return null;let{noDataValue:A}=this.rasterInfo;if(null!=A&&"lerc"!==C&&!T.mask&&(A=A[0],null!=A)){const e=T.width*T.height,t=new Uint8Array(e);if(Math.abs(A)>1e24)for(y=0;y<e;y++)Math.abs((T.pixels[0][y]-A)/A)>1e-6&&(t[y]=1);else for(y=0;y<e;y++)T.pixels[0][y]!==A&&(t[y]=1);T.mask=t}let R=0,M=0;if(u!==n||p!==a){let e=T.mask;if(e)for(y=0;y<a;y++)if(M=y*n,y<p)for(R=u;R<n;R++)e[M+R]=0;else for(R=0;R<n;R++)e[M+R]=0;else for(e=new Uint8Array(n*a),T.mask=e,y=0;y<p;y++)for(M=y*n,R=0;R<u;R++)e[M+R]=1}return T}async _open(e){this.datasetName=this.url.slice(this.url.lastIndexOf("/")+1);const t=e?e.signal:null,s=await this.request(this.url,{responseType:"xml",signal:t}),{rasterInfo:i,files:n}=this._parseHeader(s.data),{skipMapInfo:a,skipExtensions:r=[]}=this.ioConfig;if(!r.includes("aux.xml")&&!a){const t=await this._fetchAuxiliaryData(e);null!=t&&(i.statistics=t.statistics??i.statistics,i.histograms=t.histograms,t.histograms&&null==i.statistics&&(i.statistics=(0,S.Pg)(t.histograms)))}a&&this.updateImageSpaceRasterInfo(i),this._set("rasterInfo",i),this._files=n;const o=await this.request(n.index,{responseType:"array-buffer",signal:t});this._storageIndex=function(e){if(e.byteLength%16>0)throw new Error("invalid array buffer must be multiples of 16");let t;if(Q.Z){const s=new Uint8Array(e),i=new ArrayBuffer(e.byteLength),n=new Uint8Array(i);for(let t=0;t<e.byteLength/4;t++)for(let e=0;e<4;e++)n[4*t+e]=s[4*t+3-e];t=new Uint32Array(i)}else t=new Uint32Array(e);return t}(o.data);const{blockWidth:l,blockHeight:c}=this.rasterInfo.storageInfo,f=this.rasterInfo.storageInfo.pyramidScalingFactor,{width:u,height:h}=this.rasterInfo,p=[],d=this._getBandSegmentCount();let m=0,g=-1;for(;m<this._storageIndex.length;){g++;const e=Math.ceil(u/l/f**g)-1,t=Math.ceil(h/c/f**g)-1;m+=(e+1)*(t+1)*d*4,p.push({maxRow:t,maxCol:e,minCol:0,minRow:0})}this.rasterInfo.storageInfo.blockBoundary=p,g>0&&(this.rasterInfo.storageInfo.firstPyramidLevel=1,this.rasterInfo.storageInfo.maximumPyramidLevel=g),this.updateTileInfo()}_getBandSegmentCount(){return this._isBsq?this.rasterInfo.bandCount:1}_getTileLocation(e,t,s){const{blockWidth:i,blockHeight:n,pyramidScalingFactor:a}=this.rasterInfo.storageInfo,{width:r,height:o}=this.rasterInfo,l=this._getBandSegmentCount();let c,f,u,h=0,p=0;for(u=0;u<e;u++)p=a**u,c=Math.ceil(r/i/p),f=Math.ceil(o/n/p),h+=c*f;p=a**e,c=Math.ceil(r/i/p),f=Math.ceil(o/n/p),h+=t*c+s,h*=4*l;const d=this._storageIndex.subarray(h,h+4*l);let m=0,g=0;const y=[];for(let e=0;e<l;e++)m=d[4*e]*2**32+d[4*e+1],g=m+d[4*e+2]*2**32+d[4*e+3]-1,y.push({from:m,to:g});return{ranges:y,actualTileWidth:s<c-1?i:Math.ceil(r/p)-i*(c-1),actualTileHeight:t<f-1?n:Math.ceil(o/p)-n*(f-1)}}_parseHeader(e){const t=(0,B.V6)(e,"MRF_META/Raster");if(!t)throw new i.A("mrf:open","not a valid MRF format");const s=(0,B.V6)(t,"Size"),n=parseInt(s.getAttribute("x"),10),a=parseInt(s.getAttribute("y"),10),r=parseInt(s.getAttribute("c"),10),o=((0,B.mX)(t,"Compression")||"none").toLowerCase();if(!te.has(o))throw new i.A("mrf:open","currently does not support compression "+o);const f=(0,B.mX)(t,"DataType")||"UInt8",u=ee.get(f.toLowerCase());if(null==u)throw new i.A("mrf:open","currently does not support pixel type "+f);const h=(0,B.V6)(t,"PageSize"),p=parseInt(h.getAttribute("x"),10),d=parseInt(h.getAttribute("y"),10),m=h.getAttribute("c"),g=m?m===String(r):te.get(o).isOneSegment;this._isBsq=!g;const y=(0,B.V6)(t,"DataValues");let x;if(y){const e=y.getAttribute("NoData");null!=e&&(x=e.trim().split(" ").map(e=>parseFloat(e)))}if((0,B.V6)(e,"MRF_META/CachedSource"))throw new i.A("mrf:open","currently does not support MRF referencing other data files");const w=(0,B.V6)(e,"MRF_META/GeoTags"),I=(0,B.V6)(w,"BoundingBox");let b,v=!1;if(null!=I){const e=parseFloat(I.getAttribute("minx")),t=parseFloat(I.getAttribute("miny")),s=parseFloat(I.getAttribute("maxx")),i=parseFloat(I.getAttribute("maxy")),n=(0,B.mX)(w,"Projection")||"";let a=c.A.WGS84;if("LOCAL_CS[]"!==n)if(n.toLowerCase().startsWith("epsg:")){const e=Number(n.slice(5));isNaN(e)||0===e||(a=new c.A({wkid:e}))}else a=E(n)??c.A.WGS84;else v=!0,a=new c.A({wkid:3857});b=new l.A(e,t,s,i),b.spatialReference=a}else v=!0,b=new l.A({xmin:-.5,ymin:.5-a,xmax:n-.5,ymax:.5,spatialReference:new c.A({wkid:3857})});const C=(0,B.V6)(e,"MRF_META/Rsets"),S=parseInt(C?.getAttribute("scale")||"2",10),T=b.spatialReference,R=new W.A({origin:new j.A({x:b.xmin,y:b.ymax,spatialReference:T}),blockWidth:p,blockHeight:d,pyramidBlockWidth:p,pyramidBlockHeight:d,compression:o,pyramidScalingFactor:S}),M=new j.A({x:b.width/n,y:b.height/a,spatialReference:T}),O=new A.A({width:n,height:a,extent:b,isPseudoSpatialReference:v,spatialReference:T,bandCount:r,pixelType:u,pixelSize:M,noDataValue:x,storageInfo:R}),_=this._getAuxFullPath((0,B.mX)(t,"DataFile")),k=this._getAuxFullPath((0,B.mX)(t,"IndexFile"));return{rasterInfo:O,files:{mrf:this.url,index:k||this.url.replace(".mrf",".idx"),data:_||this.url.replace(".mrf",te.get(o).blobExtension)}}}_getAuxFullPath(e){return e?e.includes("\\")?null:e.includes("/")?e.startsWith(new URL(this.url).origin)?e:null:`${this.url.slice(0,this.url.lastIndexOf("/"))}/${e}`:null}async _fetchAuxiliaryData(e){try{const{data:t}=await this.request(this.url+".aux.xml",{responseType:"xml",signal:e?.signal});return J(t)}catch{return null}}};(0,n.Cg)([(0,a.MZ)()],se.prototype,"_files",void 0),(0,n.Cg)([(0,a.MZ)()],se.prototype,"_storageIndex",void 0),(0,n.Cg)([(0,a.MZ)()],se.prototype,"_isBsq",void 0),(0,n.Cg)([(0,a.MZ)({type:String,json:{write:!0}})],se.prototype,"datasetFormat",void 0),se=(0,n.Cg)([(0,a.$K)("esri.layers.raster.datasets.MRFRaster")],se);const ie=se;s(44208);var ne=s(53966),ae=s(9334);function re(e){const t=e.fields,s=e.records,i=t.some(e=>"oid"===e.name.toLowerCase())?"OBJECTID":"OID",n=[{name:i,type:"esriFieldTypeOID",alias:"OID"}].concat(t.map(e=>({name:e.name,type:"esriFieldType"+e.typeName,alias:e.name}))),a=n.map(e=>e.name),r=[];let o=0,l=0;return s.forEach(e=>{const t={};for(t[i]=o++,l=1;l<a.length;l++)t[a[l]]=e[l-1];r.push({attributes:t})}),{displayFieldName:"",fields:n,features:r}}class oe{static get supportedVersions(){return[5]}static parse(e){const t=new DataView(e),s=3&t.getUint8(0);if(3!==s)return{header:{version:s},recordSet:null};const i=t.getUint32(4,!0),n=t.getUint16(8,!0),a=t.getUint16(10,!0),r={version:s,recordCount:i,headerByteCount:n,recordByteCount:a};let o=32;const l=[],c=[];let f;if(3===s){for(;13!==t.getUint8(o);)f=String.fromCharCode(t.getUint8(o+11)).trim(),l.push({name:(0,ae.w)(new Uint8Array(e,o,11)),type:f,typeName:["String","Date","Double","Boolean","String","Integer"][["C","D","F","L","M","N"].indexOf(f)],length:t.getUint8(o+16)}),o+=32;if(o+=1,l.length>0)for(;c.length<i&&e.byteLength-o>a;){const s=[];32===t.getUint8(o)?(o+=1,l.forEach(t=>{if("C"===t.type)s.push((0,ae.w)(new Uint8Array(e,o,t.length)).trim());else if("N"===t.type)s.push(parseInt(String.fromCharCode.apply(null,new Uint8Array(e,o,t.length)).trim(),10));else if("F"===t.type)s.push(parseFloat(String.fromCharCode.apply(null,new Uint8Array(e,o,t.length)).trim()));else if("D"===t.type){const i=String.fromCharCode.apply(null,new Uint8Array(e,o,t.length)).trim();s.push(new Date(parseInt(i.slice(0,4),10),parseInt(i.slice(4,6),10)-1,parseInt(i.slice(6,8),10)))}o+=t.length}),c.push(s)):o+=a}}return{header:r,fields:l,records:c,recordSet:re({fields:l,records:c})}}}var le=s(44094),ce=s(94213);let fe=class extends r.A{constructor(){super(...arguments),this._files=null,this._headerInfo=null,this._bufferSize=1048576,this._chunkSize=10485760,this.datasetFormat="TIFF"}async fetchRawTile(e,t,s,i={}){if(!this._headerInfo?.isSupported||this.isBlockOutside(e,t,s))return null;const n=await this._fetchRawTiffTile(e,t,s,!1,i);if(null!=n&&this._headerInfo.hasMaskBand){const a=await this._fetchRawTiffTile(e,t,s,!0,i);null!=a&&a.pixels[0]instanceof Uint8Array&&(n.mask=a.pixels[0])}return n}async _open(e){const t=e?e.signal:null,{data:s}=await this.request(this.url,{range:{from:0,to:this._bufferSize},responseType:"array-buffer",signal:t});if(!s)throw new i.A("tiffraster:open","failed to open url "+this.url);this.datasetName=this.url.slice(this.url.lastIndexOf("/")+1,this.url.lastIndexOf("."));const{littleEndian:n,firstIFDPos:a,isBigTiff:r}=(0,le.uT)(s),o=[],f={fileChunk:s,posIFD:a,fileOffset:0};await this._readIFDs(o,f,n,r?8:4,t);const{imageInfo:u,rasterInfo:h}=function(e){const t=(0,le.uc)(e),{width:s,height:i,tileWidth:n,tileHeight:a,planes:r,pixelType:o,compression:f,firstPyramidLevel:u,maximumPyramidLevel:h,pyramidBlockWidth:p,pyramidBlockHeight:d,pyramidResolutions:m,tileBoundary:g,affine:y,metadata:x,colormap:w}=t;let I=E(t.extent.spatialReference?.wkt||t.extent.spatialReference?.wkid),b=!!t.isPseudoGeographic;null==I&&(b=!0,I=new c.A({wkid:3857}));const v=new l.A({...t.extent,spatialReference:I}),C=new j.A(v?{x:v.xmin,y:v.ymax,spatialReference:I}:{x:0,y:0}),S=new W.A({blockWidth:n,blockHeight:a,pyramidBlockWidth:p,pyramidBlockHeight:d,compression:f,origin:C,firstPyramidLevel:u,maximumPyramidLevel:h,pyramidResolutions:m,blockBoundary:g}),T=new j.A({x:(v.xmax-v.xmin)/s,y:(v.ymax-v.ymin)/i,spatialReference:I}),R=x?{BandProperties:x.bandProperties,DataType:x.dataType}:{},M=new A.A({width:s,height:i,bandCount:r,pixelType:o,pixelSize:T,storageInfo:S,spatialReference:I,isPseudoSpatialReference:b,keyProperties:R,extent:v,colormap:w,statistics:x?x.statistics:null});if(y?.length&&(M.nativeExtent=new l.A({xmin:-.5,ymin:.5-i,xmax:s-.5,ymax:.5,spatialReference:I}),M.transform=new D.A({polynomialOrder:1,forwardCoefficients:[y[2]+y[0]/2,y[5]-y[3]/2,y[0],y[3],-y[1],-y[4]]}),M.extent=M.transform.forwardTransform(M.nativeExtent),M.pixelSize=new j.A({x:(v.xmax-v.xmin)/s,y:(v.ymax-v.ymin)/i,spatialReference:I}),S.origin.x=-.5,S.origin.y=.5),m){const{x:e,y:t}=M.pixelSize;m.forEach(s=>{s.x*=e,s.y*=t})}return{imageInfo:t,rasterInfo:M}}(o),p=(0,le.zS)(o),d=(0,le.r9)(o);if(this._headerInfo={littleEndian:n,isBigTiff:r,ifds:o,pyramidIFDs:p,maskIFDs:d,...u},this._set("rasterInfo",h),!u.isSupported)throw new i.A("tiffraster:open","this tiff is not supported: "+u.message);if(!u.tileWidth)throw new i.A("tiffraster:open","none-tiled tiff is not optimized for access, convert to COG and retry.");h.isPseudoSpatialReference&&ne.A.getLogger(this).warn("The spatial reference for this tiff is unsupported. Only EPSG spatial reference codes and Esri WKTs are supported.");const m=o[0].get("PREDICTOR")?.values?.[0],g=o[0].get("SAMPLEFORMAT")?.values?.[0];if(3===g&&2===m)throw new i.A("tiffraster:open","unsupported horizontal difference encoding. Predictor=3 is supported for floating point data");const{skipMapInfo:y,skipExtensions:x=[]}=this.ioConfig;if(!x.includes("aux.xml")&&!y){const t=await this._fetchAuxiliaryMetaData(e);null!=t&&function(e,t){if(t.statistics=e.statistics??t.statistics,t.histograms=e.histograms,e.histograms&&null==t.statistics&&(t.statistics=(0,S.Pg)(e.histograms)),e.transform&&null==t.transform){t.transform=e.transform,t.nativeExtent=t.extent;const s=t.transform.forwardTransform(t.nativeExtent);t.pixelSize=new j.A({x:(s.xmax-s.xmin)/t.width,y:(s.ymax-s.ymin)/t.height,spatialReference:t.spatialReference}),t.extent=s}t.isPseudoSpatialReference&&e.spatialReference&&(t.spatialReference=e.spatialReference,t.extent.spatialReference=t.nativeExtent.spatialReference=t.storageInfo.origin.spatialReference=t.spatialReference)}(t,h)}x.includes("vat.dbf")||1!==h.bandCount||"u8"!==h.pixelType||y||(h.attributeTable=await this._fetchAuxiliaryTable(e),null!=h.attributeTable&&(h.keyProperties.DataType="thematic")),y&&this.updateImageSpaceRasterInfo(h),this.updateTileInfo()}async _validateOrFetchHeaderBuffer(e,t){let{fileChunk:s,fileOffset:i,posIFD:n}=e;return(n+8>=s.byteLength||n<0)&&(i=n+i,s=(await this.request(this.url,{range:{from:i,to:i+this._bufferSize},responseType:"array-buffer",signal:t})).data,n=0),{fileChunk:s,fileOffset:i,posIFD:n}}async _readIFDs(e,t,s,n=4,a){if(!t.posIFD)return null;t=await this._validateOrFetchHeaderBuffer(t,a);const r=await this._readIFD(t,s,ce.NB,n,a);if(!r?.ifd)throw new i.A("tiffraster:open","cannot parse tiff header. failed to open url "+this.url);if(e.push(r.ifd),!r.nextIFD)return null;t.posIFD=r.nextIFD-t.fileOffset,await this._readIFDs(e,t,s,n,a)}async _readIFD(e,t,s=ce.NB,i=4,n){let{fileChunk:a,posIFD:r,fileOffset:o}=e;if(!e.fileChunk)return null;const l=(0,le.JM)(a,t,r,o,s,i);if(l.success){const e=[];if(l.ifd?.forEach(t=>{t.values||e.push(t)}),e.length>0&&await this._fillOffsets(e,t,l.nextIFD,n),l.ifd?.has("GEOKEYDIRECTORY")){const e=l.ifd.get("GEOKEYDIRECTORY"),s=e?.values;if(s&&s.length>4){const i=s[0]+"."+s[1]+"."+s[2];r=e.valueOffset+6-o;const l=await this._validateOrFetchHeaderBuffer({fileChunk:a,posIFD:r,fileOffset:o},n),c=await this._readIFD(l,t,ce.YC,2,n);e.data=c?.ifd,e.data&&e.data.set("GEOTIFFVersion",{id:0,type:2,valueCount:1,valueOffset:null,values:[i]})}}return l}return l.requiredBufferSize?(a=(await this.request(this.url,{range:{from:o,to:o+r+l.requiredBufferSize+8},responseType:"array-buffer",signal:n})).data,a.byteLength<r+l.requiredBufferSize?null:(e.fileChunk=a,e.fileOffset=o,this._readIFD(e,t,s,i,n))):null}async _fillOffsets(e,t,s,i){const n=e.filter(e=>null!=e.offlineOffsetSize);if(0===n.length)return;const a=n.map(e=>e.offlineOffsetSize),r=Math.min.apply(null,a.map(e=>e[0])),o=Math.max.apply(null,a.map(e=>e[0]+e[1]));let l=1===a.length||o-r<=this._bufferSize;if(!l&&a.length>1&&(a.sort((e,t)=>e[0]-t[0]),l=a.reduce((e,t)=>e===t[0]?t[0]+t[1]:0,a[0][0])===o),l){const e=await this._fetchOffsets(r,Math.max(o,r+this._bufferSize),i);return void n.forEach(s=>(0,le.Cr)(e,t,s,r))}const c=n.map(async e=>{const s=e.offlineOffsetSize,n=await this._fetchOffsets(s[0],s[1]+s[0],i);(0,le.Cr)(n,t,e,s[0])});await Promise.all(c)}async _fetchOffsets(e,t,s){const i=[],n=this._chunkSize,a=Math.ceil((t-e)/n);let r=e;for(let e=0;e<a;e++)i.push(this.request(this.url,{range:{from:r,to:e===a-1?t:r+n-1},responseType:"array-buffer",signal:s})),r+=n;const o=await Promise.all(i);if(1===a)return o[0].data;const l=new Uint8Array(t-e+1);for(let e=0;e<a;e++)l.set(new Uint8Array(o[e].data),e*n);return l.buffer}async _fetchRawTiffTile(e,t,s,i,n={}){const a=this._getTileLocation(e,t,s,i);if(!a)return null;const{ranges:r,actualTileWidth:o,actualTileHeight:l,ifd:c}=a,f=r.map(e=>this.request(this.url,{range:e,responseType:"array-buffer",signal:n.signal})),u=await Promise.all(f),h=u.map(e=>e.data.byteLength).reduce((e,t)=>e+t),p=1===u.length?u[0].data:new ArrayBuffer(h),d=[0],m=[0];if(u.length>1){const e=new Uint8Array(p);for(let t=0,s=0;t<u.length;t++){const i=u[t].data;e.set(new Uint8Array(i),s),d[t]=s,s+=i.byteLength,m[t]=i.byteLength}}const{blockWidth:g,blockHeight:y}=this.getBlockWidthHeight(e),x=await this.decodePixelBlock(p,{format:"tiff",customOptions:{headerInfo:this._headerInfo,ifd:c,offsets:d,sizes:m},width:g,height:y,planes:null,pixelType:null});if(null==x)return null;if(o!==g||l!==y){let e=x.mask;if(e)for(let t=0;t<y;t++){const s=t*g;if(t<l)for(let t=o;t<g;t++)e[s+t]=0;else for(let t=0;t<g;t++)e[s+t]=0}else{e=new Uint8Array(g*y),x.mask=e;for(let t=0;t<l;t++){const s=t*g;for(let t=0;t<o;t++)e[s+t]=1}}}return x}_getTileLocation(e,t,s,i=!1){const{firstPyramidLevel:n,blockBoundary:a}=this.rasterInfo.storageInfo,r=0===e?0:e-(n-1),{_headerInfo:o}=this;if(!o)return null;const l=i?o.maskIFDs[r]:0===r?o.ifds[0]:o.pyramidIFDs[r-1];if(!l)return null;const c=(0,le.XO)(l,o),f=(0,le.wc)(l,"TILEOFFSETS"),u=(0,le.wc)(l,"TILEBYTECOUNTS");if(!f?.length||!u?.length)return null;const{minRow:h,minCol:p,maxRow:d,maxCol:m}=a[r];if(t>d||s>m||t<h||s<p)return null;const g=(0,le.LZ)(l,"IMAGEWIDTH"),y=(0,le.LZ)(l,"IMAGELENGTH"),x=(0,le.LZ)(l,"TILEWIDTH"),w=(0,le.LZ)(l,"TILELENGTH"),I=[];if(c){const{bandCount:e}=this.rasterInfo;for(let i=0;i<e;i++){const e=i*(d+1)*(m+1)+t*(m+1)+s;I[i]={from:f[e],to:f[e]+u[e]-1}}}else{const e=t*(m+1)+s;I.push({from:f[e],to:f[e]+u[e]-1})}for(let e=0;e<I.length;e++)if(null==I[e].from||!I[e].to||I[e].to<0)return null;return{ranges:I,ifd:l,actualTileWidth:s===m&&g%x||x,actualTileHeight:t===d&&y%w||w}}async _fetchAuxiliaryMetaData(e){try{const{data:t}=await this.request(this.url+".aux.xml",{responseType:"xml",signal:e?.signal});return J(t)}catch{return null}}async _fetchAuxiliaryTable(e){try{const{data:t}=await this.request(this.url+".vat.dbf",{responseType:"array-buffer",signal:e?.signal}),s=oe.parse(t);return s?.recordSet?O.A.fromJSON(s.recordSet):null}catch{return null}}};(0,n.Cg)([(0,a.MZ)()],fe.prototype,"_files",void 0),(0,n.Cg)([(0,a.MZ)()],fe.prototype,"_headerInfo",void 0),(0,n.Cg)([(0,a.MZ)()],fe.prototype,"_bufferSize",void 0),(0,n.Cg)([(0,a.MZ)()],fe.prototype,"_chunkSize",void 0),(0,n.Cg)([(0,a.MZ)({type:String,json:{write:!0}})],fe.prototype,"datasetFormat",void 0),fe=(0,n.Cg)([(0,a.$K)("esri.layers.raster.datasets.TIFFRaster")],fe);const ue=fe,he=new Map;he.set("MRF",{desc:"Meta Raster Format",constructor:ie}),he.set("TIFF",{desc:"GeoTIFF",constructor:ue}),he.set("RasterTileServer",{desc:"Raster Tile Server",constructor:K}),he.set("JPG",{desc:"JPG Raster Format",constructor:U}),he.set("PNG",{desc:"PNG Raster Format",constructor:U}),he.set("GIF",{desc:"GIF Raster Format",constructor:U}),he.set("BMP",{desc:"BMP Raster Format",constructor:U}),he.set("CovJSON",{desc:"COVJSON Raster Format",constructor:k}),he.set("MEMORY",{desc:"In Memory Raster Format",constructor:M});class pe{static get supportedFormats(){const e=new Set;return he.forEach((t,s)=>e.add(s)),e}static async open(e){const{url:t,ioConfig:s,source:n,sourceJSON:a}=e;let r=e.datasetFormat??s?.datasetFormat;null==r&&(t.includes(".")?r=t.slice(t.lastIndexOf(".")+1).toUpperCase():"coverage"===n?.type?.toLowerCase()?r="CovJSON":n?.extent&&n.pixelblocks&&(r="MEMORY")),"OVR"===r||"TIF"===r?r="TIFF":"JPG"===r||"JPEG"===r||"JFIF"===r?r="JPG":"COVJSON"===r&&(r="CovJSON"),t.toLowerCase().includes("/imageserver")&&!t.toLowerCase().includes("/wcsserver")&&(r="RasterTileServer");const o={url:t,source:n,sourceJSON:a,datasetFormat:r,ioConfig:s??{bandIds:null,sampling:null}};if(Object.keys(o).forEach(e=>{null==o[e]&&delete o[e]}),r){if(!this.supportedFormats.has(r))throw new i.A("rasterfactory:open","not a supported format "+r);if("CRF"===r)throw new i.A("rasterfactory:open",`cannot open raster: ${t}`);const s=new(0,he.get(r).constructor)(o);return s.rasterJobHandler=e.rasterJobHandler,s.rasterInfo=e.rasterInfo,await s.open({signal:e.signal}),s}const l=Array.from(he.keys()).filter(e=>"CovJSON"!==e&&"Memory"!==e);let c=0;const f=()=>{if(r=l[c++],!r)return null;if("CRF"===r)return null;const t=new(0,he.get(r).constructor)(o);return t.rasterJobHandler=e.rasterJobHandler,t.open({signal:e.signal}).then(()=>t).catch(()=>f())};return f()}static register(e,t,s){he.has(e.toUpperCase())||he.set(e.toUpperCase(),{desc:t,constructor:s})}}},10333(e,t,s){s.d(t,{A:()=>r});var i=s(32198),n=s(25482),a=s(91429);let r=class extends n.o{get affectsPixelSize(){return!1}forwardTransform(e){return e}inverseTransform(e){return e}};(0,i.Cg)([(0,a.MZ)()],r.prototype,"affectsPixelSize",null),(0,i.Cg)([(0,a.MZ)({json:{write:!0}})],r.prototype,"spatialReference",void 0),r=(0,i.Cg)([(0,a.$K)("esri.layers.raster.transforms.BaseRasterTransform")],r)},75414(e,t,s){s.d(t,{A:()=>l});var i,n=s(32198),a=s(91429),r=s(10333),o=s(93223);let l=i=class extends r.A{constructor(){super(...arguments),this.type="gcs-shift",this.tolerance=1e-8}forwardTransform(e){return"point"===(e=e.clone()).type?(e.x>180+this.tolerance&&(e.x-=360),e):(e.xmin>=180-this.tolerance?(e.xmax-=360,e.xmin-=360):e.xmax>180+this.tolerance&&(e.xmin=-180,e.xmax=180),e)}inverseTransform(e){return"point"===(e=e.clone()).type?(e.x<-this.tolerance&&(e.x+=360),e):(e.xmin<-this.tolerance&&(e.xmin+=360,e.xmax+=360),e)}clone(){return new i({tolerance:this.tolerance})}};(0,n.Cg)([(0,o.e)({GCSShiftXform:"gcs-shift"})],l.prototype,"type",void 0),(0,n.Cg)([(0,a.MZ)()],l.prototype,"tolerance",void 0),l=i=(0,n.Cg)([(0,a.$K)("esri.layers.raster.transforms.GCSShiftTransform")],l)},43163(e,t,s){s.d(t,{A:()=>d});var i,n=s(32198),a=s(91429),r=s(5443),o=s(86738),l=s(10333),c=s(36005),f=s(43937),u=s(93223);function h(e,t,s){const{x:i,y:n}=t;if(s<2)return{x:e[0]+i*e[2]+n*e[4],y:e[1]+i*e[3]+n*e[5]};if(2===s){const t=i*i,s=n*n,a=i*n;return{x:e[0]+i*e[2]+n*e[4]+t*e[6]+a*e[8]+s*e[10],y:e[1]+i*e[3]+n*e[5]+t*e[7]+a*e[9]+s*e[11]}}const a=i*i,r=n*n,o=i*n,l=a*i,c=a*n,f=i*r,u=n*r;return{x:e[0]+i*e[2]+n*e[4]+a*e[6]+o*e[8]+r*e[10]+l*e[12]+c*e[14]+f*e[16]+u*e[18],y:e[1]+i*e[3]+n*e[5]+a*e[7]+o*e[9]+r*e[11]+l*e[13]+c*e[15]+f*e[17]+u*e[19]}}function p(e,t,s){const{xmin:i,ymin:n,xmax:a,ymax:o,spatialReference:l}=t;let c=[];if(s<2)c.push({x:i,y:o}),c.push({x:a,y:o}),c.push({x:i,y:n}),c.push({x:a,y:n});else{let e=10;for(let t=0;t<e;t++)c.push({x:i,y:n+(o-n)*t/(e-1)}),c.push({x:a,y:n+(o-n)*t/(e-1)});e=8;for(let t=1;t<=e;t++)c.push({x:i+(a-i)*t/e,y:n}),c.push({x:i+(a-i)*t/e,y:o})}c=c.map(t=>h(e,t,s));const f=c.map(e=>e.x),u=c.map(e=>e.y);return new r.A({xmin:Math.min.apply(null,f),xmax:Math.max.apply(null,f),ymin:Math.min.apply(null,u),ymax:Math.max.apply(null,u),spatialReference:l})}let d=i=class extends l.A{constructor(){super(...arguments),this.polynomialOrder=1,this.type="polynomial"}readForwardCoefficients(e,t){const{coeffX:s,coeffY:i}=t;if(!s?.length||!i?.length||s.length!==i.length)return null;const n=[];for(let e=0;e<s.length;e++)n.push(s[e]),n.push(i[e]);return n}writeForwardCoefficients(e,t,s){const i=[],n=[];for(let t=0;t<e?.length;t++)t%2==0?i.push(e[t]):n.push(e[t]);t.coeffX=i,t.coeffY=n}get inverseCoefficients(){let e=this._get("inverseCoefficients");const t=this._get("forwardCoefficients");return!e&&t&&this.polynomialOrder<2&&(e=function(e){const[t,s,i,n,a,r]=e,o=i*r-a*n,l=a*n-i*r;return[(a*s-t*r)/o,(i*s-t*n)/l,r/o,n/l,-a/o,-i/l]}(t)),e}set inverseCoefficients(e){this._set("inverseCoefficients",e)}readInverseCoefficients(e,t){const{inverseCoeffX:s,inverseCoeffY:i}=t;if(!s?.length||!i?.length||s.length!==i.length)return null;const n=[];for(let e=0;e<s.length;e++)n.push(s[e]),n.push(i[e]);return n}writeInverseCoefficients(e,t,s){const i=[],n=[];for(let t=0;t<e?.length;t++)t%2==0?i.push(e[t]):n.push(e[t]);t.inverseCoeffX=i,t.inverseCoeffY=n}get affectsPixelSize(){return this.polynomialOrder>0}forwardTransform(e){if("point"===e.type){const t=h(this.forwardCoefficients,e,this.polynomialOrder);return new o.A({x:t.x,y:t.y,spatialReference:e.spatialReference})}return p(this.forwardCoefficients,e,this.polynomialOrder)}inverseTransform(e){if("point"===e.type){const t=h(this.inverseCoefficients,e,this.polynomialOrder);return new o.A({x:t.x,y:t.y,spatialReference:e.spatialReference})}return p(this.inverseCoefficients,e,this.polynomialOrder)}clone(){return new i({polynomialOrder:this.polynomialOrder,forwardCoefficients:this.forwardCoefficients?[...this.forwardCoefficients]:null,inverseCoefficients:this.inverseCoefficients?[...this.inverseCoefficients]:null})}};(0,n.Cg)([(0,a.MZ)({json:{write:!0}})],d.prototype,"polynomialOrder",void 0),(0,n.Cg)([(0,a.MZ)()],d.prototype,"forwardCoefficients",void 0),(0,n.Cg)([(0,c.w)("forwardCoefficients",["coeffX","coeffY"])],d.prototype,"readForwardCoefficients",null),(0,n.Cg)([(0,f.K)("forwardCoefficients")],d.prototype,"writeForwardCoefficients",null),(0,n.Cg)([(0,a.MZ)({json:{write:!0}})],d.prototype,"inverseCoefficients",null),(0,n.Cg)([(0,c.w)("inverseCoefficients",["inverseCoeffX","inverseCoeffY"])],d.prototype,"readInverseCoefficients",null),(0,n.Cg)([(0,f.K)("inverseCoefficients")],d.prototype,"writeInverseCoefficients",null),(0,n.Cg)([(0,a.MZ)()],d.prototype,"affectsPixelSize",null),(0,n.Cg)([(0,u.e)({PolynomialXform:"polynomial"})],d.prototype,"type",void 0),d=i=(0,n.Cg)([(0,a.$K)("esri.layers.raster.transforms.PolynomialTransform")],d)}}]);
1
+ "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[1003],{1003(e,t,s){s.r(t),s.d(t,{default:()=>pe});var i=s(49186),n=s(32198),r=s(91429),a=s(49859),o=s(68197),l=s(5443),c=s(16930),f=s(73444),u=s(94778),h=s(14140);function p(e){return["x","e","east","long","longitude"].includes(e.toLowerCase())}function d(e){return["y","n","west","lat","latitude"].includes(e.toLowerCase())}function m(e){const{axes:t}=e.domain,s=Object.keys(t),i=[],n=[];let r=-1,a=-1,o=[];for(let e=0;e<s.length;e++){const l=s[e];p(l)?r=e:d(l)&&(a=e);const c=t[l],f=[];if("values"in c){c.values.forEach(e=>f.push("string"==typeof e?new Date(e).getTime():e));const e=f[1]-f[0];i.push([f[0]-.5*e,f[f.length-1]+.5*e]),n.push(e)}else{const{start:e,stop:t,num:s}=c,r=(t-e)/(s-1);i.push([e-.5*r,t+.5*r]),n.push(r);for(let t=0;t<s;t++)f.push(e+r*t)}o.push({name:l,values:f,extent:[f[0],f[f.length-1]]})}r>-1&&-1===a?a=0===r?1:0:a>-1&&-1===r?r=0===a?1:0:-1===a&&-1===r&&(r=0,a=1),o=o.filter((e,t)=>!(t===r||t===a));const{referencing:f}=e.domain,u=f.find(e=>e.coordinates.includes(s[r])).system.id,h=u?.slice(u.lastIndexOf("/")+1),m=null==h||"CRS84"===h?4326:Number(h),g=new c.A({wkid:m}),[y,x]=i[r],[w,I]=i[a],b=new l.A({xmin:y,xmax:x,ymin:w,ymax:I,spatialReference:g});return{width:Math.round(b.width/n[r]),height:Math.round(b.height/n[a]),extent:b,dimensions:o}}function g(e){const t=(0,f.lR)();return t?e[t]??Object.values(e)[0]:Object.values(e)[0]}function y(){return Math.round(255*Math.random())}function x(e){const t={},{parameters:s}=e;if(!s)return t;for(const[e,i]of Object.entries(s)){const{type:s,description:n,unit:r,categoryEncoding:a,observedProperty:l}=i;if("Parameter"===s&&(t[e]={},n&&(t[e].description=g(n)),r&&(t[e].unit=r.label?g(r.label):null,t[e].symbol=r.symbol?.value),a)){const s=Object.entries(a).map((e,t)=>({OID:t,Value:Number(e[1]),ClassName:e[0].slice(e[0].lastIndexOf("/")+1),Count:1}));let i=!1;l?.categories?.length&&(l.categories.forEach(e=>{if(!e.id)return;const t=e.id.slice(e.id.lastIndexOf("/")+1),n=s.find(e=>e.ClassName===t);if(!n)return;const r=e.label?g(e.label):null;if(n.Label=r,e.preferredColor){const t=o.A.fromHex(e.preferredColor);t&&(i=!0,n.Red=t.r,n.Green=t.g,n.Blue=t.b)}}),i&&s.forEach(e=>{null==e.Red&&(e.Red=y(),e.Green=y(),e.Blue=y())}));const n={objectIdFieldName:"",fields:[{name:"OID",type:"esriFieldTypeOID",alias:"OID",domain:null},{name:"Value",type:"esriFieldTypeInteger",alias:"Value",domain:null},{name:"Count",type:"esriFieldTypeDouble",alias:"Count",domain:null},{name:"ClassName",type:"esriFieldTypeString",alias:"ClassName",domain:null,length:50},{name:"Label",type:"esriFieldTypeString",alias:"Label",domain:null,length:50}],features:s.map(e=>({attributes:e}))};i&&n.fields.push({name:"Red",type:"esriFieldTypeInteger",alias:"Red",domain:null},{name:"Green",type:"esriFieldTypeInteger",alias:"Green",domain:null},{name:"Blue",type:"esriFieldTypeInteger",alias:"Blue",domain:null}),t[e].attributeTable=n}}return t}function w(e){let t=Number.MAX_VALUE,s=-Number.MAX_VALUE;for(let i=0;i<e.length;i++){const n=e[i];null!=n&&(n<t&&(t=n),n>s&&(s=n))}return(0,u.X1)(t,s)}function I(e,t,s){const i=e.map((e,s)=>({name:e,count:t[s]})).sort((e,t)=>e.name>t.name?-1:1),n=(r=1,e=>r*=e.count);var r;const a=[...i.slice(1),{name:"",count:1}].reverse().map(n).reverse();let o=0;for(let n=e.length-1;n>=0;n--)o+=a[i.findIndex(({name:t})=>t===e[n])]*(s%t[n]),s=Math.floor(s/t[n]);return o}var b=s(17676),v=s(4366),C=s(47520),S=s(51927),T=s(45617),A=s(87186);let R=class extends a.A{constructor(){super(...arguments),this.datasetFormat="MEMORY",this.preGenerateTiles=!0,this.source=null}get url(){return""}fetchRawTile(e,t,s,i={}){if(!this._pixelBlockTiles){const{rasterInfo:n}=this,[r,a]=n.storageInfo.tileInfo.size,{sliceId:o}=i,{pixelBlocks:l}=this.source,c={pixelBlock:null==o?l[0]:l[o],useBilinear:"thematic"!==n.dataType,tileSize:{width:r,height:a},level:e,row:t,col:s},f=this.rasterJobHandler?this.rasterJobHandler.clipTile(c,i):(0,C.J$)(c);return Promise.resolve(f)}const n=this._pixelBlockTiles.get(`${e}/${t}/${s}`);return Promise.resolve(n)}async _open(e){const t=this.source,{pixelBlocks:s,attributeTable:i,statistics:n,histograms:r,name:a,nativeExtent:o,transform:f,colormap:u}=t,h=s[0],{width:p,height:d,pixelType:m}=h,g=t.extent??new l.A({xmin:-.5,ymin:.5,xmax:p-.5,ymax:d-.5,spatialReference:new c.A({wkid:3857})}),y=t.isPseudoSpatialReference??!t.extent,x={x:g.width/p,y:g.height/d},w={...t.keyProperties};t.dataType&&(w.DataType=t.dataType),t.bandInfos&&(w.BandProperties=t.bandInfos.map(e=>e.toJSON())),i&&(w.DataType="Thematic");const I=new A.A({width:p,height:d,pixelType:m,extent:g,nativeExtent:o,attributeTable:i,colormap:u,transform:f,pixelSize:x,spatialReference:g.spatialReference,bandCount:h.pixels.length,keyProperties:w,multidimensionalInfo:t.multidimensionalInfo,statistics:n,isPseudoSpatialReference:y,histograms:r});this.ioConfig.skipMapInfo&&this.updateImageSpaceRasterInfo(I),this.createRemoteDatasetStorageInfo(I,512,512),this._set("rasterInfo",I),this.updateTileInfo(),I.multidimensionalInfo?await this._buildMDimStats(t.pixelBlocks,I.multidimensionalInfo):this.preGenerateTiles&&await this._buildInMemoryRaster(h,{width:512,height:512},e),I.multidimensionalInfo||(this.source=null),this.datasetName=a}async _buildInMemoryRaster(e,t,s){const{rasterInfo:n}=this,r=n.storageInfo.maximumPyramidLevel??0,a="thematic"!==n.dataType,o=this.rasterJobHandler?this.rasterJobHandler.split({pixelBlock:e,tileSize:t,maximumPyramidLevel:r,useBilinear:a},s):Promise.resolve((0,C.lD)(e,t,r,a)),l=null!=n.statistics,c=null!=n.histograms,f=this.ioConfig.skipStatistics||l?Promise.resolve({statistics:null,histograms:null}):this.rasterJobHandler?this.rasterJobHandler.estimateStatisticsHistograms({pixelBlock:e},s):Promise.resolve((0,S.f4)(e)),u=await(0,b.Lx)([o,f]);if(!u[0].value&&u[1].value)throw new i.A("inmemory-raster:open","failed to build in memory raster");this._pixelBlockTiles=u[0].value,l||(n.statistics=u[1].value?.statistics),c||(n.histograms=u[1].value?.histograms)}async _buildMDimStats(e,t,s){for(let i=0;i<t.variables.length;i++){const n=t.variables[i];if(n.statistics)continue;const r=n.dimensions.map(e=>new T.A({variableName:n.name,dimensionName:e.name,values:[e.values?.[0]??e.extent?.[0]],isSlice:!0})),a=(0,v.NG)(r,t),o=null==a?null:e[a];if(null==o)continue;const l=this.rasterJobHandler?await this.rasterJobHandler.computeStatisticsHistograms({pixelBlock:o},s):(0,S.eH)(o);n.statistics=l.statistics,n.histograms||(n.histograms=l.histograms)}}};(0,n.Cg)([(0,r.MZ)({type:String,json:{write:!0}})],R.prototype,"datasetFormat",void 0),(0,n.Cg)([(0,r.MZ)({constructOnly:!0})],R.prototype,"preGenerateTiles",void 0),(0,n.Cg)([(0,r.MZ)()],R.prototype,"source",void 0),(0,n.Cg)([(0,r.MZ)()],R.prototype,"url",null),R=(0,n.Cg)([(0,r.$K)("esri.layers.raster.datasets.InMemoryRaster")],R);const M=R;var O=s(22671);let _=class extends a.A{constructor(){super(...arguments),this.datasetFormat="CovJSON"}fetchRawTile(e,t,s,i={}){return this._inMemoryRaster.fetchRawTile(e,t,s,i)}async _open(e){const{extent:t,pixelBlocks:s,multidimensionalInfo:i,attributeTable:n,bandNames:r}=await this._fetchData(e),{statistics:a,histograms:o}=(0,S.eH)(s[0]),l=r?.map(e=>({BandName:e})),c={DataType:n?"Thematic":i?"Scientific":"Generic",BandProperties:l},f=new M({source:{extent:t,pixelBlocks:s,attributeTable:n?O.A.fromJSON(n):null,multidimensionalInfo:i,statistics:a,histograms:o,keyProperties:c,isPseudoSpatialReference:!1}});await f.open(),this._inMemoryRaster=f;const u=this.source?"":this.url.slice(this.url.lastIndexOf("/")+1);this._set("datasetName",u.slice(0,u.indexOf("."))),this._set("rasterInfo",f.rasterInfo)}async _fetchData(e){const t=this.source??(await this.request(this.url,{signal:e?.signal})).data,s="imagery-tile-layer:open-coverage-json";if("coverage"!==t.type?.toLowerCase()||"grid"!==t.domain?.domainType?.toLowerCase())throw new i.A(s,"Only coverage with Grid domain type is supported");if(!t.ranges)throw new i.A(s,"Missing ranges in the grid coverage data");if(!t.domain.referencing?.length)throw new i.A(s,"Missing domain referencing in the grid coverage data");const n=Object.values(t.ranges);for(let e=0;e<n.length;e++){const{axisNames:t,shape:r,type:a,values:o}=n[e];if(!("ndarray"===a.toLowerCase()&&o?.length&&t?.length&&r?.length))throw new i.A(s,"Only ranges with valid NdArray, axisNames, shape, and inline values are supported");if(!p(t[t.length-1])||!d(t[t.length-2]))throw new i.A(s,"Only row-major ordered pixel values are supported. X axis must be the last axis.")}return function(e){const{width:t,height:s,extent:i,dimensions:n}=m(e),{ranges:r}=e,a=Object.keys(r).sort((e,t)=>e<t?-1:1),o=[];for(let e=0;e<a.length;e++){const t=a[e];n?.length&&o.push({name:t,dimensions:n})}const l=x(e);o.forEach(e=>l[e.name]&&Object.assign(e,l[e.name]));const c=o.length?{variables:o}:void 0,f=[];for(let e=0;e<a.length;e++){const i=a[e],{values:o,dataType:l,axisNames:c,shape:u}=r[i],p=u.length>2?e*u.slice(0,-2).reduce((e,t)=>e*t):0,d=c.slice(0,-2),m=u.slice(0,-2),g="float"===l?"f32":w(o),y=t*s,x=o.length/y;for(let i=0;i<x;i++){const r=h.A.createEmptyBand(g,y),a=new Uint8Array(y).fill(255);let l=!1;const c=i*y;for(let e=0;e<y;e++){const t=o[c+e];null==t?(a[e]=0,l=!0):r[e]=t}if(0===e||n?.length){const e=new h.A({width:t,height:s,mask:l?a:null,pixels:[r],pixelType:g});e.updateStatistics(),n?.length?f[I(d,m,i)+p]=e:f.push(e)}else{const e=f[i];e.pixels.push(r),l?e.mask&&(e.mask=h.A.combineBandMasks([e.mask,a])):e.mask=l?a:null}}}const u=Object.values(l).find(e=>e.attributeTable)?.attributeTable;return{extent:i,pixelBlocks:f,multidimensionalInfo:c,attributeTable:u,bandNames:c?void 0:a}}(t)}};(0,n.Cg)([(0,r.MZ)({type:String,json:{write:!0}})],_.prototype,"datasetFormat",void 0),(0,n.Cg)([(0,r.MZ)({constructOnly:!0})],_.prototype,"source",void 0),_=(0,n.Cg)([(0,r.$K)("esri.layers.raster.datasets.CovJSONRaster")],_);const k=_;var F=s(4576),P=s(21325),B=s(330),N=s(43163);function D(e,t){if(!e||!t)return null;const s=[];for(let i=0;i<e.length;i++)s.push(e[i]),s.push(t[i]);return s}function E(e){if(!e)return null;let t=Number(e);if(!isNaN(t)&&0!==t)return new c.A({wkid:t});if(e=String(e).trim(),(0,P.jp)(e))return new c.A({wkt2:e});const s=e.toUpperCase();if(s.startsWith("COMPD_CS")){if(!s.includes("VERTCS")||!s.includes("GEOGCS")&&!s.startsWith("PROJCS"))return null;const i=s.indexOf("VERTCS"),n=s.indexOf("PROJCS"),r=n>-1?n:s.indexOf("GEOGCS");if(-1===r)return null;const a=e.slice(r,e.lastIndexOf("]",i)+1).trim(),o=e.slice(i,e.lastIndexOf("]")).trim();t=L(a);const l=new c.A(t?{wkid:t}:{wkt:a}),f=L(o);return f&&(l.vcsWkid=f),l}return s.startsWith("GEOGCS")||s.startsWith("PROJCS")?(t=L(e),new c.A(0!==t?{wkid:t}:{wkt:e})):null}function L(e){const t=e.replaceAll("]","[").replaceAll('"',"").split("[").map(e=>e.trim()).filter(e=>""!==e),s=t[t.length-1].split(","),i=s[0]?.toLowerCase();if(("epsg"===i||"esri"===i)&&e.endsWith('"]]')){const e=Number(s[1]);if(!isNaN(e)&&0!==e)return e}return 0}function J(e){if("pamdataset"!==e?.documentElement.tagName?.toLowerCase())return{};const t={spatialReference:null,transform:null,metadata:{},rasterBands:[],statistics:null,histograms:null};e.documentElement.childNodes.forEach(e=>{if(1===e.nodeType)if((0,B.g7)(e,"SRS")){if(!t.spatialReference){const s=(0,B.mX)(e);t.spatialReference=E(s)}}else if((0,B.g7)(e,"Metadata"))if("xml:ESRI"===e.getAttribute("domain")){const{spatialReference:s,transform:i}=function(e){const t=(0,B.V6)(e,"GeodataXform"),s=E((0,B.v7)(t,"SpatialReference/WKID")||(0,B.mX)(t,"SpatialReference/WKT"));if("typens:PolynomialXform"!==t.getAttribute("xsi:type"))return{spatialReference:s,transform:null};const i=(0,B.v7)(t,"PolynomialOrder")??1,n=(0,B.Ui)(t,"CoeffX/Double"),r=(0,B.Ui)(t,"CoeffY/Double"),a=(0,B.Ui)(t,"InverseCoeffX/Double"),o=(0,B.Ui)(t,"InverseCoeffY/Double"),l=D(n,r),c=D(a,o);return{spatialReference:s,transform:l&&c&&l.length&&c.length?new N.A({spatialReference:s,polynomialOrder:i,forwardCoefficients:l,inverseCoefficients:c}):null}}(e);t.transform=i,t.spatialReference||(t.spatialReference=s)}else(0,B.IC)(e,"MDI").forEach(e=>t.metadata[e.getAttribute("key")]=(0,B.mX)(e));else if((0,B.g7)(e,"PAMRasterBand")){const s=function(e){const t=(0,B.v7)(e,"NoDataValue"),s=(0,B.V6)(e,"Histograms/HistItem"),i=(0,B.v7)(s,"HistMin"),n=(0,B.v7)(s,"HistMax"),r=(0,B.v7)(s,"BucketCount"),a=(0,B.mX)(s,"HistCounts")?.split("|").map(e=>Number(e));let o,l,c,f;(0,B.IC)(e,"Metadata/MDI").forEach(e=>{const t=Number(e.textContent??e.nodeValue);switch(e.getAttribute("key").toUpperCase()){case"STATISTICS_MINIMUM":o=t;break;case"STATISTICS_MAXIMUM":l=t;break;case"STATISTICS_MEAN":c=t;break;case"STATISTICS_STDDEV":f=t}});const u=(0,B.v7)(e,"Metadata/SourceBandIndex");return{noDataValue:t,histogram:a?.length&&null!=i&&null!=n?{min:i,max:n,size:r||a.length,counts:a}:null,sourceBandIndex:u,statistics:null!=o&&null!=l?{min:o,max:l,avg:c,stddev:f}:null}}(e);null!=s.sourceBandIndex&&null==t.rasterBands[s.sourceBandIndex]?t.rasterBands[s.sourceBandIndex]=s:t.rasterBands.push(s)}});const s=t.rasterBands;if(s.length){const e=!!s[0].statistics;t.statistics=e?s.map(e=>e.statistics).filter(F.Ru):null;const i=!!s[0].histogram;t.histograms=i?s.map(e=>e.histogram).filter(F.Ru):null}return t}var z=s(96271);let H=class extends a.A{set rasterJobHandler(e){this._set("rasterJobHandler",e),this._inMemoryRaster&&(this._inMemoryRaster.rasterJobHandler=e)}fetchRawTile(e,t,s,i={}){if(this._imageBlob){const{blockWidth:i,blockHeight:n}=this.rasterInfo.storageInfo;return this.decodePixelBlock(this._imageBlob,{tileSize:[i,n],tileIndex:[e,t,s],canvasUsage:"canvas-only",cloneSource:!0,skipStatistics:!0})}return this._inMemoryRaster.fetchRawTile(e,t,s,i)}async _open(e){const t=await this._fetchData(e);if(null==t)throw new i.A("image-aux-raster:open","the data cannot be decoded");let{spatialReference:s,statistics:n,histograms:r,transform:a}=await this._fetchAuxiliaryData(e);const o=!s;o&&(s=new c.A({wkid:3857})),r?.length&&null==n&&(n=(0,S.Pg)(r));const{width:f,height:u}=t;let h=new l.A({xmin:-.5,ymin:.5-u,xmax:f-.5,ymax:.5,spatialReference:s});const p=a?a.forwardTransform(h):h;let d=!0;if(a){const e=a.forwardCoefficients;d=e&&0===e[1]&&0===e[2],d&&(a=null,h=p)}const{rasterJobHandler:m,ioConfig:g}=this,y=new M({preGenerateTiles:!1,rasterJobHandler:m,source:{extent:p,nativeExtent:h,transform:a,pixelBlocks:[t],statistics:n,histograms:r,keyProperties:{DateType:"Processed"},isPseudoSpatialReference:o},ioConfig:{...g,sampling:"closest",skipStatistics:!0}});await y.open(),y.source=null,this._set("rasterInfo",y.rasterInfo),this._inMemoryRaster=y}async _fetchData(e){const{data:t}=await this.request(this.url,{responseType:"array-buffer",signal:e?.signal}),s=(0,z.g)(t);if("jpg"!==s&&"png"!==s&&"gif"!==s&&"bmp"!==s)throw new i.A("image-aux-raster:open","the data is not a supported format");this._set("datasetFormat",s.toUpperCase());const n=s.toLowerCase();try{const e=await this.decodePixelBlock(t,{format:n,canvasUsage:"canvas-only",cloneSource:!0,skipStatistics:!0});return this._imageBlob=t,e}catch{return this.decodePixelBlock(t,{format:n,canvasUsage:"no-canvas",skipStatistics:!0})}}async _fetchAuxiliaryData(e){const t=e?.signal,{skipExtensions:s=[],skipMapInfo:i}=this.ioConfig,n=i||s.includes("aux.xml")?null:this.request(this.url+".aux.xml",{responseType:"xml",signal:t}),r=this.datasetFormat,a="JPG"===r?"jgw":"PNG"===r?"pgw":"BMP"===r?"bpw":null,o=a&&s.includes(a)?null:this.request(this.url.slice(0,this.url.lastIndexOf("."))+"."+a,{responseType:"text",signal:t}),l=await(0,b.Lx)([n,o]);if(t?.aborted)throw(0,b.NK)();const c=J(l[0].value?.data);if(!c.transform){const e=l[1].value?l[1].value.data.split("\n").slice(0,6).map(e=>Number(e)):null;c.transform=6===e?.length?new N.A({forwardCoefficients:[e[4],e[5],e[0],-e[1],e[2],-e[3]]}):null}return c}};(0,n.Cg)([(0,r.MZ)({type:String,json:{write:!0}})],H.prototype,"datasetFormat",void 0),(0,n.Cg)([(0,r.MZ)()],H.prototype,"rasterJobHandler",null),H=(0,n.Cg)([(0,r.$K)("esri.layers.raster.datasets.ImageAuxRaster")],H);const U=H;var G=s(97768),q=s(84952),j=s(86738),V=s(75414),W=s(20223),Z=s(87045),X=s(25943),$=s(82371);let Y=class extends a.A{constructor(){super(...arguments),this._levelOffset=0,this._tilemapCache=null,this._slices=null,this.datasetFormat="RasterTileServer",this.tileType=null}async fetchRawTile(e,t,s,i={}){const{storageInfo:n,extent:r}=this.rasterInfo,{transposeInfo:a}=n,o=null!=a&&!!i.transposedVariableName;if(this._slices&&!o&&null==i.sliceId)return null;const l=o?0:n.maximumPyramidLevel-e+this._levelOffset,c=`${this.url}/tile/${l}/${t}/${s}`,f={...this._slices?o?{variable:i.transposedVariableName}:{sliceId:i.sliceId||0}:null,...i.refreshParameters};let u,h;if(n.isBsqTile){const e=(i.bandIds?.length?i.bandIds:[0,1,2]).map(e=>this.request(c,{query:{...f,bandId:e},responseType:"array-buffer",signal:i.signal})),t=await Promise.all(e),s=t.map(e=>e.data.byteLength).reduce((e,t)=>e+t),n=new Uint8Array(s);h=[];let r=0;for(const{data:e}of t)h.push(r),n.set(new Uint8Array(e),r),r+=e.byteLength;u=n.buffer}else u=(await this.request(c,{query:f,responseType:"array-buffer",signal:i.signal})).data;if(!u)return null;const{tileInfo:p}=n,d=o?a.tileSize:p.size,m=/^(mixed|jp)/i.test(p.format),g=await this.decodePixelBlock(u,{width:d[0],height:d[1],planes:h?.length,offsets:h,pixelType:null,isPoint:"Elevation"===this.tileType,returnInterleaved:o,noDataValue:this.rasterInfo.noDataValue,applyJpegMask:m});if(null==g)return null;const y=n.blockBoundary[e];if("jpg"!==n.compression||s>y.minCol&&s<y.maxCol&&t>y.minRow&&t<y.maxRow)return g;const{origin:x,blockWidth:w,blockHeight:I}=n,{x:b,y:v}=this.getPyramidPixelSize(e),S=Math.round((r.xmin-x.x)/b)%w,T=Math.round((r.xmax-x.x)/b)%w||w,A=Math.round((x.y-r.ymax)/v)%I,R=Math.round((x.y-r.ymin)/v)%I||I,M=s===y.minCol?S:0,O=t===y.minRow?A:0,_=s===y.maxCol?T:w,k=t===y.maxRow?R:I;return(0,C.z$)(g,{x:M,y:O},{width:_-M,height:k-O}),g}getSliceIndex(e){if(!this._slices||null==e||0===e.length)return null;const t=e;for(let e=0;e<this._slices.length;e++){const s=this._slices[e].multidimensionalDefinition;if(s.length===t.length&&!s.some(e=>{const s=t.find(t=>e.variableName===t.variableName&&t.dimensionName===e.dimensionName);return!s||(Array.isArray(e.values[0])?`${e.values[0][0]}-${e.values[0][1]}`:e.values[0])!==(Array.isArray(s.values[0])?`${s.values[0][0]}-${s.values[0][1]}`:s.values[0])}))return e}return null}async fetchVariableStatisticsHistograms(e,t){const s=this.request(this.url+"/statistics",{query:{variable:e,f:"json"},signal:t}).then(e=>e.data?.statistics),i=this.request(this.url+"/histograms",{query:{variable:e,f:"json"},signal:t}).then(e=>e.data?.histograms),n=await Promise.all([s,i]);return n[0]&&n[0].forEach(e=>{e.avg=e.mean,e.stddev=e.standardDeviation}),n[1]?.[0]?.counts?.length||(n[1]=null),{statistics:n[0]||null,histograms:n[1]||null}}async computeBestPyramidLevelForLocation(e,t={}){if(!this._tilemapCache)return 0;let s=this.identifyPixelLocation(e,0,t.datumTransformation);if(null===s)return null;let i=0;const{maximumPyramidLevel:n}=this.rasterInfo.storageInfo;let r=n-i+this._levelOffset;const a=s.srcLocation;for(;r>=0;){try{if("available"===await this._tilemapCache.fetchAvailability(r,s.row,s.col,t))break}catch{}if(r--,i++,s=this.identifyPixelLocation(a,i,t.datumTransformation),null===s)return null}return-1===r||null==s?null:i}async _open(e){const t=e?.signal,s=this.sourceJSON?{data:this.sourceJSON}:await this.request(this.url,{query:{f:"json"},signal:t});s.ssl&&(this.url=this.url.replace(/^http:/i,"https:"));const n=s.data;if(this.sourceJSON=n,!n)throw new i.A("imageserverraster:open","cannot initialize tiled image service, missing service info");if(!n.tileInfo)throw new i.A("imageserverraster:open","use ImageryLayer to open non-tiled image services");this._fixScaleInServiceInfo(),this.tileType=n.cacheType,null==this.tileType&&(["jpg","jpeg","png","png8","png24","png32","mixed"].includes(n.tileInfo.format.toLowerCase())?this.tileType="Map":"lerc"===n.tileInfo.format.toLowerCase()?this.tileType="Elevation":this.tileType="Raster"),this.datasetName=n.name?.slice(n.name.indexOf("/")+1)??"";const r=this.rasterInfo??await this._fetchRasterInfo({signal:t});if(null==r)throw new i.A("image-server-raster:open","cannot initialize image service");(0,$.E9)(r,n);const a="Map"===this.tileType?function(e,t){if(!e)return null;const{minScale:s,maxScale:i,minLOD:n,maxLOD:r}=t;if(null!=n&&null!=r)return Z.A.fromJSON({...e,lods:e.lods.filter(({level:e})=>null!=e&&e>=n&&e<=r)});if(0!==s&&0!==i){const t=e=>Math.round(1e4*e)/1e4,n=s?t(s):1/0,r=i?t(i):-1/0;return Z.A.fromJSON({...e,lods:e.lods.filter(e=>{const s=t(e.scale);return s<=n&&s>=r})})}return Z.A.fromJSON(e)}(n.tileInfo,n):Z.A.fromJSON(n.tileInfo);(0,G.Lw)(a);const[o,l]=this._computeMinMaxLOD(r,a),{extent:c,pixelSize:f}=r,u=.001*Math.min(f.x,f.y);(f.x!==f.y||Math.abs(o.resolution-f.x)>u)&&(f.x=f.y=o.resolution,r.width=Math.ceil((c.xmax-c.xmin)/f.x-.1),r.height=Math.ceil((c.ymax-c.ymin)/f.y-.1));const h=o.level-l.level,[p,d]=a.size,m=[],g=[],{lods:y}=a;y.forEach((e,t)=>{e.level>=l.level&&e.level<=o.level&&m.push({x:e.resolution,y:e.resolution}),t<y.length-1&&g.push(Math.round(10*e.resolution/y[t+1].resolution)/10)}),m.sort((e,t)=>e.x-t.x);const x=this.computeBlockBoundary(c,p,d,a.origin,m,h),w=m.length>1?m.slice(1):null;let I;n.transposeInfo&&(I={tileSize:[n.transposeInfo.rows,n.transposeInfo.cols],packetSize:r.keyProperties?._yxs.PacketSize??0});const b=g.length<=1||g.length>=3&&g.slice(0,-1).every(e=>e===g[0])?g[0]??2:Math.round(10/(l.resolution/o.resolution)**(-1/h))/10,v=!!n.bsq&&"Raster"===this.tileType;if(r.storageInfo=new W.A({blockWidth:a.size[0],blockHeight:a.size[1],pyramidBlockWidth:a.size[0],pyramidBlockHeight:a.size[1],pyramidResolutions:w,pyramidScalingFactor:b,compression:a.format,origin:a.origin,firstPyramidLevel:1,maximumPyramidLevel:h,tileInfo:a,isBsqTile:v,transposeInfo:I,blockBoundary:x}),function(e){const{extent:t,spatialReference:s}=e;t.xmin>-1&&t.xmax>181&&s?.wkid&&s.isGeographic&&(e.nativeExtent=e.extent,e.transform=new V.A,e.extent=e.transform.forwardTransform(t))}(r),this._set("rasterInfo",r),n.capabilities.toLowerCase().includes("tilemap")){const e={tileInfo:r.storageInfo.tileInfo,parsedUrl:(0,q.An)(this.url),url:this.url,tileServers:[]};this._tilemapCache=new X.d({layer:e})}}async _fetchRasterInfo(e){const t=this.sourceJSON;if("Map"===this.tileType){const e=t.fullExtent||t.extent,s=Math.ceil((e.xmax-e.xmin)/t.pixelSizeX-.1),i=Math.ceil((e.ymax-e.ymin)/t.pixelSizeY-.1),n=c.A.fromJSON(t.spatialReference||e.spatialReference),r=new j.A({x:t.pixelSizeX,y:t.pixelSizeY,spatialReference:n});return new A.A({width:s,height:i,bandCount:3,extent:l.A.fromJSON(e),spatialReference:n,pixelSize:r,pixelType:"u8",statistics:null,keyProperties:{DataType:"processed"}})}const s={...e,query:{...this.ioConfig.customFetchParameters,f:"json"}},i=(0,$.Tw)(this.url,this.sourceJSON,s),n=t.hasMultidimensions?this.request(`${this.url}/slices`,s).then(e=>e.data?.slices).catch(()=>null):null,r=await Promise.all([i,n]);return this._slices=r[1],r[0]}_fixScaleInServiceInfo(){const{sourceJSON:e}=this;e.minScale&&e.minScale<0&&(e.minScale=0),e.maxScale&&e.maxScale<0&&(e.maxScale=0)}_computeMinMaxLOD(e,t){const{pixelSize:s}=e,i=.5/e.width*s.x,{lods:n}=t,r=t.lodAt(Math.max.apply(null,n.map(e=>e.level))),a=t.lodAt(Math.min.apply(null,n.map(e=>e.level))),{tileType:o}=this;if("Map"===o)return this._levelOffset=n[0].level,[r,a];if("Raster"===o)return[n.find(e=>e.resolution===s.x)??r,a];const{minScale:l,maxScale:c}=this.sourceJSON;let f=r;c>0&&(f=n.find(e=>Math.abs(e.scale-c)<i),f||(f=n.filter(e=>e.scale>c).sort((e,t)=>e.scale>t.scale?1:-1)[0]??r));let u=a;return l>0&&(u=n.find(e=>Math.abs(e.scale-l)<i)??a,this._levelOffset=u.level-a.level),[f,u]}};(0,n.Cg)([(0,r.MZ)({type:String,json:{write:!0}})],Y.prototype,"datasetFormat",void 0),(0,n.Cg)([(0,r.MZ)()],Y.prototype,"tileType",void 0),Y=(0,n.Cg)([(0,r.$K)("esri.layers.raster.datasets.ImageServerRaster")],Y);const K=Y;var Q=s(10713);const ee=new Map([["byte","u8"],["signedbyte","s8"],["int8","s8"],["uint8","u8"],["int16","s16"],["uint16","u16"],["int32","s32"],["uint32","u32"],["float32","f32"],["float64","f64"],["double64","f64"]]),te=new Map;te.set("none",{blobExtension:".til",isOneSegment:!0,decoderFormat:"bip"}),te.set("lerc",{blobExtension:".lrc",isOneSegment:!1,decoderFormat:"lerc"}),te.set("deflate",{blobExtension:".pzp",isOneSegment:!0,decoderFormat:"deflate"}),te.set("jpeg",{blobExtension:".pjg",isOneSegment:!0,decoderFormat:"jpg"}),te.set("qb3",{blobExtension:".pq3",isOneSegment:!0,decoderFormat:"qb3"});let se=class extends a.A{constructor(){super(...arguments),this._files=null,this._storageIndex=null,this._isBsq=!1,this.datasetFormat="MRF"}async fetchRawTile(e,t,s,i={}){const{blockWidth:n,blockHeight:r,blockBoundary:a}=this.rasterInfo.storageInfo,o=a[e];if(!o||o.maxRow<t||o.maxCol<s||o.minRow>t||o.minCol>s)return null;const{bandCount:l,pixelType:c}=this.rasterInfo,{ranges:f,actualTileWidth:u,actualTileHeight:p}=this._getTileLocation(e,t,s);if(!f||0===f.length)return null;if(f.some(e=>e.from>e.to)){const e=new Uint8Array(n*r);return new h.A({width:n,height:r,pixels:void 0,mask:e,validPixelCount:0})}const{bandIds:d}=this.ioConfig,m=this._getBandSegmentCount(),g=[];let y=0;for(y=0;y<m;y++)d&&!d.includes(y)||g.push(this.request(this._files.data,{range:{from:f[y].from,to:f[y].to},responseType:"array-buffer",signal:i.signal}));const x=await Promise.all(g),w=x.map(e=>e.data.byteLength).reduce((e,t)=>e+t),I=new Uint8Array(w),b=[];let v=0;for(y=0;y<m;y++)b.push(v),I.set(new Uint8Array(x[y].data),v),v+=x[y].data.byteLength;const C=te.get(this.rasterInfo.storageInfo.compression).decoderFormat,S="jpg"===C&&4===l&&1===b.length,T=await this.decodePixelBlock(I.buffer,{width:n,height:r,format:C,planes:d?.length||l,offsets:b,pixelType:c,canvasUsage:S?"no-canvas":void 0,decodeJpegAsRgb:!1}).catch(()=>null);if(null==T)return null;let{noDataValue:A}=this.rasterInfo;if(null!=A&&"lerc"!==C&&!T.mask&&(A=A[0],null!=A)){const e=T.width*T.height,t=new Uint8Array(e);if(Math.abs(A)>1e24)for(y=0;y<e;y++)Math.abs((T.pixels[0][y]-A)/A)>1e-6&&(t[y]=1);else for(y=0;y<e;y++)T.pixels[0][y]!==A&&(t[y]=1);T.mask=t}let R=0,M=0;if(u!==n||p!==r){let e=T.mask;if(e)for(y=0;y<r;y++)if(M=y*n,y<p)for(R=u;R<n;R++)e[M+R]=0;else for(R=0;R<n;R++)e[M+R]=0;else for(e=new Uint8Array(n*r),T.mask=e,y=0;y<p;y++)for(M=y*n,R=0;R<u;R++)e[M+R]=1}return T}async _open(e){this.datasetName=this.url.slice(this.url.lastIndexOf("/")+1);const t=e?e.signal:null,s=await this.request(this.url,{responseType:"xml",signal:t}),{rasterInfo:i,files:n}=this._parseHeader(s.data),{skipMapInfo:r,skipExtensions:a=[]}=this.ioConfig;if(!a.includes("aux.xml")&&!r){const t=await this._fetchAuxiliaryData(e);null!=t&&(i.statistics=t.statistics??i.statistics,i.histograms=t.histograms,t.histograms&&null==i.statistics&&(i.statistics=(0,S.Pg)(t.histograms)))}r&&this.updateImageSpaceRasterInfo(i),this._set("rasterInfo",i),this._files=n;const o=await this.request(n.index,{responseType:"array-buffer",signal:t});this._storageIndex=function(e){if(e.byteLength%16>0)throw new Error("invalid array buffer must be multiples of 16");let t;if(Q.Z){const s=new Uint8Array(e),i=new ArrayBuffer(e.byteLength),n=new Uint8Array(i);for(let t=0;t<e.byteLength/4;t++)for(let e=0;e<4;e++)n[4*t+e]=s[4*t+3-e];t=new Uint32Array(i)}else t=new Uint32Array(e);return t}(o.data);const{blockWidth:l,blockHeight:c}=this.rasterInfo.storageInfo,f=this.rasterInfo.storageInfo.pyramidScalingFactor,{width:u,height:h}=this.rasterInfo,p=[],d=this._getBandSegmentCount();let m=0,g=-1;for(;m<this._storageIndex.length;){g++;const e=Math.ceil(u/l/f**g)-1,t=Math.ceil(h/c/f**g)-1;m+=(e+1)*(t+1)*d*4,p.push({maxRow:t,maxCol:e,minCol:0,minRow:0})}this.rasterInfo.storageInfo.blockBoundary=p,g>0&&(this.rasterInfo.storageInfo.firstPyramidLevel=1,this.rasterInfo.storageInfo.maximumPyramidLevel=g),this.updateTileInfo()}_getBandSegmentCount(){return this._isBsq?this.rasterInfo.bandCount:1}_getTileLocation(e,t,s){const{blockWidth:i,blockHeight:n,pyramidScalingFactor:r}=this.rasterInfo.storageInfo,{width:a,height:o}=this.rasterInfo,l=this._getBandSegmentCount();let c,f,u,h=0,p=0;for(u=0;u<e;u++)p=r**u,c=Math.ceil(a/i/p),f=Math.ceil(o/n/p),h+=c*f;p=r**e,c=Math.ceil(a/i/p),f=Math.ceil(o/n/p),h+=t*c+s,h*=4*l;const d=this._storageIndex.subarray(h,h+4*l);let m=0,g=0;const y=[];for(let e=0;e<l;e++)m=d[4*e]*2**32+d[4*e+1],g=m+d[4*e+2]*2**32+d[4*e+3]-1,y.push({from:m,to:g});return{ranges:y,actualTileWidth:s<c-1?i:Math.ceil(a/p)-i*(c-1),actualTileHeight:t<f-1?n:Math.ceil(o/p)-n*(f-1)}}_parseHeader(e){const t=(0,B.V6)(e,"MRF_META/Raster");if(!t)throw new i.A("mrf:open","not a valid MRF format");const s=(0,B.V6)(t,"Size"),n=parseInt(s.getAttribute("x"),10),r=parseInt(s.getAttribute("y"),10),a=parseInt(s.getAttribute("c"),10),o=((0,B.mX)(t,"Compression")||"none").toLowerCase();if(!te.has(o))throw new i.A("mrf:open","currently does not support compression "+o);const f=(0,B.mX)(t,"DataType")||"UInt8",u=ee.get(f.toLowerCase());if(null==u)throw new i.A("mrf:open","currently does not support pixel type "+f);const h=(0,B.V6)(t,"PageSize"),p=parseInt(h.getAttribute("x"),10),d=parseInt(h.getAttribute("y"),10),m=h.getAttribute("c"),g=m?m===String(a):te.get(o).isOneSegment;this._isBsq=!g;const y=(0,B.V6)(t,"DataValues");let x;if(y){const e=y.getAttribute("NoData");null!=e&&(x=e.trim().split(" ").map(e=>parseFloat(e)))}if((0,B.V6)(e,"MRF_META/CachedSource"))throw new i.A("mrf:open","currently does not support MRF referencing other data files");const w=(0,B.V6)(e,"MRF_META/GeoTags"),I=(0,B.V6)(w,"BoundingBox");let b,v=!1;if(null!=I){const e=parseFloat(I.getAttribute("minx")),t=parseFloat(I.getAttribute("miny")),s=parseFloat(I.getAttribute("maxx")),i=parseFloat(I.getAttribute("maxy")),n=(0,B.mX)(w,"Projection")||"";let r=c.A.WGS84;if("LOCAL_CS[]"!==n)if(n.toLowerCase().startsWith("epsg:")){const e=Number(n.slice(5));isNaN(e)||0===e||(r=new c.A({wkid:e}))}else r=E(n)??c.A.WGS84;else v=!0,r=new c.A({wkid:3857});b=new l.A(e,t,s,i),b.spatialReference=r}else v=!0,b=new l.A({xmin:-.5,ymin:.5-r,xmax:n-.5,ymax:.5,spatialReference:new c.A({wkid:3857})});const C=(0,B.V6)(e,"MRF_META/Rsets"),S=parseInt(C?.getAttribute("scale")||"2",10),T=b.spatialReference,R=new W.A({origin:new j.A({x:b.xmin,y:b.ymax,spatialReference:T}),blockWidth:p,blockHeight:d,pyramidBlockWidth:p,pyramidBlockHeight:d,compression:o,pyramidScalingFactor:S}),M=new j.A({x:b.width/n,y:b.height/r,spatialReference:T}),O=new A.A({width:n,height:r,extent:b,isPseudoSpatialReference:v,spatialReference:T,bandCount:a,pixelType:u,pixelSize:M,noDataValue:x,storageInfo:R}),_=this._getAuxFullPath((0,B.mX)(t,"DataFile")),k=this._getAuxFullPath((0,B.mX)(t,"IndexFile"));return{rasterInfo:O,files:{mrf:this.url,index:k||this.url.replace(".mrf",".idx"),data:_||this.url.replace(".mrf",te.get(o).blobExtension)}}}_getAuxFullPath(e){return e?e.includes("\\")?null:e.includes("/")?e.startsWith(new URL(this.url).origin)?e:null:`${this.url.slice(0,this.url.lastIndexOf("/"))}/${e}`:null}async _fetchAuxiliaryData(e){try{const{data:t}=await this.request(this.url+".aux.xml",{responseType:"xml",signal:e?.signal});return J(t)}catch{return null}}};(0,n.Cg)([(0,r.MZ)()],se.prototype,"_files",void 0),(0,n.Cg)([(0,r.MZ)()],se.prototype,"_storageIndex",void 0),(0,n.Cg)([(0,r.MZ)()],se.prototype,"_isBsq",void 0),(0,n.Cg)([(0,r.MZ)({type:String,json:{write:!0}})],se.prototype,"datasetFormat",void 0),se=(0,n.Cg)([(0,r.$K)("esri.layers.raster.datasets.MRFRaster")],se);const ie=se;s(44208);var ne=s(53966),re=s(9334);function ae(e){const t=e.fields,s=e.records,i=t.some(e=>"oid"===e.name.toLowerCase())?"OBJECTID":"OID",n=[{name:i,type:"esriFieldTypeOID",alias:"OID"}].concat(t.map(e=>({name:e.name,type:"esriFieldType"+e.typeName,alias:e.name}))),r=n.map(e=>e.name),a=[];let o=0,l=0;return s.forEach(e=>{const t={};for(t[i]=o++,l=1;l<r.length;l++)t[r[l]]=e[l-1];a.push({attributes:t})}),{displayFieldName:"",fields:n,features:a}}class oe{static get supportedVersions(){return[5]}static parse(e){const t=new DataView(e),s=3&t.getUint8(0);if(3!==s)return{header:{version:s},recordSet:null};const i=t.getUint32(4,!0),n=t.getUint16(8,!0),r=t.getUint16(10,!0),a={version:s,recordCount:i,headerByteCount:n,recordByteCount:r};let o=32;const l=[],c=[];let f;if(3===s){for(;13!==t.getUint8(o);)f=String.fromCharCode(t.getUint8(o+11)).trim(),l.push({name:(0,re.w)(new Uint8Array(e,o,11)),type:f,typeName:["String","Date","Double","Boolean","String","Integer"][["C","D","F","L","M","N"].indexOf(f)],length:t.getUint8(o+16)}),o+=32;if(o+=1,l.length>0)for(;c.length<i&&e.byteLength-o>r;){const s=[];32===t.getUint8(o)?(o+=1,l.forEach(t=>{if("C"===t.type)s.push((0,re.w)(new Uint8Array(e,o,t.length)).trim());else if("N"===t.type)s.push(parseInt(String.fromCharCode.apply(null,new Uint8Array(e,o,t.length)).trim(),10));else if("F"===t.type)s.push(parseFloat(String.fromCharCode.apply(null,new Uint8Array(e,o,t.length)).trim()));else if("D"===t.type){const i=String.fromCharCode.apply(null,new Uint8Array(e,o,t.length)).trim();s.push(new Date(parseInt(i.slice(0,4),10),parseInt(i.slice(4,6),10)-1,parseInt(i.slice(6,8),10)))}o+=t.length}),c.push(s)):o+=r}}return{header:a,fields:l,records:c,recordSet:ae({fields:l,records:c})}}}var le=s(44094),ce=s(94213);let fe=class extends a.A{constructor(){super(...arguments),this._files=null,this._headerInfo=null,this._bufferSize=1048576,this._chunkSize=10485760,this.datasetFormat="TIFF"}async fetchRawTile(e,t,s,i={}){if(!this._headerInfo?.isSupported||this.isBlockOutside(e,t,s))return null;const n=await this._fetchRawTiffTile(e,t,s,!1,i);if(null!=n&&this._headerInfo.hasMaskBand){const r=await this._fetchRawTiffTile(e,t,s,!0,i);null!=r&&r.pixels[0]instanceof Uint8Array&&(n.mask=r.pixels[0])}return n}async _open(e){const t=e?e.signal:null,{data:s}=await this.request(this.url,{range:{from:0,to:this._bufferSize},responseType:"array-buffer",signal:t});if(!s)throw new i.A("tiffraster:open","failed to open url "+this.url);this.datasetName=this.url.slice(this.url.lastIndexOf("/")+1,this.url.lastIndexOf("."));const{littleEndian:n,firstIFDPos:r,isBigTiff:a}=(0,le.uT)(s),o=[],f={fileChunk:s,posIFD:r,fileOffset:0};await this._readIFDs(o,f,n,a?8:4,t);const{imageInfo:u,rasterInfo:h}=function(e){const t=(0,le.uc)(e),{width:s,height:i,tileWidth:n,tileHeight:r,planes:a,pixelType:o,compression:f,firstPyramidLevel:u,maximumPyramidLevel:h,pyramidBlockWidth:p,pyramidBlockHeight:d,pyramidResolutions:m,tileBoundary:g,affine:y,metadata:x,colormap:w}=t;let I=E(t.extent.spatialReference?.wkt||t.extent.spatialReference?.wkid),b=!!t.isPseudoGeographic;null==I&&(b=!0,I=new c.A({wkid:3857}));const v=new l.A({...t.extent,spatialReference:I}),C=new j.A(v?{x:v.xmin,y:v.ymax,spatialReference:I}:{x:0,y:0}),S=new W.A({blockWidth:n,blockHeight:r,pyramidBlockWidth:p,pyramidBlockHeight:d,compression:f,origin:C,firstPyramidLevel:u,maximumPyramidLevel:h,pyramidResolutions:m,blockBoundary:g}),T=new j.A({x:(v.xmax-v.xmin)/s,y:(v.ymax-v.ymin)/i,spatialReference:I}),R=x?{BandProperties:x.bandProperties,DataType:x.dataType}:{},M=new A.A({width:s,height:i,bandCount:a,pixelType:o,pixelSize:T,storageInfo:S,spatialReference:I,isPseudoSpatialReference:b,keyProperties:R,extent:v,colormap:w,statistics:x?x.statistics:null});if(y?.length&&(M.nativeExtent=new l.A({xmin:-.5,ymin:.5-i,xmax:s-.5,ymax:.5,spatialReference:I}),M.transform=new N.A({polynomialOrder:1,forwardCoefficients:[y[2]+y[0]/2,y[5]-y[3]/2,y[0],y[3],-y[1],-y[4]]}),M.extent=M.transform.forwardTransform(M.nativeExtent),M.pixelSize=new j.A({x:(v.xmax-v.xmin)/s,y:(v.ymax-v.ymin)/i,spatialReference:I}),S.origin.x=-.5,S.origin.y=.5),m){const{x:e,y:t}=M.pixelSize;m.forEach(s=>{s.x*=e,s.y*=t})}return{imageInfo:t,rasterInfo:M}}(o),p=(0,le.zS)(o),d=(0,le.r9)(o);if(this._headerInfo={littleEndian:n,isBigTiff:a,ifds:o,pyramidIFDs:p,maskIFDs:d,...u},this._set("rasterInfo",h),!u.isSupported)throw new i.A("tiffraster:open","this tiff is not supported: "+u.message);if(!u.tileWidth)throw new i.A("tiffraster:open","none-tiled tiff is not optimized for access, convert to COG and retry.");h.isPseudoSpatialReference&&ne.A.getLogger(this).warn("The spatial reference for this tiff is unsupported. Only EPSG spatial reference codes and Esri WKTs are supported.");const m=o[0].get("PREDICTOR")?.values?.[0],g=o[0].get("SAMPLEFORMAT")?.values?.[0];if(3===g&&2===m)throw new i.A("tiffraster:open","unsupported horizontal difference encoding. Predictor=3 is supported for floating point data");const{skipMapInfo:y,skipExtensions:x=[]}=this.ioConfig;if(!x.includes("aux.xml")&&!y){const t=await this._fetchAuxiliaryMetaData(e);null!=t&&function(e,t){if(t.statistics=e.statistics??t.statistics,t.histograms=e.histograms,e.histograms&&null==t.statistics&&(t.statistics=(0,S.Pg)(e.histograms)),e.transform&&null==t.transform){t.transform=e.transform,t.nativeExtent=t.extent;const s=t.transform.forwardTransform(t.nativeExtent);t.pixelSize=new j.A({x:(s.xmax-s.xmin)/t.width,y:(s.ymax-s.ymin)/t.height,spatialReference:t.spatialReference}),t.extent=s}t.isPseudoSpatialReference&&e.spatialReference&&(t.spatialReference=e.spatialReference,t.extent.spatialReference=t.nativeExtent.spatialReference=t.storageInfo.origin.spatialReference=t.spatialReference)}(t,h)}x.includes("vat.dbf")||1!==h.bandCount||"u8"!==h.pixelType||y||(h.attributeTable=await this._fetchAuxiliaryTable(e),null!=h.attributeTable&&(h.keyProperties.DataType="thematic")),y&&this.updateImageSpaceRasterInfo(h),this.updateTileInfo()}async _validateOrFetchHeaderBuffer(e,t){let{fileChunk:s,fileOffset:i,posIFD:n}=e;return(n+8>=s.byteLength||n<0)&&(i=n+i,s=(await this.request(this.url,{range:{from:i,to:i+this._bufferSize},responseType:"array-buffer",signal:t})).data,n=0),{fileChunk:s,fileOffset:i,posIFD:n}}async _readIFDs(e,t,s,n=4,r){if(!t.posIFD)return null;t=await this._validateOrFetchHeaderBuffer(t,r);const a=await this._readIFD(t,s,ce.NB,n,r);if(!a?.ifd)throw new i.A("tiffraster:open","cannot parse tiff header. failed to open url "+this.url);if(e.push(a.ifd),!a.nextIFD)return null;t.posIFD=a.nextIFD-t.fileOffset,await this._readIFDs(e,t,s,n,r)}async _readIFD(e,t,s=ce.NB,i=4,n){let{fileChunk:r,posIFD:a,fileOffset:o}=e;if(!e.fileChunk)return null;const l=(0,le.JM)(r,t,a,o,s,i);if(l.success){const e=[];if(l.ifd?.forEach(t=>{t.values||e.push(t)}),e.length>0&&await this._fillOffsets(e,t,l.nextIFD,n),l.ifd?.has("GEOKEYDIRECTORY")){const e=l.ifd.get("GEOKEYDIRECTORY"),s=e?.values;if(s&&s.length>4){const i=s[0]+"."+s[1]+"."+s[2];a=e.valueOffset+6-o;const l=await this._validateOrFetchHeaderBuffer({fileChunk:r,posIFD:a,fileOffset:o},n),c=await this._readIFD(l,t,ce.YC,2,n);e.data=c?.ifd,e.data&&e.data.set("GEOTIFFVersion",{id:0,type:2,valueCount:1,valueOffset:null,values:[i]})}}return l}return l.requiredBufferSize?(r=(await this.request(this.url,{range:{from:o,to:o+a+l.requiredBufferSize+8},responseType:"array-buffer",signal:n})).data,r.byteLength<a+l.requiredBufferSize?null:(e.fileChunk=r,e.fileOffset=o,this._readIFD(e,t,s,i,n))):null}async _fillOffsets(e,t,s,i){const n=e.filter(e=>null!=e.offlineOffsetSize);if(0===n.length)return;const r=n.map(e=>e.offlineOffsetSize),a=Math.min.apply(null,r.map(e=>e[0])),o=Math.max.apply(null,r.map(e=>e[0]+e[1]));let l=1===r.length||o-a<=this._bufferSize;if(!l&&r.length>1&&(r.sort((e,t)=>e[0]-t[0]),l=r.reduce((e,t)=>e===t[0]?t[0]+t[1]:0,r[0][0])===o),l){const e=await this._fetchOffsets(a,Math.max(o,a+this._bufferSize),i);return void n.forEach(s=>(0,le.Cr)(e,t,s,a))}const c=n.map(async e=>{const s=e.offlineOffsetSize,n=await this._fetchOffsets(s[0],s[1]+s[0],i);(0,le.Cr)(n,t,e,s[0])});await Promise.all(c)}async _fetchOffsets(e,t,s){const i=[],n=this._chunkSize,r=Math.ceil((t-e)/n);let a=e;for(let e=0;e<r;e++)i.push(this.request(this.url,{range:{from:a,to:e===r-1?t:a+n-1},responseType:"array-buffer",signal:s})),a+=n;const o=await Promise.all(i);if(1===r)return o[0].data;const l=new Uint8Array(t-e+1);for(let e=0;e<r;e++)l.set(new Uint8Array(o[e].data),e*n);return l.buffer}async _fetchRawTiffTile(e,t,s,i,n={}){const r=this._getTileLocation(e,t,s,i);if(!r)return null;const{ranges:a,actualTileWidth:o,actualTileHeight:l,ifd:c}=r,f=a.map(e=>this.request(this.url,{range:e,responseType:"array-buffer",signal:n.signal})),u=await Promise.all(f),h=u.map(e=>e.data.byteLength).reduce((e,t)=>e+t),p=1===u.length?u[0].data:new ArrayBuffer(h),d=[0],m=[0];if(u.length>1){const e=new Uint8Array(p);for(let t=0,s=0;t<u.length;t++){const i=u[t].data;e.set(new Uint8Array(i),s),d[t]=s,s+=i.byteLength,m[t]=i.byteLength}}const{blockWidth:g,blockHeight:y}=this.getBlockWidthHeight(e),x=await this.decodePixelBlock(p,{format:"tiff",customOptions:{headerInfo:this._headerInfo,ifd:c,offsets:d,sizes:m},width:g,height:y,planes:null,pixelType:null});if(null==x)return null;if(o!==g||l!==y){let e=x.mask;if(e)for(let t=0;t<y;t++){const s=t*g;if(t<l)for(let t=o;t<g;t++)e[s+t]=0;else for(let t=0;t<g;t++)e[s+t]=0}else{e=new Uint8Array(g*y),x.mask=e;for(let t=0;t<l;t++){const s=t*g;for(let t=0;t<o;t++)e[s+t]=1}}}return x}_getTileLocation(e,t,s,i=!1){const{firstPyramidLevel:n,blockBoundary:r}=this.rasterInfo.storageInfo,a=0===e?0:e-(n-1),{_headerInfo:o}=this;if(!o)return null;const l=i?o.maskIFDs[a]:0===a?o.ifds[0]:o.pyramidIFDs[a-1];if(!l)return null;const c=(0,le.XO)(l,o),f=(0,le.wc)(l,"TILEOFFSETS"),u=(0,le.wc)(l,"TILEBYTECOUNTS");if(!f?.length||!u?.length)return null;const{minRow:h,minCol:p,maxRow:d,maxCol:m}=r[a];if(t>d||s>m||t<h||s<p)return null;const g=(0,le.LZ)(l,"IMAGEWIDTH"),y=(0,le.LZ)(l,"IMAGELENGTH"),x=(0,le.LZ)(l,"TILEWIDTH"),w=(0,le.LZ)(l,"TILELENGTH"),I=[];if(c){const{bandCount:e}=this.rasterInfo;for(let i=0;i<e;i++){const e=i*(d+1)*(m+1)+t*(m+1)+s;I[i]={from:f[e],to:f[e]+u[e]-1}}}else{const e=t*(m+1)+s;I.push({from:f[e],to:f[e]+u[e]-1})}for(let e=0;e<I.length;e++)if(null==I[e].from||!I[e].to||I[e].to<0)return null;return{ranges:I,ifd:l,actualTileWidth:s===m&&g%x||x,actualTileHeight:t===d&&y%w||w}}async _fetchAuxiliaryMetaData(e){try{const{data:t}=await this.request(this.url+".aux.xml",{responseType:"xml",signal:e?.signal});return J(t)}catch{return null}}async _fetchAuxiliaryTable(e){try{const{data:t}=await this.request(this.url+".vat.dbf",{responseType:"array-buffer",signal:e?.signal}),s=oe.parse(t);return s?.recordSet?O.A.fromJSON(s.recordSet):null}catch{return null}}};(0,n.Cg)([(0,r.MZ)()],fe.prototype,"_files",void 0),(0,n.Cg)([(0,r.MZ)()],fe.prototype,"_headerInfo",void 0),(0,n.Cg)([(0,r.MZ)()],fe.prototype,"_bufferSize",void 0),(0,n.Cg)([(0,r.MZ)()],fe.prototype,"_chunkSize",void 0),(0,n.Cg)([(0,r.MZ)({type:String,json:{write:!0}})],fe.prototype,"datasetFormat",void 0),fe=(0,n.Cg)([(0,r.$K)("esri.layers.raster.datasets.TIFFRaster")],fe);const ue=fe,he=new Map;he.set("MRF",{desc:"Meta Raster Format",constructor:ie}),he.set("TIFF",{desc:"GeoTIFF",constructor:ue}),he.set("RasterTileServer",{desc:"Raster Tile Server",constructor:K}),he.set("JPG",{desc:"JPG Raster Format",constructor:U}),he.set("PNG",{desc:"PNG Raster Format",constructor:U}),he.set("GIF",{desc:"GIF Raster Format",constructor:U}),he.set("BMP",{desc:"BMP Raster Format",constructor:U}),he.set("CovJSON",{desc:"COVJSON Raster Format",constructor:k}),he.set("MEMORY",{desc:"In Memory Raster Format",constructor:M});class pe{static get supportedFormats(){const e=new Set;return he.forEach((t,s)=>e.add(s)),e}static async open(e){const{url:t,ioConfig:s,source:n,sourceJSON:r}=e;let a=e.datasetFormat??s?.datasetFormat;null==a&&(t.includes(".")?a=t.slice(t.lastIndexOf(".")+1).toUpperCase():"coverage"===n?.type?.toLowerCase()?a="CovJSON":n?.extent&&n.pixelblocks&&(a="MEMORY")),"OVR"===a||"TIF"===a?a="TIFF":"JPG"===a||"JPEG"===a||"JFIF"===a?a="JPG":"COVJSON"===a&&(a="CovJSON"),t.toLowerCase().includes("/imageserver")&&!t.toLowerCase().includes("/wcsserver")&&(a="RasterTileServer");const o={url:t,source:n,sourceJSON:r,datasetFormat:a,ioConfig:s??{bandIds:null,sampling:null}};if(Object.keys(o).forEach(e=>{null==o[e]&&delete o[e]}),a){if(!this.supportedFormats.has(a))throw new i.A("rasterfactory:open","not a supported format "+a);if("CRF"===a)throw new i.A("rasterfactory:open",`cannot open raster: ${t}`);const s=new(0,he.get(a).constructor)(o);return s.rasterJobHandler=e.rasterJobHandler,s.rasterInfo=e.rasterInfo,await s.open({signal:e.signal}),s}const l=Array.from(he.keys()).filter(e=>"CovJSON"!==e&&"Memory"!==e);let c=0;const f=()=>{if(a=l[c++],!a)return null;if("CRF"===a)return null;const t=new(0,he.get(a).constructor)(o);return t.rasterJobHandler=e.rasterJobHandler,t.open({signal:e.signal}).then(()=>t).catch(()=>f())};return f()}static register(e,t,s){he.has(e.toUpperCase())||he.set(e.toUpperCase(),{desc:t,constructor:s})}}},330(e,t,s){function i(e,t){if(!e||!t)return[];let s=t;t.includes("/")?(s=t.slice(0,t.indexOf("/")),t=t.slice(t.indexOf("/")+1)):t="";const n=[];if(t){const r=i(e,s);for(let e=0;e<r.length;e++)i(r[e],t).forEach(e=>n.push(e));return n}const r=e.getElementsByTagNameNS("*",s);if(!r||0===r.length)return[];for(let e=0;e<r.length;e++)n.push(r[e]||r.item(e));return n}function n(e,t){if(!e||!t)return null;let s=t;t.includes("/")?(s=t.slice(0,t.indexOf("/")),t=t.slice(t.indexOf("/")+1)):t="";const r=i(e,s);return r.length>0?t?n(r[0],t):r[0]:null}function r(e,t=null){const s=t?n(e,t):e;let i;return s?(i=s.textContent||s.nodeValue,i?i.trim():null):null}function a(e,t){const s=i(e,t),n=[];let r;for(let e=0;e<s.length;e++)r=s[e].textContent||s[e].nodeValue,r&&(r=r.trim(),""!==r&&n.push(r));return n}function o(e,t=null){const s=r(e,t);return s?.split(" ").map(e=>Number(e))??[]}function l(e,t){return a(e,t).map(e=>Number(e))}function c(e,t){const s=r(e,t);return Number(s)}function f(e,t){const s=e?.nodeName?.toLowerCase(),i=t.toLowerCase();return s.slice(s.lastIndexOf(":")+1)===i}function u(e){return e.nodeName.slice(e.nodeName.lastIndexOf(":")+1)}s.d(t,{Dy:()=>a,IC:()=>i,Ui:()=>l,V6:()=>n,g7:()=>f,mX:()=>r,pN:()=>o,v7:()=>c,vv:()=>u})},10333(e,t,s){s.d(t,{A:()=>a});var i=s(32198),n=s(25482),r=s(91429);let a=class extends n.o{get affectsPixelSize(){return!1}forwardTransform(e){return e}inverseTransform(e){return e}};(0,i.Cg)([(0,r.MZ)()],a.prototype,"affectsPixelSize",null),(0,i.Cg)([(0,r.MZ)({json:{write:!0}})],a.prototype,"spatialReference",void 0),a=(0,i.Cg)([(0,r.$K)("esri.layers.raster.transforms.BaseRasterTransform")],a)},75414(e,t,s){s.d(t,{A:()=>l});var i,n=s(32198),r=s(91429),a=s(10333),o=s(93223);let l=i=class extends a.A{constructor(){super(...arguments),this.type="gcs-shift",this.tolerance=1e-8}forwardTransform(e){return"point"===(e=e.clone()).type?(e.x>180+this.tolerance&&(e.x-=360),e):(e.xmin>=180-this.tolerance?(e.xmax-=360,e.xmin-=360):e.xmax>180+this.tolerance&&(e.xmin=-180,e.xmax=180),e)}inverseTransform(e){return"point"===(e=e.clone()).type?(e.x<-this.tolerance&&(e.x+=360),e):(e.xmin<-this.tolerance&&(e.xmin+=360,e.xmax+=360),e)}clone(){return new i({tolerance:this.tolerance})}};(0,n.Cg)([(0,o.e)({GCSShiftXform:"gcs-shift"})],l.prototype,"type",void 0),(0,n.Cg)([(0,r.MZ)()],l.prototype,"tolerance",void 0),l=i=(0,n.Cg)([(0,r.$K)("esri.layers.raster.transforms.GCSShiftTransform")],l)},43163(e,t,s){s.d(t,{A:()=>d});var i,n=s(32198),r=s(91429),a=s(5443),o=s(86738),l=s(10333),c=s(36005),f=s(43937),u=s(93223);function h(e,t,s){const{x:i,y:n}=t;if(s<2)return{x:e[0]+i*e[2]+n*e[4],y:e[1]+i*e[3]+n*e[5]};if(2===s){const t=i*i,s=n*n,r=i*n;return{x:e[0]+i*e[2]+n*e[4]+t*e[6]+r*e[8]+s*e[10],y:e[1]+i*e[3]+n*e[5]+t*e[7]+r*e[9]+s*e[11]}}const r=i*i,a=n*n,o=i*n,l=r*i,c=r*n,f=i*a,u=n*a;return{x:e[0]+i*e[2]+n*e[4]+r*e[6]+o*e[8]+a*e[10]+l*e[12]+c*e[14]+f*e[16]+u*e[18],y:e[1]+i*e[3]+n*e[5]+r*e[7]+o*e[9]+a*e[11]+l*e[13]+c*e[15]+f*e[17]+u*e[19]}}function p(e,t,s){const{xmin:i,ymin:n,xmax:r,ymax:o,spatialReference:l}=t;let c=[];if(s<2)c.push({x:i,y:o}),c.push({x:r,y:o}),c.push({x:i,y:n}),c.push({x:r,y:n});else{let e=10;for(let t=0;t<e;t++)c.push({x:i,y:n+(o-n)*t/(e-1)}),c.push({x:r,y:n+(o-n)*t/(e-1)});e=8;for(let t=1;t<=e;t++)c.push({x:i+(r-i)*t/e,y:n}),c.push({x:i+(r-i)*t/e,y:o})}c=c.map(t=>h(e,t,s));const f=c.map(e=>e.x),u=c.map(e=>e.y);return new a.A({xmin:Math.min.apply(null,f),xmax:Math.max.apply(null,f),ymin:Math.min.apply(null,u),ymax:Math.max.apply(null,u),spatialReference:l})}let d=i=class extends l.A{constructor(){super(...arguments),this.polynomialOrder=1,this.type="polynomial"}readForwardCoefficients(e,t){const{coeffX:s,coeffY:i}=t;if(!s?.length||!i?.length||s.length!==i.length)return null;const n=[];for(let e=0;e<s.length;e++)n.push(s[e]),n.push(i[e]);return n}writeForwardCoefficients(e,t,s){const i=[],n=[];for(let t=0;t<e?.length;t++)t%2==0?i.push(e[t]):n.push(e[t]);t.coeffX=i,t.coeffY=n}get inverseCoefficients(){let e=this._get("inverseCoefficients");const t=this._get("forwardCoefficients");return!e&&t&&this.polynomialOrder<2&&(e=function(e){const[t,s,i,n,r,a]=e,o=i*a-r*n,l=r*n-i*a;return[(r*s-t*a)/o,(i*s-t*n)/l,a/o,n/l,-r/o,-i/l]}(t)),e}set inverseCoefficients(e){this._set("inverseCoefficients",e)}readInverseCoefficients(e,t){const{inverseCoeffX:s,inverseCoeffY:i}=t;if(!s?.length||!i?.length||s.length!==i.length)return null;const n=[];for(let e=0;e<s.length;e++)n.push(s[e]),n.push(i[e]);return n}writeInverseCoefficients(e,t,s){const i=[],n=[];for(let t=0;t<e?.length;t++)t%2==0?i.push(e[t]):n.push(e[t]);t.inverseCoeffX=i,t.inverseCoeffY=n}get affectsPixelSize(){return this.polynomialOrder>0}forwardTransform(e){if("point"===e.type){const t=h(this.forwardCoefficients,e,this.polynomialOrder);return new o.A({x:t.x,y:t.y,spatialReference:e.spatialReference})}return p(this.forwardCoefficients,e,this.polynomialOrder)}inverseTransform(e){if("point"===e.type){const t=h(this.inverseCoefficients,e,this.polynomialOrder);return new o.A({x:t.x,y:t.y,spatialReference:e.spatialReference})}return p(this.inverseCoefficients,e,this.polynomialOrder)}clone(){return new i({polynomialOrder:this.polynomialOrder,forwardCoefficients:this.forwardCoefficients?[...this.forwardCoefficients]:null,inverseCoefficients:this.inverseCoefficients?[...this.inverseCoefficients]:null})}};(0,n.Cg)([(0,r.MZ)({json:{write:!0}})],d.prototype,"polynomialOrder",void 0),(0,n.Cg)([(0,r.MZ)()],d.prototype,"forwardCoefficients",void 0),(0,n.Cg)([(0,c.w)("forwardCoefficients",["coeffX","coeffY"])],d.prototype,"readForwardCoefficients",null),(0,n.Cg)([(0,f.K)("forwardCoefficients")],d.prototype,"writeForwardCoefficients",null),(0,n.Cg)([(0,r.MZ)({json:{write:!0}})],d.prototype,"inverseCoefficients",null),(0,n.Cg)([(0,c.w)("inverseCoefficients",["inverseCoeffX","inverseCoeffY"])],d.prototype,"readInverseCoefficients",null),(0,n.Cg)([(0,f.K)("inverseCoefficients")],d.prototype,"writeInverseCoefficients",null),(0,n.Cg)([(0,r.MZ)()],d.prototype,"affectsPixelSize",null),(0,n.Cg)([(0,u.e)({PolynomialXform:"polynomial"})],d.prototype,"type",void 0),d=i=(0,n.Cg)([(0,r.$K)("esri.layers.raster.transforms.PolynomialTransform")],d)}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[9616],{32198(t,n,e){function r(t,n,e,r){var i,o=arguments.length,s=o<3?n:null===r?r=Object.getOwnPropertyDescriptor(n,e):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,n,e,r);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(s=(o<3?i(s):o>3?i(n,e,s):i(n,e))||s);return o>3&&s&&Object.defineProperty(n,e,s),s}function i(t,n,e){if(null!=n){if("object"!=typeof n&&"function"!=typeof n)throw new TypeError("Object expected.");var r,i;if(e){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");r=n[Symbol.asyncDispose]}if(void 0===r){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");r=n[Symbol.dispose],e&&(i=r)}if("function"!=typeof r)throw new TypeError("Object not disposable.");i&&(r=function(){try{i.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:n,dispose:r,async:e})}else e&&t.stack.push({async:!0});return n}e.d(n,{Cg:()=>r,hk:()=>s,mS:()=>i}),Object.create,Object.create;var o="function"==typeof SuppressedError?SuppressedError:function(t,n,e){var r=new Error(e);return r.name="SuppressedError",r.error=t,r.suppressed=n,r};function s(t){function n(n){t.error=t.hasError?new o(n,t.error,"An error was suppressed during disposal."):n,t.hasError=!0}var e,r=0;return function i(){for(;e=t.stack.pop();)try{if(!e.async&&1===r)return r=0,t.stack.push(e),Promise.resolve().then(i);if(e.dispose){var o=e.dispose.call(e.value);if(e.async)return r|=2,Promise.resolve(o).then(i,function(t){return n(t),i()})}else r|=1}catch(t){n(t)}if(1===r)return t.hasError?Promise.reject(t.error):Promise.resolve();if(t.hasError)throw t.error}()}},69052(t,n,e){e.d(n,{hr:()=>i});var r=e(34727);class i{constructor(t,n){this.min=t,this.max=n,this.range=n-t}normalize(t,n=0,e=!1){return o(this.range,this.min,this.max,t,n,e)}clamp(t,n=0){return(0,r.qE)(t-n,this.min,this.max)+n}monotonic(t,n,e){return t<n?n:n+s(this.range,t-n,e)}minimalMonotonic(t,n,e){return o(this.range,t,t+this.range,n,e)}center(t,n,e){return n=this.monotonic(t,n,e),this.normalize((t+n)/2,e)}diff(t,n,e){return this.monotonic(t,n,e)-t}shortestSignedDiff(t,n){t=this.normalize(t);const e=(n=this.normalize(n))-t,r=n<t?this.minimalMonotonic(t,n)-t:n-this.minimalMonotonic(n,t);return Math.abs(e)<Math.abs(r)?e:r}contains(t,n,e){return n=this.minimalMonotonic(t,n),(e=this.minimalMonotonic(t,e))>t&&e<n}}function o(t,n,e,r,i=0,o=!1){return(r-=i)<n?r+=s(t,n-r):r>e&&(r-=s(t,r-e)),o&&r===e&&(r=n),r+i}function s(t,n,e=0){return Math.ceil((n-e)/t)*t+e}const a=new i(0,2*Math.PI),u=(new i(-Math.PI,Math.PI),new i(0,360));e.d(n,["ie",0,u,"uC",0,a])},34727(t,n,e){e.d(n,{$8:()=>E,Cc:()=>a,Hx:()=>M,Io:()=>v,KJ:()=>l,OS:()=>D,Sp:()=>m,XM:()=>h,YN:()=>f,ZH:()=>p,b6:()=>S,cU:()=>i,gg:()=>d,hs:()=>u,kU:()=>c,mP:()=>s,or:()=>P,pF:()=>A,qE:()=>o});const r=new Float32Array(1);function i(t){--t;for(let n=1;n<32;n<<=1)t|=t>>n;return t+1}function o(t,n,e){return Math.min(Math.max(t,n),e)}function s(t,n){return 0===n?0:Math.ceil(t/n)*n}function a(t,n,e){return t+(n-t)*e}function u(t,n,e,r,i){return a(r,i,(t-n)/(e-n))}function c(t){return t*Math.PI/180}function l(t){return 180*t/Math.PI}function h(t){return Math.acos(o(t,-1,1))}function f(t){return Math.asin(o(t,-1,1))}function m(t,n,e=1e-6){return t===n||!(!Number.isFinite(t)||!Number.isFinite(n))&&(t>n?t-n:n-t)<=e}function d(t,n,e=1e-6){return!m(t,n,e)&&t>n}function p(t,n,e=1e-6){return!m(t,n,e)&&t<n}function M(t,n,e=1e-6){return m(t,n,e)||t>n}const g=new DataView(new ArrayBuffer(Float64Array.BYTES_PER_ELEMENT));function y(t){return g.setFloat64(0,t),g.getBigInt64(0)}const w=1000000n,x=b(1);function b(t){const n=y(t=Math.abs(t)),e=function(t){return g.setBigInt64(0,t),g.getFloat64(0)}(n<=w?w:n-w);return Math.abs(t-e)}function v(t,n,e=x){if(t===n)return!0;if(!Number.isFinite(t)||!Number.isFinite(n))return!1;if(null!=e&&b(Math.min(Math.abs(t),Math.abs(n)))<e)return Math.abs(t-n)<=e;const r=y(t),i=y(n);return r<0==i<0&&!((r<i?i-r:r-i)>w)}function S(t,n,e=1e-6){if(t===n)return!0;if(!Number.isFinite(t)||!Number.isFinite(n))return!1;const r=Math.abs(t-n),i=Math.abs(t),o=Math.abs(n);if(0===t||0===n||i<1e-12&&o<1e-12){if(r>.01*e)return!1}else if(r/(i+o)>e)return!1;return!0}function E(t){return F(Math.max(-k,Math.min(t,k)))}function F(t){return r[0]=t,r[0]}function P(t){const n=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],e=t[3]*t[3]+t[4]*t[4]+t[5]*t[5],r=t[6]*t[6]+t[7]*t[7]+t[8]*t[8];return!(m(n,1)&&m(e,1)&&m(r,1))}function D(t,n){return(t%n+n)%n}const k=F(34028234663852886e22);function A(t,n,e){if(void 0===e||0===+e)return Math[t](n);if(n=+n,e=+e,isNaN(n)||"number"!=typeof e||e%1!=0)return NaN;let r=n.toString().split("e");return r=(n=Math[t](+(r[0]+"e"+(r[1]?+r[1]-e:-e)))).toString().split("e"),+(r[0]+"e"+(r[1]?+r[1]+e:e))}e.d(n,["pq",0,k])},19419(t,n,e){e.d(n,{$9:()=>S,C:()=>o,DC:()=>d,HY:()=>v,IO:()=>h,Ie:()=>F,Rj:()=>b,Uc:()=>x,VL:()=>p,VY:()=>a,Wc:()=>g,aI:()=>D,bx:()=>f,fA:()=>s,fT:()=>m,gR:()=>E,gX:()=>y,ib:()=>w,nw:()=>l,pJ:()=>k,tK:()=>c,uJ:()=>M,vt:()=>i,w1:()=>u}),e(34727);var r=e(5443);function i(t=j){return[t[0],t[1],t[2],t[3]]}function o(t,n){return t!==n&&(t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3]),t}function s(t,n,e,r,o=i()){return o[0]=t,o[1]=n,o[2]=e,o[3]=r,o}function a(t,n=i()){return n[0]=t.xmin,n[1]=t.ymin,n[2]=t.xmax,n[3]=t.ymax,n}function u(t,n,e=new r.A){return e.xmin=t[0],e.ymin=t[1],e.xmax=t[2],e.ymax=t[3],e.spatialReference=n,e}function c(t,n){n[0]<t[0]&&(t[0]=n[0]),n[0]>t[2]&&(t[2]=n[0]),n[1]<t[1]&&(t[1]=n[1]),n[1]>t[3]&&(t[3]=n[1])}function l(t,n){n<t[0]&&(t[0]=n),n>t[2]&&(t[2]=n)}function h(t,n){n<t[1]&&(t[1]=n),n>t[3]&&(t[3]=n)}function f(t,{xmin:n,ymin:e,xmax:r,ymax:i}){t[0]=Math.min(t[0],n),t[1]=Math.min(t[1],e),t[2]=Math.max(t[2],r),t[3]=Math.max(t[3],i)}function m(t,n,e){if(null!=n)if("length"in n)P(n)?(e[0]=Math.min(t[0],n[0]),e[1]=Math.min(t[1],n[1]),e[2]=Math.max(t[2],n[2]),e[3]=Math.max(t[3],n[3])):2!==n.length&&3!==n.length||(e[0]=Math.min(t[0],n[0]),e[1]=Math.min(t[1],n[1]),e[2]=Math.max(t[2],n[0]),e[3]=Math.max(t[3],n[1]));else switch(n.type){case"extent":e[0]=Math.min(t[0],n.xmin),e[1]=Math.min(t[1],n.ymin),e[2]=Math.max(t[2],n.xmax),e[3]=Math.max(t[3],n.ymax);break;case"point":e[0]=Math.min(t[0],n.x),e[1]=Math.min(t[1],n.y),e[2]=Math.max(t[2],n.x),e[3]=Math.max(t[3],n.y)}else o(e,t)}function d(t,n){t[0]=Math.min(t[0],n[0]),t[1]=Math.min(t[1],n[1]),t[2]=Math.max(t[2],n[2]),t[3]=Math.max(t[3],n[3])}function p(t){return null==t||t[0]>=t[2]?0:t[2]-t[0]}function M(t){return null==t||t[1]>=t[3]?0:t[3]-t[1]}function g(t){return p(t)*M(t)}function y(t,n=[0,0]){return n[0]=(t[0]+t[2])/2,n[1]=(t[1]+t[3])/2,n}function w(t){const n=p(t),e=M(t);return Math.sqrt(n*n+e*e)}function x(t,n){return b(t,n[0],n[1])}function b(t,n,e){return n>=t[0]&&e>=t[1]&&n<=t[2]&&e<=t[3]}function v(t,n){return Math.max(n[0],t[0])<=Math.min(n[2],t[2])&&Math.max(n[1],t[1])<=Math.min(n[3],t[3])}function S(t,n,e){return Math.max(n[0],t[0])-e<=Math.min(n[2],t[2])&&Math.max(n[1],t[1])-e<=Math.min(n[3],t[3])}function E(t,n){return n[0]>=t[0]&&n[2]<=t[2]&&n[1]>=t[1]&&n[3]<=t[3]}function F(t){return t?o(t,A):i(A)}function P(t){return null!=t&&4===t.length}function D(t,n){return P(t)&&P(n)?t[0]===n[0]&&t[1]===n[1]&&t[2]===n[2]&&t[3]===n[3]:t===n}function k(t,n){if(4!==n.length||t[0]===t[2]||t[1]===t[3])return!1;for(let e=0;e<n.length;e++){const r=n[e],i=n[(e+1)%n.length];if(r[0]!==t[0]&&r[0]!==t[2]||r[1]!==t[1]&&r[1]!==t[3])return!1;const o=r[1]===i[1]&&r[0]!==i[0],s=r[0]===i[0]&&r[1]!==i[1];if(!o&&!s)return!1}return!0}const A=[1/0,1/0,-1/0,-1/0],j=[0,0,0,0];e.d(n,["qv",0,A])},49616(t,n,e){e.r(n),e.d(n,{default:()=>c});var r=e(32198),i=e(91429),o=e(19419),s=e(69052);e(21325);var a=e(97441);let u=class{constructor(){this._tileData=new Map}async generateStreamlines(t){const{flowData:n,flowExtentInfo:e,needsMagnitude:r,simulationSettings:i,startPositions:o}=t,s=l((0,a.DE)(i,n),i,e.modelSize,r,o);return{result:{streamlines:s},transferList:s?.map(t=>t.vertices.buffer)}}async generateTiledStreamlines(t){const{flowDataTiles:n,flowExtentInfo:e,needsMagnitude:r,reset:i,simulationSettings:u,startPositions:c}=t;this._updateTileData(n,i);const h=l(function(t,n,e){const[r,i]=e.modelSize;let u=null;const c=new Map;n.forEach(n=>{c.set(n.lij,(0,a.DE)(t,n))});const l=(t,n,e)=>(0,o.Rj)(t.extent,n,e);return(a,h)=>{const f=Math.round(a),m=Math.round(h);if(!t.wrapAround&&(f<0||f>=r||m<0||m>=i))return[0,0];const[d,p]=function(t,n,e,r){const{extent:i,modelSize:a,valid:u}=t,[c,l,h]=i,f=function(t,n,e){if(null!=e&&t>n){const[r,i]=e;return i-t+(n-r)}return n-t}(c,h,u);let m=n/a[0]*f+c;return null!=u&&r&&(m=new s.hr(u[0],u[1]).normalize(m)),[m,(a[1]-e)/a[1]*(0,o.uJ)(i)+l]}(e,a,h,!0);if(!function(t,n,e){const{extent:r,valid:i}=t,[o,s,a,u]=r;return!(e<s||e>u)&&(null!=i&&o>a?n>=a||n<=o:n>=o&&n<=a)}(e,d,p))return[0,0];if(null==u||!l(u,d,p)){u=null;for(const[t,e]of n)if(l(e,d,p)){u=e;break}}if(null==u?.data)return[0,0];const M=c.get(u.lij);if(null==M)return[0,0];const{width:g,height:y,extent:w}=u;return M((d-w[0])/(0,o.VL)(w)*g,y-(p-w[1])/(0,o.uJ)(w)*y)}}(u,this._tileData,e),u,e.modelSize,r,c);return{result:{streamlines:h},transferList:h?.map(t=>t.vertices.buffer)??[]}}_updateTileData(t,n){if(n)for(const n of this._tileData.keys())t.has(n)||this._tileData.delete(n);t.forEach((t,n)=>{"delete"===t.type?this._tileData.delete(n):"on-worker"!==t.type&&"invalid"!==t.type&&this._tileData.set(n,t.data)})}};u=(0,r.Cg)([(0,i.$K)("esri.views.3d.support.flow.FlowWorker")],u);const c=u;function l(t,n,e,r,i){if(null==t)return;const o=(0,a.S1)(n,t,e[0],e[1],{positions:i}),s=[],u=function(t){return t?4:3}(r);for(const{vertices:t,stage:n}of o){const e=new Float32Array(t.length*u);for(let n=0;n<t.length;n++)e[n*u]=t[n].x,e[n*u+1]=t[n].y,e[n*u+2]=t[n].time,r&&(e[n*u+3]=t[n].speed);s.push({vertices:e,stage:n,hasMagnitude:r})}return s}},97441(t,n,e){e.d(n,{DE:()=>u,S1:()=>s,dF:()=>a}),e(44208),e(53966);var r=e(34727),i=e(87811),o=e(78659);function s(t,n,e,r,o){if(t.density<=0)return[];const{positions:s}=o,a=[],u=new i.A,h=1/Math.max(t.lineCollisionWidth,1),f=Math.round(e*h),m=Math.round(r*h),d=new Int32Array(f*m);for(let t=0;t<d.length;t++)d[t]=-1;const p={raster:d,width:f,height:m,resolutionFactor:h},M={},g=t.lineSpacing/Math.sqrt(t.density),y=Math.floor(r/g),w=Math.floor(e/g);for(let t=0;t<y;t++){const n=t*g;for(let e=0;e<w;e++){const r=e*g;M[`${e}-${t}`]={x:r,y:n,positions:[]}}}for(const{x:t,y:n}of s){const e=M[`${Math.floor(t/g)}-${Math.floor(n/g)}`];e&&e.positions.push([t,n])}const x=[];for(const t in M){const n=M[t];if(0===n.positions.length)x.push({x:n.x+g/2,y:n.y+g/2,sort:.66+.33*u.getFloat(),stage:0});else{const[t]=n.positions.splice(0,1);x.push({x:t[0],y:t[1],sort:.33*u.getFloat(),stage:1});for(const[t,e]of n.positions)x.push({x:t,y:e,sort:.33+.33*u.getFloat(),stage:2})}}x.sort((t,n)=>t.sort-n.sort);for(const{x:i,y:o,stage:s}of x){if(a.length>=t.maxNumberOfStreamlines)break;const h=t.onlyForwardTracing?c(1,t,n,i,o,[e,r],a.length,p):l(t,n,i,o,[e,r],a.length,u,p);h.length<2||a.push({stage:s,vertices:h})}return a}function a(t){for(let n=0;n<t.mask.length;n++)0===t.mask[n]&&(t.data[2*n]=0,t.data[2*n+1]=0)}function u(t,n){const e=function(t,n,e,r){if(0===r)return t;const i=Math.round(3*r),o=new Array(2*i+1);let s=0;for(let t=-i;t<=i;t++){const n=Math.exp(-t*t/(r*r));o[t+i]=n,s+=n}for(let t=-i;t<=i;t++)o[t+i]/=s;const a=new Float32Array(t.length);for(let r=0;r<e;r++)for(let e=0;e<n;e++){let s=0,u=0;for(let a=-i;a<=i;a++){if(e+a<0||e+a>=n)continue;const c=o[a+i];s+=c*t[2*(r*n+(e+a))],u+=c*t[2*(r*n+(e+a))+1]}a[2*(r*n+e)]=s,a[2*(r*n+e)+1]=u}const u=new Float32Array(t.length);for(let t=0;t<n;t++)for(let r=0;r<e;r++){let s=0,c=0;for(let u=-i;u<=i;u++){if(r+u<0||r+u>=e)continue;const l=o[u+i];s+=l*a[2*((r+u)*n+t)],c+=l*a[2*((r+u)*n+t)+1]}u[2*(r*n+t)]=s,u[2*(r*n+t)+1]=c}return u}(n.data,n.width,n.height,t.smoothing);return t.interpolate?(t,r)=>{const i=Math.floor(t),o=Math.floor(r);if(i<0||i>=n.width)return[0,0];if(o<0||o>=n.height)return[0,0];const s=t-i,a=r-o,u=i,c=o,l=i<n.width-1?i+1:i,h=o<n.height-1?o+1:o,f=e[2*(c*n.width+u)],m=e[2*(c*n.width+l)],d=e[2*(h*n.width+u)],p=e[2*(h*n.width+l)],M=e[2*(c*n.width+u)+1],g=e[2*(c*n.width+l)+1];return[(f*(1-a)+d*a)*(1-s)+(m*(1-a)+p*a)*s,(M*(1-a)+e[2*(h*n.width+u)+1]*a)*(1-s)+(g*(1-a)+e[2*(h*n.width+l)+1]*a)*s]}:(t,r)=>{const i=Math.round(t),o=Math.round(r);return i<0||i>=n.width||o<0||o>=n.height?[0,0]:[e[2*(o*n.width+i)],e[2*(o*n.width+i)+1]]}}function c(t,n,e,i,s,a,u,c){const l=[],{raster:h,width:f,height:m,resolutionFactor:d}=c;let p=i,M=s,g=(0,o.Kp)(0),[y,w]=e(p,M);y*=n.velocityScale,w*=n.velocityScale;const x=Math.sqrt(y*y+w*w);let b,v;l.push({x:p,y:M,time:g,speed:x});for(let i=0;i<n.verticesPerLine;i++){let[i,s]=e(p,M);i*=n.velocityScale,s*=n.velocityScale;const c=Math.sqrt(i*i+s*s);if(c<n.minSpeedThreshold)return l;const y=t*i/c,w=t*s/c;p+=y*n.segmentLength,M+=w*n.segmentLength,n.wrapAround&&(p=(0,r.OS)(p,a[0]));const x=t*n.segmentLength/c;if(g=(0,o.Kp)(g+x),Math.acos(y*b+w*v)>n.maxTurnAngle)return l;if(n.collisions){let t=Math.round(p*d);const e=Math.round(M*d);if(n.wrapAround&&(t=(0,r.OS)(t,f)),t<0||t>f-1||e<0||e>m-1)return l;const i=h[e*f+t];if(-1!==i&&i!==u)return l;h[e*f+t]=u}l.push({x:p,y:M,time:g,speed:c}),b=y,v=w}return l}function l(t,n,e,r,i,o,s,a){const u=Math.round((.2+.6*s.getFloat())*t.verticesPerLine),l=t.verticesPerLine-u,h=c(-1,{...t,verticesPerLine:l},n,e,r,i,o,a),f=c(1,{...t,verticesPerLine:u},n,e,r,i,o,a),m=h.reverse();return m.splice(-1,1),m.concat(f)}e(5443),e(21325)}}]);