@shopware-ag/dive 2.3.7 → 3.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/build/chunks/Animator-DHnpWRt_.mjs +16 -0
  2. package/build/chunks/Animator-YDE8aFEd.cjs +1 -0
  3. package/build/chunks/{AssetCache-DSpWOp3n.mjs → AssetCache-C2DuXcmp.mjs} +6 -5
  4. package/build/chunks/AssetCache-CnbDDhU8.cjs +1 -0
  5. package/build/chunks/AssetExporter-Cdxb04b3.cjs +1 -0
  6. package/build/chunks/AssetExporter-DLL_vJae.mjs +67 -0
  7. package/build/chunks/AssetLoader-DO7xlbC3.mjs +499 -0
  8. package/build/chunks/AssetLoader-h2uyFEfZ.cjs +3 -0
  9. package/build/chunks/{ClipAnimator-keFLDMNZ.mjs → ClipAnimator-D8Gho4Ec.mjs} +2 -2
  10. package/build/chunks/ClipAnimator-SdDq2wk1.cjs +1 -0
  11. package/build/chunks/FileTypes-BB4_1gBJ.mjs +1975 -0
  12. package/build/chunks/FileTypes-Bvt5QTJC.cjs +29 -0
  13. package/build/chunks/GridNode-0R5ZnzR6.mjs +30 -0
  14. package/build/chunks/GridNode-iqnu86_v.cjs +1 -0
  15. package/build/chunks/{PerspectiveCamera-BFzE2TQU.mjs → PerspectiveCamera-B5TvUzTa.mjs} +1 -1
  16. package/build/chunks/PerspectiveCamera-DwQUmkDv.cjs +1 -0
  17. package/build/chunks/{TargetAnimator-DuqPk2eq.cjs → TargetAnimator-D37bWNKD.cjs} +1 -1
  18. package/build/chunks/{TargetAnimator-DUqkkdVb.mjs → TargetAnimator-DL_9b921.mjs} +1 -1
  19. package/build/chunks/{isFileTypeSupported-zLrD710P.mjs → isFileTypeSupported-D1z0zckw.mjs} +1 -1
  20. package/build/chunks/{isFileTypeSupported-Bh5Scxis.cjs → isFileTypeSupported-MJWHcUsR.cjs} +1 -1
  21. package/build/components/boundingbox/BoundingBox.d.ts +1 -1
  22. package/build/components/floor/Floor.d.ts +1 -1
  23. package/build/components/gizmo/Gizmo.d.ts +1 -1
  24. package/build/components/gizmo/handles/AxisHandle.d.ts +1 -1
  25. package/build/components/gizmo/handles/RadialHandle.d.ts +1 -1
  26. package/build/components/gizmo/handles/ScaleHandle.d.ts +1 -1
  27. package/build/components/gizmo/plane/GizmoPlane.d.ts +1 -1
  28. package/build/components/gizmo/rotate/RotateGizmo.d.ts +1 -1
  29. package/build/components/gizmo/scale/ScaleGizmo.d.ts +1 -1
  30. package/build/components/gizmo/translate/TranslateGizmo.d.ts +1 -1
  31. package/build/components/grid/Grid.d.ts +2 -1
  32. package/build/components/group/Group.d.ts +1 -1
  33. package/build/components/light/AmbientLight.d.ts +1 -1
  34. package/build/components/light/PointLight.d.ts +1 -1
  35. package/build/components/light/SceneLight.d.ts +1 -1
  36. package/build/components/model/Model.d.ts +1 -1
  37. package/build/components/node/Node.d.ts +1 -1
  38. package/build/components/primitive/Primitive.d.ts +1 -1
  39. package/build/components/root/Root.d.ts +1 -1
  40. package/build/dive.cjs +1 -1
  41. package/build/dive.mjs +58 -60
  42. package/build/engine/Dive.d.ts +3 -31
  43. package/build/engine/camera/PerspectiveCamera.d.ts +1 -1
  44. package/build/engine/environment/Environment.d.ts +12 -27
  45. package/build/engine/renderer/Renderer.d.ts +7 -8
  46. package/build/engine/scene/Scene.d.ts +1 -1
  47. package/build/engine/scene/xrroot/XRRoot.d.ts +2 -3
  48. package/build/engine/scene/xrroot/xrlightroot/XRLightRoot.d.ts +3 -3
  49. package/build/helpers/findInterface/findInterface.d.ts +1 -1
  50. package/build/helpers/findSceneRecursive/findSceneRecursive.d.ts +1 -1
  51. package/build/helpers/implementsInterface/implementsInterface.d.ts +1 -1
  52. package/build/helpers/math/signedAngleTo/signedAngleTo.d.ts +1 -1
  53. package/build/interfaces/Hoverable.d.ts +1 -1
  54. package/build/plugins/animation/index.cjs +1 -1
  55. package/build/plugins/animation/index.mjs +12 -20
  56. package/build/plugins/animation/src/animator/Animator.d.ts +1 -1
  57. package/build/plugins/animation/src/animator/ClipAnimator.d.ts +1 -1
  58. package/build/plugins/animation/src/system/AnimationSystem.d.ts +1 -6
  59. package/build/plugins/animation/src/types/AnimatorTypes.d.ts +1 -1
  60. package/build/plugins/ar/index.cjs +1 -1
  61. package/build/plugins/ar/index.mjs +5 -4
  62. package/build/plugins/ar/src/webxr/controller/WebXRController.d.ts +1 -1
  63. package/build/plugins/ar/src/webxr/crosshair/WebXRCrosshair.d.ts +1 -1
  64. package/build/plugins/ar/src/webxr/origin/WebXROrigin.d.ts +1 -1
  65. package/build/plugins/ar/src/webxr/raycaster/WebXRRaycaster.d.ts +1 -1
  66. package/build/plugins/ar/src/webxr/touchscreencontrols/WebXRTouchscreenControls.d.ts +1 -1
  67. package/build/plugins/assetcache/index.cjs +1 -1
  68. package/build/plugins/assetcache/index.mjs +1 -1
  69. package/build/plugins/assetexporter/index.cjs +1 -1
  70. package/build/plugins/assetexporter/index.mjs +1 -1
  71. package/build/plugins/assetexporter/src/AssetExporter.d.ts +1 -1
  72. package/build/plugins/assetloader/index.cjs +1 -1
  73. package/build/plugins/assetloader/index.mjs +2 -2
  74. package/build/plugins/assetloader/src/loader/AssetLoader.d.ts +2 -2
  75. package/build/plugins/assetloader/src/step/STEPLoader.d.ts +1 -1
  76. package/build/plugins/mediacreator/index.cjs +1 -1
  77. package/build/plugins/mediacreator/index.mjs +52 -24
  78. package/build/plugins/mediacreator/src/MediaCreator.d.ts +4 -3
  79. package/build/plugins/mediacreator/types/MediaGenerationByPosition.d.ts +1 -1
  80. package/build/plugins/orbitcontroller/index.cjs +1 -1
  81. package/build/plugins/orbitcontroller/index.mjs +1 -1
  82. package/build/plugins/orbitcontroller/src/OrbitController.d.ts +1 -1
  83. package/build/plugins/orbitcontroller/types/OrbitControllerState.types.d.ts +1 -1
  84. package/build/plugins/orientationdisplay/index.cjs +1 -1
  85. package/build/plugins/orientationdisplay/index.mjs +17 -16
  86. package/build/plugins/orientationdisplay/src/axes/Axes.d.ts +1 -1
  87. package/build/plugins/quickview/index.cjs +1 -1
  88. package/build/plugins/quickview/index.mjs +9 -8
  89. package/build/plugins/shader/index.cjs +1 -1
  90. package/build/plugins/shader/index.mjs +2 -3
  91. package/build/plugins/shader/src/index.d.ts +1 -3
  92. package/build/plugins/shader/src/shaders/GridNode.d.ts +16 -0
  93. package/build/plugins/state/index.cjs +11 -11
  94. package/build/plugins/state/index.mjs +1538 -1537
  95. package/build/plugins/state/src/actions/camera/computeencompassingview.d.ts +1 -1
  96. package/build/plugins/state/src/actions/camera/getcameratransform.d.ts +1 -1
  97. package/build/plugins/state/src/actions/camera/movecamera.d.ts +1 -1
  98. package/build/plugins/state/src/actions/camera/setcameratransform.d.ts +1 -1
  99. package/build/plugins/state/types/StateSceneData.d.ts +1 -1
  100. package/build/plugins/toolbox/index.cjs +1 -1
  101. package/build/plugins/toolbox/index.d.ts +0 -1
  102. package/build/plugins/toolbox/index.mjs +224 -853
  103. package/build/plugins/toolbox/src/PointerContext.d.ts +1 -1
  104. package/build/plugins/toolbox/src/SelectionState.d.ts +1 -1
  105. package/build/plugins/toolbox/src/Toolbox.d.ts +0 -10
  106. package/build/plugins/toolbox/src/drag/DragTool.d.ts +1 -1
  107. package/build/plugins/toolbox/src/drag/DraggableEvent.d.ts +1 -1
  108. package/build/plugins/toolbox/src/hover/HoverTool.d.ts +1 -1
  109. package/build/plugins/toolbox/src/select/SelectTool.d.ts +1 -1
  110. package/build/plugins/toolbox/src/transform/TransformTool.d.ts +2 -1
  111. package/build/types/schema/GroupSchema.d.ts +1 -1
  112. package/build/types/schema/LightSchema.d.ts +1 -1
  113. package/build/types/schema/MaterialSchema.d.ts +1 -1
  114. package/build/types/schema/ModelSchema.d.ts +1 -1
  115. package/build/types/schema/PovSchema.d.ts +1 -1
  116. package/build/types/schema/PrimitiveSchema.d.ts +1 -1
  117. package/package.json +5 -4
  118. package/build/chunks/Animator-BGFdF70Z.mjs +0 -47
  119. package/build/chunks/Animator-Cu7NIkVg.cjs +0 -1
  120. package/build/chunks/AssetCache-DJyYrAdR.cjs +0 -1
  121. package/build/chunks/AssetExporter-PFiNYi50.mjs +0 -1628
  122. package/build/chunks/AssetExporter-yVhYmVXW.cjs +0 -164
  123. package/build/chunks/AssetLoader-BA_QwJMR.mjs +0 -2590
  124. package/build/chunks/AssetLoader-DJb8P6eB.cjs +0 -5
  125. package/build/chunks/ClipAnimator-tjhLo851.cjs +0 -1
  126. package/build/chunks/DIVEShaderMaterial-Bt0d8oJB.mjs +0 -3468
  127. package/build/chunks/DIVEShaderMaterial-DE8YRWj9.cjs +0 -1554
  128. package/build/chunks/FileTypes-BSJhZREN.cjs +0 -33
  129. package/build/chunks/FileTypes-CUf24rq6.mjs +0 -2155
  130. package/build/chunks/PerspectiveCamera-iAsZqrnY.cjs +0 -1
  131. package/build/chunks/draco_decoder-Bh9flJPu.cjs +0 -1
  132. package/build/chunks/draco_decoder-CEzwqP9o.mjs +0 -38
  133. package/build/chunks/draco_decoder-DtHHc5d0.mjs +0 -4
  134. package/build/chunks/draco_decoder-DvYjcLz_.cjs +0 -35
  135. package/build/chunks/draco_wasm_wrapper-FoEVV9af.cjs +0 -118
  136. package/build/chunks/draco_wasm_wrapper-yQy2VLhb.mjs +0 -121
  137. package/build/chunks/fflate.module-DHdJvhNh.cjs +0 -6
  138. package/build/chunks/fflate.module-xyO_T3Zm.mjs +0 -602
  139. package/build/plugins/shader/src/material/DIVEShaderMaterial.d.ts +0 -5
  140. package/build/plugins/shader/src/shaders/DIVEShaderLib.d.ts +0 -2
  141. package/build/plugins/shader/src/shaders/grid/index.d.ts +0 -40
  142. package/build/plugins/toolbox/src/BaseTool.d.ts +0 -59
@@ -0,0 +1,1975 @@
1
+ var U = Object.defineProperty;
2
+ var $ = (n, g, A) => g in n ? U(n, g, { enumerable: !0, configurable: !0, writable: !0, value: A }) : n[g] = A;
3
+ var e = (n, g, A) => $(n, typeof g != "symbol" ? g + "" : g, A);
4
+ import { PMREMGenerator as F, Scene as W, SphereGeometry as v, MeshBasicMaterial as Y, BackSide as AA, Mesh as u, NoToneMapping as iA, LinearSRGBColorSpace as eA, CubeRenderTarget as gA, HalfFloatType as tA, CubeCamera as oA, EquirectangularReflectionMapping as sA, WebGPURenderer as nA, PCFSoftShadowMap as fA, PCFShadowMap as hA, BasicShadowMap as rA, SRGBColorSpace as aA, LinearToneMapping as BA, MathUtils as b, Object3D as w, AmbientLight as cA, PointLight as PA, FrontSide as N, HemisphereLight as zA, DirectionalLight as IA, Vector3 as h, Box3 as I, Box3Helper as CA, Sphere as uA, MeshStandardMaterial as y, Raycaster as wA, CylinderGeometry as GA, BufferGeometry as k, BufferAttribute as X, BoxGeometry as H, ConeGeometry as DA, LineDashedMaterial as mA, Line as pA, PlaneGeometry as x, Color as C, MeshBasicNodeMaterial as KA, DoubleSide as vA, TOUCH as c, MOUSE as B, EventDispatcher as lA, Spherical as j, Vector2 as a, Quaternion as Z } from "three/webgpu";
5
+ import { HDRLoader as HA } from "three/examples/jsm/loaders/HDRLoader.js";
6
+ import { P, U as qA, H as dA, a as YA, D as bA } from "./PerspectiveCamera-B5TvUzTa.mjs";
7
+ import { G as yA } from "./GridNode-0R5ZnzR6.mjs";
8
+ import { uniform as G } from "three/tsl";
9
+ class OA {
10
+ constructor() {
11
+ e(this, "isDIVEClock", !0);
12
+ e(this, "_lastTime", 0);
13
+ e(this, "_isRunning", !1);
14
+ e(this, "_tickers", []);
15
+ }
16
+ start() {
17
+ this._isRunning || (this._isRunning = !0, this._lastTime = performance.now(), requestAnimationFrame(this._tick.bind(this)));
18
+ }
19
+ stop() {
20
+ this._isRunning = !1;
21
+ }
22
+ addTicker(g) {
23
+ this._tickers.find((A) => A.uuid === g.uuid) || this._tickers.push(g);
24
+ }
25
+ hasTicker(g) {
26
+ return this._tickers.find((A) => A.uuid === g.uuid) !== void 0;
27
+ }
28
+ removeTicker(g) {
29
+ const A = this._tickers.findIndex((i) => i.uuid === g.uuid);
30
+ A !== -1 && this._tickers.splice(A, 1);
31
+ }
32
+ dispose() {
33
+ this.stop(), this._tickers = [], this._isRunning = !1, this._lastTime = 0;
34
+ }
35
+ _tick(g) {
36
+ if (!this._isRunning) return;
37
+ const A = (g - this._lastTime) / 1e3;
38
+ this._lastTime = g, this._tickers.forEach((i) => i.tick(A)), requestAnimationFrame(this._tick.bind(this));
39
+ }
40
+ }
41
+ const J = "data:application/octet-stream;base64,Iz9SQURJQU5DRQojIE1hZGUgd2l0aCBBZG9iZSBQaG90b3Nob3AKRk9STUFUPTMyLWJpdF9ybGVfcmdiZQoKLVkgNTEyICtYIDEwMjQKAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAAHvhP0QhYWIjZSZnqKqrrO4vsXP2P/c/9z/3M3cF9fRysO9uLOxqqiinpuVk42KhYT9/f30hO8B6orgAeqE7xf0/f39g4WJjZOUm56ip6qwsri7wsnP1f/c0Nwa2dXOysa/u7i1sbCqqqSinpuZlJSNjYiFhYCE/YfvAeGK4AHnhu8Z8v39/YKFhYyNkJSZm6Gjqquxtbq/xsvR1v/cwdwB74T9EIWFiI2UmZ6iqq6zuL7Fz9j/3P/c/9zN3BfX0crDvbizsaqoop6blZONioWE/f399ITvAeqK4AHqhO8X9P39/YOFiY2TlJueoqeqsLK4u8LJz9X/3NDcGtnVzsrGv7u4tbGwqqqkop6bmZSUjY2IhYWAhP2H7wHhiuAB54bvGfL9/f2ChYWMjZCUmZuho6qrsbW6v8bL0db/3MHcAe+E/RCFhYiNlJmeoqqus7i+xc/Y/9z/3P/czdwX19HKw724s7GqqKKem5WTjYqFhP39/fSE7wHqiuAB6oTvF/T9/f2DhYmNk5SbnqKnqrCyuLvCyc/V/9zQ3BrZ1c7Kxr+7uLWxsKqqpKKem5mUlI2NiIWFgIT9h+8B4YrgAeeG7xny/f39goWFjI2QlJmboaOqq7G1ur/Gy9HW/9zB3IWA/4H/gf+B8IGcgP+B/YGhgP+B1oECAgQAld8L6PmFj5egqbTAzNn/3MLcFdXOx8G6t7GsqaKfm5WSjIiFgfz8+ITuAeWJ34TuFPT8/P6FiIySlZufoqmssbe9xc7W/9y43AzXzMK3raSakoqB8+PD3wzu/4ePl5+ptL3I0dv/3LPcENfPyMC4samim5WPiYP67uHR3w7s+IOLkpmhqK+3wcrT2//cstyV3wvo+YWPl6CptMDM2f/cwtwV1c7Hwbq3saypop+blZKMiIWB/Pz4hO4B5YnfhO4U9Pz8/oWIjJKVm5+iqayxt73Fztb/3LjcDNfMwretpJqSioHz48PfDO7/h4+Xn6m0vcjR2//cs9wQ18/IwLixqaKblY+Jg/ru4dHfDuz4g4uSmaGor7fBytPb/9yy3JXfC+j5hY+XoKm0wMzZ/9zC3BXVzsfBurexrKmin5uVkoyIhYH8/PiE7gHlid+E7hT0/Pz+hYiMkpWbn6KprLG3vcXO1v/cuNwM18zCt62kmpKKgfPjw98M7v+Hj5efqbS9yNHb/9yz3BDXz8jAuLGpopuVj4mD+u7h0d8O7PiDi5KZoaivt8HK09v/3LLcl4D/gd2BmYD/gdKBx4D/gcqB1oD/gb6BAgIEAKDeCPGEkZ6qt8bW/9yt3Aza0Me8s6mfl4+H/uy83gzh8oCIkJijrbnDz9r/3KTcCNXGtqeaj4Ls2t4J4fWIk5+su8rZ/9yg3AvWyr+0qJ+WjoP25e7eC+DxgYqUn6u1wcvX/9yo3KDeCPGEkZ6qt8bW/9yt3Aza0Me8s6mfl4+H/uy83gzh8oCIkJijrbnDz9r/3KTcCNXGtqeaj4Ls2t4J4fWIk5+su8rZ/9yg3AvWyr+0qJ+WjoP25e7eC+DxgYqUn6u1wcvX/9yo3KDeCPGEkZ6qt8bW/9yt3Aza0Me8s6mfl4+H/uy83gzh8oCIkJijrbnDz9r/3KTcCNXGtqeaj4Ls2t4J4fWIk5+su8rZ/9yg3AvWyr+0qJ+WjoP25e7eC+DxgYqUn6u1wcvX/9yo3KGA/4G+gcCA/4G1gd2A/4GwgfKA/4GxgQICBACo3Qfwh5ent8bW/9yd3Arbz8K0ppuPhPHe0t0I3/SHlKSzw9P/3JbcB9jGtKSVhu7q3Qje9YmYp7bH2f/ckNwJ0cK1q5+UiPzk/92F3QnngI2ap7TBzdr/3J/cqN0H8IeXp7fG1v/cndwK28/CtKabj4Tx3tLdCN/0h5Sks8PT/9yW3AfYxrSklYbu6t0I3vWJmKe2x9n/3JDcCdHCtauflIj85P/dhd0J54CNmqe0wc3a/9yf3KjdB/CHl6e3xtb/3J3cCtvPwrSmm4+E8d7S3Qjf9IeUpLPD0//cltwH2Ma0pJWG7urdCN71iZintsfZ/9yQ3AnRwrWrn5SI/OT/3YXdCeeAjZqntMHN2v/cn9ypgP+Bq4HWgP+BooHtgP+BnYH/gIiA/4GngQICBACv3Ab3jqG0x9n/3JDcCNPCs6WXivng49wH6IOTo7fK2v/citwGzrqnkv3e99wH34CTprnN2//cCtzc1se5qpyO/uP/3JbcCN/4i5qot8bW/9yY3K/cBveOobTH2f/ckNwI08KzpZeK+eDj3Afog5Ojt8ra/9yK3AbOuqeS/d733AffgJOmuc3b/9wK3NzWx7mqnI7+4//cltwI3/iLmqi3xtb/3Jjcr9wG946htMfZ/9yQ3AjTwrOll4r54OPcB+iDk6O3ytr/3IrcBs66p5L93vfcB9+Ak6a5zdv/3Arc3NbHuaqcjv7j/9yW3Ajf+IuaqLfG1v/cmNywgP+Bm4HmgP+BlIH6gP+BjoH/gJqA/4GegQICBAC02gbd/JGmu9H/3ITcB9fHt6aVhOjx2gbhgpWpvdP/3AXSuqOL6P/ahNoF5Yigt8/23AfbzbyqmYfs/9qm2gfviJmqu83b/9yR3LTaBt38kaa70f/chNwH18e3ppWE6PHaBuGClam90//cBdK6o4vo/9qE2gXliKC3z/bcB9vNvKqZh+z/2qbaB++Imaq7zdv/3JHctNoG3fyRprvR/9yE3AfXx7emlYTo8doG4YKVqb3T/9wF0rqji+j/2oTaBeWIoLfP9twH2828qpmH7P/aptoH74iZqrvN2//ckdy2gP+BjoHzgP+BiYH/gIaA/4EBgf+AqID/gZeBAgIEALrZBe6MorjO+NwG28u2oo71/tkF9ZKpwNb13AXbx6uT9f/ZjtkF7Y6lwNjs3AbOuaWSgeH/2bLZBuKDl6q90f/cjNy62QXujKK4zvjcBtvLtqKO9f7ZBfWSqcDW9dwF28erk/X/2Y7ZBe2OpcDY7NwGzrmlkoHh/9my2Qbig5eqvdH/3IzcutkF7oyiuM743Abby7aijvX+2QX1kqnA1vXcBdvHq5P1/9mO2QXtjqXA2OzcBs65pZKB4f/ZstkG4oOXqr3R/9yM3LuA/4GCgf+AAYD9gf+AkID1gf+AtID/gZGBAgIEAL/YBeuNpbzU7twG1MCsl4Ph/9iI2AXa/5myy+3cBdrEqY3m/9iW2AXehqK91uLcBtnFsJyH5v/YvtgG54earsHV/9yG3L/YBeuNpbzU7twG1MCsl4Ph/9iI2AXa/5myy+3cBdrEqY3m/9iW2AXehqK91uLcBtnFsJyH5v/YvtgG54earsHV/9yG3L/YBeuNpbzU7twG1MCsl4Ph/9iI2AXa/5myy+3cBdrEqY3m/9iW2AXehqK91uLcBtnFsJyH5v/YvtgG54earsHV/9yG3MCA94H/gIuA9IH/gJiA64H/gMCA/4GLgQICBADE1wX5lKzF2uPcBtrJtaCM8P/Xk9cF6o6pw9rl3ATJqo3i/9ee1wXahaPC2tncBtrGr5eA2//XydcF9pGnvtX/3AHcxNcF+ZSsxdrj3AbaybWgjPD/15PXBeqOqcPa5dwEyaqN4v/XntcF2oWjwtrZ3Abaxq+XgNv/18nXBfaRp77V/9wB3MTXBfmUrMXa49wG2sm1oIzw/9eT1wXqjqnD2uXcBMmqjeL/157XBduFo8La2dwG2savl4Db/9fJ1wX2kae+1f/cAdzFgOyB/4CVgOyB/4CggOKB/4DLgP+BhYECAgQAyNYF4Iehu9Ta3AbbybKbhN7/1pzWBd+Ho73W3dwEzrCS6v/WptYE4Y2sytLcBcyzm4Td/9bT1gX0kKe91PvcyNYF4Iehu9Ta3AbbybKbhN7/1pzWBd+Ho73W3dwEzrCS6v/WptYE4Y2sytLcBcyzm4Td/9bT1gX0kKe91PvcyNYF4Iehu9Ta3AbbybKbhN7/1pzWBd+Ho73W3dwEzrCS6v/WptYE4Y2sytLcBcyzm4Td/9bT1gX0kKe91PvcyYDjgf+AnoDkgf+AqIDZgf+A1YD/gQICBADM1QXW+ZawytLcBc21nobg/9Wl1QXYgZy30tXcBNO2mPT/1a7VBO6VtNLJ3AXVvqWM5v/V3dUF8pKqw9n23MzVBdb5lrDK0twFzbWehuD/1aXVBdiBnLfS1dwE07aY9P/VrtUE7pW00sncBdW+pYzm/9Xd1QXykqrD2fbczNUF1vmWsMrS3AXNtZ6G4P/VpdUF2IGct9LV3ATTtpj0/9Wu1QTulbTSydwF1b6ljOb/1d3VBfKSqsPZ9tzOgNmB/4CngNyB/4CwgNCB/4DfgPqBAgIEANHTBeSLpb7WyNwFz7igieP/06/TBfaUrcbazNwF0bSZ+tT/07TTBdT9nLrXwNwG28ivlfrV/9Pl0wXag5y1z/Lc0dMF5IulvtbI3AXPuKCJ4//Tr9MF9pStxtrM3AXRtJn61P/TtNMF1P2cutfA3AbbyK+V+tX/0+XTBdqDnLXP8tzR0wXki6W+1sjcBc+4oInj/9Ov0wX2lK3G2szcBdG0mfrU/9O00wXU/Zy618DcBtvIr5X61f/T5dMF2oOctc/y3NKA0IH/gLGA04H/gLiAx4H/gOiA9oECAgQA1dIF1f2Xscq/3AXSu6OL6f/SuNIG24SdtMnawtwF2cSslPT/0r3SBdaDn7rUuNwFzLWeht7/0u/SBeiNpsDY7dzV0gXV/Zexyr/cBdK7o4vp/9K40gbbhJ20ydrC3AXZxKyU9P/SvdIF1oOfutS43AXMtZ6G3v/S79IF6I2mwNjt3NXSBdX9l7HKv9wF0ruji+n/0rjSBtuEnbTJ2sLcBdnErJT0/9K90gXWg5+61LjcBcy1nobe/9Lv0gXojabA2O3c14DGgf+AuoDLgf+Av4DAgf+A8YDxgQICBADa0QXgiKC3z7XcBc+5o43r/9HC0QbYgJWrvtC43AbXxK+Zgdb/0cXRBtL4l7DH2q3cBtnGs56H4P/R+NEF1YGbt9Hp3NrRBeCIoLfPtdwFz7mjjev/0cLRBtiAlau+0LjcBtfEr5mB1v/RxdEG0viXsMfardwG2caznofg/9H40QXVgZu30enc2tEF4Iigt8+13AXPuaON6//RwtEG2ICVq77QuNwG18SvmYHW/9HF0QbS+Jewx9qt3AbZxrOeh+D/0fjRBdWBm7fR6dzbgL2B/4DEgMKB/4DIgLaB/4D6gO2BAgIEAN/QBuWKn7TI2qncBtfFsZ2H4//QzdAI3f+Pnq66x9Kp3AjWyLipmIfs0f/Qz9AH1/2Tp7jK2aHcB9LCsqCO8tL/0P/QCNDQ0O+SrMfb5Nzf0Ablip+0yNqp3AbXxbGdh+P/0M3QCN3/j56uusfSqdwI1si4qZiH7NH/0M/QB9f9k6e4ytmh3AfSwrKgjvLS/9D/0AjQ0NDvkqzH2+Tc39AG5YqftMjaqdwG18WxnYfj/9DN0Ajc/4+errrH0qncCNbIuKmYh+zR/9DP0AfX/ZOnuMrZodwH0sKyoI7y0v/Q/9AI0NDQ75Ksx9vk3OCAs4H/gNCAtYH/gNOAq4H/gP+AhoDogQICBAAIzs/Oz8/Ozs6GzwvOz8/Oz8/Pzs/OzobPBs7Pzs/OzobPEM7Pzs7Pzs/Oz8/Ozs/Pz86EzwXOz8/PzobPhM4Iz87Pzs/Ozs6JzwzOzs/PztT7kqS0xNSc3BTazL2unYntz8/Oz8/Oz8/Pzs7PzoTPC87Pz87Pzs7Pzs/Ohs8BzoTPBc7Pz8/OhM8Dzs/Oh88BzojPAc6FzwTOz87OhM8Ezs/PzorPB87Pz8/Ozs6IzwXOz87PzoTPhM6EzwbOz87Pz86Ezw7Oz87Pz8/Oz87Pzs/OzofPAc6EzxHOz87Oz87Ozs/Pz87Pz87PzoXPB87Ozs/Pzs6NzwfOzs/Oz8/PhM4Uz8/U6YGMlpyjqrG3vsXMzNHU1NmG3BLZ1NTQzMrEvLWtpZ6WjoTz2c6FzwHOhM8Fzs/Pz86FzyTOzs/Oz8/Oz87Ozs/Oz8/Pzs/Pzs/Oz8/Pzs/Pzs/Pz87Pzs6IzwXOzs/OzobPCM7Pz8/Ozs/Ohc8Ezs/PzpTPBM7Pz86EzwbOz87Pzs+EzoXPCc7Pz87Pz8/OzoTPHM7Pz8/Ozs/Oz8/Ozs/Pzs/Pzs/Pz87Oz8/Ozs6EzwXOzs7PzoTPhM4Dz8/Ohc8BzoXPG87Pz87Pz8/Oz8/PztDmgo6Yoaqzu8XMztTU24XcDtTUz8zFvrSropmRhvLXhM8Gzs7Pzs/OiM8BzoTPC87Oz8/Pzs7Pzs7Oh88Jzs7Pz87Pzs/Ohs8Nzs/Pzs/Pzs7Oz8/PzoXPEs7Pzs/Pzs/Pzs7Oz8/Ozs/OzobPB87Ozs/Pz86EzwTOz87PhM4az87Pzs/Oz8/Ozs/Pz87Pzs/Oz8/Oz87Pz86GzxDOz8/Oz87Oz87Oz87Pzs/OhM8Gzs/Oz8/OhM8Lzs/Pz87Pz87Pzs6EzybOz8/Ozs7Pz8/Ozs/Ozs7Pz87Pz87Ozs/Pzs/Oz87Oz87Pzs7PzoTPAc6Ez4XOhc8BzoTPAc6FzwvOz8/Oz8/ahqG71eDcAc+HzgXPzs/PzoTPFM7Oz87Oz8/Oz8/Pzs/Ozs7Pz8/Ohs8Hzs7Pz8/OzobPBM7Pz86EzxHOz87Pz87Pzs7Pz87Pz87PzoXPBc7Pzs7PhM4Mz8/Pzs/U+5KktMTUnNwQ2sy9rp2J7c/Ozs/Oz8/PzoXPB87Pz8/Ozs6Fzx7Oz87Oz87Pzs7Oz87Pz87Pzs/Pz87Pz8/Ozs/Ozs6GzxDOzs/Pz87Oz87Pzs/Pzs/OhM8BzoTPC87Pzs/Oz8/Oz87Ohs+FzgPPzs+FzgnPz87Pz8/Ozs+EzhfPzs/Oz87Pzs/Pzs/Ozs/Oz87Ozs/PzoTPDs7Pzs7Pzs7Oz87Pz8/OhM8Mzs/Oz8/Pzs7Oz8/OhM8Gzs7Pz87PhM4Ez8/PzofPGM7Pz87Pz9TpgYyWnKOqsbe+xczM0dTU2YbcF9nU1NDMysS8ta2lnpaOhPPZzs/Ozs7Phc4Sz8/Ozs/Oz87Ozs/Oz8/Pzs7Phs4Mz87Pzs/Pz87Pzs7Phc4Lz87Pzs7Oz8/Oz8+FzoLPh84Kz8/Pzs/Oz87OzoXPHs7Pz87Pzs/Ozs7Pz87Pzs/Ozs7Pzs/Pz87Ozs/PzoTPgs6EzxrOz8/Pzs7Oz87Ozs/Pzs/Pz87Oz87Oz8/OzoTPEc7Oz87Ozs/Pz87Pz8/Oz87PhM6Ezw3Ozs/Ozs/Pzs7Pz87Phc4ez87Oz87Oz8/Oz87Oz87P0OaCjpihqrO7xczO1NTbhdwb1NTPzMW+tKuimZGG8tfPzs7Pz8/Ozs/Ozs/PhM41z8/Oz87Pzs7Pzs/Pzs/Pzs/Pzs/Oz87Pz87Pz87Pz87Pzs/Pzs/Oz8/Ozs/Ozs7Pzs/Pzs+EzoLPhc6Cz4XOBs/Pzs7Pz4TOCM/Ozs/Ozs/Ohc+EzoPPhM4Hz8/Oz87OzoXPBc7Ozs/PhM4dz87Pz8/Oz8/Pzs/Oz87Ozs/Oz87Ozs/Oz87Pzs+FzgfPzs/Oz8/OhM8hzs7Pzs7Oz8/Oz87Oz87Oz87Ozs/Ozs/Ozs/Ozs7Pz87OiM+CzobPB87Pzs/Pz86EzxnOz87Ozs/Pz87Ozs/Pzs/Ozs/Oz9qGobvV4NwEz8/PzojPA87PzofPAc6IzwHOhc8Ezs/OzoTPBM7Pz86KzwHOhM+CzojPBc7Pzs/Ohc+DzoTPEM7Pzs/Pzs/Pz9T7kqS0xNSc3AnazL2unYntz86GzwbOzs/Pzs6Nz4LOhc+EzgrPz87Pzs7Pz87Ohc8Rzs/Pz87Oz87Pz87Pz8/Oz86EzwHOhM+DzoXPAc6EzwXOz8/PzoXPFs7Oz87Pz87Pzs7Oz87Pz8/Oz8/Oz86GzwjOz8/Pzs/PzonPBM7Pzs6GzwHOhs8BzoXPBM7Pz86SzwHOk88Yzs/Pz87P1OmBjJaco6qxt77FzMzR1NTZhtwc2dTU0MzKxLy1raWelo6E89nOz8/Oz87Pz87PzoXPgs6GzxPOz8/Pzs/Pz87Pz8/Ozs/Ozs/OhM8Hzs7Pz87PzofPhM4Hz8/Oz8/PzojPCc7Oz8/Oz87PzoXPBc7Pz8/OhM+CzoTPgs6FzwbOz87Pzs6FzwXOz87PzofPgs6Hz4POhc8Gzs7Pz87OhM8Rzs/Oz87Pzs/Oz87Oz87Pz86EzxXOz87Pz8/Oz8/Pzs/Oz8/Oz8/Pzs6Mzw/Q5oKOmKGqs7vFzM7U1NuF3BPU1M/Mxb60q6KZkYby18/Pz87OlM8Wzs7Pz87Oz8/Pzs7Pzs/Pzs/Oz8/PzoXPAc6Fzw3Oz8/Ozs7Pzs/Oz8/Ojc8Dzs/Oh8+CzoXPAc6FzwHOh88Izs/Pzs7Pz86EzwTOz87Oh88BzoTPB87Pzs/Pz86EzwHOjs8Bzo/PAc6EzwHOjs8Ezs/OzoTPA87Pz4TOBs/Oz87PzoXPB87Ozs/Pz86IzwLOz4XOCc/Oz8/Ozs7PzoXPBs7ahqG71eDc5oCngf+A3oClgf+A4YCegf+A/4CRgOSBAgIEAOvNHd7/i5ehq7fByc3U1tzc3NbU0MzKwrmvpZuRhevR/83/zf/N/83/zf/Nnc0Fz/aVsMvc3OvNHd7/i5ehq7fByc3U1tzc3NbU0MzKwrmvpZuRhevR/83/zf/N/83/zf/Nnc0Fz/aVsMvc3OvNHd7/i5ehq7fByc3U1tzc3NbU0MzKwrmvpZuRhevR/83/zf/N/83/zf/Nnc0Fz/aVsMvc3O2AmYH/gP+A/4D/gP+A/4ChgN+BAgIEAP/M/8z/zP/M/8z/zP/Mq8wF34miu9TX3P/M/8z/zP/M/8z/zP/Mq8wF34miu9TX3P/M/8z/zP/M/8z/zP/Mq8wF34miu9TX3P+A/4D/gP+A/4D/gP+ArIDbgQICBAD/y//L/8v/y//L/8v/y7DLBe2QqcHY0tz/y//L/8v/y//L/8v/y7DLBe2QqcHY0tz/y//L/8v/y//L/8v/y7DLBe2QqcHY0tz/gP+A/4D/gP+A/4D/gLGA1oECAgQA/8n/yf/J/8n/yf/J/8m0yQbO+ZOpv9XN3P/J/8n/yf/J/8n/yf/JtMkGzvmTqb/Vzdz/yf/J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AgQA/5n/mf+Z/5mlmQKRxIe+AoCG/4qpigL2pYe+Afa7mQHwhb4Bsf+KtYoBxYW+Acelmf+Z/5n/mf+ZpZkCkcSHvgKAhv+KqYoC9qWHvgH2u5kB8IW+AbH/irWKAcWFvgHHpZn/mf+Z/5n/maWZApHEh74CgIb/iqmKAvalh74B9ruZAfCFvgGx/4q1igHFhb4Bx6WZ/4D/gP+A/4CmgIh/AYH/gqqCAoGAiH+7gIZ/AYH/grWCAYGGf6WAAgIEAP+Y/5j/mP+YpZgB0oa8AsCp/4qsigKCyoe8Af26mAHdhbwB0v+KtYoCh/2FvAGJpJj/mP+Y/5j/mKWYAdKGvALAqf+KrIoCgsqHvAH9upgB3YW8AdL/irWKAof9hbwBiaSY/5j/mP+Y/5ilmAHShrwCwKn/iqyKAoLKh7wB/bqYAd2FvAHS/4q1igKH/YW8AYmkmP+A/4D/gP+ApYCIfwGB/4KtggGAiH+6gIZ/AYH/graChn+lgAICBAD/l/+X/5f/l6SXAeKGuwLGvP+KrooChtGHuwGCuZcB0YW7Aej/iraKAYmFuwHtpJf/l/+X/5f/l6SXAeKGuwLGvP+KrooChtGHuwGCuZcB0YW7Aej/iraKAYmFuwHtpJf/l/+X/5f/l6SXAeKGuwLGvP+KrooChtGHuwGCuZcB0YW7Aej/iraKAYmFuwHtpJf/gP+A/4D/gKSAiH8Bgf+Cr4IBgId/uoCGfwGB/4K2ggGBhn+kgAICBAD/lf+V/5X/laOVAfeGuQLExf+KsIoChcWGuQK/jriVAcSFuQH9/4q2igHOhbkB0aSV/5X/lf+V/5WjlQH3hrkCxMX/irCKAoXFhrkCv464lQHEhbkB/f+KtooBzoW5AdGklf+V/5X/lf+Vo5UB94a5AsTF/4qwigKFxYa5Ar+OuJUBxIW5Af3/iraKAc6FuQHRpJX/gP+A/4D/gKOAiH8Bgf+CsYIBgId/uYCGfwGB/4K2ggGBhn+kgAICBAD/lP+U/5T/lKKUAYCHuAG2/4qyigKDrYa4AeK4lAG7hbgBhv+KtooChtWFuAGSo5T/lP+U/5T/lKKUAYCHuAG2/4qyigKDrYa4AeK4lAG7hbgBhv+KtooChtWFuAGSo5T/lP+U/5T/lKKUAYCHuAG2/4qyigKDrYa4AeK4lAG7hbgBhv+KtooChtWFuAGSo5T/gP+A/4D/gKOAh38Bgf+Cs4IBgId/uICGf/+CuIKGf6SAAgIEAP+T/5P/k/+ToZMCjL2GtgGa/4q0igL7hoa2Afy3k4a2/4q4igHLhbYBhaOT/5P/k/+T/5OhkwKMvYa2AZr/irSKAvuGhrYB/LeThrb/iriKAcuFtgGFo5P/k/+T/5P/k6GTAoy9hrYBmv+KtIoC+4aGtgH8t5OGtv+KuIoBy4W2AYWjk/+A/4D/gP+AooCHfwGB/4K0ggKBgId/t4CGf/+CuIIBgIV/pIACAgQA/5L/kv+S/5KhkgHphrUB6v+KtooC3cOFtQK4ibWSAZCFtQHL/4q4igGchbUB7qOS/5L/kv+S/5KhkgHphrUB6v+KtooC3cOFtQK4ibWSAZCFtQHL/4q4igGchbUB7qOS/5L/kv+S/5KhkgHphrUB6v+KtooC3cOFtQK4ibWSAZCFtQHL/4q4igGchbUB7qOS/4D/gP+A/4ChgId/AYD/graCAYGHf7eAhn//griCAYGGf6OAAgIEAP+R/5H/kf+RoJEBhYazAoyB/4q3igGjhrMB3rWRAY2FswHq/4q4igHOhbMB1aOR/5H/kf+R/5GgkQGFhrMCjIH/ireKAaOGswHetZEBjYWzAer/iriKAc6FswHVo5H/kf+R/5H/kaCRAYWGswKMgf+Kt4oBo4azAd61kQGNhbMB6v+KuIoBzoWzAdWjkf+A/4D/gP+AoYCGfwGA/4K4ggGBh3+2gIZ//4K4ggGBhn+jgAICBAD/kP+Q/5D/kKCQAdeFsgK22/+KuIoCiLuGsgGCtJABj4ay/4q4igH3hbIBwKOQ/5D/kP+Q/5CgkAHXhbICttv/iriKAoi7hrIBgrSQAY+Gsv+KuIoB94WyAcCjkP+Q/5D/kP+QoJAB14WyArbb/4q4igKIu4ayAYK0kAGPhrL/iriKAfeFsgHAo5D/gP+A/4D/gKCAh38Bgf+CuYIBgIZ/toCGf/+CuIIBgYZ/o4ACAgQA/47/jv+O/46fjgGBhrEBhP+KuooC79GFsQHMtY6Gsf+KuYoB4IWxAYuijv+O/47/jv+On44BgYaxAYT/irqKAu/RhbEBzLWOhrH/irmKAeCFsQGLoo7/jv+O/47/jp+OAYGGsQGE/4q6igLv0YWxAcy1joax/4q5igHghbEBi6KO/4D/gP+A/4CggIZ/AYH/grqCAYGHf7WAhn//grmChn+jgAICBAD/jf+N/43/jZ+NAdaFrwLqgf+Ku4oBoIavAfy0jQG0ha8Bhf+KuIoBqoWvAYSijf+N/43/jf+Nn40B1oWvAuqB/4q7igGghq8B/LSNAbSFrwGF/4q4igGqha8BhKKN/43/jf+N/42fjQHWha8C6oH/iruKAaCGrwH8tI0BtIWvAYX/iriKAaqFrwGEoo3/gP+A/4D/gJ+Ah3//gryCAYGHf7SAhn//grmCAYCFf6OAAgIEAP+M/4z/jP+MnowBgIauAav/iryKAoaIha4BybSMAbqFrgH4/4q4igHgha4B+aKM/4z/jP+M/4yejAGAhq4Bq/+KvIoChoiFrgHJtIwBuoWuAfj/iriKAeCFrgH5ooz/jP+M/4z/jJ6MAYCGrgGr/4q8igKGiIWuAcm0jAG6ha4B+P+KuIoB4IWuAfmijP+A/4D/gP+An4CGfwGB/4K9ggGAhn+0gIZ/AYH/griCAYCGf6KAAgIEAP+L/4v/i/+LnosB24WsAvaF/4q9igG+hqwB+bOLAcCFrAHo/4q4igGIhawB66KL/4v/i/+L/4ueiwHbhawC9oX/ir2KAb6GrAH5s4sBwIWsAej/iriKAYiFrAHroov/i/+L/4v/i56LAduFrAL2hf+KvYoBvoasAfmziwHAhawB6P+KuIoBiIWsAeyii/+A/4D/gP+AnoCHf/+CvoIBgYd/s4CGfwGB/4K4ggGBhn+igAICBAD/iv+K/4r/ip6KAbqFqwGk/4q/igGihasBzbOKAceFqwHU/4q4igGbhasB4aKK/4r/iv+K/4qeigG6hasBpP+Kv4oBooWrAc2zigHHhasB1P+KuIoBm4WrAeGiiv+K/4r/iv+KnooBuoWrAaT/ir+KAaKFqwHNs4oBx4WrAdT/iriKAZuFqwHhoor/gP+A/4D/gJ6Ahn8Bgf+Cv4IBgIZ/s4CGfwGB/4K4ggGBhn+igAICBAD/if+J/4n/iZ2JCPWpqqqqqcOC/4q/igi+qqqpqqqq+7KJB9Gqqampqrv/iriKB6yqqaqpqdiiif+J/4n/if+JnYkI9aqpqaqqw4L/ir+KCL6qqqqpqan7sokH0amqqamqu/+KuIoHrKmqqqmp2KKJ/4n/if+J/4mdiQj1qqmqqqnDgv+Kv4oIvqqpqqqqqfuyiQfRqqmpqqm7/4q4igesqqmpqqrYoon/gP+A/4D/gJ2Ah3//gsCCAYGHf7KAhn8Bgf+CuIIBgYZ/ooACAgQA/4j/iP+I/4idiAHShagB7/+KwIoCiIuFqAHWsogB2oWoAaL/iriKAbSFqAHSooj/iP+I/4j/iJ2IAdKFqAHv/4rAigKIi4WoAdayiAHahagBov+KuIoBtIWoAdKiiP+I/4j/iP+InYgB0oWoAe//isCKAoiLhagB1rKIAduFqAGi/4q4igG0hagB0qKI/4D/gP+A/4CdgIZ/AYD/gsGCAYCGf7KAhn8Bgf+CuIIBgYZ/ooACAgQA/4b/hv+G/4adhgGzhacBz/+KwYoBrIWnAbWyhgHmhacBhP+KuIoBwoWnAcuihv+G/4b/hv+GnYYBs4WnAc//isGKAayFpwG1soYB5oWnAYT/iriKAcKFpwHLoob/hv+G/4b/hp2GAbOFpwHP/4rBigGshacBtbKGAeaFpwGE/4q4igHChacBy6KG/4D/gP+A/4CdgIZ/AYH/gsGCAYGGf7KAhn8Bgf+CuIIBgYZ/ooACAgQA/4X/hf+F/4WchQH6haUC6Ij/isGKAoG8haUB77GFAfKFpQHD/4q4igHChaUByaKF/4X/hf+F/4WchQH6haUC6Ij/isGKAoG8haUB77GFAfKFpQHD/4q4igHChaUByaKF/4X/hf+F/4WchQH6haUC6Ij/isGKAoG8haUB77GFAfKFpQHD/4q4igHChaUByaKF/4D/gP+A/4CcgId//4LDgod/sYCGfwGA/4K4ggGBhn+igAICBAD/hP+E/4T/hJyEAeGFpAH4/4rDigHthaQBzLGEAf6FpAGE/4q4igHBhaQBx6KE/4T/hP+E/4SchAHhhaQB+P+Kw4oB7YWkAcyxhAH+haQBhP+KuIoBwYWkAceihP+E/4T/hP+EnIQB4YWkAfj/isOKAe2FpAHMsYQB/oWkAYT/iriKAcGFpAHHooT/gP+A/4D/gJyAhn8BgP+Cw4IBgIZ/sYCGfwGA/4K4ggGBhn+igAICBAC+gwWArreExrgABcalt6+AkIMFiuymydj/3NPcBdXEpuqKj4MFgK63hMa4AAXGpbevgNuDAceFowG8/4rDigHPhaMBrbKDAaiFowGD/4q3igG+haMBx6KDvoMFgK63hMa4AAXGpbevgJCDBYrspsnY/9zT3AXVxKbqio+D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zADW1wGOhYUB+v+Kx4oB/YWFAY2z1wHNhYUB0f+Kr4oB9IWFAc2l17nXzACG1//c59yF18wA1tcBjoWFAfr/iseKAf2FhQGNs9cBzYWFAdH/iq+KAfSFhQHNpde5f8wAhn//geeBhX/MANx/AYH/gseCAYHAf/+Cr4KsfwICBAC51cwAhtX/3OfchdXMANbVAZyFhAHN/4rHigGDhYQBiLTVAZCFhAHs/4qtigH6hYQBjabVudXMAIbV/9zn3IXVzADW1QGchYQBzf+Kx4oBg4WEAYi01QGQhYQB7P+KrYoB+oWEAY2m1bnVzACG1f/c59yF1cwA1tUBnIWEAc3/iseKAYOFhAGItNUBkIWEAez/iq2KAfqFhAGNptW5f8wAhn//geeBhX/MANx/AYH/gsiCwH8Bgf+CrYIBgax/AgIEALnUzACG1P/c59yF1MwA1tQBqoWDAZ7/iseKhoMBh7TUAaOFgwGw/4qtigHDhYMBnabUudTMAIbU/9zn3IXUzADW1AGqhYMBnv+Kx4qGgwGHtNQBo4WDAbD/iq2KAcOFgwGdptS51MwAhtT/3OfchdTMANbUAaqFgwGe/4rHioaDAYe01AGjhYMBsP+KrYoBw4WDAZ2m1Ll/zACGf/+B54GFf8wA3H8Bgf+CyILAfwGB/4KtggGBrH8CAgQAudLMAIbS/9zn3IXSzADW0gG4hYIB3P+Kx4oBh4WCAYS00gG1hYIB6v+KrYoBiIWCAa+m0rnSzACG0v/c59yF0swA1tIBuIWCAdz/iseKAYeFggGEtNIBtYWCAer/iq2KAYiFggGvptK50swAhtL/3OfchdLMANbSAbiFggHc/4rHigGHhYIBhLTSAbWFggHq/4qtigGIhYIBr6bSuX/MAIZ//4HngYV/zADcfwGA/4LIgsB/AYD/gq2CAYGsfwICBAC50MwAhtD/3OfchdDMANbQAciFgQHl/4rIioaBtNABxoWBAeX/iq2KAZeFgQHBptC50MwAhtD/3OfchdDMANbQAciFgQHl/4rIioaBtNABxoWBAeX/iq2KAZeFgQHBptC50MwAhtD/3OfchdDMANbQAciFgQHl/4rIioaBtNABxoWBAeX/iq2KAZeFgQHBptC5f8wAhn//geeBhX/MAN1//4LIgsF//4KtggGArH8CAgQAuc/MAIbP/9zn3IXPzADXzwGI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hcAB0debAobGicACjcPpigOFqtuJwAHuwpu5m8wAhpv/3OfchZvMAOObAcqFwAHt/4qyigGrhcAB0debAobGicACjcPpigOFqtuJwAHuwpu5m8wAhpv/3OfchZvMAOObAcqFwAHt/4qyigGrhcAB0debAobGicACjcPpigOFqtuJwAHuwpu5f8wAhn//geeBhX/MAON/hn4Bgf+CsoIBgYZ+2H+KfgKAgeqCAoF/in7CfwICBAC5m8wAhpv/3OfchZvMAOObAemFwAGj/4qyigGThcAB9NibApPuisADh62E5IoD95azisABgMObuZvMAIab/9zn3IWbzADjmwHphcABo/+KsooBk4XAAfTYmwKT7orAA4ethOSKA/eWs4rAAYDDm7mbzACGm//c59yFm8wA45sB6YXAAaP/irKKAZOFwAH02JsCk+6KwAOHrYTkigP3lrOKwAGAw5u5f8wAhn//geeBhX/MAON/hn4Bgf+CsoIBgIZ+2X+LfgKAgeWCA4GBf4p+xH8CAgQAuZvMAIab/9zn3IWbzADjmwGFhcABsf+KsYoB3obAAY3amwKEworAA5eB4d+KBIW9v9CKwALHhsSbuZvMAIab/9zn3IWbzADjmwGFhcABsf+KsYoB3obAAY3amwKEworAA5eB4d+KBIW9v9CKwALHhsSbuZvMAIab/9zn3IWbzADjmwGFhcABsf+KsYoB3obAAY3amwKEworAA5eB4d+KBIW9v9CKwALHhsSbuX/MAIZ//4HngYV/zADkf4V+AYD/grGCAYGGftx/i34Df4GB4IICgYCMfsV/AgIEALmazACGmv/c59yFmswA45oBkoXAAueD/4qwigHqhcAB4NyaApHsjMAD447i2YoE9rHOh4zAAveTxZq5mswAhpr/3OfchZrMAOOaAZKFwALng/+KsIoB6oXAAeDcmgKR7IzAA+OO4tmKBPaxzoeMwAL3k8WauZrMAIaa/9zn3IWazADjmgGShcAC54P/irCKAeqFwAHg3JoCkeyMwAPjjuLZigT2sc6HjMAC95PFmrl/zACGf/+B54GFf8wA5H+Gfv+CsYIBgIZ+3X+NfgN/gYHZggSBgYB/jX7GfwICBAC5mswAhpr/3OfchZrMAOSaAdmFvwG9/4qvigL874W/AYjemgKL2I6/A+S3/NGKBO64/PKOvwLljseauZrMAIaa/9zn3IWazADkmgHZhb8Bvf+Kr4oC/O+FvwGI3poCi9iOvwPkt/zRigTuuPzyjr8C5Y7HmrmazACGmv/c59yFmswA5JoB2YW/Ab3/iq+KAvzvhb8BiN6aAovYjr8D5Lf80YoE7rj88o6/AuWOx5q5f8wAhn//geeBhX/MAOR/hn4Bgf+Cr4IBgYZ+4H+OfgR/gIGB0YIEgYGAf49+yH8CAgQAuZrMAIaa/9zn3IWazADkmgH1hb8B0P+Kr4oBk4W/AsuW4JoCidePvwXf3qXahcaKBoHdsIa3o5C/AuOKyZq5mswAhpr/3OfchZrMAOSaAfWFvwHQ/4qvigGThb8Cy5bgmgKJ14+/Bd/epdqFxooGgd2whrejkL8C44rJmrmazACGmv/c59yFmswA5JoB9YW/AdD/iq+KAZOFvwLLluCaAonXj78F396l2oXGigaB3bCGt6OQvwLkismauX/MAIZ//4HngYV/zADkf4Z+AYD/gq+CAYGGfuJ/kH4Ef4CBgciCBYGBgYB/kX7KfwICBAC5mswAhpr/3OfchZrMAOSaAY2FvwL/g/+KrYoCg5+FvwH045oCieKRvwjH376KsdT1iLaKCYT028CnitqVn5S/Au2Ly5q5mswAhpr/3OfchZrMAOSaAY2FvwL/g/+KrYoCg5+FvwH045oCieKRvwjH376KsdT1iLaKCYT028CnitqVn5S/Au2Ly5q5mswAhpr/3OfchZrMAOSaAY2FvwL/g/+KrYoCg5+FvwH045oCieKRvwjH376KsdT1iLaKCYT028CnitqVn5S/Au2Ly5q5f8wAhn//geeBhX/MAOV/hn7/gq+CAX+GfuR/k34Cf4CEgbiChYEDgIB/lX7MfwICBAC5mswAhpr/3OfchZrMAOWaAdGFvwG3/4qtigGdhr8Bj+WaA4zwxpW/EtfHncr2kqS0wdHb4/P8goKCh4iKh4IWgPPz8+3i4tHRxsCwqZ+RhezOr4/P/5q/A9b2kM2auZrMAIaa/9zn3IWazADlmgHRhb8Bt/+KrYoBnYa/AY/lmgOM8MaVvxLXx53K9pKktMHR2+Pz/IKCgoeIioeCFoDz8/Pt4uLR0cbAsKmfkYXszq+Pz/+avwPW9pDNmrmazACGmv/c59yFmswA5ZoB0YW/Abf/iq2KAZ2GvwGP5ZoDjPDGlb8S18edyvaSpLTB0dvj8/yCgoKHiIqHghaA8/Pz7eLi0dHGwLCpn5GF7M6vj8//mr8D1vaQzZq5f8wAhn//geeBhX/MAOV/hn4Bgf+CrYIBgYZ+53+YfgR/gICAiYGUgo+BhIABf51+zn8CAgQAuZrMAIaa/9zn3IWazADlmgHzhb8BxP+KrIoCg6eFvwHu6JoElYfowOC/A9LyjNCauZrMAIaa/9zn3IWazADlmgHzhb8BxP+KrIoCg6eFvwHu6JoElYfowOC/A9LyjNCauZrMAIaa/9zn3IWazADlmgHzhb8BxP+KrIoCg6eFvwHu6JoElYfowOC/A9LyjNCauX/MAIZ//4HngYV/zADlf4Z+AYD/gq2CAX+Gfup/5H7RfwICBAC5m8wAhpv/3OfchZvMAOWbAYyFwALf/v+Kq4oBjobAAYzrmwSVh+zN2cAEx+aCkNObuZvMAIab/9zn3IWbzADlmwGMhcAC3/7/iquKAY6GwAGM65sElYfszdnABMfmgpDTm7mbzACGm//c59yFm8wA5ZsBjIXAAt/+/4qrigGOhsABjOubBJWH7M3ZwATH5oKQ05u5f8wAhn//geeBhX/MAOZ/hn4Bgf+Cq4IBgYZ+7n/dftV/AgIEALmbzACGm//c59yFm8wA5psB1IXAAaD/iqqKAviDhcAB6vCbBI+B58vRwATR6oOR15u5m8wAhpv/3OfchZvMAOabAdSFwAGg/4qqigL4g4XAAerwmwSPgefL0cAE0eqDkdebuZvMAIab/9zn3IWbzADmmwHUhcABoP+KqooC+IOFwAHq8JsEj4Hny9HABNHqg5HXm7l/zACGf/+B54GFf8wA5n+GfgGB/4KqggKBf4Z+8n/Vftl/AgIEALmbzACGm//c59yFm8wA5psB9oXAAfP/iqqKAfCGwAGN9JsEk4b028fABsjZ7oGLl9ubuZvMAIab/9zn3IWbzADmmwH2hcAB8/+KqooB8IbAAY30mwSThvTbx8AGyNnugYuX25u5m8wAhpv/3OfchZvMAOabAfaFwAHz/4qqigHwhsABjfSbBJOG9NvHwAbI2e6Bi5fbm7l/zACGf/+B54GFf8wA5n+GfgF//4KqggGAhn73f8x+3n8CAgQAuZvMAIab/9zn3IWbzADmmwGPhsAB0f+KqIoC39CFwAHx+ZsHmpOKgO7ezrfACcXP2+fzgIePl+GbuZvMAIab/9zn3IWbzADmmwGPhsAB0f+KqIoC39CFwAHx+ZsHmpOKgO7ezrfACcXP2+fzgIePl+GbuZvMAIab/9zn3IWbzADmmwGPhsAB0f+KqIoC39CFwAHx+ZsHmpOKgO7ezrfACcXP2+fzgIePl+GbuX/MAIZ//4HngYV/zADnf4Z+AYH/gqiCAYGHfv1/v37lfwICBAC5m8wAhpv/3OfchZvMAOebAeeFwAHB/4qnigKIjYbAAZD/mxObmpWOiYT99e3n39vX0MvIyMjDiMCHyBbJ0NDQ0tjY39/l5+/y9/6BhYiMkJSZ6pu5m8wAhpv/3OfchZvMAOebAeeFwAHB/4qnigKIjYbAAZD/mxObmpWOiYT99e3n39vX0MvIyMjDiMCHyBbJ0NDQ0tjY39/l5+/y9/6BhYiMkJSZ6pu5m8wAhpv/3OfchZvMAOebAeeFwAHB/4qnigKIjYbAAZD/mxObmpWOiYT99e3n39vX0MvIyMjDiMCHyBbJ0NDQ0tjY39/l5+/y9/6BhYiMkJSZ6pu5f8wAhn//geeBhX/MAOd/hn4BgP+CqIIBgIZ+/3+Hf6t+8X8CAgQAuZvMAIab/9zn3IWbzADnmwGKhcECyev/iqaKAaCGwQH3/5v/m6SbuZvMAIab/9zn3IWbzADnmwGKhcECyev/iqaKAaCGwQH3/5v/m6SbuZvMAIab/9zn3IWbzADnmwGKhcECyev/iqaKAaCGwQH4/5v/m6SbuX/MAIZ//4HngYV/zADof4Z+AYH/gqaCAYGHfv9//3+kfwICBAC5nMwAhpz/3OfchZzMAOecAprThcEB7P+KpYoC84iFwQLHlP+c/5yknLmczACGnP/c59yFnMwA55wCmtOFwQHs/4qligLziIXBAseU/5z/nKScuZzMAIac/9zn3IWczADnnAKa04XBAez/iqWKAvOIhcECx5T/nP+cpJy5f8wAhn//geeBhX/MAOh/hn4BgP+CpYICgX+Gfv9//3+lfwICBAC5nMwAhpz/3OfchZzMAOicAfmFwQLx+v+Ko4oCiauGwQGH/5z/nKWcuZzMAIac/9zn3IWczADonAH5hcEC8fr/iqOKAomrhsEBh/+c/5ylnLmczACGnP/c59yFnMwA6JwB+YXBAvH6/4qjigKJq4bBAYf/nP+cpZy5f8wAhn//geeBhX/MAOh/h34Bgf+CpIIBgIZ+/3//f6Z/AgIEALmczACGnP/c59yFnMwA6JwClMeFwgGA/4qjigGWhsIB6/+c/5ymnLmczACGnP/c59yFnMwA6JwClMeFwgGA/4qjigGWhsIB6/+c/5ymnLmczACGnP/c59yFnMwA6JwClMeFwgGA/4qjigGWhsIB6/+c/5ymnLl/zACGf/+B54GFf8wA6X+GfgGB/4KjggGBh37/f/9/pn8CAgQAuZ3MAIad/9zn3IWdzADpnQH4hcIC8vP/iqGKAtfahcICxJP/nf+dpp25ncwAhp3/3OfchZ3MAOmdAfiFwgLy8/+KoYoC19qFwgLEk/+d/52mnbmdzACGnf/c59yFncwA6Z0B+IXCAvLz/4qhigLX2oXCAsST/53/naaduX/MAIZ//4HngYV/zADpf4d+AYH/gqGCAYGHfv9//3+nfwICBAC5ncwAhp3/3OfchZ3MAOmdAZKGwwHd/4qgigKA0IbDAYX/nf+dp525ncwAhp3/3OfchZ3MAOmdAZKGwwHd/4qgigKA0IbDAYX/nf+dp525ncwAhp3/3OfchZ3MAOmdAZKGwwHd/4qgigKA0IbDAYX/nf+dp525f8wAhn//geeBhX/MAOp/hn4BgP+CoYIBf4Z+/3//f6h/AgIEALmdzACGnf/c59yFncwA6p0B+YXDAsvb/4qeigKHr4bDAfH/nf+dqJ25ncwAhp3/3OfchZ3MAOqdAfmFwwLL2/+KnooCh6+GwwHx/53/naiduZ3MAIad/9zn3IWdzADqnQH5hcMCy9v/ip6KAoevhsMB8f+d/52onbl/zACGf/+B54GFf8wA6n+HfgGB/4KfggGAh37/f/9/qH8CAgQAuZ7MAIae/9zn3IWezADqngKUxYXEApCJ/4qdigHvhsQCypb/nv+eqJ65nswAhp7/3OfchZ7MAOqeApTFhcQCkIn/ip2KAe+GxALKlv+e/56onrmezACGnv/c59yFnswA6p4ClMWFxAKQif+KnYoB74bEAsqW/57/nqieuX/MAIZ//4HngYV/zADrf4Z+AYD/gp6CAYCHfv9//3+pfwICBAC5nswAhp7/3OfchZ7MAOueAfyGxAGk/4qcigGeh8QBif+e/56pnrmezACGnv/c59yFnswA654B/IbEAaT/ipyKAZ6HxAGJ/57/nqmeuZ7MAIae/9zn3IWezADrngH8hsQBpP+KnIoBnofEAYn/nv+eqZ65f8wAhn//geeBhX/MAOt/h34Bgf+CnIIBgYd+/3//f6p/AgIEALmfzACGn//c59yFn8wA658Cl8yFxQKK8v+KmooCvNWGxQGD/5//n6qfuZ/MAIaf/9zn3IWfzADrnwKXzIXFAory/4qaigK81YbFAYP/n/+fqp+5n8wAhp//3OfchZ/MAOufApfMhcUCivL/ipqKArzVhsUBg/+f/5+qn7l/zACGf/+B54GFf8wA7H+GfgJ/gf+CmoIBgYd+/3//f6t/AgIEALmfzACGn//c59yFn8wA7J8BiobFAqKJ/4qYigLC3YbFAfb/n/+fq5+5n8wAhp//3OfchZ/MAOyfAYqGxQKiif+KmIoCwt2GxQH2/5//n6ufuZ/MAIaf/9zn3IWfzADsnwGKhsUCoon/ipiKAsLdhsUB9v+f/5+rn7l/zACGf/+B54GFf8wA7X+GfgGA/4KZggGBiH7/f/9/q38CAgQAuaDMAIag/9zn3IWgzADtoAHuhsYBlP+Kl4oCxvWGxgHo/6D/oKyguaDMAIag/9zn3IWgzADtoAHuhsYBlP+Kl4oCxvWGxgHo/6D/oKyguaDMAIag/9zn3IWgzADtoAHuhsYBlP+Kl4oCxvWGxgHo/6D/oKyguX/MAIZ//4HngYV/zADtf4d+AYH/gpeCAYGIfv9//3+sfwICBAC5oMwAhqD/3OfchaDMAO2gApfJhccC1s7/ipWKAsr2hscCzZn/oP+grKC5oMwAhqD/3OfchaDMAO2gApfJhccC1s7/ipWKAsr2hscCzZn/oP+grKC5oMwAhqD/3OfchaDMAO2gApfJhccC1s7/ipWKAsr2hscCzZn/oP+grKC5f8wAhn//geeBhX/MAO5/h34Bgf+ClYIBgYh+/3//f61/AgIEALmhzACGof/c59yFocwA7qEBiYbHAq/x/4qTigKx34bHAsiL/6H/oa2huaHMAIah/9zn3IWhzADuoQGJhscCr/H/ipOKArHfhscCyIv/of+hraG5ocwAhqH/3OfchaHMAO6hAYmGxwKv8f+Kk4oCsd+GxwLIi/+h/6Gtobl/zACGf/+B54GFf8wA73+GfgJ/gf+Ck4IBgYh+/3//f65/AgIEALmhzACGof/c59yFocwA76EB+IbIAoGD/4qRigGViMgBi/+h/6GuobmhzACGof/c59yFocwA76EB+IbIAoGD/4qRigGViMgBi/+h/6GuobmhzACGof/c59yFocwA76EB+IbIAoGD/4qRigGViMgBi/+h/6Guobl/zACGf/+B54GFf8wA73+HfgGA/4KSggGBiH7/f/9/r38CAgQAuaLMAIai/9zn3IWizADvogKa0IbJAqOF/4qOigKH9IjJAYv/ov+ir6K5oswAhqL/3OfchaLMAO+iAprQhskCo4X/io6KAof0iMkBi/+i/6KvormizACGov/c59yFoswA76ICmtCGyQKjhf+KjooCh/SIyQGL/6L/oq+iuX/MAIZ//4HngYV/zADwf4d+AYD/gpCCAYCIfv9//3+wfwICBAC5o8wAhqP/3OfchaPMAPCjAY2HygLCh/+KjIoC952IygGM/6P/o7CjuaPMAIaj/9zn3IWjzADwowGNh8oCwof/ioyKAvediMoBjP+j/6Owo7mjzACGo//c59yFo8wA8KMBjYfKAsKH/4qMigL3nYjKAYz/o/+jsKO5f8wAhn//geeBhX/MAPF/h34BgP+CjYICgYCIfv9//3+xfwICBAC5o8wAhqP/3OfchaPMAPGjAYmHywLIhv+KiooCzrCHywLRjf+j/6Oxo7mjzACGo//c59yFo8wA8aMBiYfLAsiG/4qKigLOsIfLAtGN/6P/o7GjuaPMAIaj/9zn3IWjzADxowGJh8sCyIb/ioqKAs6wh8sC0Y3/o/+jsaO5f8wAhn//geeBhX/MAPJ/h34BgP+Ci4ICgX+Ifv9//3+yfwICBAC5pMwAhqT/3OfchaTMAPKkAYWHywK1hP+Kh4oDh5Lbh8sC4Jz/pP+ksqS5pMwAhqT/3OfchaTMAPKkAYWHywK1hP+Kh4oDh5Lbh8sC4Jz/pP+ksqS5pMwAhqT/3OfchaTMAPKkAYWHywK1hP+Kh4oDh5Lbh8sC4Jz/pP+ksqS5f8wAhn//geeBhX/MAPN/h34BgP+CiYIBgYl+/3//f7N/AgIEALmlzACGpf/c59yFpcwA86UBgYfMApH5/4qFigLkj4jMAu6k/6X/pbOluaXMAIal/9zn3IWlzADzpQGBh8wCkfn/ioWKAuSPiMwC7qT/pf+ls6W5pcwAhqX/3OfchaXMAPOlAYGHzAKR+f+KhYoC5I+IzALupP+l/6Wzpbl/zACGf/+B54GFf8wA9H+HfgKAgf+ChYICgYCJfv9//3+0fwICBAC5pswAhqb/3OfchabMAPSmAfyIzQHe/4oFioqHlO2IzQGC/6b/prWmuabMAIam/9zn3IWmzAD0pgH8iM0B3v+KBYqKh5TtiM0Bgv+m/6a1prmmzACGpv/c59yFpswA9KYB/IjNAd7/igWKioeU7YjNAYL/pv+mtaa5f8wAhn//geeBhX/MAPR/iH4Cf4H/ggSCgoKBiX7/f/9/tn8CAgQAuabMAIam/9zn3IWmzAD1pgH8h84Cg6v/igLOhInOAYz/pv+mtqa5pswAhqb/3OfchabMAPWmAfyHzgKDq/+KAs6Eic4BjP+m/6a2prmmzACGpv/c59yFpswA9aYB/IfOAoOr/4oCzoSJzgGM/6b/pramuX/MAIZ//4HngYV/zAD1f4h+An+B/4ICgYCJfv9//3+3fwICBAC5p8wAhqf/3OfchafMAPanAYGIzwLB+vuKAuvBic8C1pH/p/+nt6e5p8wAhqf/3OfchafMAPanAYGIzwLB+vuKAuvBic8C1pH/p/+nt6e5p8wAhqf/3OfchafMAPanAYGIzwLB+vuKAuvBic8C1pH/p/+nt6e5f8wAhn//geeBhX/MAPd/iH4CgIH7ggKBgIp+/3//f7h/AgIEALmozACGqP/c59yFqMwA96gBhojQAqu++IoDgILwidACgqD/qP+ouKi5qMwAhqj/3OfchajMAPeoAYaI0AKrvviKA4CC8InQAoKg/6j/qLiouajMAIao/9zn3IWozAD3qAGGiNACq774igOAgvCJ0AKCoP+o/6i4qLl/zACGf/+B54GFf8wA+H+IfgJ/gfmCAYGKfv9//3+6fwICBAC5qcwAhqn/3OfchanMAPipAYyJ0QLI8fSKA4CPmInRAteS/6n/qbqpuanMAIap/9zn3IWpzAD4qQGMidECyPH0igOAj5iJ0QLXkv+p/6m6qbmpzACGqf/c59yFqcwA+KkBjInRAsjx9IoDgI+YidEC15L/qf+puqm5f8wAhn//geeBhX/MAPl/iX4CgIH1ggKBf4p+/3//f7t/AgIEALmqzACGqv/c59yFqswA+aoCkteI0wOMjoLwigP2hZSK0wKDof+q/6q7qrmqzACGqv/c59yFqswA+aoCkteI0wOMjoLwigP2hZSK0wKDof+q/6q7qrmqzACGqv/c59yFqswA+aoCkteI0wOMjoLwigP2hZSK0wKDof+q/6q7qrl/zACGf/+B54GFf8wA+n+JfgJ/gfGCA4GBf4p+/3//f71/AgIEALmrzACGq//c59yFq8wA+qsCofuJ1AOwnYTrigSJz9LritQC6Zn/q/+rvau5q8wAhqv/3OfchavMAPqrAqH7idQDsJ2E64oEic/S64rUAumZ/6v/q72ruavMAIar/9zn3IWrzAD6qwKh+4nUA7CdhOuKBInP0uuK1ALpmf+r/6u9q7l/zACGf/+B54GFf8wA+3+KfgJ/ge2CAoGAjH7/f/9/vn8CAgQAuazMAIas/9zn3IWszAD8rAGQitUDsZb954oDgKHwi9UD25Gr/6z/rL6suazMAIas/9zn3IWszAD8rAGQitUDsZb954oDgKHwi9UD25Gr/6z/rL6suazMAIas/9zn3IWszAD8rAGQitUDsZb954oDgKHwi9UD25Gr/6z/rL6suX/MAIZ//4HngYV/zAD9f4p+A3+BgeiCAoF/jH7/f/9/wH8CAgQAua3MAIat/9zn3IWtzAD9rQKg9IrWA4bw3uKKBIS7zIaM1gKJpP+t/63ArbmtzACGrf/c59yFrcwA/a0CoPSK1gOG8N7iigSEu8yGjNYCiaT/rf+twK25rcwAhq3/3Ofcha3MAP2tAqD0itYDhvDe4ooEhLvMhozWAomk/63/rcCtuX/MAIZ//4HngYV/zAD+f4t+A3+AgeOCA4GAf4x+/3//f8J/AgIEALmuzACGrv/c59yFrswA/64CktuL1wOOpfvcigSFwNaPjdcCh6D/rv+uwq65rswAhq7/3Ofcha7MAP+uApLbi9cDjqX73IoEhcDWj43XAoeg/67/rsKuua7MAIau/9zn3IWuzAD/rgKS24vXA46l+9yKBIXA1o+N1wKHoP+u/67Crrl/zACGf/+B54GFf8wA/38Bf4x+A4CBgd2CA4GAf41+/3//f8R/AgIEALmvzACGr//c59yFr8wA/68Dr6WIjNkE8Kuj8NaKBOmit4SO2QKJof+v/6/Er7mvzACGr//c59yFr8wA/68Dr6WIjNkE8Kuj8NaKBOmit4SO2QKJof+v/6/Er7mvzACGr//c59yFr8wA/68Dr6WIjNkE8Kuj8NaKBOmit4SO2QKJof+v/6/Er7l/zACGf/+B54GFf8wA/3+Df41+A4CBgdaCBIGBgH+Ofv9//3/GfwICBAC5sMwAhrD/3OfchbDMAP+wBbCwsKCFjtoEiJDWh86KBO+48teP2gPvi6T/sP+wxrC5sMwAhrD/3OfchbDMAP+wBbCwsKCFjtoEiJDWh86KBO+48teP2gPvi6T/sP+wxrC5sMwAhrD/3OfchbDMAP+wBbCwsKCFjtoEiJDWh86KBO+48teP2gPvi6T/sP+wxrC5f8wAhn//geeBhX/MAP9/hX+OfgOAgYHPggSBgYB/kH7/f/9/yH8CAgQAubHMAIax/9zn3IWxzAD/sYWxAqCIj9sFlbqW0IPFigWC1pzJtJHbA4SesP+x/7HIsbmxzACGsf/c59yFscwA/7GFsQKgiI/bBZW6ltCDxYoFgtacybSR2wOEnrD/sf+xyLG5scwAhrH/3OfchbHMAP+xhbECoIiP2wWVupbQg8WKBYLWnMm0kdsDhJ6w/7H/scixuX/MAIZ//4HngYV/zAD/f4d/j34Ef4CBgceCBIGBgH+Rfv9//3/LfwICBAC5sswAhrL/3OfchbLMAP+yh7IDpIzqkN0G5YHloc32uooGh+a8kMjkk90D9Iyk/7L/ssuyubLMAIay/9zn3IWyzAD/soeyA6SM6pDdBuWB5aHN9rqKBofmvJDI5JPdA/SMpP+y/7LLsrmyzACGsv/c59yFsswA/7KHsgOkjOqQ3QblgeWhzfa6igaH5ryQyOST3QP0jKT/sv+yy7K5f8wAhn//geeBhX/MAP9/iX+SfgWAgIGBgbuCBYGBgYB/lH7/f/9/zX8CAgQAubPMAIaz/9zn3IWzzAD/s4mzA66eg5TeCKKT1oytzvCGqooJhvbauZnxsODuld4D8o2j/7P/s86zubPMAIaz/9zn3IWzzAD/s4mzA66eg5TeCKKT1oytzvCGqooJhvbauZnxsODuld4D8o2j/7P/s86zubPMAIaz/9zn3IWzzAD/s4mzA66eg5TeCKKT1oytzvCGqooJhvbauZnxsODuld4D8o2j/7P/s86zuX/MAIZ//4HngYV/zAD/f4x/lH4Df4CAhIGsgoSBA4CAf5d+/3//f9B/AgIEALm0zACGtP/c59yFtMwA/7SMtAOnj/6Z3xOuirfgg5eltMTS3eP09PuCgoKEhIoTg4KCgvn08OPUyL2xoZaC1KuCopvfA/2Oo/+0/7TRtLm0zACGtP/c59yFtMwA/7SMtAOnj/6Z3xOuirfgg5eltMTS3eP09PuCgoKEhIoTg4KCgvn08OPUyL2xoZaC1KuCopvfA/2Oo/+0/7TRtLm0zACGtP/c59yFtMwA/7SMtAOnj/6Z3xOuirfgg5eltMTS3eP09PuCgoKEhIoTg4KCgvn08OPUyL2xoZaC1KuCopvfA/2Oo/+0/7TRtLl/zACGf/+B54GFf8wA/3+Of5p+BH+AgICLgYyCi4EEgICAf5x+/3//f9N/AgIEALm1zACGtf/c59yFtcwA/7WPtQOrm4XX4QTuiZ2t/7X/tdS1ubXMAIa1/9zn3IW1zAD/tY+1A6ubhdfhBO6Jna3/tf+11LW5tcwAhrX/3OfchbXMAP+1j7UDq5uF1+EE7omdrf+1/7XUtbl/zACGf/+B54GFf8wA/3+Sf9h+/3//f9d/AgIEALm3zACGt//c59yFt8wA/7eStwS0o4/+z+IE94ubrP+3/7fYt7m3zACGt//c59yFt8wA/7eStwS0o4/+z+IE94ubrP+3/7fYt7m3zACGt//c59yFt8wA/7eStwS0o4/+z+IE94ubrP+3/7fYt7l/zACGf/+B54GFf8wA/3+Vf9F+/3//f9t/AgIEALm4zACGuP/c59yFuMwA/7iWuAS1pZKCxuQF7IOTo7P/uP+43Li5uMwAhrj/3OfchbjMAP+4lrgEtaWSgsbkBeyDk6Oz/7j/uNy4ubjMAIa4/9zn3IW4zAD/uJa4BLWlkoLG5AXsg5Ojs/+4/7jcuLl/zACGf/+B54GFf8wA/3+af8d+/3//f+B/AgIEALm5zACGuf/c59yFucwA/7mbuQWuoJOG9rvmBYCLmKSx/7n/ueG5ubnMAIa5/9zn3IW5zAD/uZu5Ba6gk4b2u+YFgIuYpLH/uf+54bm5ucwAhrn/3OfchbnMAP+5m7kFrqCThva75gWAi5iksf+5/7nhubl/zACGf/+B54GFf8wA/3+ff7x+/3//f+Z/AgIEALm6zACGuv/c59yFuswA/7qgugi2raSakYf87KrnCOz4hI2WoKmy/7r/uue6ubrMAIa6/9zn3IW6zAD/uqC6CLatpJqRh/zsqucI7PiEjZagqbL/uv+657q5uswAhrr/3OfchbrMAP+6oLoItq2kmpGH/Oyq5wjs+ISNlqCpsv+6/7rnurl/zACGf/+B54GFf8wA/3+mf65+/3//f+1/AgIEALm8zACGvP/c59yFvMwA/7yovBO3sKmjnpiUkIuHhIL7+/fy8vLvhOkT8PLy8vj7/YKGio2QlZiepauxuP+8/7zvvLm8zACGvP/c59yFvMwA/7yovBO3sKmjnpiUkIuHhIL7+/fy8vLvhOkT8PLy8vj7/YKGio2QlZiepauxuP+8/7zvvLm8zACGvP/c59yFvMwA/7yovBO3sKmjnpiUkIuHhIL7+/fy8vLvhOkT8PLy8vj7/YKGio2QlZiepauxuP+8/7zvvLl/zACGf/+B54GFf8wA/3+0f5J+/3//f/t/AgIEALm9zACGvf/c59yFvcwA/73/vf+9/73Cvbm9zACGvf/c59yFvcwA/73/vf+9/73Cvbm9zACGvf/c59yFvcwA/73/vf+9/73Cvbl/zACGf/+B54GFf8wA/3//f/9//3/CfwICBAC5vswAhr7/3Ofchb7MAP++/77/vv++wr65vswAhr7/3Ofchb7MAP++/77/vv++wr65vswAhr7/3Ofchb7MAP++/77/vv++wr65f8wAhn//geeBhX/MAP9//3//f/9/wn8CAgQAucDMAIbA/9zn3IXAzAD/wP/A/8D/wMLAucDMAIbA/9zn3IXAzAD/wP/A/8D/wMLAucDMAIbA/9zn3IXAzAD/wP/A/8D/wMLAuX/MAIZ//4HngYV/zAD/f/9//3//f8J/AgIEALnBzACGwf/c59yFwcwA/8H/wf/B/8HCwbnBzACGwf/c59yFwcwA/8H/wf/B/8HCwbnBzACGwf/c59yFwcwA/8H/wf/B/8HCwbl/zACGf/+B54GFf8wA/3//f/9//3/CfwICBAC5wswAhsL/3OfchcLMAP/C/8L/wv/CwsK5wswAhsL/3OfchcLMAP/C/8L/wv/CwsK5wswAhsL/3OfchcLMAP/C/8L/wv/CwsK5f8wAhn//geeBhX/MAP9//3//f/9/wn8CAgQAucTMAIbE/9zn3IXEzAD/xP/E/8T/xMLEucTMAIbE/9zn3IXEzAD/xP/E/8T/xMLEucTMAIbE/9zn3IXEzAD/xP/E/8T/xMLEuX/MAIZ//4HngYV/zAD/f/9//3//f8J/AgIEALnFzACGxf/c59yFxcwA/8X/xf/F/8XCxbnFzACGxf/c59yFxcwA/8X/xf/F/8XCxbnFzACGxf/c59yFxcwA/8X/xf/F/8XCxbl/zACGf/+B54GFf8wA/3//f/9//3/CfwICBAC5x8wAhsf/3OfchcfMAP/H/8f/x//Hwse5x8wAhsf/3OfchcfMAP/H/8f/x//Hwse5x8wAhsf/3OfchcfMAP/H/8f/x//Hwse5f8wAhn//geeBhX/MAP9//3//f/9/wn8CAgQAucjMAIbI/9zn3IXIzAD/yP/I/8j/yMLIucjMAIbI/9zn3IXIzAD/yP/I/8j/yMLIucjMAIbI/9zn3IXIzAD/yP/I/8j/yMLIuX/MAIZ//4HngYV/zAD/f/9//3//f8J/AgIEALnKzACGyv/c59yFyswA/8r/yv/K/8rCyrnKzACGyv/c59yFyswA/8r/yv/K/8rCyrnKzACGyv/c59yFyswA/8r/yv/K/8rCyrl/zACGf/+B54GFf8wA/3//f/9//3/CfwICBAC5y8wAhsv/3OfchcvMAP/L/8v/y//Lwsu5y8wAhsv/3OfchcvMAP/L/8v/y//Lwsu5y8wAhsv/3OfchcvMAP/L/8v/y//Lwsu5f8wAhn//geeBhX/MAP9//3//f/9/wn8CAgQAuc3MAIbN/9zn3IXNzAD/zf/N/83/zcLNuc3MAIbN/9zn3IXNzAD/zf/N/83/zcLNuc3MAIbN/9zn3IXNzAD/zf/N/83/zcLNuX/MAIZ//4HngYV/zAD/f/9//3//f8J/AgIEALnPzACGz//c59yFz8wA/8//z//P/8/Cz7nPzACGz//c59yFz8wA/8//z//P/8/Cz7nPzACGz//c59yFz8wA/8//z//P/8/Cz7l/zACGf/+B54GFf8wA/3//f/9//3/CfwICBAC50MwAhtD/3OfchdDMAP/Q/9D/0P/QwtC50MwAhtD/3OfchdDMAP/Q/9D/0P/QwtC50MwAhtD/3OfchdDMAP/Q/9D/0P/QwtC5f8wAhn//geeBhX/MAP9//3//f/9/wn8CAgQAudLMAIbS/9zn3IXSzAD/0v/S/9L/0sLSudLMAIbS/9zn3IXSzAD/0v/S/9L/0sLSudLMAIbS/9zn3IXSzAD/0v/S/9L/0sLSuX/MAIZ//4HngYV/zAD/f/9//3//f8J/AgIEALnUzACG1P/c59yF1MwA/9T/1P/U/9TC1LnUzACG1P/c59yF1MwA/9T/1P/U/9TC1LnUzACG1P/c59yF1MwA/9T/1P/U/9TC1Ll/zACGf/+B54GFf8wA/3//f/9//3/CfwICBAC51cwAhtX/3OfchdXMAP/V/9X/1f/VwtW51cwAhtX/3OfchdXMAP/V/9X/1f/VwtW51cwAhtX/3OfchdXMAP/V/9X/1f/VwtW5f8wAhn//geeBhX/MAP9//3//f/9/wn8CAgQAudfMAIbX/9zn3IXXzAD/1//X/9f/18LXudfMAIbX/9zn3IXXzAD/1//X/9f/18LXudfMAIbX/9zn3IXXzAD/1//X/9f/18LXuX/MAIZ//4HngYV/zAD/f/9//3//f8J/AgIEALnZzACG2f/c59yF2cwA/9n/2f/Z/9nC2bnZzACG2f/c59yF2cwA/9n/2f/Z/9nC2bnZzACG2f/c59yF2cwA/9n/2f/Z/9nC2bl/zACGf/+B54GFf8wA/3//f/9//3/CfwICBAC528wAhtv/3OfchdvMAP/b/9v/2//bwtu528wAhtv/3OfchdvMAP/b/9v/2//bwtu528wAhtv/3OfchdvMAP/b/9v/2//bwtu5f8wAhn//geeBhX/MAP9//3//f/9/wn8CAgQAud3MAIbd/9zn3IXdzAD/3f/d/93/3cLdud3MAIbd/9zn3IXdzAD/3f/d/93/3cLdud3MAIbd/9zn3IXdzAD/3f/d/93/3cLduX/MAIZ//4HngYV/zAD/f/9//3//f8J/AgIEALnezACG3v/c59yF3swA/97/3v/e/97C3rnezACG3v/c59yF3swA/97/3v/e/97C3rnezACG3v/c59yF3swA/97/3v/e/97C3rl/zACGf/+B54GFf8wA/3//f/9//3/CfwICBAC54MwAhuD/3OfcheDMAP/g/+D/4P/gwuC54MwAhuD/3OfcheDMAP/g/+D/4P/gwuC54MwAhuD/3OfcheDMAP/g/+D/4P/gwuC5f8wAhn//geeBhX/MAP9//3//f/9/wn8CAgQAueLMAIbi/9zn3IXizAD/4v/i/+L/4sLiueLMAIbi/9zn3IXizAD/4v/i/+L/4sLiueLMAIbi/9zn3IXizAD/4v/i/+L/4sLiuX/MAIZ//4HngYV/zAD/f/9//3//f8J/AgIEALnkzACG5P/c59yF5MwA/+T/5P/k/+TC5LnkzACG5P/c59yF5MwA/+T/5P/k/+TC5LnkzACG5P/c59yF5MwA/+T/5P/k/+TC5Ll/zACGf/+B54GFf8wA/3//f/9//3/CfwICBAC55swAhub/3OfchebMAP/m/+b/5v/mwua55swAhub/3OfchebMAP/m/+b/5v/mwua55swAhub/3OfchebMAP/m/+b/5v/mwua5f8wAhn//geeBhX/MAP9//3//f/9/wn8CAgQAuejMAIbo/9zn3IXozAD/6P/o/+j/6MLouejMAIbo/9zn3IXozAD/6P/o/+j/6MLouejMAIbo/9zn3IXozAD/6P/o/+j/6MLouX/MAIZ//4HngYV/zAD/f/9//3//f8J/AgIEALnqzACG6v/c59yF6swA/+r/6v/q/+rC6rnqzACG6v/c59yF6swA/+r/6v/q/+rC6rnqzACG6v/c59yF6swA/+r/6v/q/+rC6rl/zACGf/+B54GFf8wA/3//f/9//3/CfwICBAC57MwAhuz/3OfchezMAP/s/+z/7P/swuy57MwAhuz/3OfchezMAP/s/+z/7P/swuy57MwAhuz/3OfchezMAP/s/+z/7P/swuy5f8wAhn//geeBhX/MAP9//3//f/9/wn8CAgQAue7MAIbu/9zn3IXuzAD/7v/u/+7/7sLuue7MAIbu/9zn3IXuzAD/7v/u/+7/7sLuue7MAIbu/9zn3IXuzAD/7v/u/+7/7sLuuX/MAIZ//4HngYV/zAD/f/9//3//f8J/AgIEALnwzACG8P/c59yF8MwA//D/8P/w//DC8LnwzACG8P/c59yF8MwA//D/8P/w//DC8LnwzACG8P/c59yF8MwA//D/8P/w//DC8Ll/zACGf/+B54GFf8wA/3//f/9//3/CfwICBAC58swAhvL/3OfchfLMAP/y//L/8v/ywvK58swAhvL/3OfchfLMAP/y//L/8v/ywvK58swAhvL/3OfchfLMAP/y//L/8v/ywvK5f8wAhn//geeBhX/MAP9//3//f/9/wn8CAgQAufTMAIb0/9zn3IX0zAD/9P/0//T/9ML0ufTMAIb0/9zn3IX0zAD/9P/0//T/9ML0ufTMAIb0/9zn3IX0zAD/9P/0//T/9ML0uX/MAIZ//4HngYV/zAD/f/9//3//f8J/AgIEALn2zACG9v/c59yF9swA//b/9v/2//bC9rn2zACG9v/c59yF9swA//b/9v/2//bC9rn2zACG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p8en/6f/p/+n/6f/p5ynAaKJAAG+/5qOmgGGiQABrf+nx6f/gP+A/4D/gP+AnIABf4kAAYH/go6CAYGJAAF//4DHgAICBAD/qP+o/6j/qP+om6gCmL6IAALyl/+ajpoCioiIAALTmP+oxqj/qP+o/6j/qP+om6gCmL6IAALyl/+ajpoCioiIAALTmP+oxqj/qP+o/6j/qP+om6gCmL6IAALyl/+ajpoCioiIAALTmP+oxqj/gP+A/4D/gP+AnIABe4gAAX7/gpCCAX2IAAF7/4DHgAICBAD/qv+q/6r/qv+qm6oBqIkAAaf/mpCaAf+JAAGh/6rGqv+q/6r/qv+q/6qbqgGoiQABp/+akJoB/4kAAaH/qsaq/6r/qv+q/6r/qpuqAaiJAAGn/5qQmgH/iQABof+qxqr/gP+A/4D/gP+Am4ABf4kAAYH/gpCCAYCJAAF//4DGgAICBAD/q/+r/6v/q/+rmqsCmqyIAAKbkf+akJoCh+mIAAKBlf+rxav/q/+r/6v/q/+rmqsCmqyIAAKbkf+akJoCh+mIAAKBlf+rxav/q/+r/6v/q/+rmqsCmqyIAAKbkf+akJoCh+mIAAKBlf+rxav/gP+A/4D/gP+Am4ABe4gAAX7/gpKCAXyIAAF6/4DGgAICBAD/rP+s/6z/rP+smqwBp4kAAYz/mpKaAYOJAAGD/6zFrP+s/6z/rP+s/6yarAGniQABjP+akpoBg4kAAYP/rMWs/6z/rP+s/6z/rJqsAaeJAAGM/5qSmgGDiQABg/+sxaz/gP+A/4D/gP+AmoABf4kAAYH/gpKCAYGJAAF//4DFgAICBAD/rv+u/67/rv+uma4CnJiIAAKujP+akpoCi8KJAAGL/67Erv+u/67/rv+u/66ZrgKcmIgAAq6M/5qSmgKLwokAAYv/rsSu/67/rv+u/67/rpmuApyYiAACroz/mpKaAovCiQABi/+uxK7/gP+A/4D/gP+AmoABe4gAAX3/gpSCAX2JAP+AxYACAgQA/6//r/+v/6//r5mvAaeJAAGK/5qUmgGQiQABu/+vxK//r/+v/6//r/+vma8Bp4kAAYr/mpSaAZCJAAG7/6/Er/+v/6//r/+v/6+ZrwGniQABiv+alJoBkIkAAbv/r8Sv/4D/gP+A/4D/gJmAAX+JAAGB/4KUggGBiQABfv+AxIACAgQA/7D/sP+w/7D/sJiwAp2FiAACwoz/mpSaAo+uiQAB+v+ww7D/sP+w/7D/sP+wmLACnYWIAALCjP+alJoCj66JAAH6/7DDsP+w/7D/sP+w/7CYsAKdhYgAAsKM/5qUmgKProkAAfr/sMOw/4D/gP+A/4D/gJmAAXuIAAF9/4KWggF+iQABf/+Aw4ACAgQA/7H/sf+x/7H/sZixAaSJAAGM/5qWmgGtiQACp6b/scKx/7H/sf+x/7H/sZixAaSJAAGM/5qWmgGtiQACp6b/scKx/7H/sf+x/7H/sZixAaSJAAGM/5qWmgGtiQACp6b/scKx/4D/gP+A/4D/gJiAAX+JAAGB/4KWggGBiQABff+Aw4ACAgQA/7P/s/+z/7P/s5ezAZyJAALVjf+alpoCl66JAAHU/7PCs/+z/7P/s/+z/7OXswGciQAC1Y3/mpaaApeuiQAB1P+zwrP/s/+z/7P/s/+zl7MBnIkAAtWN/5qWmgKXrokAAdT/s8Kz/4D/gP+A/4D/gJiAiQABff+CmIIBf4kAAX//gMKAAgIEAP+0/7T/tP+0/7SXtAGQiQABj/+amJoB0IkAArWk/7TBtP+0/7T/tP+0/7SXtAGQiQABj/+amJoB0IkAArWk/7TBtP+0/7T/tP+0/7SXtAGQiQABj/+amJoB0IkAArWk/7TBtP+A/4D/gP+A/4CXgAF/iQABgf+CmIIBgYkAAXz/gMKAAgIEAP+1/7X/tf+1/7WWtQGXiQAC6Y7/mpmaAY+JAAGu/7XBtf+1/7X/tf+1/7WWtQGXiQAC6Y7/mpmaAY+JAAGu/7XBtf+1/7X/tf+1/7WWtQGXiQAC6Y7/mpmaAY+JAAGu/7XBtf+A/4D/gP+A/4CXgIkAAX3/gpqCAYCJAAF//4DBgAICBAD/t/+3/7f/t/+3lrcB8YkAAZT/mpqaAvSbiQABnf+3wLf/t/+3/7f/t/+3lrcB8YkAAZT/mpqaAvSbiQABnf+3wLf/t/+3/7f/t/+3lrcB8YkAAZT/mpqaAvSbiQABnf+3wLf/gP+A/4D/gP+AloABfokAAYH/gpqCAoF6iQD/gMGAAgIEAP+4/7j/uP+4/7iVuAGQiQACrpH/mpuaAdiJAAH2/7jAuP+4/7j/uP+4/7iVuAGQiQACrpH/mpuaAdiJAAH2/7jAuP+4/7j/uP+4/7iVuAGQiQACrpH/mpuaAdiJAAH2/7jAuP+A/4D/gP+A/4CWgIkAAX7/gpyCAYCJAAF+/4DAgAICBAD/uv+6/7r/uv+6lboByYkAAaf/mpyaAoibiQABhP+6v7r/uv+6/7r/uv+6lboByYkAAaf/mpyaAoibiQABhP+6v7r/uv+6/7r/uv+6lboByYkAAaf/mpyaAoibiQABhP+6v7r/gP+A/4D/gP+AlYABfokAAYH/gp2CAX2JAP+AwIACAgQA/7v/u/+7/7v/u5S7AYiJAAKIlf+anZoBj4kAArCv/7u+u/+7/7v/u/+7/7uUuwGIiQACiJX/mp2aAY+JAAKwr/+7vrv/u/+7/7v/u/+7lLsBiIkAAoiV/5qdmgGPiQACsK//u767/4D/gP+A/4D/gJWAiQABf/+CnoIBgYkAAX3/gL+AAgIEAP+8/7z/vP+8/7yUvAGOiQABvf+anpoCkcyJAAHd/7y+vP+8/7z/vP+8/7yUvAGOiQABvf+anpoCkcyJAAHd/7y+vP+8/7z/vP+8/7yUvAGOiQABvf+anpoCkcyJAAHd/7y+vP+A/4D/gP+A/4CUgAF+iQABgf+Cn4IBfokAAX//gL6AAgIEAP+9/73/vf+9/72TvQHviQACwpj/mp+aAbyJAAKOqf+9vb3/vf+9/73/vf+9k70B74kAAsKY/5qfmgG8iQACjqn/vb29/73/vf+9/73/vZO9Ae+JAALCmP+an5oBvIkAAo+p/729vf+A/4D/gP+A/4CTgAF/iQABf/+CoIIBgYkAAXz/gL6AAgIEAP+//7//v/+//7+SvwKwj4kAAc//mqCaApnpiQABoP+/vb//v/+//7//v/+/kr8CsI+JAAHP/5qgmgKZ6YkAAaD/v72//7//v/+//7//v5K/ArCPiQABz/+aoJoCmemJAAGg/7+9v/+A/4D/gP+A/4CTgAF9iQABgf+CoYIBf4kAAX//gL2AAgIEAP/A/8D/wP/A/8CSwAHHiQABg/+aopoC65uJAAGZ/8C8wP/A/8D/wP/A/8CSwAHHiQABg/+aopoC65uJAAGZ/8C8wP/A/8D/wP/A/8CSwAHHiQABg/+aopoC65uJAAGZ/8C8wP+A/4D/gP+A/4CSgAF/iQABgP+CooICgXqJAP+AvYACAgQA/8H/wf/B/8H/wZHBAquRiQAB6f+ao5oB2okAAbb/wbzB/8H/wf/B/8H/wZHBAquRiQAB6f+ao5oB2okAAbb/wbzB/8H/wf/B/8H/wZHBAquRiQAB6f+ao5oB2okAAbb/wbzB/4D/gP+A/4D/gJKAAXuJAAGB/4KjggGAiQABfv+AvIACAgQA/8P/w//D/8P/w5HDAZ+JAAG//5qkmgKK6YkAAfb/w7vD/8P/w//D/8P/w5HDAZ+JAAG//5qkmgKK6YkAAfb/w7vD/8P/w//D/8P/w5HDAZ+JAAG//5qkmgKK6YkAAfb/w7vD/4D/gP+A/4D/gJGAAX+JAAGA/4KlggF9iQABf/+Au4ACAgQA/8T/xP/E/8T/xJDEAaCJAAKbg/+apZoBoYkAAt2y/8S6xP/E/8T/xP/E/8SQxAGgiQACm4P/mqWaAaGJAALdsv/EusT/xP/E/8T/xP/EkMQBoIkAApuD/5qlmgGhiQAC3bL/xLrE/4D/gP+A/4D/gJGAiQABfP+CpoIBgYkAAXz/gLuAAgIEAP/F/8X/xf/F/8WQxQHliQABg/+appoClrOJAAGq/8W6xf/F/8X/xf/F/8WQxQHliQABg/+appoClrOJAAGq/8W6xf/F/8X/xf/F/8WQxQHliQABg/+appoClrOJAAGq/8W6xf+A/4D/gP+A/4CQgAF+iQABgf+Cp4IBf4kAAX//gLqAAgIEAP/H/8f/x//H/8ePxwGMiQACkY7/mqeaAdqKAAGg/8e5xwTHx8fGlMcBxo7HAcaUxwHGlccBxoXHAcanxwHGkMcBxoTHAcaMxwXGx8fHxoTHAcaJxwHGnccBxqzHAcaPxwHGh8cBxqTHAcaNx4LGjccBxo/HAcaExwHGhscBxofHBMbGx8aPxwHGlscBxrbHAcbIxwHGk8cBxpfHAcaMxwHGl8cBxo7HAsaMiQACkY7/mqeaAdqKAAGghccBxobHBcbHx8fGnMcBxonHAcaSxwHGtMcBxoTHgsaJxwHGpccDxsfH/8f/x//H/8f/x4/HAYyJAAKRjv+ap5oB2ooAAaD/x7nH/4D/gP+A/4D/gJCAiQABfv+CqIIBgYoA/4C6gAICBAD/yP/I/8j/yP/IjsgCuraJAAGl/5qpmgG/iQABvP/Iucj/yP/I/8j/yP/IjsgCuraJAAGl/5qpmgG/iQABvP/Iucj/yP/I/8j/yP/IjsgCuraJAAGl/5qpmgG/iQABvP/Iucj/gP+A/4D/gP+Aj4ABfYkAAYH/gqmCAYCJAAF+/4C5gAICBAD/yf/J/8n/yf/JjskB44kAgpb/mqmaAoabiQAB/v/JuMn/yf/J/8n/yf/JjskB44kAgpb/mqmaAoabiQAB/v/JuMn/yf/J/8n/yf/JjskB44kAgpb/mqmaAoabiQAB/v/JuMn/gP+A/4D/gP+AjoABf4kAAX//gquCAX2JAAF//4C4gAICBAD/yv/K/8r/yv/KjcoCs+WJAAHJ/5qrmgGdiQACpbT/yrfK/8r/yv/K/8r/yo3KArPliQAByf+aq5oBnYkAAqW0/8q3yv/K/8r/yv/K/8qNygKz5YkAAcn/mquaAZ2JAAKltP/Kt8r/gP+A/4D/gP+AjoABe4kAAYH/gquCAYGJAAF8/4C4gAICBAD/zP/M/8z/zP/MjcwBqIkAAYz/mqyaApaliQABlv/Mt8z/zP/M/8z/zP/MjcwBqIkAAYz/mqyaApaliQABlv/Mt8z/zP/M/8z/zP/MjcwBqIkAAYz/mqyaApaliQABlv/Mt8z/gP+A/4D/gP+AjYABf4kAAYD/gq2CAX+JAAF//4C3gAICBAD/zf/N/83/zf/NjM0BpIkAApv2/5qtmgHaigABj//Nts3/zf/N/83/zf/NjM0BpIkAApv2/5qtmgHaigABj//Nts3/zf/N/83/zf/NjM0BpIkAApv2/5qtmgHaigABj//Nts3/gP+A/4D/gP+AjYCJAAJ7gf+CrYIBgYoA/4C3gAICBAD/zv/O/87/zv/OjM4BzIkAAen/mq+aAb+JAAKuv//Otc7/zv/O/87/zv/OjM4BzIkAAen/mq+aAb+JAAKuv//Otc7/zv/O/87/zv/OjM4BzIkAAen/mq+aAb+JAAKuv//Otc7/gP+A/4D/gP+AjIABfokAAYD/gq+CAYCJAAF9/4C2gAICBAD/z//P/8//z//Pi88BhokAAoiM/5qvmgKJ/IkAAcb/z7XP/8//z//P/8//z4vPAYaJAAKIjP+ar5oCifyJAAHG/8+1z//P/8//z//P/8+LzwGGiQACiIz/mq+aAon8iQABxv/Ptc//gP+A/4D/gP+AjICJAAF+/4KxggF9iQABf/+AtYACAgQA/9D/0P/Q/9D/0IrQAr75iQABo/+asZoBsYoAAZT/0LTQ/9D/0P/Q/9D/0IrQAr75iQABo/+asZoBsYoAAZT/0LTQ/9D/0P/Q/9D/0IrQAr75iQABo/+asZoBsYoAAZT/0LTQ/4D/gP+A/4D/gIuAAXyJAAGB/4KxggGBigD/gLWAAgIEAP/S/9L/0v/S/9KK0gG7iQACrpb/mrGaApmDiQCCxf/Ss9L/0v/S/9L/0v/SitIBu4kAAq6W/5qxmgKZg4kAgsX/0rPS/9L/0v/S/9L/0orSAbuJAAKulv+asZoCmYOJAILF/9Kz0v+A/4D/gP+A/4CKgAF/iQABf/+Cs4IBgIkAAX3/gLSAAgIEAP/T/9P/0//T/9OJ0wGrigAB1/+as5oC/JuJAAHF/9Oz0//T/9P/0//T/9OJ0wGrigAB1/+as5oC/JuJAAHF/9Oz0//T/9P/0//T/9OJ0wGrigAB1/+as5oC/JuJAAHF/9Oz0/+A/4D/gP+A/4CKgIoAAYH/grOCAoF8iQABf/+As4ACAgQA/9T/1P/U/9T/1InUAcuJAAG2/5q1mgGPigABlP/UstT/1P/U/9T/1P/UidQBy4kAAbb/mrWaAY+KAAGU/9Sy1P/U/9T/1P/U/9SJ1AHLiQABtv+atZoBj4oAAZT/1LLU/4D/gP+A/4D/gImAAX6JAAGA/4K1ggGBigD/gLOAAgIEAP/V/9X/1f/V/9WI1QGCiQACm4b/mrWaApSliQACtcX/1bHV/9X/1f/V/9X/1YjVAYKJAAKbhv+atZoClKWJAAK1xf/VsdX/1f/V/9X/1f/ViNUBgokAApuG/5q1mgKUpYkAArXF/9Wx1f+A/4D/gP+A/4CJgIkAAX3/greCAX+JAAF9/4CygAICBAD/1v/W/9b/1v/Wh9YCt7yJAAGZ/5q3mgLjm4kAAcD/1rHW/9b/1v/W/9b/1ofWAre8iQABmf+at5oC45uJAAHA/9ax1v/W/9b/1v/W/9aH1gK3vIkAAZn/mreaAuObiQABwP/Wsdb/gP+A/4D/gP+AiIABe4kAAYH/greCAoF6iQABf/+AsYACAgQA/9j/2P/Y/9j/2IfYAeaJAAKglv+auJoBhIoAAZL/2LDY/9j/2P/Y/9j/2IfYAeaJAAKglv+auJoBhIoAAZL/2LDY/9j/2P/Y/9j/2IfYAeaJAAKglv+auJoBhIoAAZL/2LDY/4D/gP+A/4D/gIeAAX6JAAF//4K5ggGBigD/gLGAAgIEAP/Z/9n/2f/Z/9mG2QGtigAB2f+auZoClL2JAAKVxP/Zr9n/2f/Z/9n/2f/ZhtkBrYoAAdn/mrmaApS9iQAClcT/2a/Z/9n/2f/Z/9n/2YbZAa2KAAHZ/5q5mgKUvYkAApXE/9mv2f+A/4D/gP+A/4CGgAF/igABgf+CuoIBf4kAAX3/gLCAAgIEAP/a/9r/2v/a/9qF2gHIigABzP+au5oC9JuJAAGY/9qv2v/a/9r/2v/a/9qF2gHIigABzP+au5oC9JuJAAGY/9qv2v/a/9r/2v/a/9qF2gHIigABzP+au5oC9JuJAAGY/9qv2v+A/4D/gP+A/4CFgAF/igABgP+Cu4ICgXyJAAF//4CvgAICBAD/2//b/9v/2//bhNsB0ooAAtWN/5q8mgGXigAByf/brtv/2//b/9v/2//bhNsB0ooAAtWN/5q8mgGXigAByf/brtv/2//b/9v/2//bhNsB0ooAAtWN/5q8mgGXigAByf/brtv/gP+A/4D/gP+AhIABf4oAAX7/gr2CAYGKAAF//4CugAICBAD/3P/c/9z/3P/cBNzc3JyLAAHQ/5q9mgKX94oAAZj/3K3c/9z/3P/c/9z/3ATc3NyciwAB0P+avZoCl/eKAAGY/9yt3P/c/9z/3P/c/9wE3NzcnIsAAdD/mr2aApf3igABmP/crdz/gP+A/4D/gP+AhICLAAGB/4K+ggF/igD/gK6AAgIEAP/d/93/3f/d/90E3d3G+ooAAYH/mr+aAoGuiQACrcv/3azd/93/3f/d/93/3QTd3cb6igABgf+av5oCga6JAAKty//drN3/3f/d/93/3f/dBN3dxvqKAAGB/5q/mgKBrokAAq3L/92s3f+A/4D/gP+A/4AEgICAfIoAAYH/gsCCAX2JAAF9/4CtgAICBAD/3v/e/97/3v/eA97N7YoAAvyX/5rAmgG3igAB///erN7/3v/e/97/3v/eA97N7YoAAvyX/5rAmgG3igAB///erN7/3v/e/97/3v/eA97N7YoAAvyX/5rAmgG3igAB///erN7/gP+A/4D/gP+AA4CAfYoAAX//gsGCAYGKAAF+/4CsgAICBAAD4ODfh+AM3+Df4ODf4ODg3+DfhuBe3+Df4ODf4ODf4ODf4N/f3+Df4N/f4ODf3+Dg4N/g39/g4N/f4N/f4ODf4ODg3+Df4ODg39/f4ODf4N/g3+Df3+Df4ODf3+Df4N/g4ODf3+Df3+Dg4N/g4ODf3+Dg34XgAd+H4AHfh+AB34TgIN/f3+Df4ODg39/g3+Dg3+Df4ODf3+Dg39/g4ODf4N/fhuAX3+Df4N/g3+Dg39/g4N/f4N/g4ODf39+E4ATf4ODfheAN3+Df3+Df3+Df4ODf34TgGt/g39/g4N/g4N/g3+Df4ODg3+Df4ODf4N/fhOAG39/f4ODfhOAB34ngBd/f4ODfi+AF39/f4N+F4ILfheAY3+Dg4N/g4N/g4ODf4N/f3+Dg39/f4ODfhOCE34Tggt+E4ATf4ODfhOAF39/f4N+I4AHfhOAH3+Dg4N/g34bgiN8l4ODf4N/g3+Dg4N/f4ODg3+Df3+Dg39/g4N/g4N/g4N/g3+Dg34Tght+D4IXfCODg3+Dg4N/fhOAF39/g39+F4Arf4ODf3+Df4ODghN8b4N/f4ODf4ODf3+Dg39/f4N/g4ODf4ODg3+DfhuAE39/g34bgBd/f4ODfhOAN3+Df4ODf39/g3+Df4ITfEeDg3+Dg39/g4N/g4ODf4N/fheAm39/g3+Df3+Df3+Dg4N/g39/g39/f4ODf3+Dg4N/g4ODf3+Dg4N+E4ALPqIoAAsyH/5rCmgHMigAGs9/f4ODfhOAW3+Dg3+Df4N/f4N/f3+Dg4N/g39/g34XgB9/f3+Dg39+F4APf4N+F4Aff3+Df4N/ghN+C4ITfBODf39+E4B7f3+Dg39/f4N/f4N/g4ODf4N/g4ODf39/g4ODf39+E4ILfhOAF3+Dg4N+E4Cjf39/g3+Dg3+Df39/g3+Dg4N/g4N/g3+Dg4N/g4N/g4ODf4N/f4ODfC9/g4N/f4N/f3+Dght8j4N/f4ODg3+Dg3+Df4ODf4N/f4ODf3+Dg39/f4ODg3+Df4OCK3wjg39/f4N/f4ITfA+Df4ITfEODg39/f4N/g39/g39/f4N+E4Ajf39/g3+Dg4IXfJODf3+Df39/g39/g39/g4N/g39/g4N/g39/g39/g4N/f4N/g34TgBd/f3+Dghd+D4ITfN+Dg4N/g39/g3+Df4N/f3+Df4N/f3+Df4N/f3+Df39/g4N/g3+Dg4N/f4N/f4N/g4ODf4N/f3+CE3xDg39/f4ODf3+Df3+Df39/gid8N4N/g39/g3+Df39/g4IffCeDf4ODg39/g4I7fBeDf4N/fhOAI3+Df4ODf4OCI3xbg3+Dg4N/g3+Df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z//PiM//z//P/8//z//P/8//z//PiM//gP+A/4D/gP+A/4D/gP+AiIACAgQA/83/zf/N/83/zf/N/83/zYjN/83/zf/N/83/zf/N/83/zYjN/83/zf/N/83/zf/N/83/zYjN/4D/gP+A/4D/gP+A/4D/gIiAAgIEAP/L/8v/y//L/8v/y//L/8uIy//L/8v/y//L/8v/y//L/8uIy//L/8v/y//L/8v/y//L/8uIy/+A/4D/gP+A/4D/gP+A/4CIgAICBAD/yf/J/8n/yf/J/8n/yf/JiMn/yf/J/8n/yf/J/8n/yf/JiMn/yf/J/8n/yf/J/8n/yf/JiMn/gP+A/4D/gP+A/4D/gP+AiIACAgQA/8f/x//H/8f/x//H/8f/x4jH/8f/x//H/8f/x//H/8f/x4jH/8f/x//H/8f/x//H/8f/x4jH/4D/gP+A/4D/gP+A/4D/gIiAAgIEAP/F/8X/xf/F/8X/xf/F/8WIxf/F/8X/xf/F/8X/xf/F/8WIxf/F/8X/xf/F/8X/xf/F/8WIxf+A/4D/gP+A/4D/gP+A/4CIgAICBAD/w//D/8P/w//D/8P/w//DiMP/w//D/8P/w//D/8P/w//DiMP/w//D/8P/w//D/8P/w//DiMP/gP+A/4D/gP+A/4D/gP+AiIACAgQA/8H/wf/B/8H/wf/B/8H/wYjB/8H/wf/B/8H/wf/B/8H/wYjB/8H/wf/B/8H/wf/B/8H/wYjB/4D/gP+A/4D/gP+A/4D/gIiAAgIEAP+//7//v/+//7//v/+//7+Iv/+//7//v/+//7//v/+//7+Iv/+//7//v/+//7//v/+//7+Iv/+A/4D/gP+A/4D/gP+A/4CIgAICBAD/vf+9/73/vf+9/73/vf+9iL3/vf+9/73/vf+9/73/vf+9iL3/vf+9/73/vf+9/73/vf+9iL3/gP+A/4D/gP+A/4D/gP+AiIACAgQA/7v/u/+7/7v/u/+7/7v/u4i7/7v/u/+7/7v/u/+7/7v/u4i7/7v/u/+7/7v/u/+7/7v/u4i7/4D/gP+A/4D/gP+A/4D/gIiAAgIEAP+6/7r/uv+6/7r/uv+6/7qIuv+6/7r/uv+6/7r/uv+6/7qIuv+6/7r/uv+6/7r/uv+6/7qIuv+A/4D/gP+A/4D/gP+A/4CIgAICBAD/uP+4/7j/uP+4/7j/uP+4iLj/uP+4/7j/uP+4/7j/uP+4iLj/uP+4/7j/uP+4/7j/uP+4iLj/gP+A/4D/gP+A/4D/gP+AiIACAgQA/7b/tv+2/7b/tv+2/7b/toi2/7b/tv+2/7b/tv+2/7b/toi2/7b/tv+2/7b/tv+2/7b/toi2/4D/gP+A/4D/gP+A/4D/gIiAAgIEAP+0/7T/tP+0/7T/tP+0/7SItP+0/7T/tP+0/7T/tP+0/7SItP+0/7T/tP+0/7T/tP+0/7SItP+A/4D/gP+A/4D/gP+A/4CIgAICBAD/s/+z/7P/s/+z/7P/s/+ziLP/s/+z/7P/s/+z/7P/s/+ziLP/s/+z/7P/s/+z/7P/s/+ziLP/gP+A/4D/gP+A/4D/gP+AiIACAgQA/7H/sf+x/7H/sf+x/7H/sYix/7H/sf+x/7H/sf+x/7H/sYix/7H/sf+x/7H/sf+x/7H/sYix/4D/gP+A/4D/gP+A/4D/gIiAAgIEAP+v/6//r/+v/6//r/+v/6+Ir/+v/6//r/+v/6//r/+v/6+Ir/+v/6//r/+v/6//r/+v/6+Ir/+A/4D/gP+A/4D/gP+A/4CIgAICBAD/rv+u/67/rv+u/67/rv+uiK7/rv+u/67/rv+u/67/rv+uiK7/rv+u/67/rv+u/67/rv+uiK7/gP+A/4D/gP+A/4D/gP+AiIACAgQA/6z/rP+s/6z/rP+s/6z/rIis/6z/rP+s/6z/rP+s/6z/rIis/6z/rP+s/6z/rP+s/6z/rIis/4D/gP+A/4D/gP+A/4D/gIiAAgIEAP+q/6r/qv+q/6r/qv+q/6qIqv+q/6r/qv+q/6r/qv+q/6qIqv+q/6r/qv+q/6r/qv+q/6qIqv+A/4D/gP+A/4D/gP+A/4CIgAICBAD/qf+p/6n/qf+p/6n/qf+piKn/qf+p/6n/qf+p/6n/qf+piKn/qf+p/6n/qf+p/6n/qf+piKn/gP+A/4D/gP+A/4D/gP+AiIACAgQA/6f/p/+n/6f/p/+n/6f/p4in/6f/p/+n/6f/p/+n/6f/p4in/6f/p/+n/6f/p/+n/6f/p4in/4D/gP+A/4D/gP+A/4D/gIiAAgIEAP+m/6b/pv+m/6b/pv+m/6aIpv+m/6b/pv+m/6b/pv+m/6aIpv+m/6b/pv+m/6b/pv+m/6aIpv+A/4D/gP+A/4D/gP+A/4CIgAICBAD/pf+l/6X/pf+l/6X/pf+liKX/pf+l/6X/pf+l/6X/pf+liKX/pf+l/6X/pf+l/6X/pf+liKX/gP+A/4D/gP+A/4D/gP+AiIACAgQA/6P/o/+j/6P/o/+j/6P/o4ij/6P/o/+j/6P/o/+j/6P/o4ij/6P/o/+j/6P/o/+j/6P/o4ij/4D/gP+A/4D/gP+A/4D/gIiAAgIEAP+i/6L/ov+i/6L/ov+i/6KIov+i/6L/ov+i/6L/ov+i/6KIov+i/6L/ov+i/6L/ov+i/6KIov+A/4D/gP+A/4D/gP+A/4CIgAICBAD/of+h/6H/of+h/6H/of+hiKH/of+h/6H/of+h/6H/of+hiKH/of+h/6H/of+h/6H/of+hiKH/gP+A/4D/gP+A/4D/gP+AiIACAgQA/6D/oP+g/6D/oP+g/6D/oIig/6D/oP+g/6D/oP+g/6D/oIig/6D/oP+g/6D/oP+g/6D/oIig/4D/gP+A/4D/gP+A/4D/gIiAAgIEAAKfnoefBJ6fn56EnwGeiZ8Nnp+fnp+fnp+en56fnoafBJ6fn56EnwGehp8Enp+enoefB56enp+fn56HnwSen5+eiJ+CnoufAZ6OnwGehJ8BnoWfAZ6Hnwien5+fnp+fnpGfAZ6PnwWenp+enoafAZ6MnwGehJ8BnoafAZ6In4KekJ+CnpafAZ6MnwWen5+fnoSfAZ6UnwGeip8BnoSfg56UnwGejJ8BnoafB56en56fn56GnwGehZ8Hnp+fnp+fno+fAZ6KnwGehJ8BnomfAZ6FnwOen56HnwGekZ8BnoefBp6fnp+fnoafg56HnwGeip8BnoyfAZ6GnwWen5+fnoifCZ6fn5+enp+fnomfAZ6NnwGehp8Bnoyfgp6GnwGehJ8BnoafAZ6PnwGehJ8BnoqfAZ6Jnweenp+fnp+eiZ8Enp+fnoSfBJ6fn56GnwGehZ+CnoafAZ6Inwaen56en56Hn4KejZ8Jnp+fnp+fnp6ehJ8BnpGfAZ6EnwGeiZ8Fnp+fn56GnxSen5+fnp+fn56enp+fn56en5+fnoafgp6EnwGehZ+CnoifBZ6fn5+eip8BnpGfAZ6TnwGeip8BnqyfAZ6NnwSen5+ehJ8Mnp+fnp+fn56fn5+ehJ8BnomfAZ6Mn4Wfg56EnwWen5+fnoSfA56fnoefg56Jn4KehZ8Fnp+fn56FnwGelp8Gnp+enp+eh58Gnp+fn56ehJ8BnoWfCp6en56fnp+fn56FnwOen56Gnwmen56fn56fnp6GnwGehZ+CnoSfBp6fn56fnoifAZ6KnwGehZ8Bnomfgp6EnxSenp+fnp+fnp+fnp6fn56fnp+fnoqfE56enp+fnp6en5+fnp6fnp+fn56Gn4KehJ8BnoSfCp6fn5+en56fn56Enweenp+fnp+ehJ8Gnp+fn56ehZ8Gnp+en5+ehJ8Jnp6fn5+enp+ehp8Snp+fn56fnp6fn5+en5+en56fhJ4Ln5+fnp+fnp+en56Fnwyenp6fn5+en56fn5+EngOfn56En4KehZ8Fnp+en56FnwGeip8Nnp6fn56fn5+en56enoSfAZ6Enwqenp+fnp+en5+eiZ8BnoSfCZ6fn56fn56fnoifAZ6HnwGehJ8BnoWfCJ6enp+fnp+ekJ8Knp+fnp+fnp+fn4SeEZ+fn56fnp+enp6fn56fn5+ei58anp6fnp6fn5+en5+enp+fnp+en5+enp+fn56JnwSen56eh58BnoSfBZ6fn5+emZ8fnp+fn56fn56fn56fn56en56fnp+en5+fnp6en5+fnoafDp6fnp6fn5+en56fnp+ehJ8BnoSfBp6fnp+enoWfCZ6enp+en5+fnoWfEZ6fn56fn5+en56fnp6en5+ei5+CnoefCJ6fnp+fnp+ehJ8BnomfAZ6JnwGehp8Knp6fn56enp+fnoefBJ6fn56Fn4Keh58Fnp+fnp6Fnween5+en56fhJ4Cn56JnwGeiZ8Gnp+fnp+ehZ8Fnp6fnp6Gn4KehJ8BnoWfg56Gn4KehZ8BnoefAZ6EnwSen5+ehp8Hnp+fn56enoSfAZ6FnwWenp6fnoSfA56fnoWfCJ6enp+fnp+ejJ8Enp6fn4ifBZ6fn5+ek58BnoSfAZ6PnwGekp8BnpafAZ6MnwWen5+fnoSfAZ6fnwGehZ+CnqGfAZ6GnwGehZ8BnoafAZ6InwGesp8Dnp+emZ8BnoefBp6fnp+fnoafgp6WnwGejZ8BnpefAZ6OnwGehJ8BnoafAZ6Lnwaen5+fnp6HnwGehp8BnoyfBZ6en5+ehZ8Fnp6fn56ZnwGehJ8BnpCfAZ6LnwGeiJ8BnpSfBZ6en5+ejp8Fnp6fn56Onw6en56fnp+en5+fnp+fnp6fAZ6TnwGenJ8BnoqfAZ6qnwOen56On4KejJ8Enp+fnpGfAZ6TnwGehJ8BnpGfBp6fn5+enpOfAZ6OnwGehJ8BnoefAZ6GnwGeip8BnpGfAZ6Vn4KelJ8Bno2fA56fnqaf/4D/gP+A/4D/gP+A/4D/gIiAAgIEAP+d/53/nf+d/53/nf+d/52Inf+d/53/nf+d/53/nf+d/52Inf+d/53/nf+d/53/nf+d/52Inf+A/4D/gP+A/4D/gP+A/4CIgAICBAD/nP+c/5z/nP+c/5z/nP+ciJz/nP+c/5z/nP+c/5z/nP+ciJz/nP+c/5z/nP+c/5z/nP+ciJz/gP+A/4D/gP+A/4D/gP+AiIACAgQA/5z/nP+c/5z/nP+c/5z/nIic/5z/nP+c/5z/nP+c/5z/nIic/5z/nP+c/5z/nP+c/5z/nIic/4D/gP+A/4D/gP+A/4D/gIiAAgIEAP+b/5v/m/+b/5v/m/+b/5uIm/+b/5v/m/+b/5v/m/+b/5uIm/+b/5v/m/+b/5v/m/+b/5uIm/+A/4D/gP+A/4D/gP+A/4CIgAICBAD/mv+a/5r/mv+a/5r/mv+aiJr/mv+a/5r/mv+a/5r/mv+aiJr/mv+a/5r/mv+a/5r/mv+aiJr/gP+A/4D/gP+A/4D/gP+AiIACAgQA/5n/mf+Z/5n/mf+Z/5n/mYiZ/5n/mf+Z/5n/mf+Z/5n/mYiZ/5n/mf+Z/5n/mf+Z/5n/mYiZ/4D/gP+A/4D/gP+A/4D/gIiAAgIEAP+Y/5j/mP+Y/5j/mP+Y/5iImP+Y/5j/mP+Y/5j/mP+Y/5iImP+Y/5j/mP+Y/5j/mP+Y/5iImP+A/4D/gP+A/4D/gP+A/4CIgAICBAD/mP+Y/5j/mP+Y/5j/mP+YiJj/mP+Y/5j/mP+Y/5j/mP+YiJj/mP+Y/5j/mP+Y/5j/mP+YiJj/gP+A/4D/gP+A/4D/gP+AiIACAgQA/5f/l/+X/5f/l/+X/5f/l4iX/5f/l/+X/5f/l/+X/5f/l4iX/5f/l/+X/5f/l/+X/5f/l4iX/4D/gP+A/4D/gP+A/4D/gIiAAgIEAP+X/5f/l/+X/5f/l/+X/5eIl/+X/5f/l/+X/5f/l/+X/5eIl/+X/5f/l/+X/5f/l/+X/5eIl/+A/4D/gP+A/4D/gP+A/4CIgA==", MA = {
42
+ enabled: !0,
43
+ imageUrl: J,
44
+ useAsBackground: !1,
45
+ rotateY: 0,
46
+ globalEnvIntensity: 1,
47
+ // deprecated
48
+ exposure: 1,
49
+ // deprecated
50
+ replaceLights: !1
51
+ // deprecated
52
+ };
53
+ class LA {
54
+ constructor(g, A, i = {}) {
55
+ e(this, "originalBackground");
56
+ e(this, "renderer");
57
+ e(this, "scene");
58
+ e(this, "pmrem");
59
+ e(this, "currentEnvRT", null);
60
+ e(this, "currentBackgroundCube", null);
61
+ e(this, "sourceImage", null);
62
+ e(this, "options");
63
+ e(this, "_loadPromise");
64
+ e(this, "_initPromise", null);
65
+ e(this, "_sourceImageLoadId", 0);
66
+ e(this, "_initRequested", !1);
67
+ e(this, "_disposed", !1);
68
+ this.renderer = g, this.scene = A, this.originalBackground = this.scene.background, this.pmrem = new F(g), this.options = {
69
+ ...MA,
70
+ ...i
71
+ }, this._loadPromise = this._loadSourceImage(this.options.imageUrl);
72
+ }
73
+ async init() {
74
+ return this._initRequested = !0, this._initPromise ? this._initPromise : (this._initPromise = (async () => {
75
+ await this._loadPromise, !(this._disposed || !this.renderer.initialized) && this.update();
76
+ })().finally(() => {
77
+ this._initPromise = null;
78
+ }), this._initPromise);
79
+ }
80
+ /**
81
+ * Disposes the environment.
82
+ */
83
+ dispose() {
84
+ var g;
85
+ this._disposed = !0, this.pmrem.dispose(), (g = this.sourceImage) == null || g.dispose(), this.sourceImage = null, this.clearEnvironment();
86
+ }
87
+ clearEnvironment() {
88
+ this.scene.environment = null, this.scene.background = this.originalBackground, this.currentEnvRT && (this.currentEnvRT.texture.dispose(), this.currentEnvRT.dispose(), this.currentEnvRT = null), this.currentBackgroundCube && (this.currentBackgroundCube.texture.dispose(), this.currentBackgroundCube.dispose(), this.currentBackgroundCube = null);
89
+ }
90
+ /**
91
+ * Updates the environment.
92
+ *
93
+ * - Creates a sky scene with a large inward-facing sphere with equirectangular mapping for correct UVs.
94
+ * - Renders the equirect HDR to a cubemap with CubeCamera.
95
+ * - Generates a PMREM from the cubemap.
96
+ * - Updates the scene environment with the PMREM.
97
+ * - Handles background image replacement logic.
98
+ * - Early-returns if the source image is not loaded.
99
+ */
100
+ update() {
101
+ if (!this.renderer.initialized) return;
102
+ if (!this.sourceImage) {
103
+ this.clearEnvironment();
104
+ return;
105
+ }
106
+ const g = new W(), A = new v(10, 60, 40), i = new Y({
107
+ map: this.sourceImage,
108
+ side: AA
109
+ }), t = new u(A, i);
110
+ t.scale.set(1, 1, -1), t.rotation.y = this.options.rotateY ?? 0, g.add(t);
111
+ const o = this.renderer.toneMapping, s = this.renderer.outputColorSpace;
112
+ this.renderer.toneMapping = iA, this.renderer.outputColorSpace = eA;
113
+ const f = new gA(1024, {
114
+ type: tA
115
+ });
116
+ new oA(0.1, 1e3, f).update(this.renderer, g), this.renderer.toneMapping = o, this.renderer.outputColorSpace = s;
117
+ const z = this.pmrem.fromCubemap(f.texture);
118
+ this.currentEnvRT && (this.currentEnvRT.texture.dispose(), this.currentEnvRT.dispose(), this.currentEnvRT = null), this.currentBackgroundCube && (this.currentBackgroundCube.texture.dispose(), this.currentBackgroundCube.dispose(), this.currentBackgroundCube = null), this.currentEnvRT = z, this.scene.environment = z.texture, this.options.useAsBackground ? (this.scene.background = f.texture, this.currentBackgroundCube = f) : (this.scene.background = this.originalBackground, f.texture.dispose(), f.dispose());
119
+ }
120
+ /**
121
+ * Sets the renderer and rebinds the PMREM generator. Use this only when rebuilding the renderer.
122
+ *
123
+ * @param renderer - The renderer.
124
+ */
125
+ setRenderer(g) {
126
+ this.pmrem.dispose(), this.renderer = g, this.pmrem = new F(g), this._initRequested && g.initialized && this.update();
127
+ }
128
+ /**
129
+ * Sets the URL of the HDR image.
130
+ *
131
+ * @param url - The URL of the HDR image. If null, the default environment image will be used.
132
+ */
133
+ async setImageUrl(g) {
134
+ this.options.imageUrl = g ?? J, this._loadPromise = this._loadSourceImage(this.options.imageUrl), await this._loadPromise, this._initRequested && this.renderer.initialized && this.update();
135
+ }
136
+ /**
137
+ * Sets the rotation of the HDR image in radians.
138
+ *
139
+ * @param radians - The rotation of the HDR image in radians.
140
+ */
141
+ setRotationY(g) {
142
+ this.options.rotateY = g, this.update();
143
+ }
144
+ /**
145
+ * Sets whether to use the HDR image as a background.
146
+ * @param useAsBackground - Whether to use the HDR image as a background.
147
+ */
148
+ setUseAsBackground(g) {
149
+ this.options.useAsBackground = g, this.update();
150
+ }
151
+ /**
152
+ * Loads equirectangular HDR image from URL.
153
+ * Sets the mapping to EquirectangularReflectionMapping.
154
+ *
155
+ * @param url - The URL of the HDR image.
156
+ * @returns The loaded equirectangular HDR texture.
157
+ */
158
+ async loadHDRImage(g) {
159
+ const A = await new HA().loadAsync(g);
160
+ return A.mapping = sA, A;
161
+ }
162
+ async _loadSourceImage(g) {
163
+ var t;
164
+ const A = ++this._sourceImageLoadId, i = await this.loadHDRImage(g);
165
+ if (this._disposed || A !== this._sourceImageLoadId) {
166
+ i.dispose();
167
+ return;
168
+ }
169
+ (t = this.sourceImage) == null || t.dispose(), this.sourceImage = i;
170
+ }
171
+ }
172
+ const T = {
173
+ canvas: void 0,
174
+ antialias: !0,
175
+ alpha: !0,
176
+ powerPreference: "high-performance",
177
+ precision: "highp",
178
+ stencil: !1,
179
+ depth: !0,
180
+ logarithmicDepthBuffer: !0,
181
+ shadows: !0,
182
+ shadowQuality: "high"
183
+ };
184
+ class FA {
185
+ constructor(g, A, i) {
186
+ e(this, "isDIVERenderer", !0);
187
+ e(this, "_webgpurenderer");
188
+ e(this, "_environment");
189
+ e(this, "_initPromise", null);
190
+ e(this, "_settings");
191
+ this._scene = g, this._camera = A, this._settings = {
192
+ ...T,
193
+ ...i ?? {}
194
+ }, this._webgpurenderer = this._createWebGPURenderer(), this._environment = new LA(
195
+ this._webgpurenderer,
196
+ this._scene
197
+ );
198
+ }
199
+ get webgpurenderer() {
200
+ return this._webgpurenderer;
201
+ }
202
+ get environment() {
203
+ return this._environment;
204
+ }
205
+ get canvas() {
206
+ return this._webgpurenderer.domElement;
207
+ }
208
+ get initialized() {
209
+ return this._webgpurenderer.initialized;
210
+ }
211
+ async init() {
212
+ if (this._webgpurenderer.initialized) {
213
+ await this._environment.init();
214
+ return;
215
+ }
216
+ if (this._initPromise)
217
+ return this._initPromise;
218
+ const g = this._webgpurenderer;
219
+ return this._initPromise = (async () => {
220
+ await g.init(), g === this._webgpurenderer && await this._environment.init();
221
+ })().finally(() => {
222
+ g === this._webgpurenderer && (this._initPromise = null);
223
+ }), this._initPromise;
224
+ }
225
+ render() {
226
+ this._webgpurenderer.initialized && this._webgpurenderer.render(this._scene, this._camera);
227
+ }
228
+ onResize(g, A) {
229
+ this._webgpurenderer.setSize(g, A);
230
+ }
231
+ dispose() {
232
+ this._environment.dispose(), this._webgpurenderer.dispose();
233
+ }
234
+ setCanvas(g) {
235
+ const A = this._webgpurenderer, i = A.initialized || this._initPromise !== null;
236
+ this._initPromise = null, this._settings.canvas = g, this._webgpurenderer = this._createWebGPURenderer(), this._environment.setRenderer(this._webgpurenderer), A.dispose(), i && this.init();
237
+ }
238
+ _createWebGPURenderer() {
239
+ const g = new nA(this._settings);
240
+ return g.shadowMap.enabled = this._settings.shadows, g.shadowMap.type = this._settings.shadowQuality === "high" ? fA : this._settings.shadowQuality === "medium" ? hA : rA, g.setPixelRatio(window.devicePixelRatio), g.outputColorSpace = aA, g.toneMapping = BA, g.toneMappingExposure = 1, g;
241
+ }
242
+ }
243
+ class XA {
244
+ constructor(g, A) {
245
+ e(this, "isDIVEResizeManager", !0);
246
+ e(this, "_resizeObserver");
247
+ e(this, "_width", 0);
248
+ e(this, "_height", 0);
249
+ this._renderer = g, this._camera = A, this._resizeObserver = new ResizeObserver((i) => {
250
+ const t = i[0], { width: o, height: s } = t.contentRect;
251
+ o === this._width && s === this._height || (this._camera.onResize(o, s), this._renderer.onResize(o, s), this._width = o, this._height = s, this._renderer.render());
252
+ }), this._observeCanvas(this._renderer.canvas);
253
+ }
254
+ setCanvas(g) {
255
+ this._resizeObserver.disconnect(), this._observeCanvas(g);
256
+ const { width: A, height: i } = g.getBoundingClientRect();
257
+ this._camera.onResize(A, i), this._renderer.onResize(A, i), this._width = A, this._height = i, this._renderer.render();
258
+ }
259
+ dispose() {
260
+ this._resizeObserver.disconnect();
261
+ }
262
+ _observeCanvas(g) {
263
+ if (g.parentElement)
264
+ this._resizeObserver.observe(g.parentElement);
265
+ else {
266
+ const A = setInterval(() => {
267
+ g.parentElement && (this._resizeObserver.observe(g.parentElement), clearInterval(A));
268
+ }, 16);
269
+ }
270
+ }
271
+ }
272
+ class jA {
273
+ constructor(g, A, i) {
274
+ e(this, "isDIVEView", !0);
275
+ e(this, "uuid", b.generateUUID());
276
+ e(this, "_paused", !1);
277
+ e(this, "_renderer");
278
+ e(this, "_resizeManager");
279
+ this._scene = g, this._camera = A, this._settings = i, this._renderer = new FA(
280
+ this._scene,
281
+ this._camera,
282
+ this._settings
283
+ ), this._resizeManager = new XA(
284
+ this._renderer,
285
+ this._camera
286
+ );
287
+ }
288
+ get renderer() {
289
+ return this._renderer;
290
+ }
291
+ get camera() {
292
+ return this._camera;
293
+ }
294
+ get canvas() {
295
+ return this._renderer.canvas;
296
+ }
297
+ tick() {
298
+ this._paused || this._renderer.render();
299
+ }
300
+ dispose() {
301
+ this._resizeManager.dispose(), this._renderer.dispose();
302
+ }
303
+ onResize(g, A) {
304
+ this._renderer.onResize(g, A), this._camera.onResize(g, A);
305
+ }
306
+ setCanvas(g) {
307
+ this._renderer.setCanvas(g), this._resizeManager.setCanvas(g), this.onResize(
308
+ this._renderer.canvas.clientWidth,
309
+ this._renderer.canvas.clientHeight
310
+ );
311
+ }
312
+ // TODO: add methods to individually pause and resume the view
313
+ pause() {
314
+ this._paused = !0;
315
+ }
316
+ resume() {
317
+ this._paused = !1;
318
+ }
319
+ }
320
+ class ZA extends w {
321
+ constructor() {
322
+ super();
323
+ e(this, "isDIVELight", !0);
324
+ e(this, "isDIVEAmbientLight", !0);
325
+ e(this, "isSelectable", !0);
326
+ e(this, "_light");
327
+ this.name = "DIVEAmbientLight", this._light = new cA(16777215, 1), this._light.layers.mask = P, this.add(this._light);
328
+ }
329
+ setColor(A) {
330
+ this._light.color = A;
331
+ }
332
+ setIntensity(A) {
333
+ this._light.intensity = A;
334
+ }
335
+ setEnabled(A) {
336
+ this._light.visible = A;
337
+ }
338
+ }
339
+ class EA extends w {
340
+ constructor() {
341
+ super();
342
+ e(this, "isDIVELight", !0);
343
+ e(this, "isDIVEPointLight", !0);
344
+ e(this, "isMovable", !0);
345
+ e(this, "isSelectable", !0);
346
+ e(this, "gizmo", null);
347
+ e(this, "light");
348
+ e(this, "mesh");
349
+ this.name = "DIVEPointLight", this.light = new PA(16777215, 1), this.light.layers.mask = P, this.light.castShadow = !0, this.light.shadow.mapSize.width = 512, this.light.shadow.mapSize.height = 512, this.add(this.light);
350
+ const A = 0.1, i = new v(
351
+ A,
352
+ A * 320,
353
+ A * 320
354
+ ), t = new Y({
355
+ color: this.light.color,
356
+ transparent: !0,
357
+ opacity: 0.8,
358
+ side: N
359
+ });
360
+ this.mesh = new u(i, t), this.mesh.layers.mask = qA, this.add(this.mesh);
361
+ }
362
+ setColor(A) {
363
+ this.light.color = A, this.mesh.material.color = A;
364
+ }
365
+ setIntensity(A) {
366
+ this.light.intensity = A, this.mesh.material.opacity = A > 0.8 ? 0.8 : A * 0.8;
367
+ }
368
+ setEnabled(A) {
369
+ this.light.visible = A;
370
+ }
371
+ onMove() {
372
+ import("../plugins/state/index.mjs").then(({ State: A }) => {
373
+ var i;
374
+ (i = A.get(this.userData.id)) == null || i.performAction("UPDATE_OBJECT", {
375
+ id: this.userData.id,
376
+ position: this.position
377
+ });
378
+ });
379
+ }
380
+ onSelect() {
381
+ import("../plugins/state/index.mjs").then(({ State: A }) => {
382
+ var i;
383
+ (i = A.get(this.userData.id)) == null || i.performAction("SELECT_OBJECT", {
384
+ id: this.userData.id
385
+ });
386
+ });
387
+ }
388
+ onDeselect() {
389
+ import("../plugins/state/index.mjs").then(({ State: A }) => {
390
+ var i;
391
+ (i = A.get(this.userData.id)) == null || i.performAction("DESELECT_OBJECT", {
392
+ id: this.userData.id
393
+ });
394
+ });
395
+ }
396
+ }
397
+ class QA extends w {
398
+ constructor() {
399
+ super();
400
+ e(this, "isDIVELight", !0);
401
+ e(this, "isDIVESceneLight", !0);
402
+ e(this, "isSelectable", !0);
403
+ e(this, "_hemiLight");
404
+ e(this, "_dirLight");
405
+ this.name = "DIVESceneLight", this._hemiLight = new zA(16777215, 16777215, 2), this._hemiLight.layers.mask = P, this._hemiLight.position.set(0, 50, 0), this._hemiLight.visible = !0, this.add(this._hemiLight), this._dirLight = new IA(16777215, 3), this._dirLight.layers.mask = P, this._dirLight.position.set(1, 1.75, 1), this._dirLight.position.multiplyScalar(30), this._dirLight.castShadow = !0, this._dirLight.visible = !0, this._dirLight.shadow.mapSize.width = 2048, this._dirLight.shadow.mapSize.height = 2048;
406
+ const A = 5;
407
+ this._dirLight.shadow.camera.left = -A, this._dirLight.shadow.camera.right = A, this._dirLight.shadow.camera.top = A, this._dirLight.shadow.camera.bottom = -A, this._dirLight.shadow.camera.far = 3500, this.add(this._dirLight);
408
+ }
409
+ setColor(A) {
410
+ this._hemiLight.color = A, this._dirLight.color = A;
411
+ }
412
+ setIntensity(A) {
413
+ this._hemiLight.intensity = A * 2, this._dirLight.intensity = A * 3;
414
+ }
415
+ setEnabled(A) {
416
+ this._hemiLight.visible = A, this._dirLight.visible = A;
417
+ }
418
+ }
419
+ const S = (n) => n.parent ? S(n.parent) : n;
420
+ class O extends w {
421
+ constructor() {
422
+ super();
423
+ e(this, "isSelectable", !0);
424
+ e(this, "isMovable", !0);
425
+ e(this, "isDIVENode", !0);
426
+ e(this, "gizmo", null);
427
+ e(this, "_positionWorldBuffer");
428
+ e(this, "_boundingBox");
429
+ this.layers.mask = P, this._positionWorldBuffer = new h(), this._boundingBox = new I();
430
+ }
431
+ setPosition(A) {
432
+ if (!this.parent) {
433
+ this.position.set(A.x, A.y, A.z);
434
+ return;
435
+ }
436
+ const i = new h(A.x, A.y, A.z);
437
+ this.position.copy(this.parent.worldToLocal(i)), "isDIVEGroup" in this.parent && this.parent.updateLineTo(this);
438
+ }
439
+ setRotation(A) {
440
+ this.rotation.set(A.x, A.y, A.z);
441
+ }
442
+ setScale(A) {
443
+ this.scale.set(A.x, A.y, A.z);
444
+ }
445
+ setVisibility(A) {
446
+ this.visible = A;
447
+ }
448
+ setToWorldOrigin() {
449
+ this.position.set(0, 0, 0), import("../plugins/state/index.mjs").then(({ State: A }) => {
450
+ var i;
451
+ (i = A.get(this.userData.id)) == null || i.performAction("UPDATE_OBJECT", {
452
+ id: this.userData.id,
453
+ position: this.getWorldPosition(this._positionWorldBuffer),
454
+ rotation: this.rotation,
455
+ scale: this.scale
456
+ });
457
+ });
458
+ }
459
+ /**
460
+ * Can be called when the object is moved from a foreign object (gizmo, parent, etc.) to update the object's position.
461
+ */
462
+ onMove() {
463
+ import("../plugins/state/index.mjs").then(({ State: A }) => {
464
+ var i;
465
+ (i = A.get(this.userData.id)) == null || i.performAction("UPDATE_OBJECT", {
466
+ id: this.userData.id,
467
+ position: this.getWorldPosition(this._positionWorldBuffer),
468
+ rotation: this.rotation,
469
+ scale: this.scale
470
+ });
471
+ });
472
+ }
473
+ onSelect() {
474
+ import("../plugins/state/index.mjs").then(({ State: A }) => {
475
+ var i;
476
+ (i = A.get(this.userData.id)) == null || i.performAction("SELECT_OBJECT", {
477
+ id: this.userData.id
478
+ });
479
+ });
480
+ }
481
+ onDeselect() {
482
+ import("../plugins/state/index.mjs").then(({ State: A }) => {
483
+ var i;
484
+ (i = A.get(this.userData.id)) == null || i.performAction("DESELECT_OBJECT", {
485
+ id: this.userData.id
486
+ });
487
+ });
488
+ }
489
+ }
490
+ class d extends O {
491
+ /**
492
+ * Creates a new BoundingBox instance for the specified 3D object.
493
+ *
494
+ * The constructor computes both a bounding box and bounding sphere for the given object.
495
+ * It handles complex objects with multiple meshes and nested transformations.
496
+ *
497
+ * @param object - The 3D object to compute bounding volumes for
498
+ * @param axisAligned - Whether to create an axis-aligned bounding box (true) or oriented bounding box (false). Defaults to false.
499
+ * @param wireframeColor - The color for the wireframe helpers. Can be a hex number or ColorRepresentation. Defaults to green (0x00ff00).
500
+ *
501
+ * @example
502
+ * ```typescript
503
+ * // Create an oriented bounding box (aligned with object's rotation)
504
+ * const obb = new BoundingBox(mesh, false, 0x00ff00);
505
+ *
506
+ * // Create an axis-aligned bounding box (aligned with world coordinates)
507
+ * const aabb = new BoundingBox(mesh, true, 0xff0000);
508
+ *
509
+ * // Use default green color
510
+ * const defaultBox = new BoundingBox(mesh);
511
+ * ```
512
+ */
513
+ constructor(A, i = !1, t = 65280) {
514
+ super();
515
+ /** The computed bounding box (Box3) */
516
+ e(this, "_box");
517
+ /** The computed bounding sphere (Sphere) */
518
+ e(this, "_sphere");
519
+ /** The center point of the bounding box */
520
+ e(this, "_center");
521
+ /** The radius of the bounding sphere */
522
+ e(this, "_radius");
523
+ /** Visual helper for the bounding box wireframe */
524
+ e(this, "_boxHelper");
525
+ /** Visual helper for the bounding sphere wireframe */
526
+ e(this, "_sphereHelper");
527
+ /** The dimensions (width, height, depth) of the bounding box */
528
+ e(this, "_size");
529
+ const o = new I();
530
+ i ? o.setFromObject(A) : (A.updateWorldMatrix(!0, !0), A.traverse((f) => {
531
+ if (!("isMesh" in f) || !f.isMesh) return;
532
+ const r = f;
533
+ r.geometry.computeBoundingBox(), r.geometry.boundingBox && o.union(
534
+ r.geometry.boundingBox.clone().applyMatrix4(r.matrixWorld)
535
+ );
536
+ })), this.rotation.copy(A.rotation), this._box = o, this._size = o.getSize(new h()), this._center = o.getCenter(new h()), this._boxHelper = new CA(this._box, t), this._boxHelper.visible = !1, this.add(this._boxHelper), this._sphere = o.getBoundingSphere(new uA()), this._radius = this._sphere.radius;
537
+ const s = new v(this._radius, 32, 32);
538
+ s.translate(this._center.x, this._center.y, this._center.z), this._sphereHelper = new u(
539
+ s,
540
+ new Y({ color: t, wireframe: !0 })
541
+ ), this._sphereHelper.visible = !1, this.add(this._sphereHelper);
542
+ }
543
+ /**
544
+ * Gets the computed bounding box.
545
+ * @returns The Box3 instance representing the bounding box
546
+ */
547
+ get box() {
548
+ return this._box;
549
+ }
550
+ /**
551
+ * Gets the computed bounding sphere.
552
+ * @returns The Sphere instance representing the bounding sphere
553
+ */
554
+ get sphere() {
555
+ return this._sphere;
556
+ }
557
+ /**
558
+ * Gets the center point of the bounding box.
559
+ * @returns A Vector3 representing the center coordinates
560
+ */
561
+ get center() {
562
+ return this._center;
563
+ }
564
+ /**
565
+ * Gets the radius of the bounding sphere.
566
+ * @returns The radius as a number
567
+ */
568
+ get radius() {
569
+ return this._radius;
570
+ }
571
+ /**
572
+ * Gets the dimensions of the bounding box.
573
+ * @returns A Vector3 representing width, height, and depth
574
+ */
575
+ get size() {
576
+ return this._size;
577
+ }
578
+ /**
579
+ * Sets the visibility of the bounding box wireframe helper.
580
+ *
581
+ * @param visible - Whether the box helper should be visible
582
+ *
583
+ * @example
584
+ * ```typescript
585
+ * const boundingBox = new BoundingBox(mesh);
586
+ *
587
+ * // Show the bounding box wireframe
588
+ * boundingBox.setBoxHelperVisible(true);
589
+ *
590
+ * // Hide the bounding box wireframe
591
+ * boundingBox.setBoxHelperVisible(false);
592
+ * ```
593
+ */
594
+ setBoxHelperVisible(A) {
595
+ this._boxHelper.visible = A;
596
+ }
597
+ /**
598
+ * Sets the visibility of the bounding sphere wireframe helper.
599
+ *
600
+ * @param visible - Whether the sphere helper should be visible
601
+ *
602
+ * @example
603
+ * ```typescript
604
+ * const boundingBox = new BoundingBox(mesh);
605
+ *
606
+ * // Show the bounding sphere wireframe
607
+ * boundingBox.setSphereHelperVisible(true);
608
+ *
609
+ * // Hide the bounding sphere wireframe
610
+ * boundingBox.setSphereHelperVisible(false);
611
+ * ```
612
+ */
613
+ setSphereHelperVisible(A) {
614
+ this._sphereHelper.visible = A;
615
+ }
616
+ }
617
+ class _ extends O {
618
+ constructor() {
619
+ super();
620
+ e(this, "isDIVEModel", !0);
621
+ e(this, "_gltf", null);
622
+ e(this, "_mesh", null);
623
+ e(this, "_material", null);
624
+ e(this, "_assetLoader", null);
625
+ this.name = "DIVEModel", this.userData.isDIVEModel = !0;
626
+ }
627
+ async _getAssetLoader() {
628
+ return this._assetLoader || (this._assetLoader = new (await import("../plugins/assetloader/index.mjs")).AssetLoader()), this._assetLoader;
629
+ }
630
+ async setFromURL(A) {
631
+ const t = await (await this._getAssetLoader()).load(A);
632
+ return this.setFromGLTF(t), import("../plugins/state/index.mjs").then(({ State: o }) => {
633
+ var s;
634
+ (s = o.get(this.userData.id)) == null || s.performAction("MODEL_LOADED", {
635
+ id: this.userData.id
636
+ });
637
+ }), this;
638
+ }
639
+ setFromGLTF(A) {
640
+ this.clear(), this._boundingBox.makeEmpty();
641
+ let i = null;
642
+ return A.traverse((t) => {
643
+ !i && t.userData.isDIVEModel && (i = t), t.castShadow = !0, t.receiveShadow = !0, t.layers.mask = this.layers.mask, this._boundingBox.expandByObject(t), !this._mesh && "isMesh" in t && (this._mesh = t, this._material ? this._mesh.material = this._material : this._material = t.material);
644
+ }), i || (i = A), this.position.copy(i.position), this.quaternion.copy(i.quaternion), this.scale.copy(i.scale), this.add(...i.children), this.animations = A.animations, this;
645
+ }
646
+ setMaterial(A) {
647
+ this._material || (this._material = new y()), A.vertexColors !== void 0 && (this._material.vertexColors = A.vertexColors), A.color !== void 0 && this._material.color.set(A.color), A.map !== void 0 && (this._material.map = A.map), A.normalMap !== void 0 && (this._material.normalMap = A.normalMap), A.roughness !== void 0 && (this._material.roughness = A.roughness), A.roughnessMap !== void 0 && (this._material.roughnessMap = A.roughnessMap, this._material.roughnessMap && (this._material.roughness = 1)), A.metalness !== void 0 && (this._material.metalness = A.metalness), A.metalnessMap !== void 0 && (this._material.metalnessMap = A.metalnessMap, this._material.metalnessMap && (this._material.metalness = 1)), this._mesh && (this._mesh.material = this._material);
648
+ }
649
+ placeOnFloor() {
650
+ this.updateWorldMatrix(!0, !0);
651
+ const A = this.getWorldPosition(this._positionWorldBuffer), i = A.clone(), t = new I();
652
+ this.children.forEach((s) => {
653
+ s instanceof d || t.expandByObject(s, !0);
654
+ });
655
+ const o = -t.min.y;
656
+ Math.abs(o) < 1e-9 || (A.y += o, A.y !== i.y && (this.setPosition(A), import("../plugins/state/index.mjs").then(({ State: s }) => {
657
+ var f;
658
+ (f = s.get(this.userData.id)) == null || f.performAction("UPDATE_OBJECT", {
659
+ id: this.userData.id,
660
+ position: A,
661
+ rotation: this.rotation,
662
+ scale: this.scale
663
+ });
664
+ }), this.onMove()));
665
+ }
666
+ dropIt() {
667
+ if (!this.parent) {
668
+ console.warn(
669
+ "DIVEModel: dropIt() called on a model that is not in the scene.",
670
+ this
671
+ );
672
+ return;
673
+ }
674
+ const A = this.getWorldPosition(this._positionWorldBuffer), i = A.clone(), t = new I();
675
+ this.children.forEach((r) => {
676
+ r instanceof d || t.expandByObject(r, !0);
677
+ });
678
+ const o = t.getCenter(new h());
679
+ o.y = t.min.y;
680
+ const s = new wA(o, new h(0, -1, 0));
681
+ s.layers.mask = P;
682
+ const f = s.intersectObjects(
683
+ S(this).root.children,
684
+ !0
685
+ );
686
+ if (f.length > 0) {
687
+ const r = f[0].object, m = new I().setFromObject(r).max.y - t.min.y;
688
+ if (Math.abs(m) < 1e-9 || (A.y += m, A.y === i.y)) return;
689
+ this.setPosition(A), import("../plugins/state/index.mjs").then(({ State: l }) => {
690
+ var p;
691
+ (p = l.get(this.userData.id)) == null || p.performAction("UPDATE_OBJECT", {
692
+ id: this.userData.id,
693
+ position: A,
694
+ rotation: this.rotation,
695
+ scale: this.scale
696
+ });
697
+ }), this.onMove();
698
+ } else
699
+ this.placeOnFloor();
700
+ }
701
+ }
702
+ class WA extends _ {
703
+ constructor() {
704
+ super();
705
+ e(this, "isDIVEPrimitive", !0);
706
+ e(this, "_mesh");
707
+ e(this, "_material");
708
+ this._mesh = new u(), this._mesh.name = "PrimitiveMesh", this._mesh.layers.mask = P, this._mesh.castShadow = !0, this._mesh.receiveShadow = !0, this.add(this._mesh), this._material = new y(), this._mesh.material = this._material;
709
+ }
710
+ setGeometry(A) {
711
+ const i = this.assembleGeometry(A);
712
+ i && (i.computeVertexNormals(), i.computeBoundingBox(), i.computeBoundingSphere(), this._mesh.geometry = i, this._boundingBox.setFromObject(this._mesh));
713
+ }
714
+ assembleGeometry(A) {
715
+ switch (this._material.flatShading = !1, A.name.toLowerCase()) {
716
+ case "cylinder":
717
+ return this.createCylinderGeometry(A);
718
+ case "sphere":
719
+ return this.createSphereGeometry(A);
720
+ case "pyramid":
721
+ return this._material.flatShading = !0, this.createPyramidGeometry(A);
722
+ case "cube":
723
+ case "box":
724
+ return this.createBoxGeometry(A);
725
+ case "cone":
726
+ return this.createConeGeometry(A);
727
+ case "wall":
728
+ return this.createWallGeometry(A);
729
+ case "plane":
730
+ return this.createPlaneGeometry(A);
731
+ default:
732
+ return console.warn(
733
+ "DIVEPrimitive.assembleGeometry: Invalid geometry type:",
734
+ A.name.toLowerCase()
735
+ ), null;
736
+ }
737
+ }
738
+ createCylinderGeometry(A) {
739
+ const i = new GA(
740
+ A.width / 2,
741
+ A.width / 2,
742
+ A.height,
743
+ 64
744
+ );
745
+ return i.translate(0, A.height / 2, 0), i;
746
+ }
747
+ createSphereGeometry(A) {
748
+ return new v(A.width / 2, 256, 256);
749
+ }
750
+ createPyramidGeometry(A) {
751
+ const i = new Float32Array([
752
+ -A.width / 2,
753
+ 0,
754
+ -A.depth / 2,
755
+ // 0
756
+ A.width / 2,
757
+ 0,
758
+ -A.depth / 2,
759
+ // 1
760
+ A.width / 2,
761
+ 0,
762
+ A.depth / 2,
763
+ // 2
764
+ -A.width / 2,
765
+ 0,
766
+ A.depth / 2,
767
+ // 3
768
+ 0,
769
+ A.height,
770
+ 0
771
+ ]), t = new Uint16Array([
772
+ 0,
773
+ 1,
774
+ 2,
775
+ 0,
776
+ 2,
777
+ 3,
778
+ 0,
779
+ 4,
780
+ 1,
781
+ 1,
782
+ 4,
783
+ 2,
784
+ 2,
785
+ 4,
786
+ 3,
787
+ 3,
788
+ 4,
789
+ 0
790
+ ]), o = new k();
791
+ return o.setAttribute(
792
+ "position",
793
+ new X(i, 3)
794
+ ), o.setIndex(new X(t, 1)), o;
795
+ }
796
+ createBoxGeometry(A) {
797
+ const i = new H(
798
+ A.width,
799
+ A.height,
800
+ A.depth
801
+ );
802
+ return i.translate(0, A.height / 2, 0), i;
803
+ }
804
+ createConeGeometry(A) {
805
+ const i = new DA(A.width / 2, A.height, 256);
806
+ return i.translate(0, A.height / 2, 0), i;
807
+ }
808
+ createWallGeometry(A) {
809
+ const i = new H(
810
+ A.width,
811
+ A.height,
812
+ A.depth || 0.05,
813
+ 16
814
+ );
815
+ return i.translate(0, A.height / 2, 0), i;
816
+ }
817
+ createPlaneGeometry(A) {
818
+ const i = new H(
819
+ A.width,
820
+ A.height,
821
+ A.depth
822
+ );
823
+ return i.translate(0, A.height / 2, 0), i;
824
+ }
825
+ }
826
+ class NA extends O {
827
+ // lines to children
828
+ constructor() {
829
+ super();
830
+ e(this, "isDIVEGroup", !0);
831
+ e(this, "_members");
832
+ e(this, "_lines");
833
+ this.name = "DIVEGroup", this._members = [], this._lines = [];
834
+ }
835
+ // children objects
836
+ get members() {
837
+ return this._members;
838
+ }
839
+ setPosition(A) {
840
+ super.setPosition(A), this._members.forEach((i) => {
841
+ "isDIVENode" in i && i.onMove();
842
+ });
843
+ }
844
+ setLinesVisibility(A, i) {
845
+ if (!i) {
846
+ this._lines.forEach((o) => {
847
+ o.visible = A;
848
+ });
849
+ return;
850
+ }
851
+ const t = this._members.indexOf(i);
852
+ t !== -1 && (this._lines[t].visible = A);
853
+ }
854
+ attach(A) {
855
+ if (this._members.includes(A))
856
+ return this;
857
+ const i = this.createLine();
858
+ return this.add(i), this._lines.push(i), super.attach(A), this._members.push(A), this._updateLineTo(i, A), this.setLinesVisibility(!0, A), this;
859
+ }
860
+ /**
861
+ * Removes an object from the group.
862
+ * @param object - The object to remove.
863
+ * @returns The group instance.
864
+ */
865
+ remove(A) {
866
+ const i = this._members.indexOf(A);
867
+ if (i === -1)
868
+ return this;
869
+ const t = this._lines[i];
870
+ return super.remove(t), this._lines.splice(i, 1), super.remove(A), this._members.splice(i, 1), this;
871
+ }
872
+ updateLineTo(A) {
873
+ const i = this._members.indexOf(A);
874
+ i !== -1 && this._updateLineTo(this._lines[i], A);
875
+ }
876
+ /**
877
+ * Creates a line for visualization.
878
+ */
879
+ createLine() {
880
+ const A = new k(), i = new mA({
881
+ color: 6710886,
882
+ dashSize: 0.05,
883
+ gapSize: 0.025
884
+ }), t = new pA(A, i);
885
+ return t.visible = !1, t;
886
+ }
887
+ /**
888
+ * Updates a line to the object.
889
+ */
890
+ _updateLineTo(A, i) {
891
+ const t = [
892
+ new h(0, 0, 0),
893
+ i.position.clone()
894
+ ];
895
+ A.geometry.setFromPoints(t), A.computeLineDistances();
896
+ }
897
+ // public setBoundingBoxVisibility(visible: boolean): void {
898
+ // this._boxMesh.visible = visible;
899
+ // }
900
+ // /**
901
+ // * Recalculates the position of the group based on it's bounding box.
902
+ // * Children's world positions are kept.
903
+ // */
904
+ // private recalculatePosition(): void {
905
+ // // store all children's world positions
906
+ // const childrensWorldPositions: Vector3[] = this.children.map((child) => child.getWorldPosition(new Vector3()));
907
+ // // calculate new center and set it as the group's position
908
+ // const bbcenter = this.updateBB();
909
+ // this.position.copy(bbcenter);
910
+ // // set childrens's positions so their world positions are kept
911
+ // this.children.forEach((child, i) => {
912
+ // if (child.uuid === this._boxMesh.uuid) return;
913
+ // child.position.copy(this.worldToLocal(childrensWorldPositions[i]));
914
+ // });
915
+ // DIVECommunication.get(this.userData.id)?.performAction('UPDATE_OBJECT', { id: this.userData.id, position: this.position });
916
+ // }
917
+ // /**
918
+ // * Updates the bounding box of the group.
919
+ // * @returns {Vector3} The new center of the bounding box.
920
+ // */
921
+ // private updateBB(): Vector3 {
922
+ // this._boundingBox.makeEmpty();
923
+ // if (this.children.length === 1) {
924
+ // // because we always have the box mesh as 1 child
925
+ // return this.position.clone();
926
+ // }
927
+ // this.children.forEach((child) => {
928
+ // if (child.uuid === this._boxMesh.uuid) return;
929
+ // this._boundingBox.expandByObject(child);
930
+ // });
931
+ // return this._boundingBox.getCenter(new Vector3());
932
+ // }
933
+ // private updateBoxMesh(): void {
934
+ // if (this.children.length === 1) {
935
+ // // because we always have the box mesh as 1 child
936
+ // this._boxMesh.visible = false;
937
+ // return;
938
+ // }
939
+ // this._boxMesh.quaternion.copy(this.quaternion.clone().invert());
940
+ // this._boxMesh.scale.set(1 / this.scale.x, 1 / this.scale.y, 1 / this.scale.z);
941
+ // this._boxMesh.geometry = new BoxGeometry(this._boundingBox.max.x - this._boundingBox.min.x, this._boundingBox.max.y - this._boundingBox.min.y, this._boundingBox.max.z - this._boundingBox.min.z);
942
+ // this._boxMesh.visible = true;
943
+ // }
944
+ }
945
+ class kA extends u {
946
+ constructor() {
947
+ const A = new x(1, 1);
948
+ A.scale(1e3, 1e3, 1), A.rotateX(-Math.PI / 2);
949
+ const i = new y({
950
+ color: new C(16777215),
951
+ side: N
952
+ });
953
+ super(A, i);
954
+ e(this, "isDIVEFloor", !0);
955
+ this.name = "Floor", this.layers.mask = P, this.receiveShadow = !0;
956
+ }
957
+ setVisibility(A) {
958
+ this.visible = A;
959
+ }
960
+ setColor(A) {
961
+ this.material.color = new C(A);
962
+ }
963
+ }
964
+ class xA extends w {
965
+ constructor() {
966
+ super();
967
+ e(this, "isDIVERoot", !0);
968
+ e(this, "_floor");
969
+ this.name = "Root", this._floor = new kA(), this.add(this._floor);
970
+ }
971
+ get floor() {
972
+ return this._floor;
973
+ }
974
+ computeSceneBB() {
975
+ const A = new I();
976
+ return this.children.forEach((i) => {
977
+ "isDIVEFloor" in i || i.traverse((t) => {
978
+ "isObject3D" in t && A.expandByObject(t);
979
+ });
980
+ }), A;
981
+ }
982
+ getSceneObject(A) {
983
+ let i;
984
+ return this.traverse((t) => {
985
+ i || t.userData.id === A.id && (i = t);
986
+ }), i;
987
+ }
988
+ addSceneObject(A) {
989
+ let i = this.getSceneObject(A);
990
+ if (i)
991
+ return console.warn(
992
+ `DIVERoot.addSceneObject: Scene object with id ${A.id} already exists`
993
+ ), i;
994
+ switch (A.entityType) {
995
+ case "pov":
996
+ break;
997
+ case "light": {
998
+ switch (A.type) {
999
+ case "scene": {
1000
+ i = new QA();
1001
+ break;
1002
+ }
1003
+ case "ambient": {
1004
+ i = new ZA();
1005
+ break;
1006
+ }
1007
+ case "point": {
1008
+ i = new EA();
1009
+ break;
1010
+ }
1011
+ default:
1012
+ throw new Error(
1013
+ `DIVERoot.addSceneObject: Unknown light type: ${A.type}`
1014
+ );
1015
+ }
1016
+ i.name = A.name, i.userData.id = A.id, this.add(i), this._updateLight(i, A);
1017
+ break;
1018
+ }
1019
+ case "model": {
1020
+ i = new _(), i.name = A.name, i.userData.id = A.id, i.userData.uri = A.uri, this.add(i), this._updateModel(i, A);
1021
+ break;
1022
+ }
1023
+ case "primitive": {
1024
+ i = new WA(), i.name = A.name, i.userData.id = A.id, this.add(i), this._updatePrimitive(i, A);
1025
+ break;
1026
+ }
1027
+ case "group": {
1028
+ i = new NA(), i.name = A.name, i.userData.id = A.id, this.add(i), this._updateGroup(i, A);
1029
+ break;
1030
+ }
1031
+ default:
1032
+ throw new Error(
1033
+ `DIVERoot.addSceneObject: Unknown entity type: ${A.entityType}`
1034
+ );
1035
+ }
1036
+ return i;
1037
+ }
1038
+ updateSceneObject(A) {
1039
+ const i = this.getSceneObject(A);
1040
+ if (!i) {
1041
+ console.warn(
1042
+ `DIVERoot.updateSceneObject: Scene object with id ${A.id} does not exist`
1043
+ );
1044
+ return;
1045
+ }
1046
+ switch (A.entityType) {
1047
+ case "pov":
1048
+ break;
1049
+ case "light": {
1050
+ this._updateLight(i, A);
1051
+ break;
1052
+ }
1053
+ case "model": {
1054
+ this._updateModel(i, A);
1055
+ break;
1056
+ }
1057
+ case "primitive": {
1058
+ this._updatePrimitive(i, A);
1059
+ break;
1060
+ }
1061
+ case "group": {
1062
+ this._updateGroup(i, A);
1063
+ break;
1064
+ }
1065
+ default:
1066
+ throw new Error(
1067
+ `DIVERoot.updateSceneObject: Unknown entity type: ${A.entityType}`
1068
+ );
1069
+ }
1070
+ }
1071
+ deleteSceneObject(A) {
1072
+ const i = this.getSceneObject(A);
1073
+ if (!i) {
1074
+ console.warn(
1075
+ `DIVERoot.deleteSceneObject: Object with id ${A.id} not found`
1076
+ );
1077
+ return;
1078
+ }
1079
+ switch (A.entityType) {
1080
+ case "pov":
1081
+ break;
1082
+ case "light": {
1083
+ this._deleteLight(i);
1084
+ break;
1085
+ }
1086
+ case "model": {
1087
+ this._deleteModel(i);
1088
+ break;
1089
+ }
1090
+ case "primitive": {
1091
+ this._deletePrimitive(i);
1092
+ break;
1093
+ }
1094
+ case "group": {
1095
+ this._deleteGroup(i);
1096
+ break;
1097
+ }
1098
+ default:
1099
+ throw new Error(
1100
+ `DIVERoot.deleteSceneObject: Unknown entity type: ${A.entityType}`
1101
+ );
1102
+ }
1103
+ }
1104
+ _updateLight(A, i) {
1105
+ i.name !== void 0 && i.name !== null && (A.name = i.name), i.position !== void 0 && i.position !== null && A.position.set(
1106
+ i.position.x,
1107
+ i.position.y,
1108
+ i.position.z
1109
+ ), i.intensity !== void 0 && i.intensity !== null && A.setIntensity(i.intensity), i.enabled !== void 0 && i.enabled !== null && A.setEnabled(i.enabled), i.color !== void 0 && i.color !== null && A.setColor(new C(i.color)), i.visible !== void 0 && i.visible !== null && (A.visible = i.visible), i.parentId !== void 0 && this._setParent({ ...i, parentId: i.parentId });
1110
+ }
1111
+ _updateModel(A, i) {
1112
+ i.uri !== void 0 && A.setFromURL(i.uri), i.name !== void 0 && (A.name = i.name), i.position !== void 0 && A.setPosition(i.position), i.rotation !== void 0 && A.setRotation(i.rotation), i.scale !== void 0 && A.setScale(i.scale), i.visible !== void 0 && A.setVisibility(i.visible), i.material !== void 0 && A.setMaterial(i.material), i.parentId !== void 0 && this._setParent({ ...i, parentId: i.parentId });
1113
+ }
1114
+ _updatePrimitive(A, i) {
1115
+ i.name !== void 0 && (A.name = i.name), i.geometry !== void 0 && A.setGeometry(i.geometry), i.position !== void 0 && A.setPosition(i.position), i.rotation !== void 0 && A.setRotation(i.rotation), i.scale !== void 0 && A.setScale(i.scale), i.visible !== void 0 && A.setVisibility(i.visible), i.material !== void 0 && A.setMaterial(i.material), i.parentId !== void 0 && this._setParent({ ...i, parentId: i.parentId });
1116
+ }
1117
+ _updateGroup(A, i) {
1118
+ i.name !== void 0 && (A.name = i.name), i.position !== void 0 && A.setPosition(i.position), i.rotation !== void 0 && A.setRotation(i.rotation), i.scale !== void 0 && A.setScale(i.scale), i.visible !== void 0 && A.setVisibility(i.visible), i.bbVisible !== void 0 && A.setLinesVisibility(i.bbVisible), i.parentId !== void 0 && this._setParent({ ...i, parentId: i.parentId });
1119
+ }
1120
+ _deleteLight(A) {
1121
+ this._detachTransformControls(A), A.parent.remove(A);
1122
+ }
1123
+ _deleteModel(A) {
1124
+ this._detachTransformControls(A), A.parent.remove(A);
1125
+ }
1126
+ _deletePrimitive(A) {
1127
+ this._detachTransformControls(A), A.parent.remove(A);
1128
+ }
1129
+ _deleteGroup(A) {
1130
+ this._detachTransformControls(A);
1131
+ for (let i = A.members.length - 1; i >= 0; i--)
1132
+ this.attach(A.members[i]);
1133
+ A.parent.remove(A);
1134
+ }
1135
+ _setParent(A) {
1136
+ const i = this.getSceneObject(A);
1137
+ if (A.parentId !== null) {
1138
+ const t = this.getSceneObject({
1139
+ id: A.parentId,
1140
+ entityType: A.entityType
1141
+ });
1142
+ if (!t) return;
1143
+ t.attach(i);
1144
+ } else
1145
+ this.attach(i);
1146
+ }
1147
+ _detachTransformControls(A) {
1148
+ this._findScene(A).children.find((i) => {
1149
+ const t = i;
1150
+ if (t.isTransformControlsRoot && t.controls)
1151
+ return t.controls.detach(), !0;
1152
+ const o = i;
1153
+ return o.isTransformControls && o.detach ? (o.detach(), !0) : !1;
1154
+ });
1155
+ }
1156
+ _findScene(A) {
1157
+ return A.parent !== null ? this._findScene(A.parent) : A;
1158
+ }
1159
+ }
1160
+ const JA = "#dddddd", TA = "#888888", q = 50, SA = 1, _A = 10;
1161
+ class E extends w {
1162
+ constructor(A) {
1163
+ super();
1164
+ e(this, "_mesh");
1165
+ e(this, "_material");
1166
+ e(this, "_uniforms");
1167
+ e(this, "_gridSize");
1168
+ this.name = "Grid", this._gridSize = (A == null ? void 0 : A.gridSize) ?? SA;
1169
+ const i = (A == null ? void 0 : A.majorLineEvery) ?? _A, t = new x(q, q);
1170
+ t.rotateX(-Math.PI / 2), this._uniforms = {
1171
+ uGridSize: G(this._gridSize),
1172
+ uMajorLineEvery: G(i),
1173
+ uMinorLineColor: G(new C(JA)),
1174
+ uMajorLineColor: G(new C(TA)),
1175
+ uFadeDistance: G(q / 2)
1176
+ }, this._material = new KA({
1177
+ transparent: !0,
1178
+ depthWrite: !1,
1179
+ side: vA,
1180
+ outputNode: new yA(this._uniforms)
1181
+ }), this._mesh = new u(t, this._material), this._mesh.layers.mask = dA, this._mesh.frustumCulled = !1, this._mesh.renderOrder = -1, this._mesh.onBeforeRender = (o, s, f) => {
1182
+ const r = this._gridSize;
1183
+ this._mesh.position.x = Math.round(f.position.x / r) * r, this._mesh.position.z = Math.round(f.position.z / r) * r, this._mesh.updateMatrixWorld(!0);
1184
+ }, this.add(this._mesh);
1185
+ }
1186
+ setVisibility(A) {
1187
+ this.visible = A;
1188
+ }
1189
+ setGridSize(A) {
1190
+ this._gridSize = A, this._uniforms.uGridSize.value = A;
1191
+ }
1192
+ setMajorLineEvery(A) {
1193
+ this._uniforms.uMajorLineEvery.value = A;
1194
+ }
1195
+ dispose() {
1196
+ this._mesh.geometry.dispose(), this._material.dispose();
1197
+ }
1198
+ }
1199
+ const V = {
1200
+ displayFloor: !1,
1201
+ displayGrid: !1,
1202
+ gridSize: 1,
1203
+ gridMajorLineEvery: 5,
1204
+ backgroundColor: "transparent"
1205
+ };
1206
+ class VA extends W {
1207
+ constructor(A) {
1208
+ super();
1209
+ e(this, "isDIVEScene", !0);
1210
+ e(this, "_settings");
1211
+ e(this, "_root");
1212
+ e(this, "_grid", null);
1213
+ this._settings = { ...V, ...A ?? {} }, this.setBackground(this._settings.backgroundColor), this._root = new xA(), this._root.floor.setVisibility(this._settings.displayFloor), this.add(this._root), this._settings.displayGrid && (this._grid = new E({
1214
+ gridSize: this._settings.gridSize,
1215
+ majorLineEvery: this._settings.gridMajorLineEvery
1216
+ }), this._grid.setVisibility(this._settings.displayGrid), this.add(this._grid));
1217
+ }
1218
+ get root() {
1219
+ return this._root;
1220
+ }
1221
+ get grid() {
1222
+ return this._grid || (this._grid = new E({
1223
+ gridSize: this._settings.gridSize,
1224
+ majorLineEvery: this._settings.gridMajorLineEvery
1225
+ }), this._grid.setVisibility(this._settings.displayGrid), this.add(this._grid)), this._grid;
1226
+ }
1227
+ setBackground(A) {
1228
+ A === "transparent" ? this.background = null : typeof A == "string" || typeof A == "number" ? this.background = new C(A) : this.background = A;
1229
+ }
1230
+ computeSceneBB() {
1231
+ return this._root.computeSceneBB();
1232
+ }
1233
+ dispose() {
1234
+ this.remove(this._root), this._grid && this.remove(this._grid);
1235
+ }
1236
+ }
1237
+ const RA = {
1238
+ enableDamping: !0,
1239
+ dampingFactor: 0.05,
1240
+ enabled: !0,
1241
+ target: new h(),
1242
+ minDistance: 0,
1243
+ maxDistance: 1 / 0,
1244
+ minZoom: 0,
1245
+ maxZoom: 1 / 0,
1246
+ minPolarAngle: 0,
1247
+ maxPolarAngle: Math.PI,
1248
+ minAzimuthAngle: -1 / 0,
1249
+ maxAzimuthAngle: 1 / 0,
1250
+ enableZoom: !0,
1251
+ zoomSpeed: 1,
1252
+ enableRotate: !0,
1253
+ rotateSpeed: 1,
1254
+ enablePan: !0,
1255
+ panSpeed: 1,
1256
+ screenSpacePanning: !0,
1257
+ keyPanSpeed: 7,
1258
+ autoRotate: !1,
1259
+ autoRotateSpeed: 2,
1260
+ keys: {
1261
+ LEFT: "ArrowLeft",
1262
+ UP: "ArrowUp",
1263
+ RIGHT: "ArrowRight",
1264
+ BOTTOM: "ArrowDown"
1265
+ },
1266
+ mouseButtons: {
1267
+ LEFT: B.ROTATE,
1268
+ MIDDLE: B.DOLLY,
1269
+ RIGHT: B.PAN
1270
+ },
1271
+ touches: {
1272
+ ONE: c.ROTATE,
1273
+ TWO: c.DOLLY_PAN
1274
+ }
1275
+ }, D = class D extends lA {
1276
+ constructor(A, i, t) {
1277
+ super();
1278
+ // public API
1279
+ e(this, "object");
1280
+ e(this, "domElements");
1281
+ e(this, "enabled", !0);
1282
+ e(this, "target", new h());
1283
+ e(this, "minDistance", 0);
1284
+ e(this, "maxDistance", 1 / 0);
1285
+ e(this, "minZoom", 0);
1286
+ e(this, "maxZoom", 1 / 0);
1287
+ e(this, "minPolarAngle", 0);
1288
+ // radians
1289
+ e(this, "maxPolarAngle", Math.PI);
1290
+ // radians
1291
+ e(this, "minAzimuthAngle", -1 / 0);
1292
+ // radians
1293
+ e(this, "maxAzimuthAngle", 1 / 0);
1294
+ // radians
1295
+ e(this, "enableDamping", !0);
1296
+ e(this, "dampingFactor", 0.05);
1297
+ e(this, "enableZoom", !0);
1298
+ e(this, "zoomSpeed", 1);
1299
+ e(this, "enableRotate", !0);
1300
+ e(this, "rotateSpeed", 1);
1301
+ e(this, "enablePan", !0);
1302
+ e(this, "panSpeed", 1);
1303
+ e(this, "screenSpacePanning", !0);
1304
+ e(this, "keyPanSpeed", 7);
1305
+ e(this, "autoRotate", !1);
1306
+ e(this, "autoRotateSpeed", 2);
1307
+ e(this, "keys", {
1308
+ LEFT: "ArrowLeft",
1309
+ UP: "ArrowUp",
1310
+ RIGHT: "ArrowRight",
1311
+ BOTTOM: "ArrowDown"
1312
+ });
1313
+ e(this, "mouseButtons", {
1314
+ LEFT: B.ROTATE,
1315
+ MIDDLE: B.DOLLY,
1316
+ RIGHT: B.PAN
1317
+ });
1318
+ e(this, "touches", { ONE: c.ROTATE, TWO: c.DOLLY_PAN });
1319
+ e(this, "target0");
1320
+ e(this, "position0");
1321
+ e(this, "zoom0");
1322
+ e(this, "uuid", b.generateUUID());
1323
+ // private state
1324
+ e(this, "state", -1);
1325
+ e(this, "EPS", 1e-6);
1326
+ e(this, "spherical", new j());
1327
+ e(this, "sphericalDelta", new j());
1328
+ e(this, "scale", 1);
1329
+ e(this, "panOffset", new h());
1330
+ e(this, "zoomChanged", !1);
1331
+ e(this, "rotateStart", new a());
1332
+ e(this, "rotateEnd", new a());
1333
+ e(this, "rotateDelta", new a());
1334
+ e(this, "panStart", new a());
1335
+ e(this, "panEnd", new a());
1336
+ e(this, "panDelta", new a());
1337
+ e(this, "dollyStart", new a());
1338
+ e(this, "dollyEnd", new a());
1339
+ e(this, "dollyDelta", new a());
1340
+ e(this, "pointers", []);
1341
+ e(this, "pointerPositions", {});
1342
+ // for update() function
1343
+ e(this, "offset", new h());
1344
+ e(this, "quat");
1345
+ e(this, "quatInverse");
1346
+ e(this, "lastPosition", new h());
1347
+ e(this, "lastQuaternion", new Z());
1348
+ e(this, "lastTarget", new h());
1349
+ e(this, "panLeft", (() => {
1350
+ const A = new h();
1351
+ return (i, t) => {
1352
+ A.setFromMatrixColumn(t, 0), A.multiplyScalar(-i), this.panOffset.add(A);
1353
+ };
1354
+ })());
1355
+ e(this, "panUp", (() => {
1356
+ const A = new h();
1357
+ return (i, t) => {
1358
+ this.screenSpacePanning === !0 ? A.setFromMatrixColumn(t, 1) : (A.setFromMatrixColumn(t, 0), A.crossVectors(this.object.up, A)), A.multiplyScalar(i), this.panOffset.add(A);
1359
+ };
1360
+ })());
1361
+ e(this, "onMouseDown", (A) => {
1362
+ let i;
1363
+ switch (A.button) {
1364
+ case 0:
1365
+ i = this.mouseButtons.LEFT;
1366
+ break;
1367
+ case 1:
1368
+ i = this.mouseButtons.MIDDLE;
1369
+ break;
1370
+ case 2:
1371
+ i = this.mouseButtons.RIGHT;
1372
+ break;
1373
+ default:
1374
+ i = -1;
1375
+ }
1376
+ switch (i) {
1377
+ case B.DOLLY:
1378
+ if (this.enableZoom === !1) return;
1379
+ this.handleMouseDownDolly(A), this.state = 1;
1380
+ break;
1381
+ case B.ROTATE:
1382
+ if (A.ctrlKey || A.metaKey || A.shiftKey) {
1383
+ if (this.enablePan === !1) return;
1384
+ this.handleMouseDownPan(A), this.state = 2;
1385
+ } else {
1386
+ if (this.enableRotate === !1) return;
1387
+ this.handleMouseDownRotate(A), this.state = 0;
1388
+ }
1389
+ break;
1390
+ case B.PAN:
1391
+ if (A.ctrlKey || A.metaKey || A.shiftKey) {
1392
+ if (this.enableRotate === !1) return;
1393
+ this.handleMouseDownRotate(A), this.state = 0;
1394
+ } else {
1395
+ if (this.enablePan === !1) return;
1396
+ this.handleMouseDownPan(A), this.state = 2;
1397
+ }
1398
+ break;
1399
+ default:
1400
+ this.state = -1;
1401
+ }
1402
+ this.state !== -1 && this.dispatchEvent({ type: "start" });
1403
+ });
1404
+ e(this, "onMouseMove", (A) => {
1405
+ if (this.enabled !== !1)
1406
+ switch (this.state) {
1407
+ case 0:
1408
+ if (this.enableRotate === !1) return;
1409
+ this.handleMouseMoveRotate(A);
1410
+ break;
1411
+ case 1:
1412
+ if (this.enableZoom === !1) return;
1413
+ this.handleMouseMoveDolly(A);
1414
+ break;
1415
+ case 2:
1416
+ if (this.enablePan === !1) return;
1417
+ this.handleMouseMovePan(A);
1418
+ break;
1419
+ }
1420
+ });
1421
+ e(this, "onMouseWheel", (A) => {
1422
+ this.enabled === !1 || this.enableZoom === !1 || this.state !== -1 || (A.preventDefault(), this.dispatchEvent({ type: "start" }), this.handleMouseWheel(A), this.dispatchEvent({ type: "end" }));
1423
+ });
1424
+ e(this, "onKeyDown", (A) => {
1425
+ this.enabled === !1 || this.enablePan === !1 || this.handleKeyDown(A);
1426
+ });
1427
+ e(this, "onTouchStart", (A) => {
1428
+ switch (this.trackPointer(A), this.pointers.length) {
1429
+ case 1:
1430
+ switch (this.touches.ONE) {
1431
+ case c.ROTATE:
1432
+ if (this.enableRotate === !1) return;
1433
+ this.handleTouchStartRotate(A), this.state = 3;
1434
+ break;
1435
+ case c.PAN:
1436
+ if (this.enablePan === !1) return;
1437
+ this.handleTouchStartPan(A), this.state = 4;
1438
+ break;
1439
+ default:
1440
+ this.state = -1;
1441
+ }
1442
+ break;
1443
+ case 2:
1444
+ switch (this.touches.TWO) {
1445
+ case c.DOLLY_PAN:
1446
+ if (this.enableZoom === !1 && this.enablePan === !1)
1447
+ return;
1448
+ this.handleTouchStartDollyPan(A), this.state = 5;
1449
+ break;
1450
+ case c.DOLLY_ROTATE:
1451
+ if (this.enableZoom === !1 && this.enableRotate === !1)
1452
+ return;
1453
+ this.handleTouchStartDollyRotate(A), this.state = 6;
1454
+ break;
1455
+ default:
1456
+ this.state = -1;
1457
+ }
1458
+ break;
1459
+ default:
1460
+ this.state = -1;
1461
+ }
1462
+ this.state !== -1 && this.dispatchEvent({ type: "start" });
1463
+ });
1464
+ e(this, "onTouchMove", (A) => {
1465
+ switch (this.trackPointer(A), this.state) {
1466
+ case 3:
1467
+ if (this.enableRotate === !1) return;
1468
+ this.handleTouchMoveRotate(A), this.update();
1469
+ break;
1470
+ case 4:
1471
+ if (this.enablePan === !1) return;
1472
+ this.handleTouchMovePan(A), this.update();
1473
+ break;
1474
+ case 5:
1475
+ if (this.enableZoom === !1 && this.enablePan === !1)
1476
+ return;
1477
+ this.handleTouchMoveDollyPan(A), this.update();
1478
+ break;
1479
+ case 6:
1480
+ if (this.enableZoom === !1 && this.enableRotate === !1)
1481
+ return;
1482
+ this.handleTouchMoveDollyRotate(A), this.update();
1483
+ break;
1484
+ default:
1485
+ this.state = -1;
1486
+ }
1487
+ });
1488
+ e(this, "onPointerDown", (A) => {
1489
+ if (this.enabled !== !1) {
1490
+ if (this.pointers.length === 0) {
1491
+ const i = A.currentTarget;
1492
+ i.setPointerCapture(A.pointerId), i.addEventListener("pointermove", this.onPointerMove), i.addEventListener("pointerup", this.onPointerUp);
1493
+ }
1494
+ this.isTrackingPointer(A) || (this.addPointer(A), A.pointerType === "touch" ? this.onTouchStart(A) : this.onMouseDown(A));
1495
+ }
1496
+ });
1497
+ e(this, "onPointerMove", (A) => {
1498
+ this.enabled !== !1 && (A.pointerType === "touch" ? this.onTouchMove(A) : this.onMouseMove(A));
1499
+ });
1500
+ e(this, "onPointerUp", (A) => {
1501
+ if (this.removePointer(A), this.pointers.length === 0) {
1502
+ const i = A.currentTarget;
1503
+ i.releasePointerCapture(A.pointerId), i.removeEventListener("pointermove", this.onPointerMove), i.removeEventListener("pointerup", this.onPointerUp), this.dispatchEvent({ type: "end" }), this.state = -1;
1504
+ }
1505
+ });
1506
+ e(this, "onPointerCancel", (A) => {
1507
+ this.removePointer(A);
1508
+ });
1509
+ e(this, "onContextMenu", (A) => {
1510
+ this.enabled !== !1 && A.preventDefault();
1511
+ });
1512
+ this.object = A, this.domElements = Array.isArray(i) ? i : [i], Object.assign(this, t), this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object.zoom, this.quat = new Z().setFromUnitVectors(
1513
+ A.up,
1514
+ new h(0, 1, 0)
1515
+ ), this.quatInverse = this.quat.clone().invert(), this.domElements.forEach((o) => this.addEventListeners(o)), this.update();
1516
+ }
1517
+ get domElement() {
1518
+ return this.domElements[0];
1519
+ }
1520
+ tick() {
1521
+ this.enabled && this.update();
1522
+ }
1523
+ getPolarAngle() {
1524
+ return this.spherical.phi;
1525
+ }
1526
+ getAzimuthalAngle() {
1527
+ return this.spherical.theta;
1528
+ }
1529
+ getDistance() {
1530
+ return this.object.position.distanceTo(this.target);
1531
+ }
1532
+ saveState() {
1533
+ this.target0.copy(this.target), this.position0.copy(this.object.position), this.zoom0 = this.object.zoom;
1534
+ }
1535
+ reset() {
1536
+ this.target.copy(this.target0), this.object.position.copy(this.position0), this.object.zoom = this.zoom0, this.object.updateProjectionMatrix(), this.dispatchEvent({ type: "change" }), this.update(), this.state = -1;
1537
+ }
1538
+ update() {
1539
+ return this.offset.copy(this.object.position).sub(this.target), this.offset.applyQuaternion(this.quat), this.spherical.setFromVector3(this.offset), this.autoRotate && this.state === -1 && this.rotateLeft(this.getAutoRotationAngle()), this.enableDamping ? (this.spherical.theta += this.sphericalDelta.theta * this.dampingFactor, this.spherical.phi += this.sphericalDelta.phi * this.dampingFactor) : (this.spherical.theta += this.sphericalDelta.theta, this.spherical.phi += this.sphericalDelta.phi), this.spherical.theta = Math.max(
1540
+ this.minAzimuthAngle,
1541
+ Math.min(this.maxAzimuthAngle, this.spherical.theta)
1542
+ ), this.spherical.phi = Math.max(
1543
+ this.minPolarAngle,
1544
+ Math.min(this.maxPolarAngle, this.spherical.phi)
1545
+ ), this.spherical.makeSafe(), this.spherical.radius *= this.scale, this.spherical.radius = Math.max(
1546
+ this.minDistance,
1547
+ Math.min(this.maxDistance, this.spherical.radius)
1548
+ ), this.enableDamping === !0 ? this.target.addScaledVector(this.panOffset, this.dampingFactor) : this.target.add(this.panOffset), this.offset.setFromSpherical(this.spherical), this.offset.applyQuaternion(this.quatInverse), this.object.position.copy(this.target).add(this.offset), this.object.lookAt(this.target), this.enableDamping === !0 ? (this.sphericalDelta.theta *= 1 - this.dampingFactor, this.sphericalDelta.phi *= 1 - this.dampingFactor, this.panOffset.multiplyScalar(1 - this.dampingFactor)) : (this.sphericalDelta.set(0, 0, 0), this.panOffset.set(0, 0, 0)), this.scale = 1, this.zoomChanged || this.lastPosition.distanceToSquared(this.object.position) > this.EPS || 8 * (1 - this.lastQuaternion.dot(this.object.quaternion)) > this.EPS || this.lastTarget.distanceToSquared(this.target) > this.EPS ? (this.dispatchEvent({ type: "change" }), this.lastPosition.copy(this.object.position), this.lastQuaternion.copy(this.object.quaternion), this.lastTarget.copy(this.target), this.zoomChanged = !1, !0) : !1;
1549
+ }
1550
+ dispose() {
1551
+ this.domElements.forEach(
1552
+ (A) => this.removeEventListeners(A)
1553
+ ), this.dispatchEvent({ type: "dispose" });
1554
+ }
1555
+ addDomElements(...A) {
1556
+ A.forEach((i) => {
1557
+ this.domElements.includes(i) || (this.domElements.push(i), this.addEventListeners(i));
1558
+ });
1559
+ }
1560
+ removeDomElements(...A) {
1561
+ A.forEach((i) => {
1562
+ const t = this.domElements.indexOf(i);
1563
+ t > -1 && (this.removeEventListeners(i), this.domElements.splice(t, 1));
1564
+ });
1565
+ }
1566
+ setDomElements(...A) {
1567
+ this.removeDomElements(...this.domElements), this.domElements = [], this.addDomElements(...A);
1568
+ }
1569
+ computeEncompassingView(A, i = 0) {
1570
+ const t = A.center, s = A.sphere.radius, f = this.object.fov * (Math.PI / 180), r = this.object.aspect, z = f / 2, M = Math.atan(Math.tan(z) * r), m = s / Math.sin(z), l = s / Math.sin(M), p = Math.max(m, l) * (1 + i), L = this.object.position.clone().sub(this.target).normalize(), R = L.length() > 1e-3 ? L : new h(0, 0, 1);
1571
+ return {
1572
+ position: t.clone().add(R.multiplyScalar(p)),
1573
+ target: t
1574
+ };
1575
+ }
1576
+ focusObject(A, i = 0) {
1577
+ const t = new d(A), o = this.computeEncompassingView(t, i);
1578
+ this.object.position.copy(o.position), this.target.copy(o.target), this.update();
1579
+ }
1580
+ zoomIn(A) {
1581
+ this.dollyIn(Math.pow(0.95, A ?? D.DEFAULT_ZOOM_FACTOR)), this.update();
1582
+ }
1583
+ zoomOut(A) {
1584
+ this.dollyOut(
1585
+ Math.pow(0.95, A ?? D.DEFAULT_ZOOM_FACTOR)
1586
+ ), this.update();
1587
+ }
1588
+ getState() {
1589
+ return {
1590
+ target: this.target.clone(),
1591
+ azimuthalAngle: this.getAzimuthalAngle(),
1592
+ polarAngle: this.getPolarAngle(),
1593
+ distance: this.getDistance(),
1594
+ position: this.object.position.clone(),
1595
+ quaternion: this.object.quaternion.clone()
1596
+ };
1597
+ }
1598
+ setState(A) {
1599
+ this.target.copy(A.target), this.object.position.copy(A.position), this.object.quaternion.copy(A.quaternion), this.update();
1600
+ }
1601
+ //
1602
+ // Private methods
1603
+ //
1604
+ addEventListeners(A) {
1605
+ A.style.touchAction = "none", A.addEventListener("contextmenu", this.onContextMenu), A.addEventListener("pointerdown", this.onPointerDown), A.addEventListener("pointercancel", this.onPointerCancel), A.addEventListener("wheel", this.onMouseWheel, {
1606
+ passive: !1
1607
+ }), A.addEventListener("keydown", this.onKeyDown);
1608
+ }
1609
+ removeEventListeners(A) {
1610
+ A.removeEventListener("contextmenu", this.onContextMenu), A.removeEventListener("pointerdown", this.onPointerDown), A.removeEventListener("pointercancel", this.onPointerCancel), A.removeEventListener("wheel", this.onMouseWheel), A.removeEventListener("keydown", this.onKeyDown), A.removeEventListener("pointermove", this.onPointerMove), A.removeEventListener("pointerup", this.onPointerUp);
1611
+ }
1612
+ getAutoRotationAngle() {
1613
+ return 2 * Math.PI / 60 / 60 * this.autoRotateSpeed;
1614
+ }
1615
+ getZoomScale() {
1616
+ return Math.pow(0.95, this.zoomSpeed);
1617
+ }
1618
+ rotateLeft(A) {
1619
+ this.sphericalDelta.theta -= A;
1620
+ }
1621
+ rotateUp(A) {
1622
+ this.sphericalDelta.phi -= A;
1623
+ }
1624
+ pan(A, i, t) {
1625
+ const o = new h();
1626
+ if ("isPerspectiveCamera" in this.object) {
1627
+ const s = this.object.position;
1628
+ o.copy(s).sub(this.target);
1629
+ let f = o.length();
1630
+ f *= Math.tan(
1631
+ this.object.fov / 2 * Math.PI / 180
1632
+ ), this.panLeft(
1633
+ 2 * A * f / t.clientHeight,
1634
+ this.object.matrix
1635
+ ), this.panUp(
1636
+ 2 * i * f / t.clientHeight,
1637
+ this.object.matrix
1638
+ );
1639
+ } else "isOrthographicCamera" in this.object ? (this.panLeft(
1640
+ A * (this.object.right - this.object.left) / this.object.zoom / t.clientWidth,
1641
+ this.object.matrix
1642
+ ), this.panUp(
1643
+ i * (this.object.top - this.object.bottom) / this.object.zoom / t.clientHeight,
1644
+ this.object.matrix
1645
+ )) : (console.warn(
1646
+ "WARNING: OrbitController encountered an unknown camera type - pan disabled."
1647
+ ), this.enablePan = !1);
1648
+ }
1649
+ dollyIn(A) {
1650
+ "isPerspectiveCamera" in this.object || "isOrthographicCamera" in this.object ? this.scale *= A : (console.warn(
1651
+ "WARNING: OrbitController encountered an unknown camera type - dolly/zoom disabled."
1652
+ ), this.enableZoom = !1);
1653
+ }
1654
+ dollyOut(A) {
1655
+ "isPerspectiveCamera" in this.object || "isOrthographicCamera" in this.object ? this.scale /= A : (console.warn(
1656
+ "WARNING: OrbitController encountered an unknown camera type - dolly/zoom disabled."
1657
+ ), this.enableZoom = !1);
1658
+ }
1659
+ // event callbacks
1660
+ handleMouseDownRotate(A) {
1661
+ this.rotateStart.set(A.clientX, A.clientY);
1662
+ }
1663
+ handleMouseDownDolly(A) {
1664
+ this.dollyStart.set(A.clientX, A.clientY);
1665
+ }
1666
+ handleMouseDownPan(A) {
1667
+ this.panStart.set(A.clientX, A.clientY);
1668
+ }
1669
+ handleMouseMoveRotate(A) {
1670
+ this.rotateEnd.set(A.clientX, A.clientY), this.rotateDelta.subVectors(this.rotateEnd, this.rotateStart).multiplyScalar(this.rotateSpeed);
1671
+ const i = A.currentTarget;
1672
+ this.rotateLeft(
1673
+ 2 * Math.PI * this.rotateDelta.x / i.clientHeight
1674
+ ), this.rotateUp(
1675
+ 2 * Math.PI * this.rotateDelta.y / i.clientHeight
1676
+ ), this.rotateStart.copy(this.rotateEnd), this.update();
1677
+ }
1678
+ handleMouseMoveDolly(A) {
1679
+ this.dollyEnd.set(A.clientX, A.clientY), this.dollyDelta.subVectors(this.dollyEnd, this.dollyStart), this.dollyDelta.y > 0 ? this.dollyIn(this.getZoomScale()) : this.dollyDelta.y < 0 && this.dollyOut(this.getZoomScale()), this.dollyStart.copy(this.dollyEnd), this.update();
1680
+ }
1681
+ handleMouseMovePan(A) {
1682
+ const i = A.currentTarget;
1683
+ this.panEnd.set(A.clientX, A.clientY), this.panDelta.subVectors(this.panEnd, this.panStart).multiplyScalar(this.panSpeed), this.pan(this.panDelta.x, this.panDelta.y, i), this.panStart.copy(this.panEnd), this.update();
1684
+ }
1685
+ handleMouseWheel(A) {
1686
+ A.deltaY < 0 ? this.dollyIn(this.getZoomScale()) : A.deltaY > 0 && this.dollyOut(this.getZoomScale()), this.update();
1687
+ }
1688
+ handleKeyDown(A) {
1689
+ let i = !1;
1690
+ const t = A.currentTarget;
1691
+ switch (A.code) {
1692
+ case this.keys.UP:
1693
+ this.pan(0, this.keyPanSpeed, t), i = !0;
1694
+ break;
1695
+ case this.keys.BOTTOM:
1696
+ this.pan(0, -this.keyPanSpeed, t), i = !0;
1697
+ break;
1698
+ case this.keys.LEFT:
1699
+ this.pan(this.keyPanSpeed, 0, t), i = !0;
1700
+ break;
1701
+ case this.keys.RIGHT:
1702
+ this.pan(-this.keyPanSpeed, 0, t), i = !0;
1703
+ break;
1704
+ }
1705
+ i && (A.preventDefault(), this.update());
1706
+ }
1707
+ handleTouchStartRotate(A) {
1708
+ if (this.pointers.length === 1)
1709
+ this.rotateStart.set(A.pageX, A.pageY);
1710
+ else {
1711
+ const i = this.getSecondPointer(A), t = 0.5 * (A.pageX + i.pageX), o = 0.5 * (A.pageY + i.pageY);
1712
+ this.rotateStart.set(t, o);
1713
+ }
1714
+ }
1715
+ handleTouchStartPan(A) {
1716
+ if (this.pointers.length === 1)
1717
+ this.panStart.set(A.pageX, A.pageY);
1718
+ else {
1719
+ const i = this.getSecondPointer(A), t = 0.5 * (A.pageX + i.pageX), o = 0.5 * (A.pageY + i.pageY);
1720
+ this.panStart.set(t, o);
1721
+ }
1722
+ }
1723
+ handleTouchStartDolly(A) {
1724
+ const i = this.getSecondPointer(A), t = A.pageX - i.pageX, o = A.pageY - i.pageY, s = Math.sqrt(t * t + o * o);
1725
+ this.dollyStart.set(0, s);
1726
+ }
1727
+ handleTouchStartDollyPan(A) {
1728
+ this.enableZoom && this.handleTouchStartDolly(A), this.enablePan && this.handleTouchStartPan(A);
1729
+ }
1730
+ handleTouchStartDollyRotate(A) {
1731
+ this.enableZoom && this.handleTouchStartDolly(A), this.enableRotate && this.handleTouchStartRotate(A);
1732
+ }
1733
+ handleTouchMoveRotate(A) {
1734
+ if (this.pointers.length === 1)
1735
+ this.rotateEnd.set(A.pageX, A.pageY);
1736
+ else {
1737
+ const t = this.getSecondPointer(A), o = 0.5 * (A.pageX + t.pageX), s = 0.5 * (A.pageY + t.pageY);
1738
+ this.rotateEnd.set(o, s);
1739
+ }
1740
+ const i = A.currentTarget;
1741
+ this.rotateDelta.subVectors(this.rotateEnd, this.rotateStart).multiplyScalar(this.rotateSpeed), this.rotateLeft(
1742
+ 2 * Math.PI * this.rotateDelta.x / i.clientHeight
1743
+ ), this.rotateUp(
1744
+ 2 * Math.PI * this.rotateDelta.y / i.clientHeight
1745
+ ), this.rotateStart.copy(this.rotateEnd);
1746
+ }
1747
+ handleTouchMovePan(A) {
1748
+ if (this.pointers.length === 1)
1749
+ this.panEnd.set(A.pageX, A.pageY);
1750
+ else {
1751
+ const t = this.getSecondPointer(A), o = 0.5 * (A.pageX + t.pageX), s = 0.5 * (A.pageY + t.pageY);
1752
+ this.panEnd.set(o, s);
1753
+ }
1754
+ const i = A.currentTarget;
1755
+ this.panDelta.subVectors(this.panEnd, this.panStart).multiplyScalar(this.panSpeed), this.pan(this.panDelta.x, this.panDelta.y, i), this.panStart.copy(this.panEnd);
1756
+ }
1757
+ handleTouchMoveDolly(A) {
1758
+ const i = this.getSecondPointer(A), t = A.pageX - i.pageX, o = A.pageY - i.pageY, s = Math.sqrt(t * t + o * o);
1759
+ this.dollyEnd.set(0, s), this.dollyDelta.set(
1760
+ 0,
1761
+ Math.pow(this.dollyEnd.y / this.dollyStart.y, this.zoomSpeed)
1762
+ ), this.dollyOut(this.dollyDelta.y), this.dollyStart.copy(this.dollyEnd);
1763
+ }
1764
+ handleTouchMoveDollyPan(A) {
1765
+ this.enableZoom && this.handleTouchMoveDolly(A), this.enablePan && this.handleTouchMovePan(A);
1766
+ }
1767
+ handleTouchMoveDollyRotate(A) {
1768
+ this.enableZoom && this.handleTouchMoveDolly(A), this.enableRotate && this.handleTouchMoveRotate(A);
1769
+ }
1770
+ addPointer(A) {
1771
+ this.pointers.push(A);
1772
+ }
1773
+ removePointer(A) {
1774
+ delete this.pointerPositions[A.pointerId];
1775
+ for (let i = 0; i < this.pointers.length; i++)
1776
+ if (this.pointers[i].pointerId == A.pointerId) {
1777
+ this.pointers.splice(i, 1);
1778
+ return;
1779
+ }
1780
+ }
1781
+ trackPointer(A) {
1782
+ let i = this.pointerPositions[A.pointerId];
1783
+ i === void 0 && (i = new a(), this.pointerPositions[A.pointerId] = i), i.set(A.pageX, A.pageY);
1784
+ }
1785
+ getSecondPointer(A) {
1786
+ return this.pointers[0].pointerId === A.pointerId ? this.pointers[1] : this.pointers[0];
1787
+ }
1788
+ isTrackingPointer(A) {
1789
+ return this.pointers.some(
1790
+ (i) => i.pointerId === A.pointerId
1791
+ );
1792
+ }
1793
+ };
1794
+ e(D, "DEFAULT_ZOOM_FACTOR", 1);
1795
+ let Q = D;
1796
+ const UA = `
1797
+ @@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@
1798
+ @@@@+-:::::::---------------------==------------------------------=#@@@@
1799
+ @@%=::::.......::---------------------------------------------------------+@@
1800
+ @@+:::...........::-----------------------------------------------------------#@@
1801
+ @@=:::.........::::::-------------------------------------------------------------%@
1802
+ @%:::.......:::::::-----------------------------------------------------------------#@
1803
+ @*:::.....:::::-----------------------------------------------------------------------*@
1804
+ @%::::::.::::---------------------------------------------------------------------------@@
1805
+ @@-:::::::::-----------------------------------------------------------------------------=@
1806
+ @%::::::::--------------------------------------------------------------------------------%@
1807
+ @+::::::::--------------------------------=@@@@@%-----------------------------------------%@
1808
+ @=:::::::--------------------------------*@@ @@+---------------------------------------#@
1809
+ @+:::::::-------------------------------*@ @*--------------------------------------%@
1810
+ @#::::::::-----------------------------=@@ @@=-------------------------------------%@
1811
+ @@-::::::::----------------------------@@ @@------------------------------------=@
1812
+ @%:::::::::--------------------------*@ @*-----------------------------------@@
1813
+ @*:::::::::-------------------------@@ @@----------------------------------%@
1814
+ @#::::::::::----------------------%@ @%--------------------------------%@
1815
+ @#:::::::::::-------------------=@@ @@=------------------------------%@
1816
+ @@-::::::::::::----------------%@ @%----------------------------=@@
1817
+ @@#::::::::::::::------------*@ @*--------------------------#@@
1818
+ @@+::::::::::::::::--------@@ @@------------------------+@@
1819
+ @@*:::::::::::::::::----@@ @@---------------------+@@
1820
+ @@@-:::::::::::::::--#@ @#-----------------=%@@
1821
+ @@%-::::::::::::-%@ @%-------------=%@@
1822
+ @@@@+:::::::#@@ @@*-------*@@@@
1823
+ @@@@@@@ @@@@@@
1824
+ `;
1825
+ window.DIVE = {
1826
+ instances: [],
1827
+ get instance() {
1828
+ return window.DIVE.instances[0];
1829
+ }
1830
+ };
1831
+ const K = {
1832
+ autoStart: !0,
1833
+ displayAxes: !1,
1834
+ ...V,
1835
+ ...YA,
1836
+ ...T,
1837
+ ...RA
1838
+ };
1839
+ class ni {
1840
+ constructor(g) {
1841
+ // descriptive members
1842
+ e(this, "_instanceId", b.generateUUID());
1843
+ e(this, "_settings");
1844
+ e(this, "_views");
1845
+ e(this, "_mainView");
1846
+ e(this, "_scene");
1847
+ e(this, "_clock");
1848
+ e(this, "_orientationDisplay", null);
1849
+ this._settings = {
1850
+ ...K,
1851
+ ...g ?? {}
1852
+ }, this._clock = new OA(), this._scene = new VA({
1853
+ backgroundColor: (g == null ? void 0 : g.backgroundColor) ?? K.backgroundColor,
1854
+ displayGrid: (g == null ? void 0 : g.displayGrid) ?? K.displayGrid,
1855
+ displayFloor: (g == null ? void 0 : g.displayFloor) ?? K.displayFloor
1856
+ });
1857
+ const A = new jA(
1858
+ this._scene,
1859
+ new bA(),
1860
+ this._settings
1861
+ );
1862
+ this._clock.addTicker(A), this._views = [A], this._mainView = A, this._settings.displayAxes && import("../plugins/orientationdisplay/index.mjs").then(
1863
+ ({ OrientationDisplay: i }) => {
1864
+ this._orientationDisplay = new i(
1865
+ this.mainView.renderer,
1866
+ this.scene,
1867
+ this.mainView.camera
1868
+ ), this._clock.addTicker(this._orientationDisplay);
1869
+ }
1870
+ ), this._settings.autoStart && this.start(), console.log(
1871
+ "DIVE 3.0.0-beta.0 initialized successfully!"
1872
+ ), console.log(UA), window.DIVE.instances.push(this);
1873
+ }
1874
+ get views() {
1875
+ return this._views;
1876
+ }
1877
+ get mainView() {
1878
+ return this._mainView;
1879
+ }
1880
+ get canvas() {
1881
+ return this.mainView.canvas;
1882
+ }
1883
+ get scene() {
1884
+ return this._scene;
1885
+ }
1886
+ get clock() {
1887
+ return this._clock;
1888
+ }
1889
+ start() {
1890
+ this.startAsync().catch((g) => {
1891
+ console.error(
1892
+ "DIVE.start: Failed to initialize the WebGPU renderer.",
1893
+ g
1894
+ );
1895
+ });
1896
+ }
1897
+ async startAsync() {
1898
+ this.mainView.renderer.initialized || await this.mainView.renderer.init(), this._clock.start();
1899
+ }
1900
+ stop() {
1901
+ this._clock.stop();
1902
+ }
1903
+ async dispose() {
1904
+ return new Promise((g) => {
1905
+ this._views.forEach((A) => {
1906
+ A.dispose();
1907
+ }), this._views = [], this._orientationDisplay && (this._clock.removeTicker(this._orientationDisplay), this._orientationDisplay.dispose()), this.scene.dispose(), window.DIVE.instances = window.DIVE.instances.filter(
1908
+ (A) => A._instanceId !== this._instanceId
1909
+ ), g();
1910
+ });
1911
+ }
1912
+ }
1913
+ const $A = {
1914
+ glb: {
1915
+ key: "glb",
1916
+ extension: "glb"
1917
+ },
1918
+ gltf: {
1919
+ key: "gltf",
1920
+ extension: "gltf"
1921
+ },
1922
+ usdz: {
1923
+ key: "usdz",
1924
+ extension: "usdz"
1925
+ },
1926
+ step: {
1927
+ key: "step",
1928
+ extension: "step"
1929
+ },
1930
+ stp: {
1931
+ key: "stp",
1932
+ extension: "stp"
1933
+ },
1934
+ iges: {
1935
+ key: "iges",
1936
+ extension: "iges"
1937
+ },
1938
+ igs: {
1939
+ key: "igs",
1940
+ extension: "igs"
1941
+ }
1942
+ }, fi = Object.values($A).map(
1943
+ (n) => n.extension
1944
+ );
1945
+ export {
1946
+ d as B,
1947
+ K as D,
1948
+ $A as F,
1949
+ TA as G,
1950
+ Q as O,
1951
+ fi as S,
1952
+ RA as a,
1953
+ ni as b,
1954
+ _ as c,
1955
+ ZA as d,
1956
+ OA as e,
1957
+ LA as f,
1958
+ MA as g,
1959
+ kA as h,
1960
+ E as i,
1961
+ NA as j,
1962
+ O as k,
1963
+ EA as l,
1964
+ WA as m,
1965
+ FA as n,
1966
+ T as o,
1967
+ XA as p,
1968
+ xA as q,
1969
+ VA as r,
1970
+ V as s,
1971
+ QA as t,
1972
+ jA as u,
1973
+ JA as v,
1974
+ S as w
1975
+ };