compass-code 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. compass_cli/__init__.py +0 -0
  2. compass_cli/commands/__init__.py +0 -0
  3. compass_cli/commands/ingest.py +310 -0
  4. compass_cli/commands/mcp.py +25 -0
  5. compass_cli/commands/query.py +181 -0
  6. compass_cli/commands/serve.py +123 -0
  7. compass_cli/commands/setup.py +171 -0
  8. compass_cli/display.py +231 -0
  9. compass_cli/errors.py +30 -0
  10. compass_cli/main.py +54 -0
  11. compass_cli/progress.py +191 -0
  12. compass_cli/result_views.py +389 -0
  13. compass_cli/types.py +41 -0
  14. compass_code-0.1.0.dist-info/METADATA +72 -0
  15. compass_code-0.1.0.dist-info/RECORD +137 -0
  16. compass_code-0.1.0.dist-info/WHEEL +4 -0
  17. compass_code-0.1.0.dist-info/entry_points.txt +2 -0
  18. compass_core/__init__.py +1 -0
  19. compass_core/contract/__init__.py +6 -0
  20. compass_core/contract/errors.py +116 -0
  21. compass_core/contract/models.py +204 -0
  22. compass_core/contract/params.py +99 -0
  23. compass_core/contract/results.py +370 -0
  24. compass_core/contract/serialize.py +59 -0
  25. compass_core/contract/types.py +76 -0
  26. compass_core/errors.py +148 -0
  27. compass_core/graph/__init__.py +0 -0
  28. compass_core/graph/db.py +205 -0
  29. compass_core/graph/schema.py +165 -0
  30. compass_core/graph/stored_ids.py +133 -0
  31. compass_core/graph/writer.py +482 -0
  32. compass_core/index/__init__.py +1 -0
  33. compass_core/index/freshness.py +55 -0
  34. compass_core/index/locate.py +155 -0
  35. compass_core/index/metadata.py +107 -0
  36. compass_core/ir/__init__.py +0 -0
  37. compass_core/ir/graph.py +65 -0
  38. compass_core/ir/models.py +75 -0
  39. compass_core/languages/__init__.py +1 -0
  40. compass_core/languages/base.py +26 -0
  41. compass_core/languages/python/__init__.py +6 -0
  42. compass_core/languages/python/extractor.py +670 -0
  43. compass_core/languages/python/import_resolver.py +107 -0
  44. compass_core/languages/registry.py +89 -0
  45. compass_core/logger.py +42 -0
  46. compass_core/phases/__init__.py +0 -0
  47. compass_core/phases/base.py +58 -0
  48. compass_core/phases/discovery.py +167 -0
  49. compass_core/phases/parse.py +80 -0
  50. compass_core/phases/persistence.py +33 -0
  51. compass_core/phases/pipeline.py +152 -0
  52. compass_core/phases/resolution.py +572 -0
  53. compass_core/phases/symbol_table.py +36 -0
  54. compass_core/phases/validation.py +76 -0
  55. compass_core/progress.py +45 -0
  56. compass_core/py.typed +0 -0
  57. compass_core/query/__init__.py +1 -0
  58. compass_core/query/cypher.py +92 -0
  59. compass_core/query/detail.py +241 -0
  60. compass_core/query/graph_map.py +127 -0
  61. compass_core/query/impact.py +273 -0
  62. compass_core/query/impact_walk.py +352 -0
  63. compass_core/query/overview.py +221 -0
  64. compass_core/query/references.py +235 -0
  65. compass_core/query/rows.py +378 -0
  66. compass_core/query/search.py +183 -0
  67. compass_core/query/status.py +49 -0
  68. compass_core/query/walk_queries.py +202 -0
  69. compass_core/render.py +408 -0
  70. compass_core/settings.py +61 -0
  71. compass_core/shared_types.py +78 -0
  72. compass_mcp/__init__.py +0 -0
  73. compass_mcp/guide.py +45 -0
  74. compass_mcp/py.typed +0 -0
  75. compass_mcp/server.py +261 -0
  76. compass_server/__init__.py +5 -0
  77. compass_server/errors.py +84 -0
  78. compass_server/main.py +42 -0
  79. compass_server/py.typed +0 -0
  80. compass_server/routers/__init__.py +0 -0
  81. compass_server/routers/query.py +182 -0
  82. compass_server/settings.py +37 -0
  83. compass_server/static/404.html +1 -0
  84. compass_server/static/_next/static/chunks/1629039a.eed2a06658ec4f9c.js +1 -0
  85. compass_server/static/_next/static/chunks/1ff282bf-bb7c483245264fc9.js +1 -0
  86. compass_server/static/_next/static/chunks/223.f881a22f446259bf.js +508 -0
  87. compass_server/static/_next/static/chunks/51fa5c19.6396973222c9d6fd.js +485 -0
  88. compass_server/static/_next/static/chunks/556.443c1682b6b20128.js +1 -0
  89. compass_server/static/_next/static/chunks/684-1aa0170f59baf77e.js +1 -0
  90. compass_server/static/_next/static/chunks/92e71660.3a42d4f70d017951.js +342 -0
  91. compass_server/static/_next/static/chunks/937-8692224bb6d1b605.js +1 -0
  92. compass_server/static/_next/static/chunks/app/_not-found/page-2c96ddf295eb6a86.js +1 -0
  93. compass_server/static/_next/static/chunks/app/layout-4bd0ba4a7d18aff9.js +1 -0
  94. compass_server/static/_next/static/chunks/app/page-5376a0a98bbd1faa.js +1 -0
  95. compass_server/static/_next/static/chunks/framework-96dcd958cfe08bd4.js +1 -0
  96. compass_server/static/_next/static/chunks/main-6dee8e626b16731a.js +1 -0
  97. compass_server/static/_next/static/chunks/main-app-460e8bc670818718.js +1 -0
  98. compass_server/static/_next/static/chunks/pages/_app-638a3e7363f92b80.js +1 -0
  99. compass_server/static/_next/static/chunks/pages/_error-6a72dbbb45cae743.js +1 -0
  100. compass_server/static/_next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  101. compass_server/static/_next/static/chunks/webpack-597057bf48ce4111.js +1 -0
  102. compass_server/static/_next/static/css/1b0fbfd8dd653f37.css +3 -0
  103. compass_server/static/_next/static/ctUZeD9K7jQUgLqmBas2L/_buildManifest.js +1 -0
  104. compass_server/static/_next/static/ctUZeD9K7jQUgLqmBas2L/_ssgManifest.js +1 -0
  105. compass_server/static/_next/static/media/0086f8992871c45b-s.woff2 +0 -0
  106. compass_server/static/_next/static/media/034d78ad42e9620c-s.woff2 +0 -0
  107. compass_server/static/_next/static/media/03b436aa846269de-s.woff2 +0 -0
  108. compass_server/static/_next/static/media/0484562807a97172-s.p.woff2 +0 -0
  109. compass_server/static/_next/static/media/08aedeceaf1dcd57-s.woff2 +0 -0
  110. compass_server/static/_next/static/media/0aa834ed78bf6d07-s.woff2 +0 -0
  111. compass_server/static/_next/static/media/29a4aea02fdee119-s.woff2 +0 -0
  112. compass_server/static/_next/static/media/29e7bbdce9332268-s.woff2 +0 -0
  113. compass_server/static/_next/static/media/36008747766f78c6-s.woff2 +0 -0
  114. compass_server/static/_next/static/media/39969fcf98a3026e-s.woff2 +0 -0
  115. compass_server/static/_next/static/media/4de1fea1a954a5b6-s.p.woff2 +0 -0
  116. compass_server/static/_next/static/media/5c0c2bcbaa4149ca-s.p.woff2 +0 -0
  117. compass_server/static/_next/static/media/67957d42bae0796d-s.woff2 +0 -0
  118. compass_server/static/_next/static/media/6d38f9d4e0f4772b-s.woff2 +0 -0
  119. compass_server/static/_next/static/media/6d664cce900333ee-s.p.woff2 +0 -0
  120. compass_server/static/_next/static/media/886030b0b59bc5a7-s.woff2 +0 -0
  121. compass_server/static/_next/static/media/8888a3826f4a3af4-s.p.woff2 +0 -0
  122. compass_server/static/_next/static/media/939c4f875ee75fbb-s.woff2 +0 -0
  123. compass_server/static/_next/static/media/a1386beebedccca4-s.woff2 +0 -0
  124. compass_server/static/_next/static/media/ab00a911ac2adf48-s.woff2 +0 -0
  125. compass_server/static/_next/static/media/b957ea75a84b6ea7-s.p.woff2 +0 -0
  126. compass_server/static/_next/static/media/bb3ef058b751a6ad-s.p.woff2 +0 -0
  127. compass_server/static/_next/static/media/c3bc380753a8436c-s.woff2 +0 -0
  128. compass_server/static/_next/static/media/cce080f35d014443-s.woff2 +0 -0
  129. compass_server/static/_next/static/media/db911767852bc875-s.woff2 +0 -0
  130. compass_server/static/_next/static/media/eafabf029ad39a43-s.p.woff2 +0 -0
  131. compass_server/static/_next/static/media/f10b8e9d91f3edcb-s.woff2 +0 -0
  132. compass_server/static/_next/static/media/f911b923c6adde36-s.woff2 +0 -0
  133. compass_server/static/_next/static/media/fe0777f1195381cb-s.woff2 +0 -0
  134. compass_server/static/index.html +1 -0
  135. compass_server/static/index.txt +25 -0
  136. compass_server/web_bundle.py +27 -0
  137. compass_server/web_limits.py +48 -0
@@ -0,0 +1,508 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[223],{18433:t=>{function e(t){return new n("number"==typeof t?t:+new Date)}function n(t){this.seed=t}function r(t){return Math.sqrt(2*Math.PI/t)*Math.pow(1/Math.E*(t+1/(12*t-1/(10*t))),t)}function i(){var t=this.seed;return t=0xb55a4f09^(t=(t=(t=(t=0xc761c23c^(t=t+0x7ed55d16+(t<<12)|0)^t>>>19)+0x165667b1+(t<<5)|0)+0xd3a2646c^t<<9)+0xfd7046c5+(t<<3)|0)^t>>>16,this.seed=t,(0xfffffff&t)/0x10000000}t.exports=e,t.exports.random=e,t.exports.randomIterator=function(t,n){var r=n||e();if("function"!=typeof r.next)throw Error("customRandom does not match expected API: next() function is missing");return{forEach:function(e){var n,i,o;for(n=t.length-1;n>0;--n)o=t[i=r.next(n+1)],t[i]=t[n],t[n]=o,e(o);t.length&&e(t[0])},shuffle:function(){var e,n,i;for(e=t.length-1;e>0;--e)i=t[n=r.next(e+1)],t[n]=t[e],t[e]=i;return t}}},n.prototype.next=function(t){return Math.floor(this.nextDouble()*t)},n.prototype.nextDouble=i,n.prototype.uniform=i,n.prototype.gaussian=function(){var t,e,n;do t=(e=2*this.nextDouble()-1)*e+(n=2*this.nextDouble()-1)*n;while(t>=1||0===t);return e*Math.sqrt(-2*Math.log(t)/t)},n.prototype.random=i,n.prototype.levy=function(){var t=Math.pow(r(2.5)*Math.sin(1.5*Math.PI/2)/(1.5*r(1.25)*1.189207115002721),.6666666666666666);return this.gaussian()*t/Math.pow(Math.abs(this.gaussian()),.6666666666666666)}},18724:(t,e,n)=>{let r=n(83442);function i(t,e){return`
2
+ ${a(t,e)}
3
+ ${o(t,e)}
4
+ return {Body: Body, Vector: Vector};
5
+ `}function o(t){let e=r(t),n=e("{var}",{join:", "});return`
6
+ function Body(${n}) {
7
+ this.isPinned = false;
8
+ this.pos = new Vector(${n});
9
+ this.force = new Vector();
10
+ this.velocity = new Vector();
11
+ this.mass = 1;
12
+
13
+ this.springCount = 0;
14
+ this.springLength = 0;
15
+ }
16
+
17
+ Body.prototype.reset = function() {
18
+ this.force.reset();
19
+ this.springCount = 0;
20
+ this.springLength = 0;
21
+ }
22
+
23
+ Body.prototype.setPosition = function (${n}) {
24
+ ${e("this.pos.{var} = {var} || 0;",{indent:2})}
25
+ };`}function a(t,e){let n=r(t),i="";e&&(i=`${n("\n var v{var};\nObject.defineProperty(this, '{var}', {\n set: function(v) { \n if (!Number.isFinite(v)) throw new Error('Cannot set non-numbers to {var}');\n v{var} = v; \n },\n get: function() { return v{var}; }\n});")}`);let o=n("{var}",{join:", "});return`function Vector(${o}) {
26
+ ${i}
27
+ if (typeof arguments[0] === 'object') {
28
+ // could be another vector
29
+ let v = arguments[0];
30
+ ${n('if (!Number.isFinite(v.{var})) throw new Error("Expected value is not a finite number at Vector constructor ({var})");',{indent:4})}
31
+ ${n("this.{var} = v.{var};",{indent:4})}
32
+ } else {
33
+ ${n('this.{var} = typeof {var} === "number" ? {var} : 0;',{indent:4})}
34
+ }
35
+ }
36
+
37
+ Vector.prototype.reset = function () {
38
+ ${n("this.{var} = ",{join:""})}0;
39
+ };`}t.exports=function(t,e){let{Body:n}=Function(i(t,e))();return n},t.exports.generateCreateBodyFunctionBody=i,t.exports.getVectorCode=a,t.exports.getBodyCode=o},20429:(t,e,n)=>{let r=n(83442);function i(t){let e=r(t);return`
40
+ var length = bodies.length;
41
+ if (length === 0) return 0;
42
+
43
+ ${e("var d{var} = 0, t{var} = 0;",{indent:2})}
44
+
45
+ for (var i = 0; i < length; ++i) {
46
+ var body = bodies[i];
47
+ if (body.isPinned) continue;
48
+
49
+ if (adaptiveTimeStepWeight && body.springCount) {
50
+ timeStep = (adaptiveTimeStepWeight * body.springLength/body.springCount);
51
+ }
52
+
53
+ var coeff = timeStep / body.mass;
54
+
55
+ ${e("body.velocity.{var} += coeff * body.force.{var};",{indent:4})}
56
+ ${e("var v{var} = body.velocity.{var};",{indent:4})}
57
+ var v = Math.sqrt(${e("v{var} * v{var}",{join:" + "})});
58
+
59
+ if (v > 1) {
60
+ // We normalize it so that we move within timeStep range.
61
+ // for the case when v <= 1 - we let velocity to fade out.
62
+ ${e("body.velocity.{var} = v{var} / v;",{indent:6})}
63
+ }
64
+
65
+ ${e("d{var} = timeStep * body.velocity.{var};",{indent:4})}
66
+
67
+ ${e("body.pos.{var} += d{var};",{indent:4})}
68
+
69
+ ${e("t{var} += Math.abs(d{var});",{indent:4})}
70
+ }
71
+
72
+ return (${e("t{var} * t{var}",{join:" + "})})/length;
73
+ `}t.exports=function(t){return Function("bodies","timeStep","adaptiveTimeStepWeight",i(t))},t.exports.generateIntegratorFunctionBody=i},24624:(t,e,n)=>{let r=n(83442);function i(t){let e=r(t);return`
74
+ if (!Number.isFinite(options.springCoefficient)) throw new Error('Spring coefficient is not a number');
75
+ if (!Number.isFinite(options.springLength)) throw new Error('Spring length is not a number');
76
+
77
+ return {
78
+ /**
79
+ * Updates forces acting on a spring
80
+ */
81
+ update: function (spring) {
82
+ var body1 = spring.from;
83
+ var body2 = spring.to;
84
+ var length = spring.length < 0 ? options.springLength : spring.length;
85
+ ${e("var d{var} = body2.pos.{var} - body1.pos.{var};",{indent:6})}
86
+ var r = Math.sqrt(${e("d{var} * d{var}",{join:" + "})});
87
+
88
+ if (r === 0) {
89
+ ${e("d{var} = (random.nextDouble() - 0.5) / 50;",{indent:8})}
90
+ r = Math.sqrt(${e("d{var} * d{var}",{join:" + "})});
91
+ }
92
+
93
+ var d = r - length;
94
+ var coefficient = ((spring.coefficient > 0) ? spring.coefficient : options.springCoefficient) * d / r;
95
+
96
+ ${e("body1.force.{var} += coefficient * d{var}",{indent:6})};
97
+ body1.springCount += 1;
98
+ body1.springLength += r;
99
+
100
+ ${e("body2.force.{var} -= coefficient * d{var}",{indent:6})};
101
+ body2.springCount += 1;
102
+ body2.springLength += r;
103
+ }
104
+ };
105
+ `}t.exports=function(t){return Function("options","random",i(t))},t.exports.generateCreateSpringForceFunctionBody=i},29729:(t,e,n)=>{t.exports=function(t){return Function("bodies","settings","random",i(t))},t.exports.generateFunctionBody=i;let r=n(83442);function i(t){let e=r(t);return`
106
+ var boundingBox = {
107
+ ${e("min_{var}: 0, max_{var}: 0,",{indent:4})}
108
+ };
109
+
110
+ return {
111
+ box: boundingBox,
112
+
113
+ update: updateBoundingBox,
114
+
115
+ reset: resetBoundingBox,
116
+
117
+ getBestNewPosition: function (neighbors) {
118
+ var ${e("base_{var} = 0",{join:", "})};
119
+
120
+ if (neighbors.length) {
121
+ for (var i = 0; i < neighbors.length; ++i) {
122
+ let neighborPos = neighbors[i].pos;
123
+ ${e("base_{var} += neighborPos.{var};",{indent:10})}
124
+ }
125
+
126
+ ${e("base_{var} /= neighbors.length;",{indent:8})}
127
+ } else {
128
+ ${e("base_{var} = (boundingBox.min_{var} + boundingBox.max_{var}) / 2;",{indent:8})}
129
+ }
130
+
131
+ var springLength = settings.springLength;
132
+ return {
133
+ ${e("{var}: base_{var} + (random.nextDouble() - 0.5) * springLength,",{indent:8})}
134
+ };
135
+ }
136
+ };
137
+
138
+ function updateBoundingBox() {
139
+ var i = bodies.length;
140
+ if (i === 0) return; // No bodies - no borders.
141
+
142
+ ${e("var max_{var} = -Infinity;",{indent:4})}
143
+ ${e("var min_{var} = Infinity;",{indent:4})}
144
+
145
+ while(i--) {
146
+ // this is O(n), it could be done faster with quadtree, if we check the root node bounds
147
+ var bodyPos = bodies[i].pos;
148
+ ${e("if (bodyPos.{var} < min_{var}) min_{var} = bodyPos.{var};",{indent:6})}
149
+ ${e("if (bodyPos.{var} > max_{var}) max_{var} = bodyPos.{var};",{indent:6})}
150
+ }
151
+
152
+ ${e("boundingBox.min_{var} = min_{var};",{indent:4})}
153
+ ${e("boundingBox.max_{var} = max_{var};",{indent:4})}
154
+ }
155
+
156
+ function resetBoundingBox() {
157
+ ${e("boundingBox.min_{var} = boundingBox.max_{var} = 0;",{indent:4})}
158
+ }
159
+ `}},55765:(t,e,n)=>{"use strict";n.d(e,{A:()=>d});var r=n(84607);function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}function o(t){return(o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function a(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(a=function(){return!!t})()}function s(t,e){return(s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t})(t,e)}function l(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o,a,s=[],l=!0,h=!1;try{if(o=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==e);l=!0);}catch(t){h=!0,i=t}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(h)throw i}}return s}}(t,e)||u(t,e)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(t){return function(t){if(Array.isArray(t))return i(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||u(t)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(t,e){if(t){if("string"==typeof t)return i(t,e);var n=({}).toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(t,e):void 0}}var c="undefined"!=typeof window&&window.THREE?window.THREE:{CanvasTexture:r.GOR,Sprite:r.kxk,SpriteMaterial:r.RoJ,SRGBColorSpace:r.er$},d=function(t){var e;function n(){var t,e,r,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"rgba(255, 255, 255, 1)";if(!(this instanceof n))throw TypeError("Cannot call a class as a function");return t=n,e=[new c.SpriteMaterial],t=o(t),(r=function(t,e){if(e&&("object"==typeof e||"function"==typeof e))return e;if(void 0!==e)throw TypeError("Derived constructors may only return object or undefined");if(void 0===t)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(this,a()?Reflect.construct(t,e||[],o(this).constructor):t.apply(this,e)))._text="".concat(i),r._textHeight=s,r._color=l,r._backgroundColor=!1,r._padding=0,r._borderWidth=0,r._borderRadius=0,r._borderColor="white",r._offsetX=0,r._offsetY=0,r._strokeWidth=0,r._strokeColor="white",r._fontFace="system-ui",r._fontSize=90,r._fontWeight="normal",r._canvas=document.createElement("canvas"),r._genCanvas(),r}if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");return n.prototype=Object.create(t&&t.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),Object.defineProperty(n,"prototype",{writable:!1}),t&&s(n,t),e=[{key:"text",get:function(){return this._text},set:function(t){this._text=t,this._genCanvas()}},{key:"textHeight",get:function(){return this._textHeight},set:function(t){this._textHeight=t,this._genCanvas()}},{key:"color",get:function(){return this._color},set:function(t){this._color=t,this._genCanvas()}},{key:"backgroundColor",get:function(){return this._backgroundColor},set:function(t){this._backgroundColor=t,this._genCanvas()}},{key:"padding",get:function(){return this._padding},set:function(t){this._padding=t,this._genCanvas()}},{key:"borderWidth",get:function(){return this._borderWidth},set:function(t){this._borderWidth=t,this._genCanvas()}},{key:"borderRadius",get:function(){return this._borderRadius},set:function(t){this._borderRadius=t,this._genCanvas()}},{key:"borderColor",get:function(){return this._borderColor},set:function(t){this._borderColor=t,this._genCanvas()}},{key:"offsetX",get:function(){return this._offsetX},set:function(t){this._offsetX=t,this._genCanvas()}},{key:"offsetY",get:function(){return this._offsetY},set:function(t){this._offsetY=t,this._genCanvas()}},{key:"fontFace",get:function(){return this._fontFace},set:function(t){this._fontFace=t,this._genCanvas()}},{key:"fontSize",get:function(){return this._fontSize},set:function(t){this._fontSize=t,this._genCanvas()}},{key:"fontWeight",get:function(){return this._fontWeight},set:function(t){this._fontWeight=t,this._genCanvas()}},{key:"strokeWidth",get:function(){return this._strokeWidth},set:function(t){this._strokeWidth=t,this._genCanvas()}},{key:"strokeColor",get:function(){return this._strokeColor},set:function(t){this._strokeColor=t,this._genCanvas()}},{key:"_genCanvas",value:function(){var t=this,e=this._canvas,n=e.getContext("2d"),r=1/this.textHeight,i=Array.isArray(this.borderWidth)?this.borderWidth:[this.borderWidth,this.borderWidth],o=i.map(function(e){return e*t.fontSize*r}),a=(Array.isArray(this.borderRadius)?this.borderRadius:[this.borderRadius,this.borderRadius,this.borderRadius,this.borderRadius]).map(function(e){return e*t.fontSize*r}),s=Array.isArray(this.padding)?this.padding:[this.padding,this.padding],u=s.map(function(e){return e*t.fontSize*r}),d=[this.offsetX,this.offsetY].map(function(e){return e*t.fontSize*r}),f=this.text.split("\n"),p="".concat(this.fontWeight," ").concat(this.fontSize,"px ").concat(this.fontFace);n.font=p;var _=Math.max.apply(Math,h(f.map(function(t){return n.measureText(t).width}))),g=this.fontSize*f.length,y=_+2*o[0]+2*u[0],m=g+2*o[1]+2*u[1];if(e.width=y+Math.abs(d[0]),e.height=m+Math.abs(d[1]),n.translate.apply(n,h(d.map(function(t){return Math.max(0,t)}))),this.borderWidth){if(n.strokeStyle=this.borderColor,o[0]){var v=o[0]/2;n.lineWidth=o[0],n.beginPath(),n.moveTo(v,a[0]),n.lineTo(v,m-a[3]),n.moveTo(y-v,a[1]),n.lineTo(y-v,m-a[2]),n.stroke()}if(o[1]){var b=o[1]/2;n.lineWidth=o[1],n.beginPath(),n.moveTo(Math.max(o[0],a[0]),b),n.lineTo(y-Math.max(o[0],a[1]),b),n.moveTo(Math.max(o[0],a[3]),m-b),n.lineTo(y-Math.max(o[0],a[2]),m-b),n.stroke()}if(this.borderRadius){var w=Math.max.apply(Math,h(o)),x=w/2;n.lineWidth=w,n.beginPath(),[!!a[0]&&[a[0],x,x,a[0]],!!a[1]&&[y-a[1],y-x,x,a[1]],!!a[2]&&[y-a[2],y-x,m-x,m-a[2]],!!a[3]&&[a[3],x,m-x,m-a[3]]].filter(function(t){return t}).forEach(function(t){var e=l(t,4),r=e[0],i=e[1],o=e[2],a=e[3];n.moveTo(r,o),n.quadraticCurveTo(i,o,i,a)}),n.stroke()}}this.backgroundColor&&(n.fillStyle=this.backgroundColor,this.borderRadius?(n.beginPath(),n.moveTo(o[0],a[0]),[[o[0],a[0],y-a[1],o[1],o[1],o[1]],[y-o[0],y-o[0],y-o[0],o[1],a[1],m-a[2]],[y-o[0],y-a[2],a[3],m-o[1],m-o[1],m-o[1]],[o[0],o[0],o[0],m-o[1],m-a[3],a[0]]].forEach(function(t){var e=l(t,6),r=e[0],i=e[1],o=e[2],a=e[3],s=e[4],h=e[5];n.quadraticCurveTo(r,a,i,s),n.lineTo(o,h)}),n.closePath(),n.fill()):n.fillRect(o[0],o[1],y-2*o[0],m-2*o[1])),n.translate.apply(n,h(o)),n.translate.apply(n,h(u)),n.font=p,n.fillStyle=this.color,n.textBaseline="bottom";var k=this.strokeWidth>0;k&&(n.lineWidth=this.strokeWidth*this.fontSize/10,n.strokeStyle=this.strokeColor),f.forEach(function(e,r){var i=(_-n.measureText(e).width)/2,o=(r+1)*t.fontSize;k&&n.strokeText(e,i,o),n.fillText(e,i,o)}),this.material.map&&this.material.map.dispose(),(this.material.map=new c.CanvasTexture(e)).colorSpace=c.SRGBColorSpace;var P=this.textHeight*f.length+2*i[1]+2*s[1]+Math.abs(this.offsetY);this.scale.set(P*e.width/e.height,P,0)}},{key:"clone",value:function(){return new this.constructor(this.text,this.textHeight,this.color).copy(this)}},{key:"copy",value:function(t){return c.Sprite.prototype.copy.call(this,t),this.color=t.color,this.backgroundColor=t.backgroundColor,this.padding=t.padding,this.borderWidth=t.borderWidth,this.borderColor=t.borderColor,this.offsetX=t.offsetX,this.offsetY=t.offsetY,this.fontFace=t.fontFace,this.fontSize=t.fontSize,this.fontWeight=t.fontWeight,this.strokeWidth=t.strokeWidth,this.strokeColor=t.strokeColor,this}}],function(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,function(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"==typeof e?e:e+""}(r.key),r)}}(n.prototype,e),Object.defineProperty(n,"prototype",{writable:!1}),n}(c.Sprite)},58491:t=>{t.exports=function t(e,n){var r;if(e||(e={}),n){for(r in n)if(n.hasOwnProperty(r)){var i=e.hasOwnProperty(r),o=typeof n[r];i&&typeof e[r]===o?"object"===o&&(e[r]=t(e[r],n[r])):e[r]=n[r]}}return e}},62651:(t,e,n)=>{"use strict";n.d(e,{A:()=>o$});var r=n(84607);let i=new r.Zcv,o=new r.I9Y,a=new r.Pq0,s=new r.I9Y,l=new r.I9Y,h=new r.Pq0,u=new r.Pq0,c=new r.kn4,d=new r.Pq0,f=new r.Pq0,p=null,_=null,g=[],y={NONE:-1,PAN:0,ROTATE:1};class m extends r.H2z{constructor(t,e,n=null){super(e,n),this.objects=t,this.recursive=!0,this.transformGroup=!1,this.rotateSpeed=1,this.raycaster=new r.tBo,this.mouseButtons={LEFT:r.kBv.PAN,MIDDLE:r.kBv.PAN,RIGHT:r.kBv.ROTATE},this.touches={ONE:r.wtR.PAN},this._onPointerMove=v.bind(this),this._onPointerDown=b.bind(this),this._onPointerCancel=w.bind(this),this._onContextMenu=x.bind(this),null!==n&&this.connect(n)}connect(t){super.connect(t),this.domElement.addEventListener("pointermove",this._onPointerMove),this.domElement.addEventListener("pointerdown",this._onPointerDown),this.domElement.addEventListener("pointerup",this._onPointerCancel),this.domElement.addEventListener("pointerleave",this._onPointerCancel),this.domElement.addEventListener("contextmenu",this._onContextMenu),this.domElement.style.touchAction="none"}disconnect(){this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerdown",this._onPointerDown),this.domElement.removeEventListener("pointerup",this._onPointerCancel),this.domElement.removeEventListener("pointerleave",this._onPointerCancel),this.domElement.removeEventListener("contextmenu",this._onContextMenu),this.domElement.style.touchAction="",this.domElement.style.cursor=""}dispose(){this.disconnect()}_updatePointer(t){let e=this.domElement.getBoundingClientRect();o.x=(t.clientX-e.left)/e.width*2-1,o.y=-(t.clientY-e.top)/e.height*2+1}_updateState(t){let e;if("touch"===t.pointerType)e=this.touches.ONE;else switch(t.button){case 0:e=this.mouseButtons.LEFT;break;case 1:e=this.mouseButtons.MIDDLE;break;case 2:e=this.mouseButtons.RIGHT;break;default:e=null}switch(e){case r.kBv.PAN:case r.wtR.PAN:this.state=y.PAN;break;case r.kBv.ROTATE:case r.wtR.ROTATE:this.state=y.ROTATE;break;default:this.state=y.NONE}}}function v(t){let e=this.object,n=this.domElement,r=this.raycaster;if(!1!==this.enabled){if(this._updatePointer(t),r.setFromCamera(o,e),p)this.state===y.PAN?r.ray.intersectPlane(i,h)&&(p.position.copy(h.sub(a).applyMatrix4(c)),this.dispatchEvent({type:"drag",object:p})):this.state===y.ROTATE&&(s.subVectors(o,l).multiplyScalar(this.rotateSpeed),p.rotateOnWorldAxis(d,s.x),p.rotateOnWorldAxis(f.normalize(),-s.y),this.dispatchEvent({type:"drag",object:p})),l.copy(o);else if("mouse"===t.pointerType||"pen"===t.pointerType)if(g.length=0,r.setFromCamera(o,e),r.intersectObjects(this.objects,this.recursive,g),g.length>0){let t=g[0].object;i.setFromNormalAndCoplanarPoint(e.getWorldDirection(i.normal),u.setFromMatrixPosition(t.matrixWorld)),_!==t&&null!==_&&(this.dispatchEvent({type:"hoveroff",object:_}),n.style.cursor="auto",_=null),_!==t&&(this.dispatchEvent({type:"hoveron",object:t}),n.style.cursor="pointer",_=t)}else null!==_&&(this.dispatchEvent({type:"hoveroff",object:_}),n.style.cursor="auto",_=null);l.copy(o)}}function b(t){let e=this.object,n=this.domElement,r=this.raycaster;!1!==this.enabled&&(this._updatePointer(t),this._updateState(t),g.length=0,r.setFromCamera(o,e),r.intersectObjects(this.objects,this.recursive,g),g.length>0&&(p=!0===this.transformGroup?function t(e,n=null){return(e.isGroup&&(n=e),null===e.parent)?n:t(e.parent,n)}(g[0].object):g[0].object,i.setFromNormalAndCoplanarPoint(e.getWorldDirection(i.normal),u.setFromMatrixPosition(p.matrixWorld)),r.ray.intersectPlane(i,h)&&(this.state===y.PAN?(c.copy(p.parent.matrixWorld).invert(),a.copy(h).sub(u.setFromMatrixPosition(p.matrixWorld)),n.style.cursor="move",this.dispatchEvent({type:"dragstart",object:p})):this.state===y.ROTATE&&(d.set(0,1,0).applyQuaternion(e.quaternion).normalize(),f.set(1,0,0).applyQuaternion(e.quaternion).normalize(),n.style.cursor="move",this.dispatchEvent({type:"dragstart",object:p})))),l.copy(o))}function w(){!1!==this.enabled&&(p&&(this.dispatchEvent({type:"dragend",object:p}),p=null),this.domElement.style.cursor=_?"pointer":"auto",this.state=y.NONE)}function x(t){!1!==this.enabled&&t.preventDefault()}var k={value:()=>{}};function P(){for(var t,e=0,n=arguments.length,r={};e<n;++e){if(!(t=arguments[e]+"")||t in r||/[\s.]/.test(t))throw Error("illegal type: "+t);r[t]=[]}return new E(r)}function E(t){this._=t}function S(t,e,n){for(var r=0,i=t.length;r<i;++r)if(t[r].name===e){t[r]=k,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=n&&t.push({name:e,value:n}),t}E.prototype=P.prototype={constructor:E,on:function(t,e){var n,r=this._,i=(t+"").trim().split(/^|\s+/).map(function(t){var e="",n=t.indexOf(".");if(n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),t&&!r.hasOwnProperty(t))throw Error("unknown type: "+t);return{type:t,name:e}}),o=-1,a=i.length;if(arguments.length<2){for(;++o<a;)if((n=(t=i[o]).type)&&(n=function(t,e){for(var n,r=0,i=t.length;r<i;++r)if((n=t[r]).name===e)return n.value}(r[n],t.name)))return n;return}if(null!=e&&"function"!=typeof e)throw Error("invalid callback: "+e);for(;++o<a;)if(n=(t=i[o]).type)r[n]=S(r[n],t.name,e);else if(null==e)for(n in r)r[n]=S(r[n],t.name,null);return this},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new E(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,r,i=Array(n),o=0;o<n;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw Error("unknown type: "+t);for(r=this._[t],o=0,n=r.length;o<n;++o)r[o].value.apply(e,i)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(e,n)}};var O,M,C=0,j=0,A=0,T=0,D=0,R=0,N="object"==typeof performance&&performance.now?performance:Date,I="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function L(){return D||(I(z),D=N.now()+R)}function z(){D=0}function B(){this._call=this._time=this._next=null}function F(t,e,n){var r=new B;return r.restart(t,e,n),r}function U(){D=(T=N.now())+R,C=j=0;try{L(),++C;for(var t,e=O;e;)(t=D-e._time)>=0&&e._call.call(void 0,t),e=e._next;--C}finally{C=0,function(){for(var t,e,n=O,r=1/0;n;)n._call?(r>n._time&&(r=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:O=e);M=t,$(r)}(),D=0}}function q(){var t=N.now(),e=t-T;e>1e3&&(R-=e,T=t)}function $(t){!C&&(j&&(j=clearTimeout(j)),t-D>24?(t<1/0&&(j=setTimeout(U,t-N.now()-R)),A&&(A=clearInterval(A))):(A||(T=N.now(),A=setInterval(q,1e3)),C=1,I(U)))}function H(t){return t.x}function V(t){return t.y}function Y(t){return t.z}B.prototype=F.prototype={constructor:B,restart:function(t,e,n){if("function"!=typeof t)throw TypeError("callback is not a function");n=(null==n?L():+n)+(null==e?0:+e),this._next||M===this||(M?M._next=this:O=this,M=this),this._call=t,this._time=n,$()},stop:function(){this._call&&(this._call=null,this._time=1/0,$())}};var W=Math.PI*(3-Math.sqrt(5)),G=20*Math.PI/(9+Math.sqrt(221));function Z(t){return function(){return t}}function K(t){return(t()-.5)*1e-6}function X(t){return t.index}function Q(t,e){var n=t.get(e);if(!n)throw Error("node not found: "+e);return n}function J(t,e,n){if(isNaN(e))return t;var r,i,o,a,s,l,h=t._root,u={data:n},c=t._x0,d=t._x1;if(!h)return t._root=u,t;for(;h.length;)if((a=e>=(i=(c+d)/2))?c=i:d=i,r=h,!(h=h[s=+a]))return r[s]=u,t;if(e===(o=+t._x.call(null,h.data)))return u.next=h,r?r[s]=u:t._root=u,t;do r=r?r[s]=[,,]:t._root=[,,],(a=e>=(i=(c+d)/2))?c=i:d=i;while((s=+a)==(l=+(o>=i)));return r[l]=h,r[s]=u,t}function tt(t,e,n){this.node=t,this.x0=e,this.x1=n}function te(t){return t[0]}function tn(t,e){var n=new tr(null==e?te:e,NaN,NaN);return null==t?n:n.addAll(t)}function tr(t,e,n){this._x=t,this._x0=e,this._x1=n,this._root=void 0}function ti(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var to=tn.prototype=tr.prototype;function ta(t,e,n,r){if(isNaN(e)||isNaN(n))return t;var i,o,a,s,l,h,u,c,d,f=t._root,p={data:r},_=t._x0,g=t._y0,y=t._x1,m=t._y1;if(!f)return t._root=p,t;for(;f.length;)if((h=e>=(o=(_+y)/2))?_=o:y=o,(u=n>=(a=(g+m)/2))?g=a:m=a,i=f,!(f=f[c=u<<1|h]))return i[c]=p,t;if(s=+t._x.call(null,f.data),l=+t._y.call(null,f.data),e===s&&n===l)return p.next=f,i?i[c]=p:t._root=p,t;do i=i?i[c]=[,,,,]:t._root=[,,,,],(h=e>=(o=(_+y)/2))?_=o:y=o,(u=n>=(a=(g+m)/2))?g=a:m=a;while((c=u<<1|h)==(d=(l>=a)<<1|s>=o));return i[d]=f,i[c]=p,t}function ts(t,e,n,r,i){this.node=t,this.x0=e,this.y0=n,this.x1=r,this.y1=i}function tl(t){return t[0]}function th(t){return t[1]}function tu(t,e,n){var r=new tc(null==e?tl:e,null==n?th:n,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function tc(t,e,n,r,i,o){this._x=t,this._y=e,this._x0=n,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function td(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}to.copy=function(){var t,e,n=new tr(this._x,this._x0,this._x1),r=this._root;if(!r)return n;if(!r.length)return n._root=ti(r),n;for(t=[{source:r,target:n._root=[,,]}];r=t.pop();)for(var i=0;i<2;++i)(e=r.source[i])&&(e.length?t.push({source:e,target:r.target[i]=[,,]}):r.target[i]=ti(e));return n},to.add=function(t){let e=+this._x.call(null,t);return J(this.cover(e),e,t)},to.addAll=function(t){Array.isArray(t)||(t=Array.from(t));let e=t.length,n=new Float64Array(e),r=1/0,i=-1/0;for(let o=0,a;o<e;++o)!isNaN(a=+this._x.call(null,t[o]))&&(n[o]=a,a<r&&(r=a),a>i&&(i=a));if(r>i)return this;this.cover(r).cover(i);for(let r=0;r<e;++r)J(this,n[r],t[r]);return this},to.cover=function(t){if(isNaN(t*=1))return this;var e=this._x0,n=this._x1;if(isNaN(e))n=(e=Math.floor(t))+1;else{for(var r,i,o=n-e||1,a=this._root;e>t||t>=n;)switch(i=+(t<e),(r=[,,])[i]=a,a=r,o*=2,i){case 0:n=e+o;break;case 1:e=n-o}this._root&&this._root.length&&(this._root=a)}return this._x0=e,this._x1=n,this},to.data=function(){var t=[];return this.visit(function(e){if(!e.length)do t.push(e.data);while(e=e.next)}),t},to.extent=function(t){return arguments.length?this.cover(+t[0][0]).cover(+t[1][0]):isNaN(this._x0)?void 0:[[this._x0],[this._x1]]},to.find=function(t,e){var n,r,i,o,a,s=this._x0,l=this._x1,h=[],u=this._root;for(u&&h.push(new tt(u,s,l)),null==e?e=1/0:(s=t-e,l=t+e);o=h.pop();)if((u=o.node)&&!((r=o.x0)>l)&&!((i=o.x1)<s))if(u.length){var c=(r+i)/2;h.push(new tt(u[1],c,i),new tt(u[0],r,c)),(a=+(t>=c))&&(o=h[h.length-1],h[h.length-1]=h[h.length-1-a],h[h.length-1-a]=o)}else{var d=Math.abs(t-this._x.call(null,u.data));d<e&&(e=d,s=t-d,l=t+d,n=u.data)}return n},to.remove=function(t){if(isNaN(o=+this._x.call(null,t)))return this;var e,n,r,i,o,a,s,l,h,u=this._root,c=this._x0,d=this._x1;if(!u)return this;if(u.length)for(;;){if((s=o>=(a=(c+d)/2))?c=a:d=a,e=u,!(u=u[l=+s]))return this;if(!u.length)break;e[l+1&1]&&(n=e,h=l)}for(;u.data!==t;)if(r=u,!(u=u.next))return this;return((i=u.next)&&delete u.next,r)?i?r.next=i:delete r.next:e?(i?e[l]=i:delete e[l],(u=e[0]||e[1])&&u===(e[1]||e[0])&&!u.length&&(n?n[h]=u:this._root=u)):this._root=i,this},to.removeAll=function(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this},to.root=function(){return this._root},to.size=function(){var t=0;return this.visit(function(e){if(!e.length)do++t;while(e=e.next)}),t},to.visit=function(t){var e,n,r,i,o=[],a=this._root;for(a&&o.push(new tt(a,this._x0,this._x1));e=o.pop();)if(!t(a=e.node,r=e.x0,i=e.x1)&&a.length){var s=(r+i)/2;(n=a[1])&&o.push(new tt(n,s,i)),(n=a[0])&&o.push(new tt(n,r,s))}return this},to.visitAfter=function(t){var e,n=[],r=[];for(this._root&&n.push(new tt(this._root,this._x0,this._x1));e=n.pop();){var i=e.node;if(i.length){var o,a=e.x0,s=e.x1,l=(a+s)/2;(o=i[0])&&n.push(new tt(o,a,l)),(o=i[1])&&n.push(new tt(o,l,s))}r.push(e)}for(;e=r.pop();)t(e.node,e.x0,e.x1);return this},to.x=function(t){return arguments.length?(this._x=t,this):this._x};var tf=tu.prototype=tc.prototype;function tp(t,e,n,r,i){if(isNaN(e)||isNaN(n)||isNaN(r))return t;var o,a,s,l,h,u,c,d,f,p,_,g,y=t._root,m={data:i},v=t._x0,b=t._y0,w=t._z0,x=t._x1,k=t._y1,P=t._z1;if(!y)return t._root=m,t;for(;y.length;)if((d=e>=(a=(v+x)/2))?v=a:x=a,(f=n>=(s=(b+k)/2))?b=s:k=s,(p=r>=(l=(w+P)/2))?w=l:P=l,o=y,!(y=y[_=p<<2|f<<1|d]))return o[_]=m,t;if(h=+t._x.call(null,y.data),u=+t._y.call(null,y.data),c=+t._z.call(null,y.data),e===h&&n===u&&r===c)return m.next=y,o?o[_]=m:t._root=m,t;do o=o?o[_]=Array(8):t._root=Array(8),(d=e>=(a=(v+x)/2))?v=a:x=a,(f=n>=(s=(b+k)/2))?b=s:k=s,(p=r>=(l=(w+P)/2))?w=l:P=l;while((_=p<<2|f<<1|d)==(g=(c>=l)<<2|(u>=s)<<1|h>=a));return o[g]=y,o[_]=m,t}function t_(t,e,n,r,i,o,a){this.node=t,this.x0=e,this.y0=n,this.z0=r,this.x1=i,this.y1=o,this.z1=a}tf.copy=function(){var t,e,n=new tc(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return n;if(!r.length)return n._root=td(r),n;for(t=[{source:r,target:n._root=[,,,,]}];r=t.pop();)for(var i=0;i<4;++i)(e=r.source[i])&&(e.length?t.push({source:e,target:r.target[i]=[,,,,]}):r.target[i]=td(e));return n},tf.add=function(t){let e=+this._x.call(null,t),n=+this._y.call(null,t);return ta(this.cover(e,n),e,n,t)},tf.addAll=function(t){var e,n,r,i,o=t.length,a=Array(o),s=Array(o),l=1/0,h=1/0,u=-1/0,c=-1/0;for(n=0;n<o;++n)!(isNaN(r=+this._x.call(null,e=t[n]))||isNaN(i=+this._y.call(null,e)))&&(a[n]=r,s[n]=i,r<l&&(l=r),r>u&&(u=r),i<h&&(h=i),i>c&&(c=i));if(l>u||h>c)return this;for(this.cover(l,h).cover(u,c),n=0;n<o;++n)ta(this,a[n],s[n],t[n]);return this},tf.cover=function(t,e){if(isNaN(t*=1)||isNaN(e*=1))return this;var n=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(n))i=(n=Math.floor(t))+1,o=(r=Math.floor(e))+1;else{for(var a,s,l=i-n||1,h=this._root;n>t||t>=i||r>e||e>=o;)switch(s=(e<r)<<1|t<n,(a=[,,,,])[s]=h,h=a,l*=2,s){case 0:i=n+l,o=r+l;break;case 1:n=i-l,o=r+l;break;case 2:i=n+l,r=o-l;break;case 3:n=i-l,r=o-l}this._root&&this._root.length&&(this._root=h)}return this._x0=n,this._y0=r,this._x1=i,this._y1=o,this},tf.data=function(){var t=[];return this.visit(function(e){if(!e.length)do t.push(e.data);while(e=e.next)}),t},tf.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},tf.find=function(t,e,n){var r,i,o,a,s,l,h,u=this._x0,c=this._y0,d=this._x1,f=this._y1,p=[],_=this._root;for(_&&p.push(new ts(_,u,c,d,f)),null==n?n=1/0:(u=t-n,c=e-n,d=t+n,f=e+n,n*=n);l=p.pop();)if((_=l.node)&&!((i=l.x0)>d)&&!((o=l.y0)>f)&&!((a=l.x1)<u)&&!((s=l.y1)<c))if(_.length){var g=(i+a)/2,y=(o+s)/2;p.push(new ts(_[3],g,y,a,s),new ts(_[2],i,y,g,s),new ts(_[1],g,o,a,y),new ts(_[0],i,o,g,y)),(h=(e>=y)<<1|t>=g)&&(l=p[p.length-1],p[p.length-1]=p[p.length-1-h],p[p.length-1-h]=l)}else{var m=t-this._x.call(null,_.data),v=e-this._y.call(null,_.data),b=m*m+v*v;if(b<n){var w=Math.sqrt(n=b);u=t-w,c=e-w,d=t+w,f=e+w,r=_.data}}return r},tf.remove=function(t){if(isNaN(o=+this._x.call(null,t))||isNaN(a=+this._y.call(null,t)))return this;var e,n,r,i,o,a,s,l,h,u,c,d,f=this._root,p=this._x0,_=this._y0,g=this._x1,y=this._y1;if(!f)return this;if(f.length)for(;;){if((h=o>=(s=(p+g)/2))?p=s:g=s,(u=a>=(l=(_+y)/2))?_=l:y=l,e=f,!(f=f[c=u<<1|h]))return this;if(!f.length)break;(e[c+1&3]||e[c+2&3]||e[c+3&3])&&(n=e,d=c)}for(;f.data!==t;)if(r=f,!(f=f.next))return this;return((i=f.next)&&delete f.next,r)?i?r.next=i:delete r.next:e?(i?e[c]=i:delete e[c],(f=e[0]||e[1]||e[2]||e[3])&&f===(e[3]||e[2]||e[1]||e[0])&&!f.length&&(n?n[d]=f:this._root=f)):this._root=i,this},tf.removeAll=function(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this},tf.root=function(){return this._root},tf.size=function(){var t=0;return this.visit(function(e){if(!e.length)do++t;while(e=e.next)}),t},tf.visit=function(t){var e,n,r,i,o,a,s=[],l=this._root;for(l&&s.push(new ts(l,this._x0,this._y0,this._x1,this._y1));e=s.pop();)if(!t(l=e.node,r=e.x0,i=e.y0,o=e.x1,a=e.y1)&&l.length){var h=(r+o)/2,u=(i+a)/2;(n=l[3])&&s.push(new ts(n,h,u,o,a)),(n=l[2])&&s.push(new ts(n,r,u,h,a)),(n=l[1])&&s.push(new ts(n,h,i,o,u)),(n=l[0])&&s.push(new ts(n,r,i,h,u))}return this},tf.visitAfter=function(t){var e,n=[],r=[];for(this._root&&n.push(new ts(this._root,this._x0,this._y0,this._x1,this._y1));e=n.pop();){var i=e.node;if(i.length){var o,a=e.x0,s=e.y0,l=e.x1,h=e.y1,u=(a+l)/2,c=(s+h)/2;(o=i[0])&&n.push(new ts(o,a,s,u,c)),(o=i[1])&&n.push(new ts(o,u,s,l,c)),(o=i[2])&&n.push(new ts(o,a,c,u,h)),(o=i[3])&&n.push(new ts(o,u,c,l,h))}r.push(e)}for(;e=r.pop();)t(e.node,e.x0,e.y0,e.x1,e.y1);return this},tf.x=function(t){return arguments.length?(this._x=t,this):this._x},tf.y=function(t){return arguments.length?(this._y=t,this):this._y};let tg=(t,e,n,r,i,o)=>Math.sqrt((t-r)**2+(e-i)**2+(n-o)**2);function ty(t){return t[0]}function tm(t){return t[1]}function tv(t){return t[2]}function tb(t,e,n,r){var i=new tw(null==e?ty:e,null==n?tm:n,null==r?tv:r,NaN,NaN,NaN,NaN,NaN,NaN);return null==t?i:i.addAll(t)}function tw(t,e,n,r,i,o,a,s,l){this._x=t,this._y=e,this._z=n,this._x0=r,this._y0=i,this._z0=o,this._x1=a,this._y1=s,this._z1=l,this._root=void 0}function tx(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var tk=tb.prototype=tw.prototype;tk.copy=function(){var t,e,n=new tw(this._x,this._y,this._z,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1),r=this._root;if(!r)return n;if(!r.length)return n._root=tx(r),n;for(t=[{source:r,target:n._root=Array(8)}];r=t.pop();)for(var i=0;i<8;++i)(e=r.source[i])&&(e.length?t.push({source:e,target:r.target[i]=Array(8)}):r.target[i]=tx(e));return n},tk.add=function(t){let e=+this._x.call(null,t),n=+this._y.call(null,t),r=+this._z.call(null,t);return tp(this.cover(e,n,r),e,n,r,t)},tk.addAll=function(t){Array.isArray(t)||(t=Array.from(t));let e=t.length,n=new Float64Array(e),r=new Float64Array(e),i=new Float64Array(e),o=1/0,a=1/0,s=1/0,l=-1/0,h=-1/0,u=-1/0;for(let c=0,d,f,p,_;c<e;++c)!(isNaN(f=+this._x.call(null,d=t[c]))||isNaN(p=+this._y.call(null,d))||isNaN(_=+this._z.call(null,d)))&&(n[c]=f,r[c]=p,i[c]=_,f<o&&(o=f),f>l&&(l=f),p<a&&(a=p),p>h&&(h=p),_<s&&(s=_),_>u&&(u=_));if(o>l||a>h||s>u)return this;this.cover(o,a,s).cover(l,h,u);for(let o=0;o<e;++o)tp(this,n[o],r[o],i[o],t[o]);return this},tk.cover=function(t,e,n){if(isNaN(t*=1)||isNaN(e*=1)||isNaN(n*=1))return this;var r=this._x0,i=this._y0,o=this._z0,a=this._x1,s=this._y1,l=this._z1;if(isNaN(r))a=(r=Math.floor(t))+1,s=(i=Math.floor(e))+1,l=(o=Math.floor(n))+1;else{for(var h,u,c=a-r||1,d=this._root;r>t||t>=a||i>e||e>=s||o>n||n>=l;)switch(u=(n<o)<<2|(e<i)<<1|t<r,(h=Array(8))[u]=d,d=h,c*=2,u){case 0:a=r+c,s=i+c,l=o+c;break;case 1:r=a-c,s=i+c,l=o+c;break;case 2:a=r+c,i=s-c,l=o+c;break;case 3:r=a-c,i=s-c,l=o+c;break;case 4:a=r+c,s=i+c,o=l-c;break;case 5:r=a-c,s=i+c,o=l-c;break;case 6:a=r+c,i=s-c,o=l-c;break;case 7:r=a-c,i=s-c,o=l-c}this._root&&this._root.length&&(this._root=d)}return this._x0=r,this._y0=i,this._z0=o,this._x1=a,this._y1=s,this._z1=l,this},tk.data=function(){var t=[];return this.visit(function(e){if(!e.length)do t.push(e.data);while(e=e.next)}),t},tk.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1],+t[0][2]).cover(+t[1][0],+t[1][1],+t[1][2]):isNaN(this._x0)?void 0:[[this._x0,this._y0,this._z0],[this._x1,this._y1,this._z1]]},tk.find=function(t,e,n,r){var i,o,a,s,l,h,u,c,d,f=this._x0,p=this._y0,_=this._z0,g=this._x1,y=this._y1,m=this._z1,v=[],b=this._root;for(b&&v.push(new t_(b,f,p,_,g,y,m)),null==r?r=1/0:(f=t-r,p=e-r,_=n-r,g=t+r,y=e+r,m=n+r,r*=r);c=v.pop();)if((b=c.node)&&!((o=c.x0)>g)&&!((a=c.y0)>y)&&!((s=c.z0)>m)&&!((l=c.x1)<f)&&!((h=c.y1)<p)&&!((u=c.z1)<_))if(b.length){var w=(o+l)/2,x=(a+h)/2,k=(s+u)/2;v.push(new t_(b[7],w,x,k,l,h,u),new t_(b[6],o,x,k,w,h,u),new t_(b[5],w,a,k,l,x,u),new t_(b[4],o,a,k,w,x,u),new t_(b[3],w,x,s,l,h,k),new t_(b[2],o,x,s,w,h,k),new t_(b[1],w,a,s,l,x,k),new t_(b[0],o,a,s,w,x,k)),(d=(n>=k)<<2|(e>=x)<<1|t>=w)&&(c=v[v.length-1],v[v.length-1]=v[v.length-1-d],v[v.length-1-d]=c)}else{var P=t-this._x.call(null,b.data),E=e-this._y.call(null,b.data),S=n-this._z.call(null,b.data),O=P*P+E*E+S*S;if(O<r){var M=Math.sqrt(r=O);f=t-M,p=e-M,_=n-M,g=t+M,y=e+M,m=n+M,i=b.data}}return i},tk.findAllWithinRadius=function(t,e,n,r){let i=[],o=t-r,a=e-r,s=n-r,l=t+r,h=e+r,u=n+r;return this.visit((c,d,f,p,_,g,y)=>{if(!c.length)do{let o=c.data;tg(t,e,n,this._x(o),this._y(o),this._z(o))<=r&&i.push(o)}while(c=c.next);return d>l||f>h||p>u||_<o||g<a||y<s}),i},tk.remove=function(t){if(isNaN(o=+this._x.call(null,t))||isNaN(a=+this._y.call(null,t))||isNaN(s=+this._z.call(null,t)))return this;var e,n,r,i,o,a,s,l,h,u,c,d,f,p,_,g=this._root,y=this._x0,m=this._y0,v=this._z0,b=this._x1,w=this._y1,x=this._z1;if(!g)return this;if(g.length)for(;;){if((c=o>=(l=(y+b)/2))?y=l:b=l,(d=a>=(h=(m+w)/2))?m=h:w=h,(f=s>=(u=(v+x)/2))?v=u:x=u,e=g,!(g=g[p=f<<2|d<<1|c]))return this;if(!g.length)break;(e[p+1&7]||e[p+2&7]||e[p+3&7]||e[p+4&7]||e[p+5&7]||e[p+6&7]||e[p+7&7])&&(n=e,_=p)}for(;g.data!==t;)if(r=g,!(g=g.next))return this;return((i=g.next)&&delete g.next,r)?i?r.next=i:delete r.next:e?(i?e[p]=i:delete e[p],(g=e[0]||e[1]||e[2]||e[3]||e[4]||e[5]||e[6]||e[7])&&g===(e[7]||e[6]||e[5]||e[4]||e[3]||e[2]||e[1]||e[0])&&!g.length&&(n?n[_]=g:this._root=g)):this._root=i,this},tk.removeAll=function(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this},tk.root=function(){return this._root},tk.size=function(){var t=0;return this.visit(function(e){if(!e.length)do++t;while(e=e.next)}),t},tk.visit=function(t){var e,n,r,i,o,a,s,l,h=[],u=this._root;for(u&&h.push(new t_(u,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1));e=h.pop();)if(!t(u=e.node,r=e.x0,i=e.y0,o=e.z0,a=e.x1,s=e.y1,l=e.z1)&&u.length){var c=(r+a)/2,d=(i+s)/2,f=(o+l)/2;(n=u[7])&&h.push(new t_(n,c,d,f,a,s,l)),(n=u[6])&&h.push(new t_(n,r,d,f,c,s,l)),(n=u[5])&&h.push(new t_(n,c,i,f,a,d,l)),(n=u[4])&&h.push(new t_(n,r,i,f,c,d,l)),(n=u[3])&&h.push(new t_(n,c,d,o,a,s,f)),(n=u[2])&&h.push(new t_(n,r,d,o,c,s,f)),(n=u[1])&&h.push(new t_(n,c,i,o,a,d,f)),(n=u[0])&&h.push(new t_(n,r,i,o,c,d,f))}return this},tk.visitAfter=function(t){var e,n=[],r=[];for(this._root&&n.push(new t_(this._root,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1));e=n.pop();){var i=e.node;if(i.length){var o,a=e.x0,s=e.y0,l=e.z0,h=e.x1,u=e.y1,c=e.z1,d=(a+h)/2,f=(s+u)/2,p=(l+c)/2;(o=i[0])&&n.push(new t_(o,a,s,l,d,f,p)),(o=i[1])&&n.push(new t_(o,d,s,l,h,f,p)),(o=i[2])&&n.push(new t_(o,a,f,l,d,u,p)),(o=i[3])&&n.push(new t_(o,d,f,l,h,u,p)),(o=i[4])&&n.push(new t_(o,a,s,p,d,f,c)),(o=i[5])&&n.push(new t_(o,d,s,p,h,f,c)),(o=i[6])&&n.push(new t_(o,a,f,p,d,u,c)),(o=i[7])&&n.push(new t_(o,d,f,p,h,u,c))}r.push(e)}for(;e=r.pop();)t(e.node,e.x0,e.y0,e.z0,e.x1,e.y1,e.z1);return this},tk.x=function(t){return arguments.length?(this._x=t,this):this._x},tk.y=function(t){return arguments.length?(this._y=t,this):this._y},tk.z=function(t){return arguments.length?(this._z=t,this):this._z};function tP(t,e){this.id=t,this.links=null,this.data=e}function tE(t,e){t.links?t.links.add(e):t.links=new Set([e])}function tS(t,e,n,r){this.fromId=t,this.toId=e,this.data=n,this.id=r}function tO(t,e){return t.toString()+"\uD83D\uDC49 "+e.toString()}var tM=n(81699);let tC=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)};var tj="object"==typeof global&&global&&global.Object===Object&&global,tA="object"==typeof self&&self&&self.Object===Object&&self,tT=tj||tA||Function("return this")();let tD=function(){return tT.Date.now()};var tR=/\s/;let tN=function(t){for(var e=t.length;e--&&tR.test(t.charAt(e)););return e};var tI=/^\s+/,tL=tT.Symbol,tz=Object.prototype,tB=tz.hasOwnProperty,tF=tz.toString,tU=tL?tL.toStringTag:void 0;let tq=function(t){var e=tB.call(t,tU),n=t[tU];try{t[tU]=void 0;var r=!0}catch(t){}var i=tF.call(t);return r&&(e?t[tU]=n:delete t[tU]),i};var t$=Object.prototype.toString,tH=tL?tL.toStringTag:void 0;let tV=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":tH&&tH in Object(t)?tq(t):t$.call(t)},tY=function(t){return"symbol"==typeof t||null!=t&&"object"==typeof t&&"[object Symbol]"==tV(t)};var tW=0/0,tG=/^[-+]0x[0-9a-f]+$/i,tZ=/^0b[01]+$/i,tK=/^0o[0-7]+$/i,tX=parseInt;let tQ=function(t){if("number"==typeof t)return t;if(tY(t))return tW;if(tC(t)){var e,n="function"==typeof t.valueOf?t.valueOf():t;t=tC(n)?n+"":n}if("string"!=typeof t)return 0===t?t:+t;t=(e=t)?e.slice(0,tN(e)+1).replace(tI,""):e;var r=tZ.test(t);return r||tK.test(t)?tX(t.slice(2),r?2:8):tG.test(t)?tW:+t};var tJ=Math.max,t0=Math.min;let t1=function(t,e,n){var r,i,o,a,s,l,h=0,u=!1,c=!1,d=!0;if("function"!=typeof t)throw TypeError("Expected a function");function f(e){var n=r,o=i;return r=i=void 0,h=e,a=t.apply(o,n)}function p(t){var n=t-l,r=t-h;return void 0===l||n>=e||n<0||c&&r>=o}function _(){var t,n,r,i=tD();if(p(i))return g(i);s=setTimeout(_,(t=i-l,n=i-h,r=e-t,c?t0(r,o-n):r))}function g(t){return(s=void 0,d&&r)?f(t):(r=i=void 0,a)}function y(){var t,n=tD(),o=p(n);if(r=arguments,i=this,l=n,o){if(void 0===s)return h=t=l,s=setTimeout(_,e),u?f(t):a;if(c)return clearTimeout(s),s=setTimeout(_,e),f(l)}return void 0===s&&(s=setTimeout(_,e)),a}return e=tQ(e)||0,tC(n)&&(u=!!n.leading,o=(c="maxWait"in n)?tJ(tQ(n.maxWait)||0,e):o,d="trailing"in n?!!n.trailing:d),y.cancel=function(){void 0!==s&&clearTimeout(s),h=0,r=l=i=s=void 0},y.flush=function(){return void 0===s?a:g(tD())},y};function t2(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}var t3=function(t,e,n){return Object.defineProperty(t,"prototype",{writable:!1}),t}(function t(e,n){var r=n.default,i=n.triggerUpdate,o=n.onChange;if(!(this instanceof t))throw TypeError("Cannot call a class as a function");this.name=e,this.defaultVal=void 0===r?null:r,this.triggerUpdate=void 0===i||i,this.onChange=void 0===o?function(t,e){}:o});function t5(t){var e=t.stateInit,n=void 0===e?function(){return{}}:e,r=t.props,i=void 0===r?{}:r,o=t.methods,a=void 0===o?{}:o,s=t.aliases,l=void 0===s?{}:s,h=t.init,u=void 0===h?function(){}:h,c=t.update,d=void 0===c?function(){}:c,f=Object.keys(i).map(function(t){return new t3(t,i[t])});return function t(){for(var e=arguments.length,r=Array(e),i=0;i<e;i++)r[i]=arguments[i];var o=!!(this instanceof t?this.constructor:void 0),s=o?r.shift():void 0,h=r[0],c=void 0===h?{}:h,p=Object.assign({},n instanceof Function?n(c):n,{initialised:!1}),_={};function g(t){return y(t,c),m(),g}var y=function(t,e){u.call(g,t,p,e),p.initialised=!0},m=t1(function(){p.initialised&&(d.call(g,p,_),_={})},1);return f.forEach(function(t){var e,n,r,i,o,a,s,l;g[t.name]=(n=(e=t).name,i=void 0!==(r=e.triggerUpdate)&&r,a=void 0===(o=e.onChange)?function(t,e){}:o,l=void 0===(s=e.defaultVal)?null:s,function(t){var e=p[n];if(!arguments.length)return e;var r=void 0===t?l:t;return p[n]=r,a.call(g,r,p,e),_.hasOwnProperty(n)||(_[n]=e),i&&m(),g})}),Object.keys(a).forEach(function(t){g[t]=function(){for(var e,n=arguments.length,r=Array(n),i=0;i<n;i++)r[i]=arguments[i];return(e=a[t]).call.apply(e,[g,p].concat(r))}}),Object.entries(l).forEach(function(t){var e=function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o,a,s=[],l=!0,h=!1;try{o=(n=n.call(t)).next,!1;for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==e);l=!0);}catch(t){h=!0,i=t}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(h)throw i}}return s}}(t,2)||function(t,e){if(t){if("string"==typeof t)return t2(t,2);var n=({}).toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?t2(t,e):void 0}}(t,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),n=e[0],r=e[1];return g[n]=g[r]}),g.resetProps=function(){return f.forEach(function(t){g[t.name](t.defaultVal)}),g},g.resetProps(),p._rerender=m,o&&s&&g(s),g}}var t6=function(t){return"function"==typeof t?t:"string"==typeof t?function(e){return e[t]}:function(e){return t}},t8=n(43364),t4=n(69302);function t9(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}function t7(t,e,n){if("function"==typeof t?t===e:t.has(e))return arguments.length<3?e:n;throw TypeError("Private element is not present on this object")}function et(t,e){return t.get(t7(t,e))}function ee(t,e,n){(function(t,e){if(e.has(t))throw TypeError("Cannot initialize the same private elements twice on an object")})(t,e),e.set(t,n)}function en(t,e,n){return t.set(t7(t,e),n),n}function er(t,e){if(t){if("string"==typeof t)return t9(t,e);var n=({}).toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?t9(t,e):void 0}}var ei=new WeakMap,eo=new WeakMap,ea=new WeakMap,es=new WeakMap,el=new WeakMap,eh=new WeakMap,eu=function(){var t,e;return t=function t(){if(!(this instanceof t))throw TypeError("Cannot call a class as a function");ee(this,ei,new Map),ee(this,eo,new Map),ee(this,ea,function(t){return t}),ee(this,es,function(){return{}}),ee(this,el,function(){}),ee(this,eh,function(){})},e=[{key:"getObj",value:function(t){return et(ei,this).get(et(ea,this).call(this,t))}},{key:"getData",value:function(t){return et(eo,this).get(t)}},{key:"entries",value:function(){var t;return((function(t){if(Array.isArray(t))return t9(t)})(t=et(eo,this).entries())||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||er(t)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map(function(t){var e=function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o,a,s=[],l=!0,h=!1;try{o=(n=n.call(t)).next,!1;for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==e);l=!0);}catch(t){h=!0,i=t}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(h)throw i}}return s}}(t,2)||er(t,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),n=e[0];return[e[1],n]})}},{key:"id",value:function(t){return en(ea,this,t6(t)),this}},{key:"onCreateObj",value:function(t){return en(es,this,t),this}},{key:"onUpdateObj",value:function(t){return en(el,this,t),this}},{key:"onRemoveObj",value:function(t){return en(eh,this,t),this}},{key:"digest",value:function(t){var e=this;t.filter(function(t){return!et(ei,e).has(et(ea,e).call(e,t))}).forEach(function(t){var n=et(es,e).call(e,t);et(ei,e).set(et(ea,e).call(e,t),n),et(eo,e).set(n,t)});var n=new Map(t.map(function(t){return[et(ea,e).call(e,t),t]}));return et(ei,this).forEach(function(t,r){n.has(r)?et(el,e).call(e,t,n.get(r)):(et(eh,e).call(e,t,r),et(ei,e).delete(r),et(eo,e).delete(t))}),this}},{key:"clear",value:function(){return this.digest([]),this}}],function(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,function(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"==typeof e?e:e+""}(r.key),r)}}(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t}(),ec=n(40161);let ed=function(t){for(var e=t.length/6|0,n=Array(e),r=0;r<e;)n[r]="#"+t.slice(6*r,6*++r);return n}("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928");function ef(t){return(ef="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var ep=/^\s+/,e_=/\s+$/;function eg(t,e){if(e=e||{},(t=t||"")instanceof eg)return t;if(!(this instanceof eg))return new eg(t,e);var n,r,i,o,a,s,l,h,u,c,d,f,p,_,g,y,m,v,b,w,x=(r={r:0,g:0,b:0},i=1,o=null,a=null,s=null,l=!1,h=!1,"string"==typeof(n=t)&&(n=function(t){t=t.replace(ep,"").replace(e_,"").toLowerCase();var e,n=!1;if(eD[t])t=eD[t],n=!0;else if("transparent"==t)return{r:0,g:0,b:0,a:0,format:"name"};return(e=eq.rgb.exec(t))?{r:e[1],g:e[2],b:e[3]}:(e=eq.rgba.exec(t))?{r:e[1],g:e[2],b:e[3],a:e[4]}:(e=eq.hsl.exec(t))?{h:e[1],s:e[2],l:e[3]}:(e=eq.hsla.exec(t))?{h:e[1],s:e[2],l:e[3],a:e[4]}:(e=eq.hsv.exec(t))?{h:e[1],s:e[2],v:e[3]}:(e=eq.hsva.exec(t))?{h:e[1],s:e[2],v:e[3],a:e[4]}:(e=eq.hex8.exec(t))?{r:ez(e[1]),g:ez(e[2]),b:ez(e[3]),a:ez(e[4])/255,format:n?"name":"hex8"}:(e=eq.hex6.exec(t))?{r:ez(e[1]),g:ez(e[2]),b:ez(e[3]),format:n?"name":"hex"}:(e=eq.hex4.exec(t))?{r:ez(e[1]+""+e[1]),g:ez(e[2]+""+e[2]),b:ez(e[3]+""+e[3]),a:ez(e[4]+""+e[4])/255,format:n?"name":"hex8"}:!!(e=eq.hex3.exec(t))&&{r:ez(e[1]+""+e[1]),g:ez(e[2]+""+e[2]),b:ez(e[3]+""+e[3]),format:n?"name":"hex"}}(n)),"object"==ef(n)&&(e$(n.r)&&e$(n.g)&&e$(n.b)?(u=n.r,c=n.g,d=n.b,r={r:255*eI(u,255),g:255*eI(c,255),b:255*eI(d,255)},l=!0,h="%"===String(n.r).substr(-1)?"prgb":"rgb"):e$(n.h)&&e$(n.s)&&e$(n.v)?(o=eF(n.s),a=eF(n.v),f=n.h,p=o,_=a,f=6*eI(f,360),p=eI(p,100),_=eI(_,100),g=Math.floor(f),y=f-g,m=_*(1-p),v=_*(1-y*p),b=_*(1-(1-y)*p),r={r:255*[_,v,m,m,b,_][w=g%6],g:255*[b,_,_,v,m,m][w],b:255*[m,m,b,_,_,v][w]},l=!0,h="hsv"):e$(n.h)&&e$(n.s)&&e$(n.l)&&(o=eF(n.s),s=eF(n.l),r=function(t,e,n){var r,i,o;function a(t,e,n){return(n<0&&(n+=1),n>1&&(n-=1),n<1/6)?t+(e-t)*6*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t}if(t=eI(t,360),e=eI(e,100),n=eI(n,100),0===e)r=i=o=n;else{var s=n<.5?n*(1+e):n+e-n*e,l=2*n-s;r=a(l,s,t+1/3),i=a(l,s,t),o=a(l,s,t-1/3)}return{r:255*r,g:255*i,b:255*o}}(n.h,o,s),l=!0,h="hsl"),n.hasOwnProperty("a")&&(i=n.a)),i=eN(i),{ok:l,format:n.format||h,r:Math.min(255,Math.max(r.r,0)),g:Math.min(255,Math.max(r.g,0)),b:Math.min(255,Math.max(r.b,0)),a:i});this._originalInput=t,this._r=x.r,this._g=x.g,this._b=x.b,this._a=x.a,this._roundA=Math.round(100*this._a)/100,this._format=e.format||x.format,this._gradientType=e.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=x.ok}function ey(t,e,n){t=eI(t,255);var r,i,o=Math.max(t,e=eI(e,255),n=eI(n,255)),a=Math.min(t,e,n),s=(o+a)/2;if(o==a)r=i=0;else{var l=o-a;switch(i=s>.5?l/(2-o-a):l/(o+a),o){case t:r=(e-n)/l+6*(e<n);break;case e:r=(n-t)/l+2;break;case n:r=(t-e)/l+4}r/=6}return{h:r,s:i,l:s}}function em(t,e,n){t=eI(t,255);var r,i=Math.max(t,e=eI(e,255),n=eI(n,255)),o=Math.min(t,e,n),a=i-o;if(i==o)r=0;else{switch(i){case t:r=(e-n)/a+6*(e<n);break;case e:r=(n-t)/a+2;break;case n:r=(t-e)/a+4}r/=6}return{h:r,s:0===i?0:a/i,v:i}}function ev(t,e,n,r){var i=[eB(Math.round(t).toString(16)),eB(Math.round(e).toString(16)),eB(Math.round(n).toString(16))];return r&&i[0].charAt(0)==i[0].charAt(1)&&i[1].charAt(0)==i[1].charAt(1)&&i[2].charAt(0)==i[2].charAt(1)?i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0):i.join("")}function eb(t,e,n,r){return[eB(eU(r)),eB(Math.round(t).toString(16)),eB(Math.round(e).toString(16)),eB(Math.round(n).toString(16))].join("")}function ew(t,e){e=0===e?0:e||10;var n=eg(t).toHsl();return n.s-=e/100,n.s=eL(n.s),eg(n)}function ex(t,e){e=0===e?0:e||10;var n=eg(t).toHsl();return n.s+=e/100,n.s=eL(n.s),eg(n)}function ek(t){return eg(t).desaturate(100)}function eP(t,e){e=0===e?0:e||10;var n=eg(t).toHsl();return n.l+=e/100,n.l=eL(n.l),eg(n)}function eE(t,e){e=0===e?0:e||10;var n=eg(t).toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(-(e/100*255)))),n.g=Math.max(0,Math.min(255,n.g-Math.round(-(e/100*255)))),n.b=Math.max(0,Math.min(255,n.b-Math.round(-(e/100*255)))),eg(n)}function eS(t,e){e=0===e?0:e||10;var n=eg(t).toHsl();return n.l-=e/100,n.l=eL(n.l),eg(n)}function eO(t,e){var n=eg(t).toHsl(),r=(n.h+e)%360;return n.h=r<0?360+r:r,eg(n)}function eM(t){var e=eg(t).toHsl();return e.h=(e.h+180)%360,eg(e)}function eC(t,e){if(isNaN(e)||e<=0)throw Error("Argument to polyad must be a positive number");for(var n=eg(t).toHsl(),r=[eg(t)],i=360/e,o=1;o<e;o++)r.push(eg({h:(n.h+o*i)%360,s:n.s,l:n.l}));return r}function ej(t){var e=eg(t).toHsl(),n=e.h;return[eg(t),eg({h:(n+72)%360,s:e.s,l:e.l}),eg({h:(n+216)%360,s:e.s,l:e.l})]}function eA(t,e,n){e=e||6,n=n||30;var r=eg(t).toHsl(),i=360/n,o=[eg(t)];for(r.h=(r.h-(i*e>>1)+720)%360;--e;)r.h=(r.h+i)%360,o.push(eg(r));return o}function eT(t,e){e=e||6;for(var n=eg(t).toHsv(),r=n.h,i=n.s,o=n.v,a=[],s=1/e;e--;)a.push(eg({h:r,s:i,v:o})),o=(o+s)%1;return a}eg.prototype={isDark:function(){return 128>this.getBrightness()},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},getLuminance:function(){var t,e,n,r=this.toRgb();return t=r.r/255,e=r.g/255,.2126*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.7152*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.0722*((n=r.b/255)<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))},setAlpha:function(t){return this._a=eN(t),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var t=em(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=em(this._r,this._g,this._b),e=Math.round(360*t.h),n=Math.round(100*t.s),r=Math.round(100*t.v);return 1==this._a?"hsv("+e+", "+n+"%, "+r+"%)":"hsva("+e+", "+n+"%, "+r+"%, "+this._roundA+")"},toHsl:function(){var t=ey(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=ey(this._r,this._g,this._b),e=Math.round(360*t.h),n=Math.round(100*t.s),r=Math.round(100*t.l);return 1==this._a?"hsl("+e+", "+n+"%, "+r+"%)":"hsla("+e+", "+n+"%, "+r+"%, "+this._roundA+")"},toHex:function(t){return ev(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(t){var e,n,r,i,o,a;return e=this._r,n=this._g,r=this._b,i=this._a,o=t,a=[eB(Math.round(e).toString(16)),eB(Math.round(n).toString(16)),eB(Math.round(r).toString(16)),eB(eU(i))],o&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)&&a[3].charAt(0)==a[3].charAt(1)?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0):a.join("")},toHex8String:function(t){return"#"+this.toHex8(t)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(100*eI(this._r,255))+"%",g:Math.round(100*eI(this._g,255))+"%",b:Math.round(100*eI(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+Math.round(100*eI(this._r,255))+"%, "+Math.round(100*eI(this._g,255))+"%, "+Math.round(100*eI(this._b,255))+"%)":"rgba("+Math.round(100*eI(this._r,255))+"%, "+Math.round(100*eI(this._g,255))+"%, "+Math.round(100*eI(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(eR[ev(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var e="#"+eb(this._r,this._g,this._b,this._a),n=e,r=this._gradientType?"GradientType = 1, ":"";if(t){var i=eg(t);n="#"+eb(i._r,i._g,i._b,i._a)}return"progid:DXImageTransform.Microsoft.gradient("+r+"startColorstr="+e+",endColorstr="+n+")"},toString:function(t){var e=!!t;t=t||this._format;var n=!1,r=this._a<1&&this._a>=0;return!e&&r&&("hex"===t||"hex6"===t||"hex3"===t||"hex4"===t||"hex8"===t||"name"===t)?"name"===t&&0===this._a?this.toName():this.toRgbString():("rgb"===t&&(n=this.toRgbString()),"prgb"===t&&(n=this.toPercentageRgbString()),("hex"===t||"hex6"===t)&&(n=this.toHexString()),"hex3"===t&&(n=this.toHexString(!0)),"hex4"===t&&(n=this.toHex8String(!0)),"hex8"===t&&(n=this.toHex8String()),"name"===t&&(n=this.toName()),"hsl"===t&&(n=this.toHslString()),"hsv"===t&&(n=this.toHsvString()),n||this.toHexString())},clone:function(){return eg(this.toString())},_applyModification:function(t,e){var n=t.apply(null,[this].concat([].slice.call(e)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(eP,arguments)},brighten:function(){return this._applyModification(eE,arguments)},darken:function(){return this._applyModification(eS,arguments)},desaturate:function(){return this._applyModification(ew,arguments)},saturate:function(){return this._applyModification(ex,arguments)},greyscale:function(){return this._applyModification(ek,arguments)},spin:function(){return this._applyModification(eO,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(eA,arguments)},complement:function(){return this._applyCombination(eM,arguments)},monochromatic:function(){return this._applyCombination(eT,arguments)},splitcomplement:function(){return this._applyCombination(ej,arguments)},triad:function(){return this._applyCombination(eC,[3])},tetrad:function(){return this._applyCombination(eC,[4])}},eg.fromRatio=function(t,e){if("object"==ef(t)){var n={};for(var r in t)t.hasOwnProperty(r)&&("a"===r?n[r]=t[r]:n[r]=eF(t[r]));t=n}return eg(t,e)},eg.equals=function(t,e){return!!t&&!!e&&eg(t).toRgbString()==eg(e).toRgbString()},eg.random=function(){return eg.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})},eg.mix=function(t,e,n){n=0===n?0:n||50;var r=eg(t).toRgb(),i=eg(e).toRgb(),o=n/100;return eg({r:(i.r-r.r)*o+r.r,g:(i.g-r.g)*o+r.g,b:(i.b-r.b)*o+r.b,a:(i.a-r.a)*o+r.a})},eg.readability=function(t,e){var n=eg(t),r=eg(e);return(Math.max(n.getLuminance(),r.getLuminance())+.05)/(Math.min(n.getLuminance(),r.getLuminance())+.05)},eg.isReadable=function(t,e,n){var r,i,o,a,s,l=eg.readability(t,e);switch(s=!1,(i=((r=(r=n)||{level:"AA",size:"small"}).level||"AA").toUpperCase(),o=(r.size||"small").toLowerCase(),"AA"!==i&&"AAA"!==i&&(i="AA"),"small"!==o&&"large"!==o&&(o="small"),a={level:i,size:o}).level+a.size){case"AAsmall":case"AAAlarge":s=l>=4.5;break;case"AAlarge":s=l>=3;break;case"AAAsmall":s=l>=7}return s},eg.mostReadable=function(t,e,n){var r,i,o,a,s=null,l=0;i=(n=n||{}).includeFallbackColors,o=n.level,a=n.size;for(var h=0;h<e.length;h++)(r=eg.readability(t,e[h]))>l&&(l=r,s=eg(e[h]));return eg.isReadable(t,s,{level:o,size:a})||!i?s:(n.includeFallbackColors=!1,eg.mostReadable(t,["#fff","#000"],n))};var eD=eg.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},eR=eg.hexNames=function(t){var e={};for(var n in t)t.hasOwnProperty(n)&&(e[t[n]]=n);return e}(eD);function eN(t){return(isNaN(t=parseFloat(t))||t<0||t>1)&&(t=1),t}function eI(t,e){"string"==typeof(n=t)&&-1!=n.indexOf(".")&&1===parseFloat(n)&&(t="100%");var n,r,i="string"==typeof(r=t)&&-1!=r.indexOf("%");return(t=Math.min(e,Math.max(0,parseFloat(t))),i&&(t=parseInt(t*e,10)/100),1e-6>Math.abs(t-e))?1:t%e/parseFloat(e)}function eL(t){return Math.min(1,Math.max(0,t))}function ez(t){return parseInt(t,16)}function eB(t){return 1==t.length?"0"+t:""+t}function eF(t){return t<=1&&(t=100*t+"%"),t}function eU(t){return Math.round(255*parseFloat(t)).toString(16)}var eq=function(){var t="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",e="[\\s|\\(]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")\\s*\\)?",n="[\\s|\\(]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")\\s*\\)?";return{CSS_UNIT:new RegExp(t),rgb:RegExp("rgb"+e),rgba:RegExp("rgba"+n),hsl:RegExp("hsl"+e),hsla:RegExp("hsla"+n),hsv:RegExp("hsv"+e),hsva:RegExp("hsva"+n),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function e$(t){return!!eq.CSS_UNIT.exec(t)}function eH(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}function eV(t,e,n){if("function"==typeof t?t===e:t.has(e))return arguments.length<3?e:n;throw TypeError("Private element is not present on this object")}function eY(t,e,n){return e=e1(e),function(t,e){if(e&&("object"==typeof e||"function"==typeof e))return e;if(void 0!==e)throw TypeError("Derived constructors may only return object or undefined");if(void 0===t)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t,e3()?Reflect.construct(e,n||[],e1(t).constructor):e.apply(t,n))}function eW(t,e){if(!(t instanceof e))throw TypeError("Cannot call a class as a function")}function eG(t,e){return t.get(eV(t,e))}function eZ(t,e,n){(function(t,e){if(e.has(t))throw TypeError("Cannot initialize the same private elements twice on an object")})(t,e),e.set(t,n)}function eK(t,e,n){return t.set(eV(t,e),n),n}function eX(t,e,n){if(e3())return Reflect.construct.apply(null,arguments);var r=[null];return r.push.apply(r,e),new(t.bind.apply(t,r))}function eQ(t,e,n){return e&&function(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,e7(r.key),r)}}(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t}function eJ(t,e,n){return(e=e7(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function e0(){return(e0="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(t,e,n){var r=function(t,e){for(;!({}).hasOwnProperty.call(t,e)&&null!==(t=e1(t)););return t}(t,e);if(r){var i=Object.getOwnPropertyDescriptor(r,e);return i.get?i.get.call(arguments.length<3?t:n):i.value}}).apply(null,arguments)}function e1(t){return(e1=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function e2(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&e6(t,e)}function e3(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(e3=function(){return!!t})()}function e5(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function e6(t,e){return(e6=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t})(t,e)}function e8(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o,a,s=[],l=!0,h=!1;try{if(o=(n=n.call(t)).next,0===e);else for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==e);l=!0);}catch(t){h=!0,i=t}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(h)throw i}}return s}}(t,e)||ne(t,e)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function e4(t,e,n,r){var i=e0(e1(t.prototype),e,n);return"function"==typeof i?function(t){return i.apply(n,t)}:i}function e9(t){return function(t){if(Array.isArray(t))return eH(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||ne(t)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function e7(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}function nt(t){return(nt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function ne(t,e){if(t){if("string"==typeof t)return eH(t,e);var n=({}).toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?eH(t,e):void 0}}var nn=function(t){t instanceof Array?t.forEach(nn):(t.map&&t.map.dispose(),t.dispose())},nr=function(t){t.geometry&&t.geometry.dispose(),t.material&&nn(t.material),t.texture&&t.texture.dispose(),t.children&&t.children.forEach(nr)},ni=function(t){for(;t.children.length;){var e=t.children[0];t.remove(e),nr(e)}},no=new WeakMap,na=new WeakMap,ns=function(t){function e(t){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=r.dataBindAttr,o=r.objBindAttr;return eW(this,e),eJ(n=eY(this,e),"scene",void 0),eZ(n,no,void 0),eZ(n,na,void 0),n.scene=t,eK(no,n,void 0===i?"__data":i),eK(na,n,void 0===o?"__threeObj":o),n.onRemoveObj(function(){}),n}return e2(e,t),eQ(e,[{key:"onCreateObj",value:function(t){var n=this;return e4(e,"onCreateObj",this)([function(e){var r=t(e);return e[eG(na,n)]=r,r[eG(no,n)]=e,n.scene.add(r),r}]),this}},{key:"onRemoveObj",value:function(t){var n=this;return e4(e,"onRemoveObj",this)([function(r,i){var o=e4(e,"getData",n)([r]);t(r,i),n.scene.remove(r),nr(r),delete o[eG(na,n)]}]),this}}])}(eu),nl=function(t){return isNaN(t)?parseInt(eg(t).toHex(),16):t},nh=function(t){return isNaN(t)?eg(t).getAlpha():1},nu=(0,ec.A)(ed);function nc(t,e,n){e&&"string"==typeof n&&t.filter(function(t){return!t[n]}).forEach(function(t){t[n]=nu(e(t))})}var nd=window.THREE?window.THREE:{Group:r.YJl,Mesh:r.eaF,MeshLambertMaterial:r.G_z,Color:r.Q1f,BufferGeometry:r.LoY,BufferAttribute:r.THS,Matrix4:r.kn4,Vector3:r.Pq0,SphereGeometry:r.Gu$,CylinderGeometry:r.Ho_,TubeGeometry:r.j6,ConeGeometry:r.qFE,Line:r.N1A,LineBasicMaterial:r.mrM,QuadraticBezierCurve3:r.CV9,CubicBezierCurve3:r.s0K,Box3:r.NRn},nf={graph:function(t){if("uniqueLinkId"in(t=t||{})&&(console.warn("ngraph.graph: Starting from version 0.14 `uniqueLinkId` is deprecated.\nUse `multigraph` option instead\n","\n","Note: there is also change in default behavior: From now on each graph\nis considered to be not a multigraph by default (each edge is unique)."),t.multigraph=t.uniqueLinkId),void 0===t.multigraph&&(t.multigraph=!1),"function"!=typeof Map)throw Error("ngraph.graph requires `Map` to be defined. Please polyfill it before using ngraph");var e,n=new Map,r=new Map,i={},o=0,a=t.multigraph?function(t,e,n){var r=tO(t,e),o=i.hasOwnProperty(r);if(o||w(t,e)){o||(i[r]=0);var a="@"+ ++i[r];r=tO(t+a,e+a)}return new tS(t,e,n,r)}:function(t,e,n){var i=tO(t,e),o=r.get(i);return o?(o.data=n,o):new tS(t,e,n,i)},s=[],l=x,h=x,u=x,c=x,d={version:20,addNode:_,addLink:function(t,e,n){u();var i=g(t)||_(t),o=g(e)||_(e),s=a(t,e,n),h=r.has(s.id);return r.set(s.id,s),tE(i,s),t!==e&&tE(o,s),l(s,h?"update":"add"),c(),s},removeLink:function(t,e){return void 0!==e&&(t=w(t,e)),b(t)},removeNode:y,getNode:g,getNodeCount:m,getLinkCount:v,getEdgeCount:v,getLinksCount:v,getNodesCount:m,getLinks:function(t){var e=g(t);return e?e.links:null},forEachNode:E,forEachLinkedNode:function(t,e,r){var i=g(t);if(i&&i.links&&"function"==typeof e)if(r)return function(t,e,r){for(var i=t.values(),o=i.next();!o.done;){var a=o.value;if(a.fromId===e&&r(n.get(a.toId),a))return!0;o=i.next()}}(i.links,t,e);else return function(t,e,r){for(var i=t.values(),o=i.next();!o.done;){var a=o.value,s=a.fromId===e?a.toId:a.fromId;if(r(n.get(s),a))return!0;o=i.next()}}(i.links,t,e)},forEachLink:function(t){if("function"==typeof t)for(var e=r.values(),n=e.next();!n.done;){if(t(n.value))return!0;n=e.next()}},beginUpdate:u,endUpdate:c,clear:function(){u(),E(function(t){y(t.id)}),c()},hasLink:w,hasNode:g,getLink:w,getLinkById:function(t){if(void 0!==t)return r.get(t)}};return!function(t){let e;var n,r=t;if(!r)throw Error("Eventify cannot use falsy object as events subject");let i=["on","fire","off"];for(let t=0;t<i.length;++t)if(r.hasOwnProperty(i[t]))throw Error("Subject cannot be eventified, since it already has property '"+i[t]+"'");let o=(n=t,e=Object.create(null),{on:function(t,r,i){if("function"!=typeof r)throw Error("callback is expected to be a function");let o=e[t];return o||(o=e[t]=[]),o.push({callback:r,ctx:i}),n},off:function(t,r){if(void 0===t)return e=Object.create(null),n;if(e[t])if("function"!=typeof r)delete e[t];else{let n=e[t];for(let t=0;t<n.length;++t)n[t].callback===r&&n.splice(t,1)}return n},fire:function(t){let r,i=e[t];if(!i)return n;arguments.length>1&&(r=Array.prototype.slice.call(arguments,1));for(let t=0;t<i.length;++t){let e=i[t];e.callback.apply(e.ctx,r)}return n}});t.on=o.on,t.off=o.off,t.fire=o.fire}(d),e=d.on,d.on=function(){return d.beginUpdate=u=k,d.endUpdate=c=P,l=f,h=p,d.on=e,e.apply(d,arguments)},d;function f(t,e){s.push({link:t,changeType:e})}function p(t,e){s.push({node:t,changeType:e})}function _(t,e){if(void 0===t)throw Error("Invalid node identifier");u();var r=g(t);return r?(r.data=e,h(r,"update")):(r=new tP(t,e),h(r,"add")),n.set(t,r),c(),r}function g(t){return n.get(t)}function y(t){var e=g(t);if(!e)return!1;u();var r=e.links;return r&&(r.forEach(b),e.links=null),n.delete(t),h(e,"remove"),c(),!0}function m(){return n.size}function v(){return r.size}function b(t){if(!t||!r.get(t.id))return!1;u(),r.delete(t.id);var e=g(t.fromId),n=g(t.toId);return e&&e.links.delete(t),n&&n.links.delete(t),l(t,"remove"),c(),!0}function w(t,e){if(void 0!==t&&void 0!==e)return r.get(tO(t,e))}function x(){}function k(){o+=1}function P(){0==(o-=1)&&s.length>0&&(d.fire("changed",s),s.length=0)}function E(t){if("function"!=typeof t)throw Error("Function is expected to iterate over graph nodes. You passed "+t);for(var e=n.values(),r=e.next();!r.done;){if(t(r.value))return!0;r=e.next()}}},forcelayout:tM},np=new nd.BufferGeometry().setAttribute?"setAttribute":"addAttribute",n_=new nd.BufferGeometry().applyMatrix4?"applyMatrix4":"applyMatrix",ng=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Object,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=function(e){function r(){var e;eW(this,r);for(var i=arguments.length,o=Array(i),a=0;a<i;a++)o[a]=arguments[a];return(e=eY(this,r,[].concat(o))).__kapsuleInstance=eX(t,[].concat(e9(n?[e]:[]),o)),e}return e2(r,e),eQ(r)}(e);return Object.keys(t()).forEach(function(t){return r.prototype[t]=function(){var e,n=(e=this.__kapsuleInstance)[t].apply(e,arguments);return n===this.__kapsuleInstance?this:n}}),r}(t5({props:{jsonUrl:{onChange:function(t,e){var n=this;t&&!e.fetchingJson&&(e.fetchingJson=!0,e.onLoading(),fetch(t).then(function(t){return t.json()}).then(function(t){e.fetchingJson=!1,e.onFinishLoading(t),n.graphData(t)}))},triggerUpdate:!1},graphData:{default:{nodes:[],links:[]},onChange:function(t,e){e.engineRunning=!1}},numDimensions:{default:3,onChange:function(t,e){var n=e.d3ForceLayout.force("charge");function r(t,e){t.forEach(function(t){delete t[e],delete t["v".concat(e)]})}n&&n.strength(t>2?-60:-30),t<3&&r(e.graphData.nodes,"z"),t<2&&r(e.graphData.nodes,"y")}},dagMode:{onChange:function(t,e){t||"d3"!==e.forceEngine||(e.graphData.nodes||[]).forEach(function(t){return t.fx=t.fy=t.fz=void 0})}},dagLevelDistance:{},dagNodeFilter:{default:function(t){return!0}},onDagError:{triggerUpdate:!1},nodeRelSize:{default:4},nodeId:{default:"id"},nodeVal:{default:"val"},nodeResolution:{default:8},nodeColor:{default:"color"},nodeAutoColorBy:{},nodeOpacity:{default:.75},nodeVisibility:{default:!0},nodeThreeObject:{},nodeThreeObjectExtend:{default:!1},nodePositionUpdate:{triggerUpdate:!1},linkSource:{default:"source"},linkTarget:{default:"target"},linkVisibility:{default:!0},linkColor:{default:"color"},linkAutoColorBy:{},linkOpacity:{default:.2},linkWidth:{},linkResolution:{default:6},linkCurvature:{default:0,triggerUpdate:!1},linkCurveRotation:{default:0,triggerUpdate:!1},linkMaterial:{},linkThreeObject:{},linkThreeObjectExtend:{default:!1},linkPositionUpdate:{triggerUpdate:!1},linkDirectionalArrowLength:{default:0},linkDirectionalArrowColor:{},linkDirectionalArrowRelPos:{default:.5,triggerUpdate:!1},linkDirectionalArrowResolution:{default:8},linkDirectionalParticles:{default:0},linkDirectionalParticleSpeed:{default:.01,triggerUpdate:!1},linkDirectionalParticleOffset:{default:0,triggerUpdate:!1},linkDirectionalParticleWidth:{default:.5},linkDirectionalParticleColor:{},linkDirectionalParticleResolution:{default:4},linkDirectionalParticleThreeObject:{},forceEngine:{default:"d3"},d3AlphaMin:{default:0},d3AlphaDecay:{default:.0228,triggerUpdate:!1,onChange:function(t,e){e.d3ForceLayout.alphaDecay(t)}},d3AlphaTarget:{default:0,triggerUpdate:!1,onChange:function(t,e){e.d3ForceLayout.alphaTarget(t)}},d3VelocityDecay:{default:.4,triggerUpdate:!1,onChange:function(t,e){e.d3ForceLayout.velocityDecay(t)}},ngraphPhysics:{default:{timeStep:20,gravity:-1.2,theta:.8,springLength:30,springCoefficient:8e-4,dragCoefficient:.02}},warmupTicks:{default:0,triggerUpdate:!1},cooldownTicks:{default:1/0,triggerUpdate:!1},cooldownTime:{default:15e3,triggerUpdate:!1},onLoading:{default:function(){},triggerUpdate:!1},onFinishLoading:{default:function(){},triggerUpdate:!1},onUpdate:{default:function(){},triggerUpdate:!1},onFinishUpdate:{default:function(){},triggerUpdate:!1},onEngineTick:{default:function(){},triggerUpdate:!1},onEngineStop:{default:function(){},triggerUpdate:!1}},methods:{refresh:function(t){return t._flushObjects=!0,t._rerender(),this},d3Force:function(t,e,n){return void 0===n?t.d3ForceLayout.force(e):(t.d3ForceLayout.force(e,n),this)},d3ReheatSimulation:function(t){return t.d3ForceLayout.alpha(1),this.resetCountdown(),this},resetCountdown:function(t){return t.cntTicks=0,t.startTickTime=new Date,t.engineRunning=!0,this},tickFrame:function(t){var e,n,r,i,o,a,s,l,h,u,c="ngraph"!==t.forceEngine;return t.engineRunning&&(++t.cntTicks>t.cooldownTicks||new Date-t.startTickTime>t.cooldownTime||c&&t.d3AlphaMin>0&&t.d3ForceLayout.alpha()<t.d3AlphaMin?(t.engineRunning=!1,t.onEngineStop()):(t.layout[c?"tick":"step"](),t.onEngineTick()),e=t6(t.nodeThreeObjectExtend),t.nodeDataMapper.entries().forEach(function(n){var r=e8(n,2),i=r[0],o=r[1];if(o){var a=c?i:t.layout.getNodePosition(i[t.nodeId]),s=e(i);t.nodePositionUpdate&&t.nodePositionUpdate(s?o.children[0]:o,{x:a.x,y:a.y,z:a.z},i)&&!s||(o.position.x=a.x,o.position.y=a.y||0,o.position.z=a.z||0)}}),n=t6(t.linkWidth),r=t6(t.linkCurvature),i=t6(t.linkCurveRotation),o=t6(t.linkThreeObjectExtend),t.linkDataMapper.entries().forEach(function(e){var a=e8(e,2),s=a[0],l=a[1];if(l){var h=c?s:t.layout.getLinkPosition(t.layout.graph.getLink(s.source,s.target).id),u=h[c?"source":"from"],d=h[c?"target":"to"];if(u&&d&&u.hasOwnProperty("x")&&d.hasOwnProperty("x")){!function(e){var n=c?e:t.layout.getLinkPosition(t.layout.graph.getLink(e.source,e.target).id),o=n[c?"source":"from"],a=n[c?"target":"to"];if(o&&a&&o.hasOwnProperty("x")&&a.hasOwnProperty("x")){var s=r(e);if(s){var l,h=new nd.Vector3(o.x,o.y||0,o.z||0),u=new nd.Vector3(a.x,a.y||0,a.z||0),d=h.distanceTo(u),f=i(e);if(d>0){var p=a.x-o.x,_=a.y-o.y||0,g=new nd.Vector3().subVectors(u,h),y=g.clone().multiplyScalar(s).cross(0!==p||0!==_?new nd.Vector3(0,0,1):new nd.Vector3(0,1,0)).applyAxisAngle(g.normalize(),f).add(new nd.Vector3().addVectors(h,u).divideScalar(2));l=new nd.QuadraticBezierCurve3(h,y,u)}else{var m=70*s,v=-f,b=v+Math.PI/2;l=new nd.CubicBezierCurve3(h,new nd.Vector3(m*Math.cos(b),m*Math.sin(b),0).add(h),new nd.Vector3(m*Math.cos(v),m*Math.sin(v),0).add(h),u)}e.__curve=l}else e.__curve=null}}(s);var f=o(s);if(!(t.linkPositionUpdate&&t.linkPositionUpdate(f?l.children[1]:l,{start:{x:u.x,y:u.y,z:u.z},end:{x:d.x,y:d.y,z:d.z}},s))||f){var p=s.__curve,_=l.children.length?l.children[0]:l;if("Line"===_.type){if(p){var g=p.getPoints(30);_.geometry.getAttribute("position").array.length!==3*g.length&&_.geometry[np]("position",new nd.BufferAttribute(new Float32Array(3*g.length),3)),_.geometry.setFromPoints(g)}else{var y=_.geometry.getAttribute("position");y&&y.array&&6===y.array.length||_.geometry[np]("position",y=new nd.BufferAttribute(new Float32Array(6),3)),y.array[0]=u.x,y.array[1]=u.y||0,y.array[2]=u.z||0,y.array[3]=d.x,y.array[4]=d.y||0,y.array[5]=d.z||0,y.needsUpdate=!0}_.geometry.computeBoundingSphere()}else if("Mesh"===_.type)if(p){_.geometry.type.match(/^Tube(Buffer)?Geometry$/)||(_.position.set(0,0,0),_.rotation.set(0,0,0),_.scale.set(1,1,1));var m=Math.ceil(10*n(s))/10,v=new nd.TubeGeometry(p,30,m/2,t.linkResolution,!1);_.geometry.dispose(),_.geometry=v}else{if(!_.geometry.type.match(/^Cylinder(Buffer)?Geometry$/)){var b=Math.ceil(10*n(s))/10/2,w=new nd.CylinderGeometry(b,b,1,t.linkResolution,1,!1);w[n_](new nd.Matrix4().makeTranslation(0,.5,0)),w[n_](new nd.Matrix4().makeRotationX(Math.PI/2)),_.geometry.dispose(),_.geometry=w}var x=new nd.Vector3(u.x,u.y||0,u.z||0),k=new nd.Vector3(d.x,d.y||0,d.z||0),P=x.distanceTo(k);_.position.x=x.x,_.position.y=x.y,_.position.z=x.z,_.scale.z=P,_.parent.localToWorld(k),_.lookAt(k)}}}}})),a=t6(t.linkDirectionalArrowRelPos),s=t6(t.linkDirectionalArrowLength),l=t6(t.nodeVal),t.arrowDataMapper.entries().forEach(function(e){var n=e8(e,2),r=n[0],i=n[1];if(i){var o=c?r:t.layout.getLinkPosition(t.layout.graph.getLink(r.source,r.target).id),h=o[c?"source":"from"],u=o[c?"target":"to"];if(h&&u&&h.hasOwnProperty("x")&&u.hasOwnProperty("x")){var d=Math.cbrt(Math.max(0,l(h)||1))*t.nodeRelSize,f=Math.cbrt(Math.max(0,l(u)||1))*t.nodeRelSize,p=s(r),_=a(r),g=r.__curve?function(t){return r.__curve.getPoint(t)}:function(t){var e=function(t,e,n,r){return e[t]+(n[t]-e[t])*r||0};return{x:e("x",h,u,t),y:e("y",h,u,t),z:e("z",h,u,t)}},y=r.__curve?r.__curve.getLength():Math.sqrt(["x","y","z"].map(function(t){return Math.pow((u[t]||0)-(h[t]||0),2)}).reduce(function(t,e){return t+e},0)),m=d+p+(y-d-f-p)*_,v=g(m/y),b=g((m-p)/y);["x","y","z"].forEach(function(t){return i.position[t]=b[t]});var w=eX(nd.Vector3,e9(["x","y","z"].map(function(t){return v[t]})));i.parent.localToWorld(w),i.lookAt(w)}}}),h=t6(t.linkDirectionalParticleSpeed),u=t6(t.linkDirectionalParticleOffset),t.graphData.links.forEach(function(e){var n=t.particlesDataMapper.getObj(e),r=n&&n.children,i=e.__singleHopPhotonsObj&&e.__singleHopPhotonsObj.children;if(i&&i.length||r&&r.length){var o=c?e:t.layout.getLinkPosition(t.layout.graph.getLink(e.source,e.target).id),a=o[c?"source":"from"],s=o[c?"target":"to"];if(a&&s&&a.hasOwnProperty("x")&&s.hasOwnProperty("x")){var l=h(e),d=Math.abs(u(e)),f=e.__curve?function(t){return e.__curve.getPoint(t)}:function(t){var e=function(t,e,n,r){return e[t]+(n[t]-e[t])*r||0};return{x:e("x",a,s,t),y:e("y",a,s,t),z:e("z",a,s,t)}};[].concat(e9(r||[]),e9(i||[])).forEach(function(t,e){var n="singleHopPhotons"===t.parent.__linkThreeObjType;if(t.hasOwnProperty("__progressRatio")||(t.__progressRatio=n?+(l<0):(e+d)/r.length),t.__progressRatio+=l,t.__progressRatio>=1||t.__progressRatio<0)if(n){t.parent.remove(t),ni(t);return}else t.__progressRatio=t.__progressRatio%1,t.__progressRatio<0&&t.__progressRatio++;var i=f(t.__progressRatio);"SphereGeometry"!==t.geometry.type&&t.lookAt(i.x,i.y,i.z),["x","y","z"].forEach(function(e){return t.position[e]=i[e]})})}}}),this},emitParticle:function(t,e){if(e&&t.graphData.links.includes(e)){if(!e.__singleHopPhotonsObj){var n=new nd.Group;n.__linkThreeObjType="singleHopPhotons",e.__singleHopPhotonsObj=n,t.graphScene.add(n)}var r=t6(t.linkDirectionalParticleThreeObject)(e);if(r&&t.linkDirectionalParticleThreeObject===r&&(r=r.clone()),!r){var i=Math.ceil(10*t6(t.linkDirectionalParticleWidth)(e))/10/2,o=t.linkDirectionalParticleResolution,a=new nd.SphereGeometry(i,o,o),s=t6(t.linkColor),l=t6(t.linkDirectionalParticleColor)(e)||s(e)||"#f0f0f0",h=new nd.Color(nl(l)),u=3*t.linkOpacity,c=new nd.MeshLambertMaterial({color:h,transparent:!0,opacity:u});r=new nd.Mesh(a,c)}e.__singleHopPhotonsObj.add(r)}return this},getGraphBbox:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){return!0};if(!t.initialised)return null;var n=function t(n){var r=[];if(n.geometry){n.geometry.computeBoundingBox();var i=new nd.Box3;i.copy(n.geometry.boundingBox).applyMatrix4(n.matrixWorld),r.push(i)}return r.concat.apply(r,e9((n.children||[]).filter(function(t){return!t.hasOwnProperty("__graphObjType")||"node"===t.__graphObjType&&e(t.__data)}).map(t)))}(t.graphScene);return n.length?Object.assign.apply(Object,e9(["x","y","z"].map(function(t){return eJ({},t,[(0,t8.A)(n,function(e){return e.min[t]}),(0,t4.A)(n,function(e){return e.max[t]})])}))):null}},stateInit:function(){return{d3ForceLayout:(function(t,e){let n;var r,i=Math.min(3,Math.max(1,Math.round(e=e||2))),o=1,a=.001,s=1-Math.pow(.001,1/300),l=0,h=.6,u=new Map,c=F(p),d=P("tick","end"),f=(n=1,()=>(n=(1664525*n+0x3c6ef35f)%0x100000000)/0x100000000);function p(){_(),d.call("tick",r),o<a&&(c.stop(),d.call("end",r))}function _(e){var n,a,c=t.length;void 0===e&&(e=1);for(var d=0;d<e;++d)for(o+=(l-o)*s,u.forEach(function(t){t(o)}),n=0;n<c;++n)null==(a=t[n]).fx?a.x+=a.vx*=h:(a.x=a.fx,a.vx=0),i>1&&(null==a.fy?a.y+=a.vy*=h:(a.y=a.fy,a.vy=0)),i>2&&(null==a.fz?a.z+=a.vz*=h:(a.z=a.fz,a.vz=0));return r}function g(){for(var e,n=0,r=t.length;n<r;++n){if((e=t[n]).index=n,null!=e.fx&&(e.x=e.fx),null!=e.fy&&(e.y=e.fy),null!=e.fz&&(e.z=e.fz),isNaN(e.x)||i>1&&isNaN(e.y)||i>2&&isNaN(e.z)){var o=10*(i>2?Math.cbrt(.5+n):i>1?Math.sqrt(.5+n):n),a=n*W,s=n*G;1===i?e.x=o:2===i?(e.x=o*Math.cos(a),e.y=o*Math.sin(a)):(e.x=o*Math.sin(a)*Math.cos(s),e.y=o*Math.cos(a),e.z=o*Math.sin(a)*Math.sin(s))}(isNaN(e.vx)||i>1&&isNaN(e.vy)||i>2&&isNaN(e.vz))&&(e.vx=0,i>1&&(e.vy=0),i>2&&(e.vz=0))}}function y(e){return e.initialize&&e.initialize(t,f,i),e}return null==t&&(t=[]),g(),r={tick:_,restart:function(){return c.restart(p),r},stop:function(){return c.stop(),r},numDimensions:function(t){return arguments.length?(i=Math.min(3,Math.max(1,Math.round(t))),u.forEach(y),r):i},nodes:function(e){return arguments.length?(t=e,g(),u.forEach(y),r):t},alpha:function(t){return arguments.length?(o=+t,r):o},alphaMin:function(t){return arguments.length?(a=+t,r):a},alphaDecay:function(t){return arguments.length?(s=+t,r):+s},alphaTarget:function(t){return arguments.length?(l=+t,r):l},velocityDecay:function(t){return arguments.length?(h=1-t,r):1-h},randomSource:function(t){return arguments.length?(f=t,u.forEach(y),r):f},force:function(t,e){return arguments.length>1?(null==e?u.delete(t):u.set(t,y(e)),r):u.get(t)},find:function(){var e,n,r,o,a,s,l=Array.prototype.slice.call(arguments),h=l.shift()||0,u=(i>1?l.shift():null)||0,c=(i>2?l.shift():null)||0,d=l.shift()||1/0,f=0,p=t.length;for(d*=d,f=0;f<p;++f)e=h-(a=t[f]).x,(o=e*e+(n=u-(a.y||0))*n+(r=c-(a.z||0))*r)<d&&(s=a,d=o);return s},on:function(t,e){return arguments.length>1?(d.on(t,e),r):d.on(t)}}})().force("link",function(t){var e,n,r,i,o,a,s,l=X,h=function(t){return 1/Math.min(o[t.source.index],o[t.target.index])},u=Z(30),c=1;function d(r){for(var o=0,l=t.length;o<c;++o)for(var h,u,d,f,p,_=0,g=0,y=0,m=0;_<l;++_)u=(h=t[_]).source,g=(d=h.target).x+d.vx-u.x-u.vx||K(s),i>1&&(y=d.y+d.vy-u.y-u.vy||K(s)),i>2&&(m=d.z+d.vz-u.z-u.vz||K(s)),f=((f=Math.sqrt(g*g+y*y+m*m))-n[_])/f*r*e[_],g*=f,y*=f,m*=f,d.vx-=g*(p=a[_]),i>1&&(d.vy-=y*p),i>2&&(d.vz-=m*p),u.vx+=g*(p=1-p),i>1&&(u.vy+=y*p),i>2&&(u.vz+=m*p)}function f(){if(r){var i,s,h=r.length,u=t.length,c=new Map(r.map((t,e)=>[l(t,e,r),t]));for(i=0,o=Array(h);i<u;++i)(s=t[i]).index=i,"object"!=typeof s.source&&(s.source=Q(c,s.source)),"object"!=typeof s.target&&(s.target=Q(c,s.target)),o[s.source.index]=(o[s.source.index]||0)+1,o[s.target.index]=(o[s.target.index]||0)+1;for(i=0,a=Array(u);i<u;++i)s=t[i],a[i]=o[s.source.index]/(o[s.source.index]+o[s.target.index]);e=Array(u),p(),n=Array(u),_()}}function p(){if(r)for(var n=0,i=t.length;n<i;++n)e[n]=+h(t[n],n,t)}function _(){if(r)for(var e=0,i=t.length;e<i;++e)n[e]=+u(t[e],e,t)}return null==t&&(t=[]),d.initialize=function(t,...e){r=t,s=e.find(t=>"function"==typeof t)||Math.random,i=e.find(t=>[1,2,3].includes(t))||2,f()},d.links=function(e){return arguments.length?(t=e,f(),d):t},d.id=function(t){return arguments.length?(l=t,d):l},d.iterations=function(t){return arguments.length?(c=+t,d):c},d.strength=function(t){return arguments.length?(h="function"==typeof t?t:Z(+t),p(),d):h},d.distance=function(t){return arguments.length?(u="function"==typeof t?t:Z(+t),_(),d):u},d}()).force("charge",function(){var t,e,n,r,i,o,a=Z(-30),s=1,l=1/0,h=.81;function u(r){var o,a=t.length,s=(1===e?tn(t,H):2===e?tu(t,H,V):3===e?tb(t,H,V,Y):null).visitAfter(d);for(i=r,o=0;o<a;++o)n=t[o],s.visit(f)}function c(){if(t){var e,n,r=t.length;for(e=0,o=Array(r);e<r;++e)o[(n=t[e]).index]=+a(n,e,t)}}function d(t){var n,r,i,a,s,l,h=0,u=0,c=t.length;if(c){for(i=a=s=l=0;l<c;++l)(n=t[l])&&(r=Math.abs(n.value))&&(h+=n.value,u+=r,i+=r*(n.x||0),a+=r*(n.y||0),s+=r*(n.z||0));h*=Math.sqrt(4/c),t.x=i/u,e>1&&(t.y=a/u),e>2&&(t.z=s/u)}else{(n=t).x=n.data.x,e>1&&(n.y=n.data.y),e>2&&(n.z=n.data.z);do h+=o[n.data.index];while(n=n.next)}t.value=h}function f(t,a,u,c,d){if(!t.value)return!0;var f=[u,c,d][e-1],p=t.x-n.x,_=e>1?t.y-n.y:0,g=e>2?t.z-n.z:0,y=f-a,m=p*p+_*_+g*g;if(y*y/h<m)return m<l&&(0===p&&(m+=(p=K(r))*p),e>1&&0===_&&(m+=(_=K(r))*_),e>2&&0===g&&(m+=(g=K(r))*g),m<s&&(m=Math.sqrt(s*m)),n.vx+=p*t.value*i/m,e>1&&(n.vy+=_*t.value*i/m),e>2&&(n.vz+=g*t.value*i/m)),!0;if(!t.length&&!(m>=l)){(t.data!==n||t.next)&&(0===p&&(m+=(p=K(r))*p),e>1&&0===_&&(m+=(_=K(r))*_),e>2&&0===g&&(m+=(g=K(r))*g),m<s&&(m=Math.sqrt(s*m)));do t.data!==n&&(y=o[t.data.index]*i/m,n.vx+=p*y,e>1&&(n.vy+=_*y),e>2&&(n.vz+=g*y));while(t=t.next)}}return u.initialize=function(n,...i){t=n,r=i.find(t=>"function"==typeof t)||Math.random,e=i.find(t=>[1,2,3].includes(t))||2,c()},u.strength=function(t){return arguments.length?(a="function"==typeof t?t:Z(+t),c(),u):a},u.distanceMin=function(t){return arguments.length?(s=t*t,u):Math.sqrt(s)},u.distanceMax=function(t){return arguments.length?(l=t*t,u):Math.sqrt(l)},u.theta=function(t){return arguments.length?(h=t*t,u):Math.sqrt(h)},u}()).force("center",function(t,e,n){var r,i=1;function o(){var o,a,s=r.length,l=0,h=0,u=0;for(o=0;o<s;++o)l+=(a=r[o]).x||0,h+=a.y||0,u+=a.z||0;for(l=(l/s-t)*i,h=(h/s-e)*i,u=(u/s-n)*i,o=0;o<s;++o)a=r[o],l&&(a.x-=l),h&&(a.y-=h),u&&(a.z-=u)}return null==t&&(t=0),null==e&&(e=0),null==n&&(n=0),o.initialize=function(t){r=t},o.x=function(e){return arguments.length?(t=+e,o):t},o.y=function(t){return arguments.length?(e=+t,o):e},o.z=function(t){return arguments.length?(n=+t,o):n},o.strength=function(t){return arguments.length?(i=+t,o):i},o}()).force("dagRadial",null).stop(),engineRunning:!1}},init:function(t,e){e.graphScene=t,e.nodeDataMapper=new ns(t,{objBindAttr:"__threeObj"}),e.linkDataMapper=new ns(t,{objBindAttr:"__lineObj"}),e.arrowDataMapper=new ns(t,{objBindAttr:"__arrowObj"}),e.particlesDataMapper=new ns(t,{objBindAttr:"__photonsObj"})},update:function(t,e){var n=function(t){return t.some(function(t){return e.hasOwnProperty(t)})};if(t.engineRunning=!1,"function"==typeof t.onUpdate&&t.onUpdate(),null!==t.nodeAutoColorBy&&n(["nodeAutoColorBy","graphData","nodeColor"])&&nc(t.graphData.nodes,t6(t.nodeAutoColorBy),t.nodeColor),null!==t.linkAutoColorBy&&n(["linkAutoColorBy","graphData","linkColor"])&&nc(t.graphData.links,t6(t.linkAutoColorBy),t.linkColor),t._flushObjects||n(["graphData","nodeThreeObject","nodeThreeObjectExtend","nodeVal","nodeColor","nodeVisibility","nodeRelSize","nodeResolution","nodeOpacity"])){var r=t6(t.nodeThreeObject),i=t6(t.nodeThreeObjectExtend),o=t6(t.nodeVal),a=t6(t.nodeColor),s=t6(t.nodeVisibility),l={},h={};(t._flushObjects||n(["nodeThreeObject","nodeThreeObjectExtend"]))&&t.nodeDataMapper.clear(),t.nodeDataMapper.onCreateObj(function(e){var n,o=r(e),a=i(e);return o&&t.nodeThreeObject===o&&(o=o.clone()),o&&!a?n=o:((n=new nd.Mesh).__graphDefaultObj=!0,o&&a&&n.add(o)),n.__graphObjType="node",n}).onUpdateObj(function(e,n){if(e.__graphDefaultObj){var r=o(n)||1,i=Math.cbrt(r)*t.nodeRelSize,s=t.nodeResolution;e.geometry.type.match(/^Sphere(Buffer)?Geometry$/)&&e.geometry.parameters.radius===i&&e.geometry.parameters.widthSegments===s||(l.hasOwnProperty(r)||(l[r]=new nd.SphereGeometry(i,s,s)),e.geometry.dispose(),e.geometry=l[r]);var u=a(n),c=new nd.Color(nl(u||"#ffffaa")),d=t.nodeOpacity*nh(u);"MeshLambertMaterial"===e.material.type&&e.material.color.equals(c)&&e.material.opacity===d||(h.hasOwnProperty(u)||(h[u]=new nd.MeshLambertMaterial({color:c,transparent:!0,opacity:d})),e.material.dispose(),e.material=h[u])}}).digest(t.graphData.nodes.filter(s))}if(t._flushObjects||n(["graphData","linkThreeObject","linkThreeObjectExtend","linkMaterial","linkColor","linkWidth","linkVisibility","linkResolution","linkOpacity","linkDirectionalArrowLength","linkDirectionalArrowColor","linkDirectionalArrowResolution","linkDirectionalParticles","linkDirectionalParticleWidth","linkDirectionalParticleColor","linkDirectionalParticleResolution","linkDirectionalParticleThreeObject"])){var u=t6(t.linkThreeObject),c=t6(t.linkThreeObjectExtend),d=t6(t.linkMaterial),f=t6(t.linkVisibility),p=t6(t.linkColor),_=t6(t.linkWidth),g={},y={},m={},v=t.graphData.links.filter(f);if((t._flushObjects||n(["linkThreeObject","linkThreeObjectExtend","linkWidth"]))&&t.linkDataMapper.clear(),t.linkDataMapper.onRemoveObj(function(t){var e=t.__data&&t.__data.__singleHopPhotonsObj;e&&(e.parent.remove(e),ni(e),delete t.__data.__singleHopPhotonsObj)}).onCreateObj(function(e){var n,r,i=u(e),o=c(e);if(i&&t.linkThreeObject===i&&(i=i.clone()),!i||o)if(_(e))n=new nd.Mesh;else{var a=new nd.BufferGeometry;a[np]("position",new nd.BufferAttribute(new Float32Array(6),3)),n=new nd.Line(a)}return i?o?((r=new nd.Group).__graphDefaultObj=!0,r.add(n),r.add(i)):r=i:(r=n).__graphDefaultObj=!0,r.renderOrder=10,r.__graphObjType="link",r}).onUpdateObj(function(e,n){if(e.__graphDefaultObj){var r=e.children.length?e.children[0]:e,i=Math.ceil(10*_(n))/10,o=!!i;if(o){var a=i/2,s=t.linkResolution;if(!r.geometry.type.match(/^Cylinder(Buffer)?Geometry$/)||r.geometry.parameters.radiusTop!==a||r.geometry.parameters.radialSegments!==s){if(!g.hasOwnProperty(i)){var l=new nd.CylinderGeometry(a,a,1,s,1,!1);l[n_](new nd.Matrix4().makeTranslation(0,.5,0)),l[n_](new nd.Matrix4().makeRotationX(Math.PI/2)),g[i]=l}r.geometry.dispose(),r.geometry=g[i]}}var h=d(n);if(h)r.material=h;else{var u=p(n),c=new nd.Color(nl(u||"#f0f0f0")),f=t.linkOpacity*nh(u),v=o?"MeshLambertMaterial":"LineBasicMaterial";if(r.material.type!==v||!r.material.color.equals(c)||r.material.opacity!==f){var b=o?y:m;b.hasOwnProperty(u)||(b[u]=new nd[v]({color:c,transparent:f<1,opacity:f,depthWrite:f>=1})),r.material.dispose(),r.material=b[u]}}}}).digest(v),t.linkDirectionalArrowLength||e.hasOwnProperty("linkDirectionalArrowLength")){var b=t6(t.linkDirectionalArrowLength),w=t6(t.linkDirectionalArrowColor);t.arrowDataMapper.onCreateObj(function(){var t=new nd.Mesh(void 0,new nd.MeshLambertMaterial({transparent:!0}));return t.__linkThreeObjType="arrow",t}).onUpdateObj(function(e,n){var r=b(n),i=t.linkDirectionalArrowResolution;if(!e.geometry.type.match(/^Cone(Buffer)?Geometry$/)||e.geometry.parameters.height!==r||e.geometry.parameters.radialSegments!==i){var o=new nd.ConeGeometry(.25*r,r,i);o.translate(0,r/2,0),o.rotateX(Math.PI/2),e.geometry.dispose(),e.geometry=o}var a=w(n)||p(n)||"#f0f0f0";e.material.color=new nd.Color(nl(a)),e.material.opacity=3*t.linkOpacity*nh(a)}).digest(v.filter(b))}if(t.linkDirectionalParticles||e.hasOwnProperty("linkDirectionalParticles")){var x=t6(t.linkDirectionalParticles),k=t6(t.linkDirectionalParticleWidth),P=t6(t.linkDirectionalParticleColor),E=t6(t.linkDirectionalParticleThreeObject),S={},O={};t.particlesDataMapper.onCreateObj(function(){var t=new nd.Group;return t.__linkThreeObjType="photons",t.__photonDataMapper=new ns(t),t}).onUpdateObj(function(e,n){var r,i,o=!!e.children.length&&e.children[0],a=E(n);if(a)r=a.geometry,i=a.material;else{var s=Math.ceil(10*k(n))/10/2,l=t.linkDirectionalParticleResolution;o&&o.geometry.parameters.radius===s&&o.geometry.parameters.widthSegments===l?r=o.geometry:(O.hasOwnProperty(s)||(O[s]=new nd.SphereGeometry(s,l,l)),r=O[s]);var h=P(n)||p(n)||"#f0f0f0",u=new nd.Color(nl(h)),c=3*t.linkOpacity;o&&o.material.color.equals(u)&&o.material.opacity===c?i=o.material:(S.hasOwnProperty(h)||(S[h]=new nd.MeshLambertMaterial({color:u,transparent:!0,opacity:c})),i=S[h])}o&&(o.geometry!==r&&o.geometry.dispose(),o.material!==i&&o.material.dispose());var d=Math.round(Math.abs(x(n)));e.__photonDataMapper.id(function(t){return t.idx}).onCreateObj(function(){return new nd.Mesh(r,i)}).onUpdateObj(function(t){t.geometry=r,t.material=i}).digest(e9(Array(d)).map(function(t,e){return{idx:e}}))}).digest(v.filter(x))}}if(t._flushObjects=!1,n(["graphData","nodeId","linkSource","linkTarget","numDimensions","forceEngine","dagMode","dagNodeFilter","dagLevelDistance"])){t.engineRunning=!1,t.graphData.links.forEach(function(e){e.source=e[t.linkSource],e.target=e[t.linkTarget]});var M,C="ngraph"!==t.forceEngine;if(C){(M=t.d3ForceLayout).stop().alpha(1).numDimensions(t.numDimensions).nodes(t.graphData.nodes);var j=t.d3ForceLayout.force("link");j&&j.id(function(e){return e[t.nodeId]}).links(t.graphData.links);var A=t.dagMode&&function(t,e){var n=t.nodes,r=t.links,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=i.nodeFilter,a=void 0===o?function(){return!0}:o,s=i.onLoopError,l=void 0===s?function(t){throw"Invalid DAG structure! Found cycle in node path: ".concat(t.join(" -> "),".")}:s,h={};n.forEach(function(t){return h[e(t)]={data:t,out:[],depth:-1,skip:!a(t)}}),r.forEach(function(t){var n=t.source,r=t.target,i=l(n),o=l(r);if(!h.hasOwnProperty(i))throw"Missing source node with id: ".concat(i);if(!h.hasOwnProperty(o))throw"Missing target node with id: ".concat(o);var a=h[i],s=h[o];function l(t){return"object"===nt(t)?e(t):t}a.out.push(s)});var u=[];return function t(n){for(var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=0,a=n.length;o<a;o++)if(function(){var a=n[o];if(-1!==r.indexOf(a)){var s=[].concat(e9(r.slice(r.indexOf(a))),[a]).map(function(t){return e(t.data)});return u.some(function(t){return t.length===s.length&&t.every(function(t,e){return t===s[e]})})||(u.push(s),l(s)),1}i>a.depth&&(a.depth=i,t(a.out,[].concat(e9(r),[a]),i+ +!a.skip))}())continue}(Object.values(h)),Object.assign.apply(Object,[{}].concat(e9(Object.entries(h).filter(function(t){return!e8(t,2)[1].skip}).map(function(t){var e=e8(t,2);return eJ({},e[0],e[1].depth)}))))}(t.graphData,function(e){return e[t.nodeId]},{nodeFilter:t.dagNodeFilter,onLoopError:t.onDagError||void 0}),T=Math.max.apply(Math,e9(Object.values(A||[]))),D=t.dagLevelDistance||t.graphData.nodes.length/(T||1)*2*(-1!==["radialin","radialout"].indexOf(t.dagMode)?.7:1);if(["lr","rl","td","bu","zin","zout"].includes(e.dagMode)){var R=["lr","rl"].includes(e.dagMode)?"fx":["td","bu"].includes(e.dagMode)?"fy":"fz";t.graphData.nodes.filter(t.dagNodeFilter).forEach(function(t){return delete t[R]})}if(["lr","rl","td","bu","zin","zout"].includes(t.dagMode)){var N=["rl","td","zout"].includes(t.dagMode),I=["lr","rl"].includes(t.dagMode)?"fx":["td","bu"].includes(t.dagMode)?"fy":"fz";t.graphData.nodes.filter(t.dagNodeFilter).forEach(function(e){return e[I]=(A[e[t.nodeId]]-T/2)*D*(N?-1:1)})}t.d3ForceLayout.force("dagRadial",-1!==["radialin","radialout"].indexOf(t.dagMode)?(function(t,e,n,r){var i,o,a,s,l=Z(.1);function h(t){for(var l=0,h=i.length;l<h;++l){var u=i[l],c=u.x-e||1e-6,d=(u.y||0)-n||1e-6,f=(u.z||0)-r||1e-6,p=Math.sqrt(c*c+d*d+f*f),_=(s[l]-p)*a[l]*t/p;u.vx+=c*_,o>1&&(u.vy+=d*_),o>2&&(u.vz+=f*_)}}function u(){if(i){var e,n=i.length;for(e=0,a=Array(n),s=Array(n);e<n;++e)s[e]=+t(i[e],e,i),a[e]=isNaN(s[e])?0:+l(i[e],e,i)}}return"function"!=typeof t&&(t=Z(+t)),null==e&&(e=0),null==n&&(n=0),null==r&&(r=0),h.initialize=function(t,...e){i=t,o=e.find(t=>[1,2,3].includes(t))||2,u()},h.strength=function(t){return arguments.length?(l="function"==typeof t?t:Z(+t),u(),h):l},h.radius=function(e){return arguments.length?(t="function"==typeof e?e:Z(+e),u(),h):t},h.x=function(t){return arguments.length?(e=+t,h):e},h.y=function(t){return arguments.length?(n=+t,h):n},h.z=function(t){return arguments.length?(r=+t,h):r},h})(function(e){var n=A[e[t.nodeId]]||-1;return("radialin"===t.dagMode?T-n:n)*D}).strength(function(e){return+!!t.dagNodeFilter(e)}):null)}else{var L=nf.graph();t.graphData.nodes.forEach(function(e){L.addNode(e[t.nodeId])}),t.graphData.links.forEach(function(t){L.addLink(t.source,t.target)}),(M=nf.forcelayout(L,function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?e5(Object(n),!0).forEach(function(e){eJ(t,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):e5(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}({dimensions:t.numDimensions},t.ngraphPhysics))).graph=L}for(var z=0;z<t.warmupTicks&&!(C&&t.d3AlphaMin>0&&t.d3ForceLayout.alpha()<t.d3AlphaMin);z++)M[C?"tick":"step"]();t.layout=M,this.resetCountdown()}t.engineRunning=!0,t.onFinishUpdate()}}),(window.THREE?window.THREE:{Group:r.YJl}).Group,!0),ny=n(57840),nm=n(3428);let nv={type:"change"},nb={type:"start"},nw={type:"end"},nx={NONE:-1,ROTATE:0,ZOOM:1,PAN:2,TOUCH_ROTATE:3,TOUCH_ZOOM_PAN:4},nk=new r.I9Y,nP=new r.I9Y,nE=new r.Pq0,nS=new r.Pq0,nO=new r.Pq0,nM=new r.PTz,nC=new r.Pq0,nj=new r.Pq0,nA=new r.Pq0,nT=new r.Pq0;class nD extends r.H2z{constructor(t,e=null){super(t,e),this.screen={left:0,top:0,width:0,height:0},this.rotateSpeed=1,this.zoomSpeed=1.2,this.panSpeed=.3,this.rollSpeed=1,this.noRotate=!1,this.noZoom=!1,this.noPan=!1,this.multiTouchRoll=!1,this.staticMoving=!1,this.dynamicDampingFactor=.2,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.keys=["KeyA","KeyS","KeyD"],this.mouseButtons={LEFT:r.kBv.ROTATE,MIDDLE:r.kBv.DOLLY,RIGHT:r.kBv.PAN},this.target=new r.Pq0,this.state=nx.NONE,this.keyState=nx.NONE,this._lastPosition=new r.Pq0,this._lastUp=new r.Pq0,this._lastZoom=1,this._touchZoomDistanceStart=0,this._touchZoomDistanceEnd=0,this._touchRollAngle=0,this._touchRollPointerIds="",this._lastAngle=0,this._lastRollAngle=0,this._eye=new r.Pq0,this._movePrev=new r.I9Y,this._moveCurr=new r.I9Y,this._lastAxis=new r.Pq0,this._zoomStart=new r.I9Y,this._zoomEnd=new r.I9Y,this._panStart=new r.I9Y,this._panEnd=new r.I9Y,this._pointers=[],this._pointerPositions={},this._onPointerMove=nN.bind(this),this._onPointerDown=nR.bind(this),this._onPointerUp=nI.bind(this),this._onPointerCancel=nL.bind(this),this._onContextMenu=nH.bind(this),this._onMouseWheel=n$.bind(this),this._onKeyDown=nB.bind(this),this._onKeyUp=nz.bind(this),this._onTouchStart=nV.bind(this),this._onTouchMove=nY.bind(this),this._onTouchEnd=nW.bind(this),this._onMouseDown=nF.bind(this),this._onMouseMove=nU.bind(this),this._onMouseUp=nq.bind(this),this._target0=this.target.clone(),this._position0=this.object.position.clone(),this._up0=this.object.up.clone(),this._zoom0=this.object.zoom,null!==e&&(this.connect(e),this.handleResize()),this.update()}connect(t){super.connect(t),window.addEventListener("keydown",this._onKeyDown),window.addEventListener("keyup",this._onKeyUp),this.domElement.addEventListener("pointerdown",this._onPointerDown),this.domElement.addEventListener("pointercancel",this._onPointerCancel),this.domElement.addEventListener("wheel",this._onMouseWheel,{passive:!1}),this.domElement.addEventListener("contextmenu",this._onContextMenu),this.domElement.style.touchAction="none"}disconnect(){window.removeEventListener("keydown",this._onKeyDown),window.removeEventListener("keyup",this._onKeyUp),this.domElement.removeEventListener("pointerdown",this._onPointerDown),this.domElement.ownerDocument.removeEventListener("pointermove",this._onPointerMove),this.domElement.ownerDocument.removeEventListener("pointerup",this._onPointerUp),this.domElement.removeEventListener("pointercancel",this._onPointerCancel),this.domElement.removeEventListener("wheel",this._onMouseWheel),this.domElement.removeEventListener("contextmenu",this._onContextMenu),this.domElement.style.touchAction=""}dispose(){this.disconnect()}handleResize(){let t=this.domElement.getBoundingClientRect(),e=this.domElement.ownerDocument.documentElement;this.screen.left=t.left+window.pageXOffset-e.clientLeft,this.screen.top=t.top+window.pageYOffset-e.clientTop,this.screen.width=t.width,this.screen.height=t.height}update(){if(this._eye.subVectors(this.object.position,this.target),this.noRotate||(this._rotateCamera(),!0===this.multiTouchRoll&&this._rollCamera()),this.noZoom||this._zoomCamera(),this.noPan||this._panCamera(),this.object.position.addVectors(this.target,this._eye),this.object.isPerspectiveCamera){this._checkDistances(),this.object.lookAt(this.target);let t=this._lastPosition.distanceToSquared(this.object.position)>1e-6,e=this._lastUp.distanceToSquared(this.object.up)>1e-6;(t||e)&&(this.dispatchEvent(nv),this._lastPosition.copy(this.object.position),this._lastUp.copy(this.object.up))}else if(this.object.isOrthographicCamera){this.object.lookAt(this.target);let t=this._lastPosition.distanceToSquared(this.object.position)>1e-6,e=this._lastUp.distanceToSquared(this.object.up)>1e-6,n=this._lastZoom!==this.object.zoom;(t||e||n)&&(this.dispatchEvent(nv),this._lastPosition.copy(this.object.position),this._lastUp.copy(this.object.up),this._lastZoom=this.object.zoom)}else console.warn("THREE.TrackballControls: Unsupported camera type.")}reset(){this.state=nx.NONE,this.keyState=nx.NONE,this.target.copy(this._target0),this.object.position.copy(this._position0),this.object.up.copy(this._up0),this.object.zoom=this._zoom0,this.object.updateProjectionMatrix(),this._eye.subVectors(this.object.position,this.target),this.object.lookAt(this.target),this.dispatchEvent(nv),this._lastPosition.copy(this.object.position),this._lastUp.copy(this.object.up),this._lastZoom=this.object.zoom}_panCamera(){if(nP.copy(this._panEnd).sub(this._panStart),nP.lengthSq()){if(this.object.isOrthographicCamera){let t=(this.object.right-this.object.left)/this.object.zoom/this.domElement.clientWidth,e=(this.object.top-this.object.bottom)/this.object.zoom/this.domElement.clientWidth;nP.x*=t,nP.y*=e}nP.multiplyScalar(this._eye.length()*this.panSpeed),nS.copy(this._eye).cross(this.object.up).setLength(nP.x),nS.add(nE.copy(this.object.up).setLength(nP.y)),this.object.position.add(nS),this.target.add(nS),this.staticMoving?this._panStart.copy(this._panEnd):this._panStart.add(nP.subVectors(this._panEnd,this._panStart).multiplyScalar(this.dynamicDampingFactor))}}_rotateCamera(){nT.set(this._moveCurr.x-this._movePrev.x,this._moveCurr.y-this._movePrev.y,0);let t=nT.length();t?(this._eye.copy(this.object.position).sub(this.target),nC.copy(this._eye).normalize(),nj.copy(this.object.up).normalize(),nA.crossVectors(nj,nC).normalize(),nj.setLength(this._moveCurr.y-this._movePrev.y),nA.setLength(this._moveCurr.x-this._movePrev.x),nT.copy(nj.add(nA)),nO.crossVectors(nT,this._eye).normalize(),t*=this.rotateSpeed,nM.setFromAxisAngle(nO,t),this._eye.applyQuaternion(nM),this.object.up.applyQuaternion(nM),this._lastAxis.copy(nO),this._lastAngle=t):!this.staticMoving&&this._lastAngle&&(this._lastAngle*=Math.sqrt(1-this.dynamicDampingFactor),this._eye.copy(this.object.position).sub(this.target),nM.setFromAxisAngle(this._lastAxis,this._lastAngle),this._eye.applyQuaternion(nM),this.object.up.applyQuaternion(nM)),this._movePrev.copy(this._moveCurr)}_rollCamera(){let t=this._getTouchRollAngle();if(t)this._lastRollAngle=t*this.rollSpeed;else{if(this.staticMoving||!this._lastRollAngle)return;this._lastRollAngle*=Math.sqrt(1-this.dynamicDampingFactor)}nC.copy(this._eye).normalize(),nM.setFromAxisAngle(nC,this._lastRollAngle),this.object.up.applyQuaternion(nM)}_getTouchRollAngle(){let t=this._pointers[0],e=this._pointers[1];if(void 0===e||"touch"!==t.pointerType||"touch"!==e.pointerType)return this._touchRollPointerIds="",0;let n=`${t.pointerId},${e.pointerId}`,r=this._pointerPositions[t.pointerId],i=this._pointerPositions[e.pointerId],o=Math.atan2(i.y-r.y,i.x-r.x);if(n!==this._touchRollPointerIds)return this._touchRollPointerIds=n,this._touchRollAngle=o,0;let a=o-this._touchRollAngle;return this._touchRollAngle=o,a>Math.PI?a-=2*Math.PI:a<-Math.PI&&(a+=2*Math.PI),a}_zoomCamera(){let t;this.state===nx.TOUCH_ZOOM_PAN?(t=this._touchZoomDistanceStart/this._touchZoomDistanceEnd,this._touchZoomDistanceStart=this._touchZoomDistanceEnd,this.object.isPerspectiveCamera?this._eye.multiplyScalar(t):this.object.isOrthographicCamera?(this.object.zoom=r.cj9.clamp(this.object.zoom/t,this.minZoom,this.maxZoom),this._lastZoom!==this.object.zoom&&this.object.updateProjectionMatrix()):console.warn("THREE.TrackballControls: Unsupported camera type")):(1!=(t=1+(this._zoomEnd.y-this._zoomStart.y)*this.zoomSpeed)&&t>0&&(this.object.isPerspectiveCamera?this._eye.multiplyScalar(t):this.object.isOrthographicCamera?(this.object.zoom=r.cj9.clamp(this.object.zoom/t,this.minZoom,this.maxZoom),this._lastZoom!==this.object.zoom&&this.object.updateProjectionMatrix()):console.warn("THREE.TrackballControls: Unsupported camera type")),this.staticMoving?this._zoomStart.copy(this._zoomEnd):this._zoomStart.y+=(this._zoomEnd.y-this._zoomStart.y)*this.dynamicDampingFactor)}_getMouseOnScreen(t,e){return nk.set((t-this.screen.left)/this.screen.width,(e-this.screen.top)/this.screen.height),nk}_getMouseOnCircle(t,e){return nk.set((t-.5*this.screen.width-this.screen.left)/(.5*this.screen.width),(this.screen.height+2*(this.screen.top-e))/this.screen.width),nk}_addPointer(t){this._pointers.push(t)}_removePointer(t){delete this._pointerPositions[t.pointerId];for(let e=0;e<this._pointers.length;e++)if(this._pointers[e].pointerId==t.pointerId)return void this._pointers.splice(e,1)}_trackPointer(t){let e=this._pointerPositions[t.pointerId];void 0===e&&(e=new r.I9Y,this._pointerPositions[t.pointerId]=e),e.set(t.pageX,t.pageY)}_getSecondPointerPosition(t){let e=t.pointerId===this._pointers[0].pointerId?this._pointers[1]:this._pointers[0];return this._pointerPositions[e.pointerId]}_checkDistances(){this.noZoom&&this.noPan||(this._eye.lengthSq()>this.maxDistance*this.maxDistance&&(this.object.position.addVectors(this.target,this._eye.setLength(this.maxDistance)),this._zoomStart.copy(this._zoomEnd)),this._eye.lengthSq()<this.minDistance*this.minDistance&&(this.object.position.addVectors(this.target,this._eye.setLength(this.minDistance)),this._zoomStart.copy(this._zoomEnd)))}}function nR(t){!1!==this.enabled&&(0===this._pointers.length&&(this.domElement.setPointerCapture(t.pointerId),this.domElement.ownerDocument.addEventListener("pointermove",this._onPointerMove),this.domElement.ownerDocument.addEventListener("pointerup",this._onPointerUp)),this._addPointer(t),"touch"===t.pointerType?this._onTouchStart(t):this._onMouseDown(t))}function nN(t){!1!==this.enabled&&("touch"===t.pointerType?this._onTouchMove(t):this._onMouseMove(t))}function nI(t){!1!==this.enabled&&("touch"===t.pointerType?this._onTouchEnd(t):this._onMouseUp(),this._removePointer(t),0===this._pointers.length&&(this.domElement.releasePointerCapture(t.pointerId),this.domElement.ownerDocument.removeEventListener("pointermove",this._onPointerMove),this.domElement.ownerDocument.removeEventListener("pointerup",this._onPointerUp)))}function nL(t){this._removePointer(t)}function nz(){!1!==this.enabled&&(this.keyState=nx.NONE,window.addEventListener("keydown",this._onKeyDown))}function nB(t){!1!==this.enabled&&(window.removeEventListener("keydown",this._onKeyDown),this.keyState===nx.NONE&&(t.code!==this.keys[nx.ROTATE]||this.noRotate?t.code!==this.keys[nx.ZOOM]||this.noZoom?t.code!==this.keys[nx.PAN]||this.noPan||(this.keyState=nx.PAN):this.keyState=nx.ZOOM:this.keyState=nx.ROTATE))}function nF(t){let e;switch(t.button){case 0:e=this.mouseButtons.LEFT;break;case 1:e=this.mouseButtons.MIDDLE;break;case 2:e=this.mouseButtons.RIGHT;break;default:e=-1}switch(e){case r.kBv.DOLLY:this.state=nx.ZOOM;break;case r.kBv.ROTATE:this.state=nx.ROTATE;break;case r.kBv.PAN:this.state=nx.PAN;break;default:this.state=nx.NONE}let n=this.keyState!==nx.NONE?this.keyState:this.state;n!==nx.ROTATE||this.noRotate?n!==nx.ZOOM||this.noZoom?n!==nx.PAN||this.noPan||(this._panStart.copy(this._getMouseOnScreen(t.pageX,t.pageY)),this._panEnd.copy(this._panStart)):(this._zoomStart.copy(this._getMouseOnScreen(t.pageX,t.pageY)),this._zoomEnd.copy(this._zoomStart)):(this._moveCurr.copy(this._getMouseOnCircle(t.pageX,t.pageY)),this._movePrev.copy(this._moveCurr)),this.dispatchEvent(nb)}function nU(t){let e=this.keyState!==nx.NONE?this.keyState:this.state;e!==nx.ROTATE||this.noRotate?e!==nx.ZOOM||this.noZoom?e!==nx.PAN||this.noPan||this._panEnd.copy(this._getMouseOnScreen(t.pageX,t.pageY)):this._zoomEnd.copy(this._getMouseOnScreen(t.pageX,t.pageY)):this._moveCurr.copy(this._getMouseOnCircle(t.pageX,t.pageY))}function nq(){this.state=nx.NONE,this.dispatchEvent(nw)}function n$(t){if(!1!==this.enabled&&!0!==this.noZoom){switch(t.preventDefault(),t.deltaMode){case 2:this._zoomStart.y-=.025*t.deltaY;break;case 1:this._zoomStart.y-=.01*t.deltaY;break;default:this._zoomStart.y-=25e-5*t.deltaY}this.dispatchEvent(nb),this.dispatchEvent(nw)}}function nH(t){!1!==this.enabled&&t.preventDefault()}function nV(t){if(this._trackPointer(t),1===this._pointers.length)this.state=nx.TOUCH_ROTATE,this._moveCurr.copy(this._getMouseOnCircle(this._pointers[0].pageX,this._pointers[0].pageY)),this._movePrev.copy(this._moveCurr);else{this.state=nx.TOUCH_ZOOM_PAN;let t=this._pointers[0].pageX-this._pointers[1].pageX,e=this._pointers[0].pageY-this._pointers[1].pageY;this._touchZoomDistanceEnd=this._touchZoomDistanceStart=Math.sqrt(t*t+e*e);let n=(this._pointers[0].pageX+this._pointers[1].pageX)/2,r=(this._pointers[0].pageY+this._pointers[1].pageY)/2;this._panStart.copy(this._getMouseOnScreen(n,r)),this._panEnd.copy(this._panStart)}this.dispatchEvent(nb)}function nY(t){if(this._trackPointer(t),1===this._pointers.length)this._moveCurr.copy(this._getMouseOnCircle(t.pageX,t.pageY));else{let e=this._getSecondPointerPosition(t),n=t.pageX-e.x,r=t.pageY-e.y;this._touchZoomDistanceEnd=Math.sqrt(n*n+r*r);let i=(t.pageX+e.x)/2,o=(t.pageY+e.y)/2;this._panEnd.copy(this._getMouseOnScreen(i,o))}}function nW(t){switch(this._pointers.length){case 0:this.state=nx.NONE;break;case 1:this.state=nx.TOUCH_ROTATE,this._moveCurr.copy(this._getMouseOnCircle(t.pageX,t.pageY)),this._movePrev.copy(this._moveCurr);break;case 2:this.state=nx.TOUCH_ZOOM_PAN;for(let e=0;e<this._pointers.length;e++)if(this._pointers[e].pointerId!==t.pointerId){let t=this._pointerPositions[this._pointers[e].pointerId];this._moveCurr.copy(this._getMouseOnCircle(t.x,t.y)),this._movePrev.copy(this._moveCurr);break}}this.dispatchEvent(nw)}let nG={type:"change"},nZ={type:"start"},nK={type:"end"},nX=new r.RlV,nQ=new r.Zcv,nJ=Math.cos(70*r.cj9.DEG2RAD),n0=new r.Pq0,n1=2*Math.PI,n2={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};class n3 extends r.H2z{constructor(t,e=null){super(t,e),this.state=n2.NONE,this.target=new r.Pq0,this.cursor=new r.Pq0,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minTargetRadius=0,this.maxTargetRadius=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.keyRotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:r.kBv.ROTATE,MIDDLE:r.kBv.DOLLY,RIGHT:r.kBv.PAN},this.touches={ONE:r.wtR.ROTATE,TWO:r.wtR.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._cursorStyle="auto",this._domElementKeyEvents=null,this._lastPosition=new r.Pq0,this._lastQuaternion=new r.PTz,this._lastTargetPosition=new r.Pq0,this._quat=new r.PTz().setFromUnitVectors(t.up,new r.Pq0(0,1,0)),this._quatInverse=this._quat.clone().invert(),this._spherical=new r.YHV,this._sphericalDelta=new r.YHV,this._scale=1,this._panOffset=new r.Pq0,this._rotateStart=new r.I9Y,this._rotateEnd=new r.I9Y,this._rotateDelta=new r.I9Y,this._panStart=new r.I9Y,this._panEnd=new r.I9Y,this._panDelta=new r.I9Y,this._dollyStart=new r.I9Y,this._dollyEnd=new r.I9Y,this._dollyDelta=new r.I9Y,this._dollyDirection=new r.Pq0,this._mouse=new r.I9Y,this._performCursorZoom=!1,this._pointers=[],this._pointerPositions={},this._controlActive=!1,this._onPointerMove=n6.bind(this),this._onPointerDown=n5.bind(this),this._onPointerUp=n8.bind(this),this._onContextMenu=rr.bind(this),this._onMouseWheel=n7.bind(this),this._onKeyDown=rt.bind(this),this._onTouchStart=re.bind(this),this._onTouchMove=rn.bind(this),this._onMouseDown=n4.bind(this),this._onMouseMove=n9.bind(this),this._interceptControlDown=ri.bind(this),this._interceptControlUp=ro.bind(this),null!==this.domElement&&this.connect(this.domElement),this.update()}set cursorStyle(t){this._cursorStyle=t,"grab"===t?this.domElement.style.cursor="grab":this.domElement.style.cursor="auto"}get cursorStyle(){return this._cursorStyle}connect(t){super.connect(t),this.domElement.addEventListener("pointerdown",this._onPointerDown),this.domElement.addEventListener("pointercancel",this._onPointerUp),this.domElement.addEventListener("contextmenu",this._onContextMenu),this.domElement.addEventListener("wheel",this._onMouseWheel,{passive:!1}),this.domElement.getRootNode().addEventListener("keydown",this._interceptControlDown,{passive:!0,capture:!0}),this.domElement.style.touchAction="none"}disconnect(){this.state=n2.NONE,this.domElement.removeEventListener("pointerdown",this._onPointerDown),this.domElement.ownerDocument.removeEventListener("pointermove",this._onPointerMove),this.domElement.ownerDocument.removeEventListener("pointerup",this._onPointerUp),this.domElement.removeEventListener("pointercancel",this._onPointerUp),this.domElement.removeEventListener("wheel",this._onMouseWheel),this.domElement.removeEventListener("contextmenu",this._onContextMenu),this.stopListenToKeyEvents();let t=this.domElement.getRootNode();t.removeEventListener("keydown",this._interceptControlDown,{capture:!0}),t.removeEventListener("keyup",this._interceptControlUp,{capture:!0}),this._controlActive=!1,this._pointers.length=0,this._pointerPositions={},this.domElement.style.touchAction="",this.domElement.style.cursor="auto"}dispose(){this.disconnect()}getPolarAngle(){return this._spherical.phi}getAzimuthalAngle(){return this._spherical.theta}getDistance(){return this.object.position.distanceTo(this.target)}listenToKeyEvents(t){t.addEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=t}stopListenToKeyEvents(){null!==this._domElementKeyEvents&&(this._domElementKeyEvents.removeEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=null)}saveState(){this.target0.copy(this.target),this.position0.copy(this.object.position),this.zoom0=this.object.zoom}reset(){this.target.copy(this.target0),this.object.position.copy(this.position0),this.object.zoom=this.zoom0,this.object.updateProjectionMatrix(),this.dispatchEvent(nG),this.update(),this.state=n2.NONE}pan(t,e){this._pan(t,e),this.update()}dollyIn(t){this._dollyIn(t),this.update()}dollyOut(t){this._dollyOut(t),this.update()}rotateLeft(t){this._rotateLeft(t),this.update()}rotateUp(t){this._rotateUp(t),this.update()}update(t=null){let e=this.object.position;n0.copy(e).sub(this.target),n0.applyQuaternion(this._quat),this._spherical.setFromVector3(n0),this.autoRotate&&this.state===n2.NONE&&this._rotateLeft(this._getAutoRotationAngle(t)),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);let n=this.minAzimuthAngle,i=this.maxAzimuthAngle;isFinite(n)&&isFinite(i)&&(n<-Math.PI?n+=n1:n>Math.PI&&(n-=n1),i<-Math.PI?i+=n1:i>Math.PI&&(i-=n1),n<=i?this._spherical.theta=Math.max(n,Math.min(i,this._spherical.theta)):this._spherical.theta=this._spherical.theta>(n+i)/2?Math.max(n,this._spherical.theta):Math.min(i,this._spherical.theta)),this._spherical.phi=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,this._spherical.phi)),this._spherical.makeSafe(),!0===this.enableDamping?this.target.addScaledVector(this._panOffset,this.dampingFactor):this.target.add(this._panOffset),this.target.sub(this.cursor),this.target.clampLength(this.minTargetRadius,this.maxTargetRadius),this.target.add(this.cursor);let o=!1;if(this.zoomToCursor&&this._performCursorZoom||this.object.isOrthographicCamera)this._spherical.radius=this._clampDistance(this._spherical.radius);else{let t=this._spherical.radius;this._spherical.radius=this._clampDistance(this._spherical.radius*this._scale),o=t!=this._spherical.radius}if(n0.setFromSpherical(this._spherical),n0.applyQuaternion(this._quatInverse),e.copy(this.target).add(n0),this.object.lookAt(this.target),!0===this.enableDamping?(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.zoomToCursor&&this._performCursorZoom){let t=null;if(this.object.isPerspectiveCamera){let e=n0.length();t=this._clampDistance(e*this._scale);let n=e-t;this.object.position.addScaledVector(this._dollyDirection,n),this.object.updateMatrixWorld(),o=!!n}else if(this.object.isOrthographicCamera){let e=new r.Pq0(this._mouse.x,this._mouse.y,0);e.unproject(this.object);let n=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),this.object.updateProjectionMatrix(),o=n!==this.object.zoom;let i=new r.Pq0(this._mouse.x,this._mouse.y,0);i.unproject(this.object),this.object.position.sub(i).add(e),this.object.updateMatrixWorld(),t=n0.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),this.zoomToCursor=!1;null!==t&&(this.screenSpacePanning?this.target.set(0,0,-1).transformDirection(this.object.matrix).multiplyScalar(t).add(this.object.position):(nX.origin.copy(this.object.position),nX.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(nX.direction))<nJ?this.object.lookAt(this.target):(nQ.setFromNormalAndCoplanarPoint(this.object.up,this.target),nX.intersectPlane(nQ,this.target))))}else if(this.object.isOrthographicCamera){let t=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),t!==this.object.zoom&&(this.object.updateProjectionMatrix(),o=!0)}return this._scale=1,this._performCursorZoom=!1,!!(o||this._lastPosition.distanceToSquared(this.object.position)>1e-6||8*(1-this._lastQuaternion.dot(this.object.quaternion))>1e-6||this._lastTargetPosition.distanceToSquared(this.target)>1e-6)&&(this.dispatchEvent(nG),this._lastPosition.copy(this.object.position),this._lastQuaternion.copy(this.object.quaternion),this._lastTargetPosition.copy(this.target),!0)}_getAutoRotationAngle(t){return null!==t?n1/60*this.autoRotateSpeed*t:n1/60/60*this.autoRotateSpeed}_getZoomScale(t){let e=Math.abs(.01*t);return Math.pow(.95,this.zoomSpeed*e)}_rotateLeft(t){this._sphericalDelta.theta-=t}_rotateUp(t){this._sphericalDelta.phi-=t}_panLeft(t,e){n0.setFromMatrixColumn(e,0),n0.multiplyScalar(-t),this._panOffset.add(n0)}_panUp(t,e){!0===this.screenSpacePanning?n0.setFromMatrixColumn(e,1):(n0.setFromMatrixColumn(e,0),n0.crossVectors(this.object.up,n0)),n0.multiplyScalar(t),this._panOffset.add(n0)}_pan(t,e){let n=this.domElement;if(this.object.isPerspectiveCamera){let r=this.object.position;n0.copy(r).sub(this.target);let i=n0.length();i*=Math.tan(this.object.fov/2*Math.PI/180),this._panLeft(2*t*i/n.clientHeight,this.object.matrix),this._panUp(2*e*i/n.clientHeight,this.object.matrix)}else this.object.isOrthographicCamera?(this._panLeft(t*(this.object.right-this.object.left)/this.object.zoom/n.clientWidth,this.object.matrix),this._panUp(e*(this.object.top-this.object.bottom)/this.object.zoom/n.clientHeight,this.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),this.enablePan=!1)}_dollyOut(t){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale/=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_dollyIn(t){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale*=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_updateZoomParameters(t,e){if(!this.zoomToCursor)return;this._performCursorZoom=!0;let n=this.domElement.getBoundingClientRect(),r=t-n.left,i=e-n.top,o=n.width,a=n.height;this._mouse.x=r/o*2-1,this._mouse.y=-(i/a*2)+1,this._dollyDirection.set(this._mouse.x,this._mouse.y,1).unproject(this.object).sub(this.object.position).normalize()}_clampDistance(t){return Math.max(this.minDistance,Math.min(this.maxDistance,t))}_handleMouseDownRotate(t){this._rotateStart.set(t.clientX,t.clientY)}_handleMouseDownDolly(t){this._updateZoomParameters(t.clientX,t.clientX),this._dollyStart.set(t.clientX,t.clientY)}_handleMouseDownPan(t){this._panStart.set(t.clientX,t.clientY)}_handleMouseMoveRotate(t){this._rotateEnd.set(t.clientX,t.clientY),this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);let e=this.domElement;this._rotateLeft(n1*this._rotateDelta.x/e.clientHeight),this._rotateUp(n1*this._rotateDelta.y/e.clientHeight),this._rotateStart.copy(this._rotateEnd),this.update()}_handleMouseMoveDolly(t){this._dollyEnd.set(t.clientX,t.clientY),this._dollyDelta.subVectors(this._dollyEnd,this._dollyStart),this._dollyDelta.y>0?this._dollyOut(this._getZoomScale(this._dollyDelta.y)):this._dollyDelta.y<0&&this._dollyIn(this._getZoomScale(this._dollyDelta.y)),this._dollyStart.copy(this._dollyEnd),this.update()}_handleMouseMovePan(t){this._panEnd.set(t.clientX,t.clientY),this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd),this.update()}_handleMouseWheel(t){this._updateZoomParameters(t.clientX,t.clientY),t.deltaY<0?this._dollyIn(this._getZoomScale(t.deltaY)):t.deltaY>0&&this._dollyOut(this._getZoomScale(t.deltaY)),this.update()}_handleKeyDown(t){let e=!1;switch(t.code){case this.keys.UP:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateUp(n1*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,this.keyPanSpeed),e=!0;break;case this.keys.BOTTOM:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateUp(-n1*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,-this.keyPanSpeed),e=!0;break;case this.keys.LEFT:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateLeft(n1*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(this.keyPanSpeed,0),e=!0;break;case this.keys.RIGHT:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateLeft(-n1*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(-this.keyPanSpeed,0),e=!0}e&&(t.preventDefault(),this.update())}_handleTouchStartRotate(t){if(1===this._pointers.length)this._rotateStart.set(t.pageX,t.pageY);else{let e=this._getSecondPointerPosition(t),n=.5*(t.pageX+e.x),r=.5*(t.pageY+e.y);this._rotateStart.set(n,r)}}_handleTouchStartPan(t){if(1===this._pointers.length)this._panStart.set(t.pageX,t.pageY);else{let e=this._getSecondPointerPosition(t),n=.5*(t.pageX+e.x),r=.5*(t.pageY+e.y);this._panStart.set(n,r)}}_handleTouchStartDolly(t){let e=this._getSecondPointerPosition(t),n=t.pageX-e.x,r=t.pageY-e.y,i=Math.sqrt(n*n+r*r);this._dollyStart.set(0,i)}_handleTouchStartDollyPan(t){this.enableZoom&&this._handleTouchStartDolly(t),this.enablePan&&this._handleTouchStartPan(t)}_handleTouchStartDollyRotate(t){this.enableZoom&&this._handleTouchStartDolly(t),this.enableRotate&&this._handleTouchStartRotate(t)}_handleTouchMoveRotate(t){if(1==this._pointers.length)this._rotateEnd.set(t.pageX,t.pageY);else{let e=this._getSecondPointerPosition(t),n=.5*(t.pageX+e.x),r=.5*(t.pageY+e.y);this._rotateEnd.set(n,r)}this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);let e=this.domElement;this._rotateLeft(n1*this._rotateDelta.x/e.clientHeight),this._rotateUp(n1*this._rotateDelta.y/e.clientHeight),this._rotateStart.copy(this._rotateEnd)}_handleTouchMovePan(t){if(1===this._pointers.length)this._panEnd.set(t.pageX,t.pageY);else{let e=this._getSecondPointerPosition(t),n=.5*(t.pageX+e.x),r=.5*(t.pageY+e.y);this._panEnd.set(n,r)}this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd)}_handleTouchMoveDolly(t){let e=this._getSecondPointerPosition(t),n=t.pageX-e.x,r=t.pageY-e.y,i=Math.sqrt(n*n+r*r);this._dollyEnd.set(0,i),this._dollyDelta.set(0,Math.pow(this._dollyEnd.y/this._dollyStart.y,this.zoomSpeed)),this._dollyOut(this._dollyDelta.y),this._dollyStart.copy(this._dollyEnd);let o=(t.pageX+e.x)*.5,a=(t.pageY+e.y)*.5;this._updateZoomParameters(o,a)}_handleTouchMoveDollyPan(t){this.enableZoom&&this._handleTouchMoveDolly(t),this.enablePan&&this._handleTouchMovePan(t)}_handleTouchMoveDollyRotate(t){this.enableZoom&&this._handleTouchMoveDolly(t),this.enableRotate&&this._handleTouchMoveRotate(t)}_addPointer(t){this._pointers.push(t.pointerId)}_removePointer(t){delete this._pointerPositions[t.pointerId];for(let e=0;e<this._pointers.length;e++)if(this._pointers[e]==t.pointerId)return void this._pointers.splice(e,1)}_isTrackingPointer(t){for(let e=0;e<this._pointers.length;e++)if(this._pointers[e]==t.pointerId)return!0;return!1}_trackPointer(t){let e=this._pointerPositions[t.pointerId];void 0===e&&(e=new r.I9Y,this._pointerPositions[t.pointerId]=e),e.set(t.pageX,t.pageY)}_getSecondPointerPosition(t){let e=t.pointerId===this._pointers[0]?this._pointers[1]:this._pointers[0];return this._pointerPositions[e]}_customWheelEvent(t){let e=t.deltaMode,n={clientX:t.clientX,clientY:t.clientY,deltaY:t.deltaY};switch(e){case 1:n.deltaY*=16;break;case 2:n.deltaY*=100}return t.ctrlKey&&!this._controlActive&&(n.deltaY*=10),n}}function n5(t){!1!==this.enabled&&(0===this._pointers.length&&(this.domElement.setPointerCapture(t.pointerId),this.domElement.ownerDocument.addEventListener("pointermove",this._onPointerMove),this.domElement.ownerDocument.addEventListener("pointerup",this._onPointerUp)),this._isTrackingPointer(t)||(this._addPointer(t),"touch"===t.pointerType?this._onTouchStart(t):this._onMouseDown(t),"grab"===this._cursorStyle&&(this.domElement.style.cursor="grabbing")))}function n6(t){!1!==this.enabled&&("touch"===t.pointerType?this._onTouchMove(t):this._onMouseMove(t))}function n8(t){switch(this._removePointer(t),this._pointers.length){case 0:this.domElement.releasePointerCapture(t.pointerId),this.domElement.ownerDocument.removeEventListener("pointermove",this._onPointerMove),this.domElement.ownerDocument.removeEventListener("pointerup",this._onPointerUp),this.dispatchEvent(nK),this.state=n2.NONE,"grab"===this._cursorStyle&&(this.domElement.style.cursor="grab");break;case 1:let e=this._pointers[0],n=this._pointerPositions[e];this._onTouchStart({pointerId:e,pageX:n.x,pageY:n.y})}}function n4(t){let e;switch(t.button){case 0:e=this.mouseButtons.LEFT;break;case 1:e=this.mouseButtons.MIDDLE;break;case 2:e=this.mouseButtons.RIGHT;break;default:e=-1}switch(e){case r.kBv.DOLLY:if(!1===this.enableZoom)return;this._handleMouseDownDolly(t),this.state=n2.DOLLY;break;case r.kBv.ROTATE:if(t.ctrlKey||t.metaKey||t.shiftKey){if(!1===this.enablePan)return;this._handleMouseDownPan(t),this.state=n2.PAN}else{if(!1===this.enableRotate)return;this._handleMouseDownRotate(t),this.state=n2.ROTATE}break;case r.kBv.PAN:if(t.ctrlKey||t.metaKey||t.shiftKey){if(!1===this.enableRotate)return;this._handleMouseDownRotate(t),this.state=n2.ROTATE}else{if(!1===this.enablePan)return;this._handleMouseDownPan(t),this.state=n2.PAN}break;default:this.state=n2.NONE}this.state!==n2.NONE&&this.dispatchEvent(nZ)}function n9(t){switch(this.state){case n2.ROTATE:if(!1===this.enableRotate)return;this._handleMouseMoveRotate(t);break;case n2.DOLLY:if(!1===this.enableZoom)return;this._handleMouseMoveDolly(t);break;case n2.PAN:if(!1===this.enablePan)return;this._handleMouseMovePan(t)}}function n7(t){!1!==this.enabled&&!1!==this.enableZoom&&this.state===n2.NONE&&(t.preventDefault(),this.dispatchEvent(nZ),this._handleMouseWheel(this._customWheelEvent(t)),this.dispatchEvent(nK))}function rt(t){!1!==this.enabled&&this._handleKeyDown(t)}function re(t){switch(this._trackPointer(t),this._pointers.length){case 1:switch(this.touches.ONE){case r.wtR.ROTATE:if(!1===this.enableRotate)return;this._handleTouchStartRotate(t),this.state=n2.TOUCH_ROTATE;break;case r.wtR.PAN:if(!1===this.enablePan)return;this._handleTouchStartPan(t),this.state=n2.TOUCH_PAN;break;default:this.state=n2.NONE}break;case 2:switch(this.touches.TWO){case r.wtR.DOLLY_PAN:if(!1===this.enableZoom&&!1===this.enablePan)return;this._handleTouchStartDollyPan(t),this.state=n2.TOUCH_DOLLY_PAN;break;case r.wtR.DOLLY_ROTATE:if(!1===this.enableZoom&&!1===this.enableRotate)return;this._handleTouchStartDollyRotate(t),this.state=n2.TOUCH_DOLLY_ROTATE;break;default:this.state=n2.NONE}break;default:this.state=n2.NONE}this.state!==n2.NONE&&this.dispatchEvent(nZ)}function rn(t){switch(this._trackPointer(t),this.state){case n2.TOUCH_ROTATE:if(!1===this.enableRotate)return;this._handleTouchMoveRotate(t),this.update();break;case n2.TOUCH_PAN:if(!1===this.enablePan)return;this._handleTouchMovePan(t),this.update();break;case n2.TOUCH_DOLLY_PAN:if(!1===this.enableZoom&&!1===this.enablePan)return;this._handleTouchMoveDollyPan(t),this.update();break;case n2.TOUCH_DOLLY_ROTATE:if(!1===this.enableZoom&&!1===this.enableRotate)return;this._handleTouchMoveDollyRotate(t),this.update();break;default:this.state=n2.NONE}}function rr(t){!1!==this.enabled&&t.preventDefault()}function ri(t){"Control"===t.key&&(this._controlActive=!0,this.domElement.getRootNode().addEventListener("keyup",this._interceptControlUp,{passive:!0,capture:!0}))}function ro(t){"Control"===t.key&&(this._controlActive=!1,this.domElement.getRootNode().removeEventListener("keyup",this._interceptControlUp,{passive:!0,capture:!0}))}let ra={type:"change"},rs=new r.PTz;class rl extends r.H2z{constructor(t,e=null){super(t,e),this.movementSpeed=1,this.rollSpeed=.005,this.dragToLook=!1,this.autoForward=!1,this._moveState={up:0,down:0,left:0,right:0,forward:0,back:0,pitchUp:0,pitchDown:0,yawLeft:0,yawRight:0,rollLeft:0,rollRight:0},this._moveVector=new r.Pq0(0,0,0),this._rotationVector=new r.Pq0(0,0,0),this._lastQuaternion=new r.PTz,this._lastPosition=new r.Pq0,this._status=0,this._onKeyDown=rh.bind(this),this._onKeyUp=ru.bind(this),this._onPointerMove=rd.bind(this),this._onPointerDown=rc.bind(this),this._onPointerUp=rf.bind(this),this._onPointerCancel=rp.bind(this),this._onContextMenu=r_.bind(this),null!==e&&this.connect(e)}connect(t){super.connect(t),window.addEventListener("keydown",this._onKeyDown),window.addEventListener("keyup",this._onKeyUp),this.domElement.addEventListener("pointermove",this._onPointerMove),this.domElement.addEventListener("pointerdown",this._onPointerDown),this.domElement.addEventListener("pointerup",this._onPointerUp),this.domElement.addEventListener("pointercancel",this._onPointerCancel),this.domElement.addEventListener("contextmenu",this._onContextMenu),this.domElement.style.touchAction="none"}disconnect(){window.removeEventListener("keydown",this._onKeyDown),window.removeEventListener("keyup",this._onKeyUp),this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerdown",this._onPointerDown),this.domElement.removeEventListener("pointerup",this._onPointerUp),this.domElement.removeEventListener("pointercancel",this._onPointerCancel),this.domElement.removeEventListener("contextmenu",this._onContextMenu),this.domElement.style.touchAction=""}dispose(){this.disconnect()}update(t){if(!1===this.enabled)return;let e=this.object,n=t*this.movementSpeed,r=t*this.rollSpeed;e.translateX(this._moveVector.x*n),e.translateY(this._moveVector.y*n),e.translateZ(this._moveVector.z*n),rs.set(this._rotationVector.x*r,this._rotationVector.y*r,this._rotationVector.z*r,1).normalize(),e.quaternion.multiply(rs),(this._lastPosition.distanceToSquared(e.position)>1e-6||8*(1-this._lastQuaternion.dot(e.quaternion))>1e-6)&&(this.dispatchEvent(ra),this._lastQuaternion.copy(e.quaternion),this._lastPosition.copy(e.position))}_updateMovementVector(){let t=this._moveState.forward||this.autoForward&&!this._moveState.back?1:0;this._moveVector.x=-this._moveState.left+this._moveState.right,this._moveVector.y=-this._moveState.down+this._moveState.up,this._moveVector.z=-t+this._moveState.back}_updateRotationVector(){this._rotationVector.x=-this._moveState.pitchDown+this._moveState.pitchUp,this._rotationVector.y=-this._moveState.yawRight+this._moveState.yawLeft,this._rotationVector.z=-this._moveState.rollRight+this._moveState.rollLeft}_getContainerDimensions(){return this.domElement!=document?{size:[this.domElement.offsetWidth,this.domElement.offsetHeight],offset:[this.domElement.offsetLeft,this.domElement.offsetTop]}:{size:[window.innerWidth,window.innerHeight],offset:[0,0]}}}function rh(t){if(!t.altKey&&!1!==this.enabled){switch(t.code){case"ShiftLeft":case"ShiftRight":this.movementSpeedMultiplier=.1;break;case"KeyW":this._moveState.forward=1;break;case"KeyS":this._moveState.back=1;break;case"KeyA":this._moveState.left=1;break;case"KeyD":this._moveState.right=1;break;case"KeyR":this._moveState.up=1;break;case"KeyF":this._moveState.down=1;break;case"ArrowUp":this._moveState.pitchUp=1;break;case"ArrowDown":this._moveState.pitchDown=1;break;case"ArrowLeft":this._moveState.yawLeft=1;break;case"ArrowRight":this._moveState.yawRight=1;break;case"KeyQ":this._moveState.rollLeft=1;break;case"KeyE":this._moveState.rollRight=1}this._updateMovementVector(),this._updateRotationVector()}}function ru(t){if(!1!==this.enabled){switch(t.code){case"ShiftLeft":case"ShiftRight":this.movementSpeedMultiplier=1;break;case"KeyW":this._moveState.forward=0;break;case"KeyS":this._moveState.back=0;break;case"KeyA":this._moveState.left=0;break;case"KeyD":this._moveState.right=0;break;case"KeyR":this._moveState.up=0;break;case"KeyF":this._moveState.down=0;break;case"ArrowUp":this._moveState.pitchUp=0;break;case"ArrowDown":this._moveState.pitchDown=0;break;case"ArrowLeft":this._moveState.yawLeft=0;break;case"ArrowRight":this._moveState.yawRight=0;break;case"KeyQ":this._moveState.rollLeft=0;break;case"KeyE":this._moveState.rollRight=0}this._updateMovementVector(),this._updateRotationVector()}}function rc(t){if(!1!==this.enabled)if(this.dragToLook)this._status++;else{switch(t.button){case 0:this._moveState.forward=1;break;case 2:this._moveState.back=1}this._updateMovementVector()}}function rd(t){if(!1!==this.enabled&&(!this.dragToLook||this._status>0)){let e=this._getContainerDimensions(),n=e.size[0]/2,r=e.size[1]/2;this._moveState.yawLeft=-(t.pageX-e.offset[0]-n)/n,this._moveState.pitchDown=(t.pageY-e.offset[1]-r)/r,this._updateRotationVector()}}function rf(t){if(!1!==this.enabled){if(this.dragToLook)this._status--,this._moveState.yawLeft=this._moveState.pitchDown=0;else{switch(t.button){case 0:this._moveState.forward=0;break;case 2:this._moveState.back=0}this._updateMovementVector()}this._updateRotationVector()}}function rp(){!1!==this.enabled&&(this.dragToLook?(this._status=0,this._moveState.yawLeft=this._moveState.pitchDown=0):(this._moveState.forward=0,this._moveState.back=0,this._updateMovementVector()),this._updateRotationVector())}function r_(t){!1!==this.enabled&&t.preventDefault()}let rg={name:"CopyShader",uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:`
160
+
161
+ varying vec2 vUv;
162
+
163
+ void main() {
164
+
165
+ vUv = uv;
166
+ gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
167
+
168
+ }`,fragmentShader:`
169
+
170
+ uniform float opacity;
171
+
172
+ uniform sampler2D tDiffuse;
173
+
174
+ varying vec2 vUv;
175
+
176
+ void main() {
177
+
178
+ vec4 texel = texture2D( tDiffuse, vUv );
179
+ gl_FragColor = opacity * texel;
180
+
181
+
182
+ }`};class ry{constructor(){this.isPass=!0,this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}dispose(){}}let rm=new r.qUd(-1,1,1,-1,0,1);class rv extends r.LoY{constructor(){super(),this.setAttribute("position",new r.qtW([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new r.qtW([0,2,0,0,2,0],2))}}let rb=new rv;class rw{constructor(t){this._mesh=new r.eaF(rb,t)}dispose(){this._mesh.geometry.dispose()}render(t){t.render(this._mesh,rm)}get material(){return this._mesh.material}set material(t){this._mesh.material=t}}class rx extends ry{constructor(t,e="tDiffuse"){super(),this.textureID=e,this.uniforms=null,this.material=null,t instanceof r.BKk?(this.uniforms=t.uniforms,this.material=t):t&&(this.uniforms=r.LlO.clone(t.uniforms),this.material=new r.BKk({name:void 0!==t.name?t.name:"unspecified",defines:Object.assign({},t.defines),uniforms:this.uniforms,vertexShader:t.vertexShader,fragmentShader:t.fragmentShader})),this._fsQuad=new rw(this.material)}render(t,e,n){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=n.texture),this._fsQuad.material=this.material,this.renderToScreen?t.setRenderTarget(null):(t.setRenderTarget(e),this.clear&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil)),this._fsQuad.render(t)}dispose(){this.material.dispose(),this._fsQuad.dispose()}}class rk extends ry{constructor(t,e){super(),this.scene=t,this.camera=e,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(t,e,n){let r,i,o=t.getContext(),a=t.state;a.buffers.color.setMask(!1),a.buffers.depth.setMask(!1),a.buffers.color.setLocked(!0),a.buffers.depth.setLocked(!0),this.inverse?(r=0,i=1):(r=1,i=0),a.buffers.stencil.setTest(!0),a.buffers.stencil.setOp(o.REPLACE,o.REPLACE,o.REPLACE),a.buffers.stencil.setFunc(o.ALWAYS,r,0xffffffff),a.buffers.stencil.setClear(i),a.buffers.stencil.setLocked(!0),t.setRenderTarget(n),this.clear&&t.clear(),t.render(this.scene,this.camera),t.setRenderTarget(e),this.clear&&t.clear(),t.render(this.scene,this.camera),a.buffers.color.setLocked(!1),a.buffers.depth.setLocked(!1),a.buffers.color.setMask(!0),a.buffers.depth.setMask(!0),a.buffers.stencil.setLocked(!1),a.buffers.stencil.setFunc(o.EQUAL,1,0xffffffff),a.buffers.stencil.setOp(o.KEEP,o.KEEP,o.KEEP),a.buffers.stencil.setLocked(!0)}}class rP extends ry{constructor(){super(),this.needsSwap=!1}render(t){t.state.buffers.stencil.setLocked(!1),t.state.buffers.stencil.setTest(!1)}}class rE{constructor(t,e){if(this.renderer=t,this._pixelRatio=t.getPixelRatio(),void 0===e){let n=t.getSize(new r.I9Y);this._width=n.width,this._height=n.height,(e=new r.nWS(this._width*this._pixelRatio,this._height*this._pixelRatio,{type:r.ix0})).texture.name="EffectComposer.rt1"}else this._width=e.width,this._height=e.height;this.renderTarget1=e,this.renderTarget2=e.clone(),this.renderTarget2.texture.name="EffectComposer.rt2",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,this.passes=[],this.copyPass=new rx(rg),this.copyPass.material.blending=r.XIg,this.timer=new r.M4G}swapBuffers(){let t=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=t}addPass(t){this.passes.push(t),t.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(t,e){this.passes.splice(e,0,t),t.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(t){let e=this.passes.indexOf(t);-1!==e&&this.passes.splice(e,1)}isLastEnabledPass(t){for(let e=t+1;e<this.passes.length;e++)if(this.passes[e].enabled)return!1;return!0}render(t){this.timer.update(),void 0===t&&(t=this.timer.getDelta());let e=this.renderer.getRenderTarget(),n=!1;for(let e=0,r=this.passes.length;e<r;e++){let r=this.passes[e];if(!1!==r.enabled){if(r.renderToScreen=this.renderToScreen&&this.isLastEnabledPass(e),r.render(this.renderer,this.writeBuffer,this.readBuffer,t,n),r.needsSwap){if(n){let e=this.renderer.getContext(),n=this.renderer.state.buffers.stencil;n.setFunc(e.NOTEQUAL,1,0xffffffff),this.copyPass.render(this.renderer,this.writeBuffer,this.readBuffer,t),n.setFunc(e.EQUAL,1,0xffffffff)}this.swapBuffers()}void 0!==rk&&(r instanceof rk?n=!0:r instanceof rP&&(n=!1))}}this.renderer.setRenderTarget(e)}reset(t){if(void 0===t){let e=this.renderer.getSize(new r.I9Y);this._pixelRatio=this.renderer.getPixelRatio(),this._width=e.width,this._height=e.height,(t=this.renderTarget1.clone()).setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}this.renderTarget1.dispose(),this.renderTarget2.dispose(),this.renderTarget1=t,this.renderTarget2=t.clone(),this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2}setSize(t,e){this._width=t,this._height=e;let n=this._width*this._pixelRatio,r=this._height*this._pixelRatio;this.renderTarget1.setSize(n,r),this.renderTarget2.setSize(n,r);for(let t=0;t<this.passes.length;t++)this.passes[t].setSize(n,r)}setPixelRatio(t){this._pixelRatio=t,this.setSize(this._width,this._height)}dispose(){this.renderTarget1.dispose(),this.renderTarget2.dispose(),this.copyPass.dispose()}}class rS extends ry{constructor(t,e,n=null,i=null,o=null){super(),this.scene=t,this.camera=e,this.overrideMaterial=n,this.clearColor=i,this.clearAlpha=o,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this.isRenderPass=!0,this._oldClearColor=new r.Q1f}render(t,e,n){let r,i,o=t.autoClear;t.autoClear=!1,null!==this.overrideMaterial&&(i=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),null!==this.clearColor&&(t.getClearColor(this._oldClearColor),t.setClearColor(this.clearColor,t.getClearAlpha())),null!==this.clearAlpha&&(r=t.getClearAlpha(),t.setClearAlpha(this.clearAlpha)),!0==this.clearDepth&&t.clearDepth(),t.setRenderTarget(this.renderToScreen?null:n),!0===this.clear&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),t.render(this.scene,this.camera),null!==this.clearColor&&t.setClearColor(this._oldClearColor),null!==this.clearAlpha&&t.setClearAlpha(r),null!==this.overrideMaterial&&(this.scene.overrideMaterial=i),t.autoClear=o}}function rO(){return(rO=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)({}).hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}).apply(null,arguments)}function rM(t,e){return(rM=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t})(t,e)}function rC(t){return(rC=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function rj(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(rj=function(){return!!t})()}function rA(t){var e="function"==typeof Map?new Map:void 0;return(rA=function(t){if(null===t||!function(t){try{return -1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return function(t,e,n){if(rj())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,e);var i=new(t.bind.apply(t,r));return n&&rM(i,n.prototype),i}(t,arguments,rC(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),rM(n,t)})(t)}var rT=function(t){function e(e){var n=t.call(this,"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#"+e+" for more information.")||this;if(void 0===n)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return n}return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,rM(e,t),e}(rA(Error));function rD(t,e){return t.substr(-e.length)===e}var rR=/^([+-]?(?:\d+|\d*\.\d+))([a-z]*|%)$/;function rN(t){return"string"!=typeof t?t:t.match(rR)?parseFloat(t):t}var rI=function(t){return function(e,n){void 0===n&&(n="16px");var r=e,i=n;if("string"==typeof e){if(!rD(e,"px"))throw new rT(69,t,e);r=rN(e)}if("string"==typeof n){if(!rD(n,"px"))throw new rT(70,t,n);i=rN(n)}if("string"==typeof r)throw new rT(71,e,t);if("string"==typeof i)throw new rT(72,n,t);return""+r/i+t}};function rL(t){return Math.round(255*t)}function rz(t,e,n){return rL(t)+","+rL(e)+","+rL(n)}function rB(t,e,n,r){if(void 0===r&&(r=rz),0===e)return r(n,n,n);var i=(t%360+360)%360/60,o=(1-Math.abs(2*n-1))*e,a=o*(1-Math.abs(i%2-1)),s=0,l=0,h=0;i>=0&&i<1?(s=o,l=a):i>=1&&i<2?(s=a,l=o):i>=2&&i<3?(l=o,h=a):i>=3&&i<4?(l=a,h=o):i>=4&&i<5?(s=a,h=o):i>=5&&i<6&&(s=o,h=a);var u=n-o/2;return r(s+u,l+u,h+u)}rI("em"),rI("rem");var rF={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"639",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},rU=/^#[a-fA-F0-9]{6}$/,rq=/^#[a-fA-F0-9]{8}$/,r$=/^#[a-fA-F0-9]{3}$/,rH=/^#[a-fA-F0-9]{4}$/,rV=/^rgb\(\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*\)$/i,rY=/^rgb(?:a)?\(\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,|\/)\s*([-+]?\d*[.]?\d+[%]?)\s*\)$/i,rW=/^hsl\(\s*(\d{0,3}[.]?[0-9]+(?:deg)?)\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*\)$/i,rG=/^hsl(?:a)?\(\s*(\d{0,3}[.]?[0-9]+(?:deg)?)\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,|\/)\s*([-+]?\d*[.]?\d+[%]?)\s*\)$/i;function rZ(t){if("string"!=typeof t)throw new rT(3);var e=function(t){if("string"!=typeof t)return t;var e=t.toLowerCase();return rF[e]?"#"+rF[e]:t}(t);if(e.match(rU))return{red:parseInt(""+e[1]+e[2],16),green:parseInt(""+e[3]+e[4],16),blue:parseInt(""+e[5]+e[6],16)};if(e.match(rq)){var n=parseFloat((parseInt(""+e[7]+e[8],16)/255).toFixed(2));return{red:parseInt(""+e[1]+e[2],16),green:parseInt(""+e[3]+e[4],16),blue:parseInt(""+e[5]+e[6],16),alpha:n}}if(e.match(r$))return{red:parseInt(""+e[1]+e[1],16),green:parseInt(""+e[2]+e[2],16),blue:parseInt(""+e[3]+e[3],16)};if(e.match(rH)){var r=parseFloat((parseInt(""+e[4]+e[4],16)/255).toFixed(2));return{red:parseInt(""+e[1]+e[1],16),green:parseInt(""+e[2]+e[2],16),blue:parseInt(""+e[3]+e[3],16),alpha:r}}var i=rV.exec(e);if(i)return{red:parseInt(""+i[1],10),green:parseInt(""+i[2],10),blue:parseInt(""+i[3],10)};var o=rY.exec(e.substring(0,50));if(o)return{red:parseInt(""+o[1],10),green:parseInt(""+o[2],10),blue:parseInt(""+o[3],10),alpha:parseFloat(""+o[4])>1?parseFloat(""+o[4])/100:parseFloat(""+o[4])};var a=rW.exec(e);if(a){var s="rgb("+rB(parseInt(""+a[1],10),parseInt(""+a[2],10)/100,parseInt(""+a[3],10)/100)+")",l=rV.exec(s);if(!l)throw new rT(4,e,s);return{red:parseInt(""+l[1],10),green:parseInt(""+l[2],10),blue:parseInt(""+l[3],10)}}var h=rG.exec(e.substring(0,50));if(h){var u="rgb("+rB(parseInt(""+h[1],10),parseInt(""+h[2],10)/100,parseInt(""+h[3],10)/100)+")",c=rV.exec(u);if(!c)throw new rT(4,e,u);return{red:parseInt(""+c[1],10),green:parseInt(""+c[2],10),blue:parseInt(""+c[3],10),alpha:parseFloat(""+h[4])>1?parseFloat(""+h[4])/100:parseFloat(""+h[4])}}throw new rT(5)}function rK(t){return function(t){var e,n=t.red/255,r=t.green/255,i=t.blue/255,o=Math.max(n,r,i),a=Math.min(n,r,i),s=(o+a)/2;if(o===a)if(void 0!==t.alpha)return{hue:0,saturation:0,lightness:s,alpha:t.alpha};else return{hue:0,saturation:0,lightness:s};var l=o-a,h=s>.5?l/(2-o-a):l/(o+a);switch(o){case n:e=(r-i)/l+6*(r<i);break;case r:e=(i-n)/l+2;break;default:e=(n-r)/l+4}return(e*=60,void 0!==t.alpha)?{hue:e,saturation:h,lightness:s,alpha:t.alpha}:{hue:e,saturation:h,lightness:s}}(rZ(t))}var rX=function(t){return 7===t.length&&t[1]===t[2]&&t[3]===t[4]&&t[5]===t[6]?"#"+t[1]+t[3]+t[5]:t};function rQ(t){var e=t.toString(16);return 1===e.length?"0"+e:e}function rJ(t){return rQ(Math.round(255*t))}function r0(t,e,n){return rX("#"+rJ(t)+rJ(e)+rJ(n))}function r1(t,e,n){if("number"==typeof t&&"number"==typeof e&&"number"==typeof n)return rX("#"+rQ(t)+rQ(e)+rQ(n));if("object"==typeof t&&void 0===e&&void 0===n)return rX("#"+rQ(t.red)+rQ(t.green)+rQ(t.blue));throw new rT(6)}function r2(t,e,n,r){if("string"==typeof t&&"number"==typeof e){var i=rZ(t);return"rgba("+i.red+","+i.green+","+i.blue+","+e+")"}if("number"==typeof t&&"number"==typeof e&&"number"==typeof n&&"number"==typeof r)return r>=1?r1(t,e,n):"rgba("+t+","+e+","+n+","+r+")";if("object"==typeof t&&void 0===e&&void 0===n&&void 0===r)return t.alpha>=1?r1(t.red,t.green,t.blue):"rgba("+t.red+","+t.green+","+t.blue+","+t.alpha+")";throw new rT(7)}function r3(t){if("object"!=typeof t)throw new rT(8);if("number"==typeof t.red&&"number"==typeof t.green&&"number"==typeof t.blue&&"number"==typeof t.alpha)return r2(t);if("number"==typeof t.red&&"number"==typeof t.green&&"number"==typeof t.blue&&("number"!=typeof t.alpha||void 0===t.alpha))return r1(t);if("number"==typeof t.hue&&"number"==typeof t.saturation&&"number"==typeof t.lightness&&"number"==typeof t.alpha)return function(t,e,n,r){if("object"==typeof t){var i;return t.alpha>=1?(i=t.hue,rB(i,t.saturation,t.lightness,r0)):"rgba("+rB(t.hue,t.saturation,t.lightness)+","+t.alpha+")"}throw new rT(2)}(t);if("number"==typeof t.hue&&"number"==typeof t.saturation&&"number"==typeof t.lightness&&("number"!=typeof t.alpha||void 0===t.alpha))return function(t,e,n){if("object"==typeof t){var r;return r=t.hue,rB(r,t.saturation,t.lightness,r0)}throw new rT(1)}(t);throw new rT(8)}function r5(t){return function t(e,n,r){return function(){var i=r.concat(Array.prototype.slice.call(arguments));return i.length>=n?e.apply(this,i):t(e,n,i)}}(t,t.length,[])}function r6(t,e,n){return Math.max(t,Math.min(e,n))}r5(function(t,e){if("transparent"===e)return e;var n=rK(e);return r3(rO({},n,{hue:n.hue+parseFloat(t)}))}),r5(function(t,e){if("transparent"===e)return e;var n=rK(e);return r3(rO({},n,{lightness:r6(0,1,n.lightness-parseFloat(t))}))}),r5(function(t,e){if("transparent"===e)return e;var n=rK(e);return r3(rO({},n,{saturation:r6(0,1,n.saturation-parseFloat(t))}))}),r5(function(t,e){if("transparent"===e)return e;var n=rK(e);return r3(rO({},n,{lightness:r6(0,1,n.lightness+parseFloat(t))}))});var r8=r5(function(t,e,n){if("transparent"===e)return n;if("transparent"===n)return e;if(0===t)return n;var r=rZ(e),i=rO({},r,{alpha:"number"==typeof r.alpha?r.alpha:1}),o=rZ(n),a=rO({},o,{alpha:"number"==typeof o.alpha?o.alpha:1}),s=i.alpha-a.alpha,l=2*parseFloat(t)-1,h=((l*s==-1?l:l+s)/(1+l*s)+1)/2,u=1-h;return r2({red:Math.floor(i.red*h+a.red*u),green:Math.floor(i.green*h+a.green*u),blue:Math.floor(i.blue*h+a.blue*u),alpha:i.alpha*parseFloat(t)+a.alpha*(1-parseFloat(t))})}),r4=r5(function(t,e){if("transparent"===e)return e;var n=rZ(e),r="number"==typeof n.alpha?n.alpha:1;return r2(rO({},n,{alpha:r6(0,1,(100*r+100*parseFloat(t))/100)}))});r5(function(t,e){if("transparent"===e)return e;var n=rK(e);return r3(rO({},n,{saturation:r6(0,1,n.saturation+parseFloat(t))}))}),r5(function(t,e){return"transparent"===e?e:r3(rO({},rK(e),{hue:parseFloat(t)}))}),r5(function(t,e){return"transparent"===e?e:r3(rO({},rK(e),{lightness:parseFloat(t)}))}),r5(function(t,e){return"transparent"===e?e:r3(rO({},rK(e),{saturation:parseFloat(t)}))}),r5(function(t,e){return"transparent"===e?e:r8(parseFloat(t),"rgb(0, 0, 0)",e)}),r5(function(t,e){return"transparent"===e?e:r8(parseFloat(t),"rgb(255, 255, 255)",e)}),r5(function(t,e){if("transparent"===e)return e;var n=rZ(e),r="number"==typeof n.alpha?n.alpha:1;return r2(rO({},n,{alpha:r6(0,1,(100*r-100*parseFloat(t)).toFixed(2)/100)}))});var r9=Object.freeze({Linear:Object.freeze({None:function(t){return t},In:function(t){return t},Out:function(t){return t},InOut:function(t){return t}}),Quadratic:Object.freeze({In:function(t){return t*t},Out:function(t){return t*(2-t)},InOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)}}),Cubic:Object.freeze({In:function(t){return t*t*t},Out:function(t){return--t*t*t+1},InOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)}}),Quartic:Object.freeze({In:function(t){return t*t*t*t},Out:function(t){return 1- --t*t*t*t},InOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)}}),Quintic:Object.freeze({In:function(t){return t*t*t*t*t},Out:function(t){return--t*t*t*t*t+1},InOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)}}),Sinusoidal:Object.freeze({In:function(t){return 1-Math.sin((1-t)*Math.PI/2)},Out:function(t){return Math.sin(t*Math.PI/2)},InOut:function(t){return .5*(1-Math.sin(Math.PI*(.5-t)))}}),Exponential:Object.freeze({In:function(t){return 0===t?0:Math.pow(1024,t-1)},Out:function(t){return 1===t?1:1-Math.pow(2,-10*t)},InOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(-Math.pow(2,-10*(t-1))+2)}}),Circular:Object.freeze({In:function(t){return 1-Math.sqrt(1-t*t)},Out:function(t){return Math.sqrt(1- --t*t)},InOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)}}),Elastic:Object.freeze({In:function(t){return 0===t?0:1===t?1:-Math.pow(2,10*(t-1))*Math.sin((t-1.1)*5*Math.PI)},Out:function(t){return 0===t?0:1===t?1:Math.pow(2,-10*t)*Math.sin((t-.1)*5*Math.PI)+1},InOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?-.5*Math.pow(2,10*(t-1))*Math.sin((t-1.1)*5*Math.PI):.5*Math.pow(2,-10*(t-1))*Math.sin((t-1.1)*5*Math.PI)+1}}),Back:Object.freeze({In:function(t){return 1===t?1:t*t*(2.70158*t-1.70158)},Out:function(t){return 0===t?0:--t*t*(2.70158*t+1.70158)+1},InOut:function(t){return(t*=2)<1?t*t*(3.5949095*t-2.5949095)*.5:.5*((t-=2)*t*(3.5949095*t+2.5949095)+2)}}),Bounce:Object.freeze({In:function(t){return 1-r9.Bounce.Out(1-t)},Out:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},InOut:function(t){return t<.5?.5*r9.Bounce.In(2*t):.5*r9.Bounce.Out(2*t-1)+.5}}),generatePow:function(t){return void 0===t&&(t=4),t=(t=t<Number.EPSILON?Number.EPSILON:t)>1e4?1e4:t,{In:function(e){return Math.pow(e,t)},Out:function(e){return 1-Math.pow(1-e,t)},InOut:function(e){return e<.5?Math.pow(2*e,t)/2:(1-Math.pow(2-2*e,t))/2+.5}}}}),r7=function(){return performance.now()},it=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this._tweens={},this._tweensAddedDuringUpdate={},this.add.apply(this,t)}return t.prototype.getAll=function(){var t=this;return Object.keys(this._tweens).map(function(e){return t._tweens[e]})},t.prototype.removeAll=function(){this._tweens={}},t.prototype.add=function(){for(var t,e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];for(var r=0;r<e.length;r++){var i=e[r];null==(t=i._group)||t.remove(i),i._group=this,this._tweens[i.getId()]=i,this._tweensAddedDuringUpdate[i.getId()]=i}},t.prototype.remove=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var n=0;n<t.length;n++){var r=t[n];r._group=void 0,delete this._tweens[r.getId()],delete this._tweensAddedDuringUpdate[r.getId()]}},t.prototype.allStopped=function(){return this.getAll().every(function(t){return!t.isPlaying()})},t.prototype.update=function(t,e){void 0===t&&(t=r7()),void 0===e&&(e=!0);var n=Object.keys(this._tweens);if(0!==n.length)for(;n.length>0;){this._tweensAddedDuringUpdate={};for(var r=0;r<n.length;r++){var i=this._tweens[n[r]],o=!e;i&&!1===i.update(t,o)&&!e&&this.remove(i)}n=Object.keys(this._tweensAddedDuringUpdate)}},t}(),ie={Linear:function(t,e){var n=t.length-1,r=n*e,i=Math.floor(r),o=ie.Utils.Linear;return e<0?o(t[0],t[1],r):e>1?o(t[n],t[n-1],n-r):o(t[i],t[i+1>n?n:i+1],r-i)},Bezier:function(t,e){for(var n=0,r=t.length-1,i=Math.pow,o=ie.Utils.Bernstein,a=0;a<=r;a++)n+=i(1-e,r-a)*i(e,a)*t[a]*o(r,a);return n},CatmullRom:function(t,e){var n=t.length-1,r=n*e,i=Math.floor(r),o=ie.Utils.CatmullRom;return t[0]===t[n]?(e<0&&(i=Math.floor(r=n*(1+e))),o(t[(i-1+n)%n],t[i],t[(i+1)%n],t[(i+2)%n],r-i)):e<0?t[0]-(o(t[0],t[0],t[1],t[1],-r)-t[0]):e>1?t[n]-(o(t[n],t[n],t[n-1],t[n-1],r-n)-t[n]):o(t[i?i-1:0],t[i],t[n<i+1?n:i+1],t[n<i+2?n:i+2],r-i)},Utils:{Linear:function(t,e,n){return(e-t)*n+t},Bernstein:function(t,e){var n=ie.Utils.Factorial;return n(t)/n(e)/n(t-e)},Factorial:function(){var t=[1];return function(e){var n=1;if(t[e])return t[e];for(var r=e;r>1;r--)n*=r;return t[e]=n,n}}(),CatmullRom:function(t,e,n,r,i){var o=(n-t)*.5,a=(r-e)*.5,s=i*i;return i*s*(2*e-2*n+o+a)+(-3*e+3*n-2*o-a)*s+o*i+e}}},ir=function(){function t(){}return t.nextId=function(){return t._nextId++},t._nextId=0,t}(),ii=new it,io=function(){function t(t,e){this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=r9.Linear.None,this._interpolationFunction=ie.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=ir.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1,this._object=t,"object"==typeof e?(this._group=e,e.add(this)):!0===e&&(this._group=ii,ii.add(this))}return t.prototype.getId=function(){return this._id},t.prototype.isPlaying=function(){return this._isPlaying},t.prototype.isPaused=function(){return this._isPaused},t.prototype.getDuration=function(){return this._duration},t.prototype.to=function(t,e){if(void 0===e&&(e=1e3),this._isPlaying)throw Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=t,this._propertiesAreSetUp=!1,this._duration=e<0?0:e,this},t.prototype.duration=function(t){return void 0===t&&(t=1e3),this._duration=t<0?0:t,this},t.prototype.dynamic=function(t){return void 0===t&&(t=!1),this._isDynamic=t,this},t.prototype.start=function(t,e){if(void 0===t&&(t=r7()),void 0===e&&(e=!1),this._isPlaying)return this;if(this._repeat=this._initialRepeat,this._reversed)for(var n in this._reversed=!1,this._valuesStartRepeat)this._swapEndStartRepeatValues(n),this._valuesStart[n]=this._valuesStartRepeat[n];if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=t,this._startTime+=this._delayTime,!this._propertiesAreSetUp||e){if(this._propertiesAreSetUp=!0,!this._isDynamic){var r={};for(var i in this._valuesEnd)r[i]=this._valuesEnd[i];this._valuesEnd=r}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,e)}return this},t.prototype.startFromCurrentValues=function(t){return this.start(t,!0)},t.prototype._setupProperties=function(t,e,n,r,i){for(var o in n){var a=t[o],s=Array.isArray(a),l=s?"array":typeof a,h=!s&&Array.isArray(n[o]);if("undefined"!==l&&"function"!==l){if(h){var u=n[o];if(0===u.length)continue;for(var c=[a],d=0,f=u.length;d<f;d+=1){var p=this._handleRelativeValue(a,u[d]);if(isNaN(p)){h=!1,console.warn("Found invalid interpolation list. Skipping.");break}c.push(p)}h&&(n[o]=c)}if(("object"===l||s)&&a&&!h){for(var _ in e[o]=s?[]:{},a)e[o][_]=a[_];r[o]=s?[]:{};var u=n[o];if(!this._isDynamic){var g={};for(var _ in u)g[_]=u[_];n[o]=u=g}this._setupProperties(a,e[o],u,r[o],i)}else(void 0===e[o]||i)&&(e[o]=a),s||(e[o]*=1),h?r[o]=n[o].slice().reverse():r[o]=e[o]||0}}},t.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying&&(this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object)),this},t.prototype.end=function(){return this._goToEnd=!0,this.update(this._startTime+this._duration),this},t.prototype.pause=function(t){return void 0===t&&(t=r7()),this._isPaused||!this._isPlaying||(this._isPaused=!0,this._pauseStart=t),this},t.prototype.resume=function(t){return void 0===t&&(t=r7()),this._isPaused&&this._isPlaying&&(this._isPaused=!1,this._startTime+=t-this._pauseStart,this._pauseStart=0),this},t.prototype.stopChainedTweens=function(){for(var t=0,e=this._chainedTweens.length;t<e;t++)this._chainedTweens[t].stop();return this},t.prototype.group=function(t){return t?t.add(this):console.warn("tween.group() without args has been removed, use group.add(tween) instead."),this},t.prototype.remove=function(){var t;return null==(t=this._group)||t.remove(this),this},t.prototype.delay=function(t){return void 0===t&&(t=0),this._delayTime=t,this},t.prototype.repeat=function(t){return void 0===t&&(t=0),this._initialRepeat=t,this._repeat=t,this},t.prototype.repeatDelay=function(t){return this._repeatDelayTime=t,this},t.prototype.yoyo=function(t){return void 0===t&&(t=!1),this._yoyo=t,this},t.prototype.easing=function(t){return void 0===t&&(t=r9.Linear.None),this._easingFunction=t,this},t.prototype.interpolation=function(t){return void 0===t&&(t=ie.Linear),this._interpolationFunction=t,this},t.prototype.chain=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return this._chainedTweens=t,this},t.prototype.onStart=function(t){return this._onStartCallback=t,this},t.prototype.onEveryStart=function(t){return this._onEveryStartCallback=t,this},t.prototype.onUpdate=function(t){return this._onUpdateCallback=t,this},t.prototype.onRepeat=function(t){return this._onRepeatCallback=t,this},t.prototype.onComplete=function(t){return this._onCompleteCallback=t,this},t.prototype.onStop=function(t){return this._onStopCallback=t,this},t.prototype.update=function(e,n){var r,i,o=this;if(void 0===e&&(e=r7()),void 0===n&&(n=t.autoStartOnUpdate),this._isPaused)return!0;if(!this._goToEnd&&!this._isPlaying)if(!n)return!1;else this.start(e,!0);if(this._goToEnd=!1,e<this._startTime)return!0;!1===this._onStartCallbackFired&&(this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),!1===this._onEveryStartCallbackFired&&(this._onEveryStartCallback&&this._onEveryStartCallback(this._object),this._onEveryStartCallbackFired=!0);var a=e-this._startTime,s=this._duration+(null!=(r=this._repeatDelayTime)?r:this._delayTime),l=this._duration+this._repeat*s,h=function(){if(0===o._duration||a>l)return 1;var t=Math.trunc(a/s),e=Math.min((a-t*s)/o._duration,1);return 0===e&&a===o._duration?1:e}(),u=this._easingFunction(h);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,u),this._onUpdateCallback&&this._onUpdateCallback(this._object,h),0===this._duration||a>=this._duration)if(this._repeat>0){var c=Math.min(Math.trunc((a-this._duration)/s)+1,this._repeat);for(i in isFinite(this._repeat)&&(this._repeat-=c),this._valuesStartRepeat)this._yoyo||"string"!=typeof this._valuesEnd[i]||(this._valuesStartRepeat[i]=this._valuesStartRepeat[i]+parseFloat(this._valuesEnd[i])),this._yoyo&&this._swapEndStartRepeatValues(i),this._valuesStart[i]=this._valuesStartRepeat[i];this._yoyo&&(this._reversed=!this._reversed),this._startTime+=s*c,this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1}else{this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var d=0,f=this._chainedTweens.length;d<f;d++)this._chainedTweens[d].start(this._startTime+this._duration,!1);return this._isPlaying=!1,!1}return!0},t.prototype._updateProperties=function(t,e,n,r){for(var i in n)if(void 0!==e[i]){var o=e[i]||0,a=n[i],s=Array.isArray(t[i]),l=Array.isArray(a);!s&&l?t[i]=this._interpolationFunction(a,r):"object"==typeof a&&a?this._updateProperties(t[i],o,a,r):"number"==typeof(a=this._handleRelativeValue(o,a))&&(t[i]=o+(a-o)*r)}},t.prototype._handleRelativeValue=function(t,e){return"string"!=typeof e?e:"+"===e.charAt(0)||"-"===e.charAt(0)?t+parseFloat(e):parseFloat(e)},t.prototype._swapEndStartRepeatValues=function(t){var e=this._valuesStartRepeat[t],n=this._valuesEnd[t];"string"==typeof n?this._valuesStartRepeat[t]=this._valuesStartRepeat[t]+parseFloat(n):this._valuesStartRepeat[t]=this._valuesEnd[t],this._valuesEnd[t]=e},t.autoStartOnUpdate=!1,t}();function ia(){}function is(t){return null==t?ia:function(){return this.querySelector(t)}}function il(){return[]}function ih(t){return function(e){return e.matches(t)}}ir.nextId,ii.getAll.bind(ii),ii.removeAll.bind(ii),ii.add.bind(ii),ii.remove.bind(ii),ii.update.bind(ii);var iu=Array.prototype.find;function ic(){return this.firstElementChild}var id=Array.prototype.filter;function ip(){return Array.from(this.children)}function i_(t){return Array(t.length)}function ig(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function iy(t,e,n,r,i,o){for(var a,s=0,l=e.length,h=o.length;s<h;++s)(a=e[s])?(a.__data__=o[s],r[s]=a):n[s]=new ig(t,o[s]);for(;s<l;++s)(a=e[s])&&(i[s]=a)}function im(t,e,n,r,i,o,a){var s,l,h,u=new Map,c=e.length,d=o.length,f=Array(c);for(s=0;s<c;++s)(l=e[s])&&(f[s]=h=a.call(l,l.__data__,s,e)+"",u.has(h)?i[s]=l:u.set(h,l));for(s=0;s<d;++s)h=a.call(t,o[s],s,o)+"",(l=u.get(h))?(r[s]=l,l.__data__=o[s],u.delete(h)):n[s]=new ig(t,o[s]);for(s=0;s<c;++s)(l=e[s])&&u.get(f[s])===l&&(i[s]=l)}function iv(t){return t.__data__}function ib(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}ig.prototype={constructor:ig,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var iw="http://www.w3.org/1999/xhtml";let ix={svg:"http://www.w3.org/2000/svg",xhtml:iw,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function ik(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),ix.hasOwnProperty(e)?{space:ix[e],local:t}:t}function iP(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function iE(t){return t.trim().split(/^|\s+/)}function iS(t){return t.classList||new iO(t)}function iO(t){this._node=t,this._names=iE(t.getAttribute("class")||"")}function iM(t,e){for(var n=iS(t),r=-1,i=e.length;++r<i;)n.add(e[r])}function iC(t,e){for(var n=iS(t),r=-1,i=e.length;++r<i;)n.remove(e[r])}function ij(){this.textContent=""}function iA(){this.innerHTML=""}function iT(){this.nextSibling&&this.parentNode.appendChild(this)}function iD(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function iR(t){var e=ik(t);return(e.local?function(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}:function(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===iw&&e.documentElement.namespaceURI===iw?e.createElement(t):e.createElementNS(n,t)}})(e)}function iN(){return null}function iI(){var t=this.parentNode;t&&t.removeChild(this)}function iL(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function iz(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function iB(t){return function(){var e=this.__on;if(e){for(var n,r=0,i=-1,o=e.length;r<o;++r)(n=e[r],t.type&&n.type!==t.type||n.name!==t.name)?e[++i]=n:this.removeEventListener(n.type,n.listener,n.options);++i?e.length=i:delete this.__on}}}function iF(t,e,n){return function(){var r,i=this.__on,o=function(t){e.call(this,t,this.__data__)};if(i){for(var a=0,s=i.length;a<s;++a)if((r=i[a]).type===t.type&&r.name===t.name){this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=o,r.options=n),r.value=e;return}}this.addEventListener(t.type,o,n),r={type:t.type,name:t.name,value:e,listener:o,options:n},i?i.push(r):this.__on=[r]}}function iU(t,e,n){var r=iP(t),i=r.CustomEvent;"function"==typeof i?i=new i(e,n):(i=r.document.createEvent("Event"),n?(i.initEvent(e,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}iO.prototype={add:function(t){0>this._names.indexOf(t)&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var iq=[null];function i$(t,e){this._groups=t,this._parents=e}i$.prototype=(function(){return new i$([[document.documentElement]],iq)}).prototype={constructor:i$,select:function(t){"function"!=typeof t&&(t=is(t));for(var e=this._groups,n=e.length,r=Array(n),i=0;i<n;++i)for(var o,a,s=e[i],l=s.length,h=r[i]=Array(l),u=0;u<l;++u)(o=s[u])&&(a=t.call(o,o.__data__,u,s))&&("__data__"in o&&(a.__data__=o.__data__),h[u]=a);return new i$(r,this._parents)},selectAll:function(t){"function"==typeof t?(a=t,t=function(){var t;return t=a.apply(this,arguments),null==t?[]:Array.isArray(t)?t:Array.from(t)}):t=null==(s=t)?il:function(){return this.querySelectorAll(s)};for(var e=this._groups,n=e.length,r=[],i=[],o=0;o<n;++o)for(var a,s,l,h=e[o],u=h.length,c=0;c<u;++c)(l=h[c])&&(r.push(t.call(l,l.__data__,c,h)),i.push(l));return new i$(r,i)},selectChild:function(t){var e;return this.select(null==t?ic:(e="function"==typeof t?t:ih(t),function(){return iu.call(this.children,e)}))},selectChildren:function(t){var e;return this.selectAll(null==t?ip:(e="function"==typeof t?t:ih(t),function(){return id.call(this.children,e)}))},filter:function(t){var e;"function"!=typeof t&&(e=t,t=function(){return this.matches(e)});for(var n=this._groups,r=n.length,i=Array(r),o=0;o<r;++o)for(var a,s=n[o],l=s.length,h=i[o]=[],u=0;u<l;++u)(a=s[u])&&t.call(a,a.__data__,u,s)&&h.push(a);return new i$(i,this._parents)},data:function(t,e){if(!arguments.length)return Array.from(this,iv);var n=e?im:iy,r=this._parents,i=this._groups;"function"!=typeof t&&(m=t,t=function(){return m});for(var o=i.length,a=Array(o),s=Array(o),l=Array(o),h=0;h<o;++h){var u=r[h],c=i[h],d=c.length,f="object"==typeof(y=t.call(u,u&&u.__data__,h,r))&&"length"in y?y:Array.from(y),p=f.length,_=s[h]=Array(p),g=a[h]=Array(p);n(u,c,_,g,l[h]=Array(d),f,e);for(var y,m,v,b,w=0,x=0;w<p;++w)if(v=_[w]){for(w>=x&&(x=w+1);!(b=g[x])&&++x<p;);v._next=b||null}}return(a=new i$(a,r))._enter=s,a._exit=l,a},enter:function(){return new i$(this._enter||this._groups.map(i_),this._parents)},exit:function(){return new i$(this._exit||this._groups.map(i_),this._parents)},join:function(t,e,n){var r=this.enter(),i=this,o=this.exit();return"function"==typeof t?(r=t(r))&&(r=r.selection()):r=r.append(t+""),null!=e&&(i=e(i))&&(i=i.selection()),null==n?o.remove():n(o),r&&i?r.merge(i).order():i},merge:function(t){for(var e=t.selection?t.selection():t,n=this._groups,r=e._groups,i=n.length,o=r.length,a=Math.min(i,o),s=Array(i),l=0;l<a;++l)for(var h,u=n[l],c=r[l],d=u.length,f=s[l]=Array(d),p=0;p<d;++p)(h=u[p]||c[p])&&(f[p]=h);for(;l<i;++l)s[l]=n[l];return new i$(s,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var r,i=t[e],o=i.length-1,a=i[o];--o>=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=ib);for(var n=this._groups,r=n.length,i=Array(r),o=0;o<r;++o){for(var a,s=n[o],l=s.length,h=i[o]=Array(l),u=0;u<l;++u)(a=s[u])&&(h[u]=a);h.sort(e)}return new i$(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],i=0,o=r.length;i<o;++i){var a=r[i];if(a)return a}return null},size:function(){let t=0;for(let e of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var i,o=e[n],a=0,s=o.length;a<s;++a)(i=o[a])&&t.call(i,i.__data__,a,o);return this},attr:function(t,e){var n=ik(t);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((null==e?n.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}}:"function"==typeof e?n.local?function(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}:function(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}:n.local?function(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}:function(t,e){return function(){this.setAttribute(t,e)}})(n,e))},style:function(t,e,n){var r,i;return arguments.length>1?this.each((null==e?function(t){return function(){this.style.removeProperty(t)}}:"function"==typeof e?function(t,e,n){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}:function(t,e,n){return function(){this.style.setProperty(t,e,n)}})(t,e,null==n?"":n)):(r=this.node(),i=t,r.style.getPropertyValue(i)||iP(r).getComputedStyle(r,null).getPropertyValue(i))},property:function(t,e){return arguments.length>1?this.each((null==e?function(t){return function(){delete this[t]}}:"function"==typeof e?function(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}:function(t,e){return function(){this[t]=e}})(t,e)):this.node()[t]},classed:function(t,e){var n=iE(t+"");if(arguments.length<2){for(var r=iS(this.node()),i=-1,o=n.length;++i<o;)if(!r.contains(n[i]))return!1;return!0}return this.each(("function"==typeof e?function(t,e){return function(){(e.apply(this,arguments)?iM:iC)(this,t)}}:e?function(t){return function(){iM(this,t)}}:function(t){return function(){iC(this,t)}})(n,e))},text:function(t){return arguments.length?this.each(null==t?ij:("function"==typeof t?function(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}:function(t){return function(){this.textContent=t}})(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?iA:("function"==typeof t?function(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}:function(t){return function(){this.innerHTML=t}})(t)):this.node().innerHTML},raise:function(){return this.each(iT)},lower:function(){return this.each(iD)},append:function(t){var e="function"==typeof t?t:iR(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})},insert:function(t,e){var n="function"==typeof t?t:iR(t),r=null==e?iN:"function"==typeof e?e:is(e);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})},remove:function(){return this.each(iI)},clone:function(t){return this.select(t?iz:iL)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,e,n){var r,i,o=(t+"").trim().split(/^|\s+/).map(function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}),a=o.length;if(arguments.length<2){var s=this.node().__on;if(s){for(var l,h=0,u=s.length;h<u;++h)for(r=0,l=s[h];r<a;++r)if((i=o[r]).type===l.type&&i.name===l.name)return l.value}return}for(r=0,s=e?iF:iB;r<a;++r)this.each(s(o[r],e,n));return this},dispatch:function(t,e){return this.each(("function"==typeof e?function(t,e){return function(){return iU(this,t,e.apply(this,arguments))}}:function(t,e){return function(){return iU(this,t,e)}})(t,e))},[Symbol.iterator]:function*(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r,i=t[e],o=0,a=i.length;o<a;++o)(r=i[o])&&(yield r)}};var iH,iV,iY,iW,iG,iZ,iK,iX,iQ,iJ,i0,i1,i2,i3,i5={},i6=[],i8=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,i4=Array.isArray;function i9(t,e){for(var n in e)t[n]=e[n];return t}function i7(t){t&&t.parentNode&&t.parentNode.removeChild(t)}function ot(t,e,n,r,i){var o={type:t,props:e,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==i?++iY:i,__i:-1,__u:0};return null==i&&null!=iV.vnode&&iV.vnode(o),o}function oe(t){return t.children}function on(t,e){this.props=t,this.context=e}function or(t,e){if(null==e)return t.__?or(t.__,t.__i+1):null;for(var n;e<t.__k.length;e++)if(null!=(n=t.__k[e])&&null!=n.__e)return n.__e;return"function"==typeof t.type?or(t):null}function oi(t){(!t.__d&&(t.__d=!0)&&iW.push(t)&&!oo.__r++||iG!=iV.debounceRendering)&&((iG=iV.debounceRendering)||iZ)(oo)}function oo(){try{for(var t,e=1;iW.length;)iW.length>e&&iW.sort(iK),t=iW.shift(),e=iW.length,function(t){if(t.__P&&t.__d){var e=t.__v,n=e.__e,r=[],i=[],o=i9({},e);o.__v=e.__v+1,iV.vnode&&iV.vnode(o),ou(t.__P,o,e,t.__n,t.__P.namespaceURI,32&e.__u?[n]:null,r,null==n?or(e):n,!!(32&e.__u),i),o.__v=e.__v,o.__.__k[o.__i]=o,oc(r,o,i),e.__e=e.__=null,o.__e!=n&&function t(e){if(null!=(e=e.__)&&null!=e.__c)return e.__e=e.__c.base=null,e.__k.some(function(t){if(null!=t&&null!=t.__e)return e.__e=e.__c.base=t.__e}),t(e)}(o)}}(t)}finally{iW.length=oo.__r=0}}function oa(t,e,n,r,i,o,a,s,l,h,u){var c,d,f,p,_,g,y=r&&r.__k||i6,m=e.length;for(l=function(t,e,n,r,i){var o,a,s,l,h,u=n.length,c=u,d=0;for(t.__k=Array(i),o=0;o<i;o++)null!=(a=e[o])&&"boolean"!=typeof a&&"function"!=typeof a?("string"==typeof a||"number"==typeof a||"bigint"==typeof a||a.constructor==String?a=t.__k[o]=ot(null,a,null,null,null):i4(a)?a=t.__k[o]=ot(oe,{children:a},null,null,null):void 0===a.constructor&&a.__b>0?a=t.__k[o]=ot(a.type,a.props,a.key,a.ref?a.ref:null,a.__v):t.__k[o]=a,l=o+d,a.__=t,a.__b=t.__b+1,s=null,-1!=(h=a.__i=function(t,e,n,r){var i,o,a,s=t.key,l=t.type,h=e[n],u=null!=h&&0==(2&h.__u);if(null===h&&null==s||u&&s==h.key&&l==h.type)return n;if(r>+!!u){for(i=n-1,o=n+1;i>=0||o<e.length;)if(null!=(h=e[a=i>=0?i--:o++])&&0==(2&h.__u)&&s==h.key&&l==h.type)return a}return -1}(a,n,l,c))&&(c--,(s=n[h])&&(s.__u|=2)),null==s||null==s.__v?(-1==h&&(i>u?d--:i<u&&d++),"function"!=typeof a.type&&(a.__u|=4)):h!=l&&(h==l-1?d--:h==l+1?d++:(h>l?d--:d++,a.__u|=4))):t.__k[o]=null;if(c)for(o=0;o<u;o++)null!=(s=n[o])&&0==(2&s.__u)&&(s.__e==r&&(r=or(s)),function t(e,n,r){var i,o;if(iV.unmount&&iV.unmount(e),(i=e.ref)&&(i.current&&i.current!=e.__e||od(i,null,n)),null!=(i=e.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(t){iV.__e(t,n)}i.base=i.__P=i.__n=null}if(i=e.__k)for(o=0;o<i.length;o++)i[o]&&t(i[o],n,r||"function"!=typeof e.type);r||i7(e.__e),e.__c=e.__=e.__e=void 0}(s,s));return r}(n,e,y,l,m),c=0;c<m;c++)null!=(f=n.__k[c])&&(d=-1!=f.__i&&y[f.__i]||i5,f.__i=c,g=ou(t,f,d,i,o,a,s,l,h,u),p=f.__e,f.ref&&d.ref!=f.ref&&(d.ref&&od(d.ref,null,f),u.push(f.ref,f.__c||p,f)),null==_&&null!=p&&(_=p),4&f.__u?(l=function t(e,n,r){var i,o;if("function"==typeof e.type){for(i=e.__k,o=0;i&&o<i.length;o++)i[o]&&(i[o].__=e,n=t(i[o],n,r));return n}e.__e!=n&&(n&&e.type&&!n.parentNode&&(n=or(e)),n=r.insertBefore(e.__e,n||null));do n=n&&n.nextSibling;while(null!=n&&8==n.nodeType);return n}(f,l,t),d.__e&&(d.__e=null)):"function"==typeof f.type&&void 0!==g?l=g:p&&(l=p.nextSibling),f.__u&=-7);return n.__e=_,l}function os(t,e,n){"-"==e[0]?t.setProperty(e,null==n?"":n):t[e]=null==n?"":"number"!=typeof n||i8.test(e)?n:n+"px"}function ol(t,e,n,r,i){var o,a;t:if("style"==e)if("string"==typeof n)t.style.cssText=n;else{if("string"==typeof r&&(t.style.cssText=r=""),r)for(e in r)n&&e in n||os(t.style,e,"");if(n)for(e in n)r&&n[e]==r[e]||os(t.style,e,n[e])}else if("o"==e[0]&&"n"==e[1])o=e!=(e=e.replace(i0,"$1")),e=(a=e.toLowerCase())in t||"onFocusOut"==e||"onFocusIn"==e?a.slice(2):e.slice(2),t.l||(t.l={}),t.l[e+o]=n,n?r?n[iJ]=r[iJ]:(n[iJ]=i1,t.addEventListener(e,o?i3:i2,o)):t.removeEventListener(e,o?i3:i2,o);else{if("http://www.w3.org/2000/svg"==i)e=e.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!=e&&"height"!=e&&"href"!=e&&"list"!=e&&"form"!=e&&"tabIndex"!=e&&"download"!=e&&"rowSpan"!=e&&"colSpan"!=e&&"role"!=e&&"popover"!=e&&e in t)try{t[e]=null==n?"":n;break t}catch(t){}"function"==typeof n||(null==n||!1===n&&"-"!=e[4]?t.removeAttribute(e):t.setAttribute(e,"popover"==e&&1==n?"":n))}}function oh(t){return function(e){if(this.l){var n=this.l[e.type+t];if(null==e[iQ])e[iQ]=i1++;else if(e[iQ]<n[iJ])return;return n(iV.event?iV.event(e):e)}}}function ou(t,e,n,r,i,o,a,s,l,h){var u,c,d,f,p,_,g,y,m,v,b,w,x,k,P,E,S=e.type;if(void 0!==e.constructor)return null;128&n.__u&&(l=!!(32&n.__u),o=[s=e.__e=n.__e]),(u=iV.__b)&&u(e);t:if("function"==typeof S){c=a.length;try{if(m=e.props,v=S.prototype&&S.prototype.render,b=(u=S.contextType)&&r[u.__c],w=u?b?b.props.value:u.__:r,n.__c?y=(d=e.__c=n.__c).__=d.__E:(v?e.__c=d=new S(m,w):(e.__c=d=new on(m,w),d.constructor=S,d.render=of),b&&b.sub(d),d.state||(d.state={}),d.__n=r,f=d.__d=!0,d.__h=[],d._sb=[]),v&&null==d.__s&&(d.__s=d.state),v&&null!=S.getDerivedStateFromProps&&(d.__s==d.state&&(d.__s=i9({},d.__s)),i9(d.__s,S.getDerivedStateFromProps(m,d.__s))),p=d.props,_=d.state,d.__v=e,f)v&&null==S.getDerivedStateFromProps&&null!=d.componentWillMount&&d.componentWillMount(),v&&null!=d.componentDidMount&&d.__h.push(d.componentDidMount);else{if(v&&null==S.getDerivedStateFromProps&&m!==p&&null!=d.componentWillReceiveProps&&d.componentWillReceiveProps(m,w),e.__v==n.__v||!d.__e&&null!=d.shouldComponentUpdate&&!1===d.shouldComponentUpdate(m,d.__s,w)){e.__v!=n.__v&&(d.props=m,d.state=d.__s,d.__d=!1),e.__e=n.__e,e.__k=n.__k,e.__k.some(function(t){t&&(t.__=e)}),i6.push.apply(d.__h,d._sb),d._sb=[],d.__h.length&&a.push(d),s=or(n);break t}null!=d.componentWillUpdate&&d.componentWillUpdate(m,d.__s,w),v&&null!=d.componentDidUpdate&&d.__h.push(function(){d.componentDidUpdate(p,_,g)})}if(d.context=w,d.props=m,d.__P=t,d.__e=!1,x=iV.__r,k=0,v)d.state=d.__s,d.__d=!1,x&&x(e),u=d.render(d.props,d.state,d.context),i6.push.apply(d.__h,d._sb),d._sb=[];else do d.__d=!1,x&&x(e),u=d.render(d.props,d.state,d.context),d.state=d.__s;while(d.__d&&++k<25);d.state=d.__s,null!=d.getChildContext&&(r=i9(i9({},r),d.getChildContext())),v&&!f&&null!=d.getSnapshotBeforeUpdate&&(g=d.getSnapshotBeforeUpdate(p,_)),P=null!=u&&u.type===oe&&null==u.key?function t(e){return"object"!=typeof e||null==e||e.__b>0?e:i4(e)?e.map(t):void 0!==e.constructor?null:i9({},e)}(u.props.children):u,s=oa(t,i4(P)?P:[P],e,n,r,i,o,a,s,l,h),d.base=e.__e,e.__u&=-161,d.__h.length&&a.push(d),y&&(d.__E=d.__=null)}catch(t){if(a.length=c,e.__v=null,l||null!=o){if(t.then){for(e.__u|=l?160:128;s&&8==s.nodeType&&s.nextSibling;)s=s.nextSibling;null!=o&&(o[o.indexOf(s)]=null),e.__e=s}else if(null!=o)for(E=o.length;E--;)i7(o[E])}else e.__e=n.__e;null==e.__k&&(e.__k=n.__k||[]),t.then||function t(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(t))}(e),iV.__e(t,e,n)}}else null==o&&e.__v==n.__v?(e.__k=n.__k,e.__e=n.__e):s=e.__e=function(t,e,n,r,i,o,a,s,l){var h,u,c,d,f,p,_,g=n.props||i5,y=e.props,m=e.type;if("svg"==m?i="http://www.w3.org/2000/svg":"math"==m?i="http://www.w3.org/1998/Math/MathML":i||(i="http://www.w3.org/1999/xhtml"),null!=o){for(h=0;h<o.length;h++)if((f=o[h])&&"setAttribute"in f==!!m&&(m?f.localName==m:3==f.nodeType)){t=f,o[h]=null;break}}if(null==t){if(null==m)return document.createTextNode(y);t=document.createElementNS(i,m,y.is&&y),s&&(iV.__m&&iV.__m(e,o),s=!1),o=null}if(null==m)g===y||s&&t.data==y||(t.data=y);else{if(o="textarea"==m&&null!=y.defaultValue?null:o&&iH.call(t.childNodes),!s&&null!=o)for(g={},h=0;h<t.attributes.length;h++)g[(f=t.attributes[h]).name]=f.value;for(h in g)f=g[h],"dangerouslySetInnerHTML"==h?c=f:"children"==h||h in y||"value"==h&&"defaultValue"in y||"checked"==h&&"defaultChecked"in y||ol(t,h,null,f,i);for(h in y)f=y[h],"children"==h?d=f:"dangerouslySetInnerHTML"==h?u=f:"value"==h?p=f:"checked"==h?_=f:s&&"function"!=typeof f||g[h]===f||ol(t,h,f,g[h],i);if(u)s||c&&(u.__html==c.__html||u.__html==t.innerHTML)||(t.innerHTML=u.__html),e.__k=[];else if(c&&(t.innerHTML=""),oa("template"==e.type?t.content:t,i4(d)?d:[d],e,n,r,"foreignObject"==m?"http://www.w3.org/1999/xhtml":i,o,a,o?o[0]:n.__k&&or(n,0),s,l),null!=o)for(h=o.length;h--;)i7(o[h]);s&&"textarea"!=m||(h="value","progress"==m&&null==p?t.removeAttribute("value"):null==p||p===t[h]&&("progress"!=m||p)&&("option"!=m||p==g[h])||ol(t,h,p,g[h],i),h="checked",null!=_&&_!=t[h]&&ol(t,h,_,g[h],i))}return t}(n.__e,e,n,r,i,o,a,l,h);return(u=iV.diffed)&&u(e),128&e.__u?void 0:s}function oc(t,e,n){for(var r=0;r<n.length;r++)od(n[r],n[++r],n[++r]);iV.__c&&iV.__c(e,t),t.some(function(e){try{t=e.__h,e.__h=[],t.some(function(t){t.call(e)})}catch(t){iV.__e(t,e.__v)}})}function od(t,e,n){try{if("function"==typeof t){var r="function"==typeof t.__u;r&&t.__u(),r&&null==e||(t.__u=t(e))}else t.current=e}catch(t){iV.__e(t,n)}}function of(t,e,n){return this.constructor(t,n)}function op(t,e,n){var r,i,o,a,s=i9({},t.props);for(o in t.type&&t.type.defaultProps&&(a=t.type.defaultProps),e)"key"==o?r=e[o]:"ref"==o?i=e[o]:s[o]=void 0===e[o]&&null!=a?a[o]:e[o];return arguments.length>2&&(s.children=arguments.length>3?iH.call(arguments,2):n),ot(t.type,s,r||t.key,i||t.ref,null)}function o_(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}function og(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function oy(t){return(oy="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}iH=i6.slice,iV={__e:function(t,e,n,r){for(var i,o,a;e=e.__;)if((i=e.__c)&&!i.__)try{if((o=i.constructor)&&null!=o.getDerivedStateFromError&&(i.setState(o.getDerivedStateFromError(t)),a=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(t,r||{}),a=i.__d),a)return i.__E=i}catch(e){t=e}throw t}},iY=0,on.prototype.setState=function(t,e){var n;n=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=i9({},this.state),"function"==typeof t&&(t=t(i9({},n),this.props)),t&&i9(n,t),null!=t&&this.__v&&(e&&this._sb.push(e),oi(this))},on.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),oi(this))},on.prototype.render=oe,iW=[],iZ="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,iK=function(t,e){return t.__v.__b-e.__v.__b},oo.__r=0,iQ="__d"+(iX=Math.random().toString(8)),iJ="__a"+iX,i0=/(PointerCapture)$|Capture$/i,i1=0,i2=oh(!1),i3=oh(!0);var om=function(t){if("object"!==oy(t))return t;var e,n=op(t);return n.props&&(n.props=function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?og(Object(n),!0).forEach(function(e){var r,i;r=e,i=n[e],(r=function(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}(r))in t?Object.defineProperty(t,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[r]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):og(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}({},n.props),null!=n&&null!=(e=n.props)&&e.children&&(n.props.children=Array.isArray(n.props.children)?n.props.children.map(om):om(n.props.children))),n},ov=function(t){var e;return null!=(e=op(t))&&void 0===e.constructor},ob=function(t,e){var n,r,i,o,a,s;delete e.__k,n=om(t),(r=e)==document&&(r=document.documentElement),iV.__&&iV.__(n,r),o=i&&i.__k||r.__k,a=[],s=[],ou(r,n=(i||r).__k=function(t,e,n){var r,i,o,a={};for(o in e)"key"==o?r=e[o]:"ref"==o?i=e[o]:a[o]=e[o];if(arguments.length>2&&(a.children=arguments.length>3?iH.call(arguments,2):n),"function"==typeof t&&null!=t.defaultProps)for(o in t.defaultProps)void 0===a[o]&&(a[o]=t.defaultProps[o]);return ot(t,a,r,i,null)}(oe,null,[n]),o||i5,i5,r.namespaceURI,i?[i]:o?null:r.firstChild?iH.call(r.childNodes):null,a,i?i:o?o.__e:r.firstChild,!1,s),oc(a,n,s),n.props.children=null};!function(t,e){void 0===e&&(e={});var n=e.insertAt;if("undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===n&&r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i),i.styleSheet?i.styleSheet.cssText=t:i.appendChild(document.createTextNode(t))}}(".float-tooltip-kap {\n position: absolute;\n width: max-content; /* prevent shrinking near right edge */\n max-width: max(50%, 150px);\n padding: 3px 5px;\n border-radius: 3px;\n font: 12px sans-serif;\n color: #eee;\n background: rgba(0,0,0,0.6);\n pointer-events: none;\n}\n");var ow=t5({props:{content:{default:!1},offsetX:{triggerUpdate:!1},offsetY:{triggerUpdate:!1}},init:function(t,e){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.style,o="string"==typeof(n=t&&"object"===oy(t)&&t.node&&"function"==typeof t.node?t.node():t)?new i$([[document.querySelector(n)]],[document.documentElement]):new i$([[n]],iq);"static"===o.style("position")&&o.style("position","relative"),e.tooltipEl=o.append("div").attr("class","float-tooltip-kap"),Object.entries(void 0===i?{}:i).forEach(function(t){var n=function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o,a,s=[],l=!0,h=!1;try{o=(n=n.call(t)).next,!1;for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==e);l=!0);}catch(t){h=!0,i=t}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(h)throw i}}return s}}(t,2)||function(t,e){if(t){if("string"==typeof t)return o_(t,2);var n=({}).toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o_(t,e):void 0}}(t,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),r=n[0],i=n[1];return e.tooltipEl.style(r,i)}),e.tooltipEl.style("left","-10000px").style("display","none");var a="tooltip-".concat(Math.round(1e12*Math.random()));e.mouseInside=!1,o.on("mousemove.".concat(a),function(t){e.mouseInside=!0;var n=function(t,e){if(t=function(t){let e;for(;e=t.sourceEvent;)t=e;return t}(t),void 0===e&&(e=t.currentTarget),e){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,[(r=r.matrixTransform(e.getScreenCTM().inverse())).x,r.y]}if(e.getBoundingClientRect){var i=e.getBoundingClientRect();return[t.clientX-i.left-e.clientLeft,t.clientY-i.top-e.clientTop]}}return[t.pageX,t.pageY]}(t),r=o.node(),i=r.offsetWidth,a=r.offsetHeight,s=[null===e.offsetX||void 0===e.offsetX?"-".concat(n[0]/i*100,"%"):"number"==typeof e.offsetX?"calc(-50% + ".concat(e.offsetX,"px)"):e.offsetX,null===e.offsetY||void 0===e.offsetY?a>130&&a-n[1]<100?"calc(-100% - 6px)":"21px":"number"==typeof e.offsetY?e.offsetY<0?"calc(-100% - ".concat(Math.abs(e.offsetY),"px)"):"".concat(e.offsetY,"px"):e.offsetY];e.tooltipEl.style("left",n[0]+"px").style("top",n[1]+"px").style("transform","translate(".concat(s.join(","),")")),e.content&&e.tooltipEl.style("display","inline")}),o.on("mouseover.".concat(a),function(){e.mouseInside=!0,e.content&&e.tooltipEl.style("display","inline")}),o.on("mouseout.".concat(a),function(){e.mouseInside=!1,e.tooltipEl.style("display","none")})},update:function(t){t.tooltipEl.style("display",t.content&&t.mouseInside?"inline":"none"),t.content?t.content instanceof HTMLElement?(t.tooltipEl.text(""),t.tooltipEl.append(function(){return t.content})):"string"==typeof t.content?t.tooltipEl.html(t.content):ov(t.content)?(t.tooltipEl.text(""),ob(t.content,t.tooltipEl.node())):(t.tooltipEl.style("display","none"),console.warn("Tooltip content is invalid, skipping.",t.content,t.content.toString())):t.tooltipEl.text("")}});function ox(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}function ok(t){return function(t){if(Array.isArray(t))return ox(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||oP(t)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function oP(t,e){if(t){if("string"==typeof t)return ox(t,e);var n=({}).toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ox(t,e):void 0}}!function(t,e){void 0===e&&(e={});var n=e.insertAt;if("undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===n&&r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i),i.styleSheet?i.styleSheet.cssText=t:i.appendChild(document.createTextNode(t))}}(".scene-nav-info {\n position: absolute;\n bottom: 5px;\n width: 100%;\n text-align: center;\n color: slategrey;\n opacity: 0.7;\n font-size: 10px;\n font-family: sans-serif;\n pointer-events: none;\n user-select: none;\n}\n\n.scene-container canvas:focus {\n outline: none;\n}");var oE=function(t){t instanceof Array?t.forEach(oE):(t.map&&t.map.dispose(),t.dispose())},oS=function(t){t.geometry&&t.geometry.dispose(),t.material&&oE(t.material),t.texture&&t.texture.dispose(),t.children&&t.children.forEach(oS)},oO=function(t){for(;t.children.length;){var e=t.children[0];t.remove(e),oS(e)}},oM=window.THREE?window.THREE:{WebGLRenderer:ny.JeP,Scene:r.Z58,PerspectiveCamera:r.ubm,Raycaster:r.tBo,SRGBColorSpace:r.er$,TextureLoader:r.Tap,Vector2:r.I9Y,Vector3:r.Pq0,Box3:r.NRn,Color:r.Q1f,Mesh:r.eaF,SphereGeometry:r.Gu$,MeshBasicMaterial:r.V9B,BackSide:r.hsX,Timer:r.M4G},oC=t5({props:{width:{default:window.innerWidth,onChange:function(t,e,n){isNaN(t)&&(e.width=n)}},height:{default:window.innerHeight,onChange:function(t,e,n){isNaN(t)&&(e.height=n)}},viewOffset:{default:[0,0]},backgroundColor:{default:"#000011"},backgroundImageUrl:{},onBackgroundImageLoaded:{},showNavInfo:{default:!0},skyRadius:{default:5e4},objects:{default:[]},lights:{default:[]},enablePointerInteraction:{default:!0,onChange:function(t,e){e.hoverObj=null,e.tooltip&&e.tooltip.content(null)},triggerUpdate:!1},pointerRaycasterThrottleMs:{default:50,triggerUpdate:!1},lineHoverPrecision:{default:1,triggerUpdate:!1},pointsHoverPrecision:{default:1,triggerUpdate:!1},hoverOrderComparator:{triggerUpdate:!1},hoverFilter:{default:function(){return!0},triggerUpdate:!1},tooltipContent:{triggerUpdate:!1},hoverDuringDrag:{default:!1,triggerUpdate:!1},clickAfterDrag:{default:!1,triggerUpdate:!1},onHover:{default:function(){},triggerUpdate:!1},onClick:{default:function(){},triggerUpdate:!1},onRightClick:{triggerUpdate:!1}},methods:{tick:function(t){if(t.initialised){t.controls.enabled&&t.controls.update&&t.controls.update(Math.min(1,t.timer.update().getDelta())),t.postProcessingComposer?t.postProcessingComposer.render():t.renderer.render(t.scene,t.camera),t.extraRenderers.forEach(function(e){return e.render(t.scene,t.camera)});var e=+new Date;if(t.enablePointerInteraction&&e-t.lastRaycasterCheck>=t.pointerRaycasterThrottleMs){t.lastRaycasterCheck=e;var n=null;if(t.hoverDuringDrag||!t.isPointerDragging){var r=this.intersectingObjects(t.pointerPos.x,t.pointerPos.y);t.hoverOrderComparator&&r.sort(function(e,n){return t.hoverOrderComparator(e.object,n.object)});var i=r.find(function(e){return t.hoverFilter(e.object)})||null;n=i?i.object:null,t.intersection=i||null}n!==t.hoverObj&&(t.onHover(n,t.hoverObj,t.intersection),t.tooltip.content(n&&t6(t.tooltipContent)(n,t.intersection)||null),t.hoverObj=n)}t.tweenGroup.update()}return this},getPointerPos:function(t){var e=t.pointerPos;return{x:e.x,y:e.y}},cameraPosition:function(t,e,n,r){var i=t.camera;if(e&&t.initialised){var o,a,s=n||{x:0,y:0,z:0};if(null==(o=t.povPosTween)||o.end(),null==(a=t.povTgtTween)||a.end(),r){var l=Object.assign({},i.position),h=d();t.tweenGroup.add(t.povPosTween=new io(l).to(e,r).easing(r9.Quadratic.Out).onUpdate(u).onComplete(function(){t.povPosTween=void 0,t.tweenGroup.remove(this)}).start()),t.tweenGroup.add(t.povTgtTween=new io(h).to(s,r/3).easing(r9.Quadratic.Out).onUpdate(c).onComplete(function(){t.povTgtTween=void 0,t.tweenGroup.remove(this)}).start())}else u(e),c(s);return this}return Object.assign({},i.position,{lookAt:d()});function u(t){var e=t.x,n=t.y,r=t.z;void 0!==e&&(i.position.x=e),void 0!==n&&(i.position.y=n),void 0!==r&&(i.position.z=r)}function c(e){var n=new oM.Vector3(e.x,e.y,e.z);t.controls.enabled&&t.controls.target?t.controls.target=n:i.lookAt(n)}function d(){return Object.assign(new oM.Vector3(0,0,-1e3).applyQuaternion(i.quaternion).add(i.position))}},zoomToFit:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,r=arguments.length,i=Array(r>3?r-3:0),o=3;o<r;o++)i[o-3]=arguments[o];return this.fitToBbox(this.getBbox.apply(this,i),e,n)},fitToBbox:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10,i=t.camera;if(e){var o=new oM.Vector3(0,0,0),a=2*Math.max.apply(Math,ok(Object.entries(e).map(function(t){var e=function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o,a,s=[],l=!0,h=!1;try{o=(n=n.call(t)).next,!1;for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==e);l=!0);}catch(t){h=!0,i=t}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(h)throw i}}return s}}(t,2)||oP(t,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),n=e[0],r=e[1];return Math.max.apply(Math,ok(r.map(function(t){return Math.abs(o[n]-t)})))})))/Math.atan((1-2*r/t.height)*i.fov*Math.PI/180),s=a/i.aspect,l=Math.max(a,s);if(l>0){var h=o.clone().sub(i.position).normalize().multiplyScalar(-l);this.cameraPosition(h,o,n)}}return this},getBbox:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){return!0},n=new oM.Box3(new oM.Vector3(0,0,0),new oM.Vector3(0,0,0)),r=t.objects.filter(e);return r.length?(r.forEach(function(t){return n.expandByObject(t)}),Object.assign.apply(Object,ok(["x","y","z"].map(function(t){var e,r,i,o;return e={},r=t,i=[n.min[t],n.max[t]],(r="symbol"==typeof(o=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(r,"string"))?o:o+"")in e?Object.defineProperty(e,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[r]=i,e})))):null},getScreenCoords:function(t,e,n,r){var i=new oM.Vector3(e,n,r);return i.project(this.camera()),{x:(i.x+1)*t.width/2,y:-(i.y-1)*t.height/2}},getSceneCoords:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=new oM.Vector2(e/t.width*2-1,-(2*(n/t.height))+1),o=new oM.Raycaster;return o.setFromCamera(i,t.camera),Object.assign({},o.ray.at(r,new oM.Vector3))},intersectingObjects:function(t,e,n){var r=new oM.Vector2(e/t.width*2-1,-(2*(n/t.height))+1),i=new oM.Raycaster;return i.params.Line.threshold=t.lineHoverPrecision,i.params.Points.threshold=t.pointsHoverPrecision,i.setFromCamera(r,t.camera),i.intersectObjects(t.objects,!0)},renderer:function(t){return t.renderer},scene:function(t){return t.scene},camera:function(t){return t.camera},postProcessingComposer:function(t){return t.postProcessingComposer},controls:function(t){return t.controls},tbControls:function(t){return t.controls},_destructor:function(t){var e,n,r;oO(t.scene),null==(e=t.controls)||e.dispose(),null==(n=t.renderer)||n.dispose(),null==(r=t.postProcessingComposer)||r.dispose()}},stateInit:function(){return{scene:new oM.Scene,camera:new oM.PerspectiveCamera,timer:new oM.Timer,tweenGroup:new it,lastRaycasterCheck:0}},init:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.controlType,i=void 0===r?"trackball":r,o=n.useWebGPU,a=n.rendererConfig,s=n.extraRenderers,l=n.waitForLoadComplete;t.innerHTML="",t.appendChild(e.container=document.createElement("div")),e.container.className="scene-container",e.container.style.position="relative",e.container.appendChild(e.navInfo=document.createElement("div")),e.navInfo.className="scene-nav-info",e.navInfo.textContent=({orbit:"Left-click: rotate, Mouse-wheel/middle-click: zoom, Right-click: pan",trackball:"Left-click: rotate, Mouse-wheel/middle-click: zoom, Right-click: pan",fly:"WASD: move, R|F: up | down, Q|E: roll, up|down: pitch, left|right: yaw"})[i]||"",e.navInfo.style.display=e.showNavInfo?null:"none",e.tooltip=new ow(e.container),e.pointerPos=new oM.Vector2,e.pointerPos.x=-2,e.pointerPos.y=-2,["pointermove","pointerdown"].forEach(function(t){return e.container.addEventListener(t,function(n){if("pointerdown"===t&&(e.isPointerPressed=!0),!e.isPointerDragging&&"pointermove"===n.type&&(n.pressure>0||e.isPointerPressed)&&("mouse"===n.pointerType||void 0===n.movementX||[n.movementX,n.movementY].some(function(t){return Math.abs(t)>1}))&&(e.isPointerDragging=!0),e.enablePointerInteraction){var r,i,o,a=(r=e.container.getBoundingClientRect(),i=window.pageXOffset||document.documentElement.scrollLeft,o=window.pageYOffset||document.documentElement.scrollTop,{top:r.top+o,left:r.left+i});e.pointerPos.x=n.pageX-a.left,e.pointerPos.y=n.pageY-a.top}},{passive:!0})}),e.container.addEventListener("pointerup",function(t){e.isPointerPressed&&(e.isPointerPressed=!1,(!e.isPointerDragging||(e.isPointerDragging=!1,e.clickAfterDrag))&&requestAnimationFrame(function(){0===t.button&&e.onClick(e.hoverObj||null,t,e.intersection),2===t.button&&e.onRightClick&&e.onRightClick(e.hoverObj||null,t,e.intersection)}))},{passive:!0,capture:!0}),e.container.addEventListener("contextmenu",function(t){e.onRightClick&&t.preventDefault()}),e.renderer=new(void 0!==o&&o?nm.uV1:oM.WebGLRenderer)(Object.assign({antialias:!0,alpha:!0},void 0===a?{}:a)),e.renderer.setPixelRatio(Math.min(2,window.devicePixelRatio)),e.container.appendChild(e.renderer.domElement),e.extraRenderers=void 0===s?[]:s,e.extraRenderers.forEach(function(t){t.domElement.style.position="absolute",t.domElement.style.top="0px",t.domElement.style.pointerEvents="none",e.container.appendChild(t.domElement)}),e.postProcessingComposer=new rE(e.renderer),e.postProcessingComposer.addPass(new rS(e.scene,e.camera)),e.controls=new({trackball:nD,orbit:n3,fly:rl})[i](e.camera,e.renderer.domElement),"fly"===i&&(e.controls.movementSpeed=300,e.controls.rollSpeed=Math.PI/6,e.controls.dragToLook=!0),("trackball"===i||"orbit"===i)&&(e.controls.minDistance=.1,e.controls.maxDistance=e.skyRadius,e.controls.addEventListener("start",function(){e.controlsEngaged=!0}),e.controls.addEventListener("change",function(){e.controlsEngaged&&(e.controlsDragging=!0)}),e.controls.addEventListener("end",function(){e.controlsEngaged=!1,e.controlsDragging=!1})),[e.renderer,e.postProcessingComposer].concat(ok(e.extraRenderers)).forEach(function(t){return t.setSize(e.width,e.height)}),e.camera.aspect=e.width/e.height,e.camera.updateProjectionMatrix(),e.camera.position.z=1e3,e.scene.add(e.skysphere=new oM.Mesh),e.skysphere.visible=!1,e.loadComplete=e.scene.visible=!(void 0===l||l),window.scene=e.scene},update:function(t,e){if(t.width&&t.height&&(e.hasOwnProperty("width")||e.hasOwnProperty("height"))){var n,r=t.width,i=t.height;t.container.style.width="".concat(r,"px"),t.container.style.height="".concat(i,"px"),[t.renderer,t.postProcessingComposer].concat(ok(t.extraRenderers)).forEach(function(t){return t.setSize(r,i)}),t.camera.aspect=r/i;var o=t.viewOffset.slice(0,2);o.some(function(t){return t})&&(n=t.camera).setViewOffset.apply(n,[r,i].concat(ok(o),[r,i])),t.camera.updateProjectionMatrix()}if(e.hasOwnProperty("viewOffset")){var a,s=t.width,l=t.height,h=t.viewOffset.slice(0,2);h.some(function(t){return t})?(a=t.camera).setViewOffset.apply(a,[s,l].concat(ok(h),[s,l])):t.camera.clearViewOffset()}if(e.hasOwnProperty("skyRadius")&&t.skyRadius&&(t.controls.hasOwnProperty("maxDistance")&&e.skyRadius&&(t.controls.maxDistance=Math.min(t.controls.maxDistance,t.skyRadius)),t.camera.far=2.5*t.skyRadius,t.camera.updateProjectionMatrix(),t.skysphere.geometry=new oM.SphereGeometry(t.skyRadius)),e.hasOwnProperty("backgroundColor")){var u=rZ(t.backgroundColor).alpha;void 0===u&&(u=1),t.renderer.setClearColor(new oM.Color(r4(1,t.backgroundColor)),u)}function c(){t.loadComplete=t.scene.visible=!0}e.hasOwnProperty("backgroundImageUrl")&&(t.backgroundImageUrl?new oM.TextureLoader().load(t.backgroundImageUrl,function(e){e.colorSpace=oM.SRGBColorSpace,t.skysphere.material=new oM.MeshBasicMaterial({map:e,side:oM.BackSide}),t.skysphere.visible=!0,t.onBackgroundImageLoaded&&setTimeout(t.onBackgroundImageLoaded),t.loadComplete||c()}):(t.skysphere.visible=!1,t.skysphere.material.map=null,t.loadComplete||c())),e.hasOwnProperty("showNavInfo")&&(t.navInfo.style.display=t.showNavInfo?null:"none"),e.hasOwnProperty("lights")&&((e.lights||[]).forEach(function(e){return t.scene.remove(e)}),t.lights.forEach(function(e){return t.scene.add(e)})),e.hasOwnProperty("objects")&&((e.objects||[]).forEach(function(e){return t.scene.remove(e)}),t.objects.forEach(function(e){return t.scene.add(e)}))}});function oj(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}function oA(t,e,n){var r;return(e="symbol"==typeof(r=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(e,"string"))?r:r+"")in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function oT(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function oD(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?oT(Object(n),!0).forEach(function(e){oA(t,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):oT(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function oR(t){return function(t){if(Array.isArray(t))return oj(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return oj(t,void 0);var n=({}).toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?oj(t,e):void 0}}(t)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function oN(t,e){var n=new e;return n._destructor&&n._destructor(),{linkProp:function(e){return{default:n[e](),onChange:function(n,r){r[t][e](n)},triggerUpdate:!1}},linkMethod:function(e){return function(n){for(var r=n[t],i=arguments.length,o=Array(i>1?i-1:0),a=1;a<i;a++)o[a-1]=arguments[a];var s=r[e].apply(r,o);return s===r?this:s}}}}!function(t,e){void 0===e&&(e={});var n=e.insertAt;if("undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===n&&r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i),i.styleSheet?i.styleSheet.cssText=t:i.appendChild(document.createTextNode(t))}}(".graph-info-msg {\n top: 50%;\n width: 100%;\n text-align: center;\n color: lavender;\n opacity: 0.7;\n font-size: 22px;\n position: absolute;\n font-family: Sans-serif;\n}\n\n.scene-container .clickable {\n cursor: pointer;\n}\n\n.scene-container .grabbable {\n cursor: move;\n cursor: grab;\n cursor: -moz-grab;\n cursor: -webkit-grab;\n}\n\n.scene-container .grabbable:active {\n cursor: grabbing;\n cursor: -moz-grabbing;\n cursor: -webkit-grabbing;\n}");var oI=window.THREE?window.THREE:{AmbientLight:r.$p8,DirectionalLight:r.ZyN,REVISION:r.sPf},oL=oN("forceGraph",ng),oz=Object.assign.apply(Object,oR(["jsonUrl","graphData","numDimensions","dagMode","dagLevelDistance","dagNodeFilter","onDagError","nodeRelSize","nodeId","nodeVal","nodeResolution","nodeColor","nodeAutoColorBy","nodeOpacity","nodeVisibility","nodeThreeObject","nodeThreeObjectExtend","nodePositionUpdate","linkSource","linkTarget","linkVisibility","linkColor","linkAutoColorBy","linkOpacity","linkWidth","linkResolution","linkCurvature","linkCurveRotation","linkMaterial","linkThreeObject","linkThreeObjectExtend","linkPositionUpdate","linkDirectionalArrowLength","linkDirectionalArrowColor","linkDirectionalArrowRelPos","linkDirectionalArrowResolution","linkDirectionalParticles","linkDirectionalParticleSpeed","linkDirectionalParticleOffset","linkDirectionalParticleWidth","linkDirectionalParticleColor","linkDirectionalParticleResolution","linkDirectionalParticleThreeObject","forceEngine","d3AlphaDecay","d3VelocityDecay","d3AlphaMin","ngraphPhysics","warmupTicks","cooldownTicks","cooldownTime","onEngineTick","onEngineStop"].map(function(t){return oA({},t,oL.linkProp(t))}))),oB=Object.assign.apply(Object,oR(["refresh","getGraphBbox","d3Force","d3ReheatSimulation","emitParticle"].map(function(t){return oA({},t,oL.linkMethod(t))}))),oF=oN("renderObjs",oC),oU=Object.assign.apply(Object,oR(["width","height","backgroundColor","showNavInfo","enablePointerInteraction"].map(function(t){return oA({},t,oF.linkProp(t))}))),oq=Object.assign.apply(Object,oR(["lights","cameraPosition","postProcessingComposer"].map(function(t){return oA({},t,oF.linkMethod(t))})).concat([{graph2ScreenCoords:oF.linkMethod("getScreenCoords"),screen2GraphCoords:oF.linkMethod("getSceneCoords")}])),o$=t5({props:oD(oD({nodeLabel:{default:"name",triggerUpdate:!1},linkLabel:{default:"name",triggerUpdate:!1},linkHoverPrecision:{default:1,onChange:function(t,e){return e.renderObjs.lineHoverPrecision(t)},triggerUpdate:!1},enableNavigationControls:{default:!0,onChange:function(t,e){var n=e.renderObjs.controls();n&&(n.enabled=t,t&&n.domElement&&n.domElement.dispatchEvent(new PointerEvent("pointerup")))},triggerUpdate:!1},enableNodeDrag:{default:!0,triggerUpdate:!1},onNodeDrag:{default:function(){},triggerUpdate:!1},onNodeDragEnd:{default:function(){},triggerUpdate:!1},onNodeClick:{triggerUpdate:!1},onNodeRightClick:{triggerUpdate:!1},onNodeHover:{triggerUpdate:!1},onLinkClick:{triggerUpdate:!1},onLinkRightClick:{triggerUpdate:!1},onLinkHover:{triggerUpdate:!1},onBackgroundClick:{triggerUpdate:!1},onBackgroundRightClick:{triggerUpdate:!1},showPointerCursor:{default:!0,triggerUpdate:!1}},oz),oU),methods:oD(oD({zoomToFit:function(t,e,n){for(var r,i=arguments.length,o=Array(i>3?i-3:0),a=3;a<i;a++)o[a-3]=arguments[a];return t.renderObjs.fitToBbox((r=t.forceGraph).getGraphBbox.apply(r,o),e,n),this},pauseAnimation:function(t){return null!==t.animationFrameRequestId&&(cancelAnimationFrame(t.animationFrameRequestId),t.animationFrameRequestId=null),this},resumeAnimation:function(t){return null===t.animationFrameRequestId&&this._animationCycle(),this},_animationCycle:function(t){t.enablePointerInteraction&&(this.renderer().domElement.style.cursor=null),t.forceGraph.tickFrame(),t.renderObjs.tick(),t.animationFrameRequestId=requestAnimationFrame(this._animationCycle)},scene:function(t){return t.renderObjs.scene()},camera:function(t){return t.renderObjs.camera()},renderer:function(t){return t.renderObjs.renderer()},controls:function(t){return t.renderObjs.controls()},_destructor:function(t){var e,n;this.pauseAnimation(),this.graphData({nodes:[],links:[]}),null==(e=(n=t.forceGraph)._destructor)||e.call(n),t.renderObjs._destructor()}},oB),oq),stateInit:function(t){var e=t.controlType,n=t.rendererConfig,r=t.extraRenderers,i=new ng;return{forceGraph:i,renderObjs:oC({controlType:e,rendererConfig:n,extraRenderers:r}).objects([i]).lights([new oI.AmbientLight(0xcccccc,Math.PI),new oI.DirectionalLight(0xffffff,.6*Math.PI)])}},init:function(t,e){t.innerHTML="",t.appendChild(e.container=document.createElement("div")),e.container.style.position="relative";var n,r=document.createElement("div");e.container.appendChild(r),e.renderObjs(r);var i=e.renderObjs.camera(),o=e.renderObjs.renderer(),a=e.renderObjs.controls();a.enabled=!!e.enableNavigationControls,e.lastSetCameraZ=i.position.z,e.container.appendChild(n=document.createElement("div")),n.className="graph-info-msg",n.textContent="",e.forceGraph.onLoading(function(){n.textContent="Loading..."}).onFinishLoading(function(){n.textContent=""}).onUpdate(function(){e.graphData=e.forceGraph.graphData(),0===i.position.x&&0===i.position.y&&i.position.z===e.lastSetCameraZ&&e.graphData.nodes.length&&(i.lookAt(e.forceGraph.position),e.lastSetCameraZ=i.position.z=170*Math.cbrt(e.graphData.nodes.length))}).onFinishUpdate(function(){if(e._dragControls){var t=e.graphData.nodes.find(function(t){return t.__initialFixedPos&&!t.__disposeControlsAfterDrag});t?t.__disposeControlsAfterDrag=!0:e._dragControls.dispose(),e._dragControls=void 0}if(e.enableNodeDrag&&e.enablePointerInteraction&&"d3"===e.forceEngine){var n=e._dragControls=new m(e.graphData.nodes.map(function(t){return t.__threeObj}).filter(function(t){return t}),i,o.domElement);n.addEventListener("dragstart",function(t){var e=oH(t.object);if(e){a.enabled=!1,t.object.__initialPos=t.object.position.clone(),t.object.__prevPos=t.object.position.clone();var n=e.__data;n.__initialFixedPos||(n.__initialFixedPos={fx:n.fx,fy:n.fy,fz:n.fz}),n.__initialPos||(n.__initialPos={x:n.x,y:n.y,z:n.z}),["x","y","z"].forEach(function(t){return n["f".concat(t)]=n[t]}),o.domElement.classList.add("grabbable")}}),n.addEventListener("drag",function(t){var n=oH(t.object);if(n){if(!t.object.hasOwnProperty("__graphObjType")){var r=t.object.__initialPos,i=t.object.__prevPos,o=t.object.position;n.position.add(o.clone().sub(i)),i.copy(o),o.copy(r)}var a=n.__data,s=n.position,l={x:s.x-a.x,y:s.y-a.y,z:s.z-a.z};["x","y","z"].forEach(function(t){return a["f".concat(t)]=a[t]=s[t]}),e.forceGraph.d3AlphaTarget(.3).resetCountdown(),a.__dragged=!0,e.onNodeDrag(a,l)}}),n.addEventListener("dragend",function(t){var r,i=oH(t.object);if(i){delete t.object.__initialPos,delete t.object.__prevPos;var s=i.__data;s.__disposeControlsAfterDrag&&(n.dispose(),delete s.__disposeControlsAfterDrag);var l=s.__initialFixedPos,h=s.__initialPos,u={x:h.x-s.x,y:h.y-s.y,z:h.z-s.z};l&&(["x","y","z"].forEach(function(t){var e="f".concat(t);void 0===l[e]&&delete s[e]}),delete s.__initialFixedPos,delete s.__initialPos,s.__dragged&&(delete s.__dragged,e.onNodeDragEnd(s,u))),e.forceGraph.d3AlphaTarget(0).resetCountdown(),e.enableNavigationControls&&(a.enabled=!0,a._status&&(null==(r=a._onPointerCancel)||r.call(a)),a.domElement&&a.domElement.ownerDocument&&a.domElement.ownerDocument.dispatchEvent(new PointerEvent("pointerup",{pointerType:"touch"}))),o.domElement.classList.remove("grabbable")}})}}),oI.REVISION<155&&(e.renderObjs.renderer().useLegacyLights=!1),e.renderObjs.hoverOrderComparator(function(t,e){var n=oH(t);if(!n)return 1;var r=oH(e);if(!r)return -1;var i=function(t){return"node"===t.__graphObjType};return i(r)-i(n)}).tooltipContent(function(t){var n=oH(t);return n&&t6(e["".concat(n.__graphObjType,"Label")])(n.__data)||""}).hoverDuringDrag(!1).onHover(function(t){var n=oH(t);if(n!==e.hoverObj){var r=e.hoverObj?e.hoverObj.__graphObjType:null,i=e.hoverObj?e.hoverObj.__data:null,a=n?n.__graphObjType:null,s=n?n.__data:null;if(r&&r!==a){var l=e["on".concat("node"===r?"Node":"Link","Hover")];l&&l(null,i)}if(a){var h=e["on".concat("node"===a?"Node":"Link","Hover")];h&&h(s,r===a?i:null)}o.domElement.classList[(n&&e["on".concat("node"===a?"Node":"Link","Click")]||!n&&e.onBackgroundClick)&&t6(e.showPointerCursor)(s)?"add":"remove"]("clickable"),e.hoverObj=n}}).clickAfterDrag(!1).onClick(function(t,n){var r=oH(t);if(r){var i=e["on".concat("node"===r.__graphObjType?"Node":"Link","Click")];i&&i(r.__data,n)}else e.onBackgroundClick&&e.onBackgroundClick(n)}).onRightClick(function(t,n){var r=oH(t);if(r){var i=e["on".concat("node"===r.__graphObjType?"Node":"Link","RightClick")];i&&i(r.__data,n)}else e.onBackgroundRightClick&&e.onBackgroundRightClick(n)}),this._animationCycle()}});function oH(t){for(var e=t;e&&!e.hasOwnProperty("__graphObjType");)e=e.parent;return e}},70993:(t,e,n)=>{let r=n(83442);function i(t){let e=r(t);return`
183
+ if (!Number.isFinite(options.dragCoefficient)) throw new Error('dragCoefficient is not a finite number');
184
+
185
+ return {
186
+ update: function(body) {
187
+ ${e("body.force.{var} -= options.dragCoefficient * body.velocity.{var};",{indent:6})}
188
+ }
189
+ };
190
+ `}t.exports=function(t){return Function("options",i(t))},t.exports.generateCreateDragForceFunctionBody=i},74834:t=>{"use strict";t.exports=function(t){let e;var n,r=t;if(!r)throw Error("Eventify cannot use falsy object as events subject");let i=["on","fire","off"];for(let t=0;t<i.length;++t)if(r.hasOwnProperty(i[t]))throw Error("Subject cannot be eventified, since it already has property '"+i[t]+"'");let o=(n=t,e=Object.create(null),{on:function(t,r,i){if("function"!=typeof r)throw Error("callback is expected to be a function");let o=e[t];return o||(o=e[t]=[]),o.push({callback:r,ctx:i}),n},off:function(t,r){if(typeof t>"u")return e=Object.create(null),n;if(e[t])if("function"!=typeof r)delete e[t];else{let n=e[t];for(let t=0;t<n.length;++t)n[t].callback===r&&n.splice(t,1)}return n},fire:function(t){let r,i=e[t];if(!i)return n;arguments.length>1&&(r=Array.prototype.slice.call(arguments,1));for(let t=0;t<i.length;++t){let e=i[t];e.callback.apply(e.ctx,r)}return n}});return t.on=o.on,t.off=o.off,t.fire=o.fire,t}},81699:(t,e,n)=>{t.exports=function(t,e){if(!t)throw Error("Graph structure cannot be undefined");var o=(e&&e.createSimulator||n(86184))(e);if(Array.isArray(e))throw Error("Physics settings is expected to be an object");var a=t.version>19?function(e){var n=t.getLinks(e);return n?1+n.size/3:1}:function(e){var n=t.getLinks(e);return n?1+n.length/3:1};e&&"function"==typeof e.nodeMass&&(a=e.nodeMass);var s=new Map,l={},h=0,u=o.settings.springTransform||i;h=0,t.forEachNode(function(t){g(t.id),h+=1}),t.forEachLink(y),t.on("changed",_);var c=!1,d={step:function(){if(0===h)return f(!0),!0;var t=o.step();d.lastMove=t,d.fire("step");var e=t/h<=.01;return f(e),e},getNodePosition:function(t){return v(t).pos},setNodePosition:function(t){var e=v(t);e.setPosition.apply(e,Array.prototype.slice.call(arguments,1))},getLinkPosition:function(t){var e=l[t];if(e)return{from:e.from.pos,to:e.to.pos}},getGraphRect:function(){return o.getBBox()},forEachBody:p,pinNode:function(t,e){v(t.id).isPinned=!!e},isNodePinned:function(t){return v(t.id).isPinned},dispose:function(){t.off("changed",_),d.fire("disposed")},getBody:function(t){return s.get(t)},getSpring:function(e,n){var r;if(void 0===n)r="object"!=typeof e?e:e.id;else{var i=t.hasLink(e,n);if(!i)return;r=i.id}return l[r]},getForceVectorLength:function(){var t=0,e=0;return p(function(n){t+=Math.abs(n.force.x),e+=Math.abs(n.force.y)}),Math.sqrt(t*t+e*e)},simulator:o,graph:t,lastMove:0};return r(d),d;function f(t){var e;c!==t&&(c=t,e=t,d.fire("stable",e))}function p(t){s.forEach(t)}function _(e){for(var n=0;n<e.length;++n){var r=e[n];"add"===r.changeType?(r.node&&g(r.node.id),r.link&&y(r.link)):"remove"===r.changeType&&(r.node&&function(t){var e=t.id,n=s.get(e);n&&(s.delete(e),o.removeBody(n))}(r.node),r.link&&function(e){var n=l[e.id];if(n){var r=t.getNode(e.fromId),i=t.getNode(e.toId);r&&m(r.id),i&&m(i.id),delete l[e.id],o.removeSpring(n)}}(r.link))}h=t.getNodesCount()}function g(e){var n=s.get(e);if(!n){var r,i=t.getNode(e);if(!i)throw Error("initBody() was called with unknown node id");var a=i.position;if(!a){var l=function(t){var e=[];if(!t.links)return e;for(var n=Math.min(t.links.length,2),r=0;r<n;++r){var i=t.links[r],o=i.fromId!==t.id?s.get(i.fromId):s.get(i.toId);o&&o.pos&&e.push(o)}return e}(i);a=o.getBestNewBodyPosition(l)}(n=o.addBodyAt(a)).id=e,s.set(e,n),m(e),(r=i)&&(r.isPinned||r.data&&r.data.isPinned)&&(n.isPinned=!0)}}function y(t){m(t.fromId),m(t.toId);var e=s.get(t.fromId),n=s.get(t.toId),r=o.addSpring(e,n,t.length);u(t,r),l[t.id]=r}function m(t){var e=s.get(t);if(e.mass=a(t),Number.isNaN(e.mass))throw Error("Node mass should be a number")}function v(t){var e=s.get(t);return e||(g(t),e=s.get(t)),e}},t.exports.simulator=n(86184);var r=n(74834);function i(){}},83003:(t,e,n)=>{let r=n(83442),i=n(91238);function o(t){let e=r(t),n=Math.pow(2,t);return`
191
+ ${u()}
192
+ ${h(t)}
193
+ ${a(t)}
194
+ ${l(t)}
195
+ ${s(t)}
196
+
197
+ function createQuadTree(options, random) {
198
+ options = options || {};
199
+ options.gravity = typeof options.gravity === 'number' ? options.gravity : -1;
200
+ options.theta = typeof options.theta === 'number' ? options.theta : 0.8;
201
+
202
+ var gravity = options.gravity;
203
+ var updateQueue = [];
204
+ var insertStack = new InsertStack();
205
+ var theta = options.theta;
206
+
207
+ var nodesCache = [];
208
+ var currentInCache = 0;
209
+ var root = newNode();
210
+
211
+ return {
212
+ insertBodies: insertBodies,
213
+
214
+ /**
215
+ * Gets root node if it is present
216
+ */
217
+ getRoot: function() {
218
+ return root;
219
+ },
220
+
221
+ updateBodyForce: update,
222
+
223
+ options: function(newOptions) {
224
+ if (newOptions) {
225
+ if (typeof newOptions.gravity === 'number') {
226
+ gravity = newOptions.gravity;
227
+ }
228
+ if (typeof newOptions.theta === 'number') {
229
+ theta = newOptions.theta;
230
+ }
231
+
232
+ return this;
233
+ }
234
+
235
+ return {
236
+ gravity: gravity,
237
+ theta: theta
238
+ };
239
+ }
240
+ };
241
+
242
+ function newNode() {
243
+ // To avoid pressure on GC we reuse nodes.
244
+ var node = nodesCache[currentInCache];
245
+ if (node) {
246
+ ${function(t){let e=[];for(let r=0;r<n;++r)e.push(`${t}quad${r} = null;`);return e.join("\n")}(" node.")}
247
+ node.body = null;
248
+ node.mass = ${e("node.mass_{var} = ",{join:""})}0;
249
+ ${e("node.min_{var} = node.max_{var} = ",{join:""})}0;
250
+ } else {
251
+ node = new QuadNode();
252
+ nodesCache[currentInCache] = node;
253
+ }
254
+
255
+ ++currentInCache;
256
+ return node;
257
+ }
258
+
259
+ function update(sourceBody) {
260
+ var queue = updateQueue;
261
+ var v;
262
+ ${e("var d{var};",{indent:4})}
263
+ var r;
264
+ ${e("var f{var} = 0;",{indent:4})}
265
+ var queueLength = 1;
266
+ var shiftIdx = 0;
267
+ var pushIdx = 1;
268
+
269
+ queue[0] = root;
270
+
271
+ while (queueLength) {
272
+ var node = queue[shiftIdx];
273
+ var body = node.body;
274
+
275
+ queueLength -= 1;
276
+ shiftIdx += 1;
277
+ var differentBody = (body !== sourceBody);
278
+ if (body && differentBody) {
279
+ // If the current node is a leaf node (and it is not source body),
280
+ // calculate the force exerted by the current node on body, and add this
281
+ // amount to body's net force.
282
+ ${e("d{var} = body.pos.{var} - sourceBody.pos.{var};",{indent:8})}
283
+ r = Math.sqrt(${e("d{var} * d{var}",{join:" + "})});
284
+
285
+ if (r === 0) {
286
+ // Poor man's protection against zero distance.
287
+ ${e("d{var} = (random.nextDouble() - 0.5) / 50;",{indent:10})}
288
+ r = Math.sqrt(${e("d{var} * d{var}",{join:" + "})});
289
+ }
290
+
291
+ // This is standard gravitation force calculation but we divide
292
+ // by r^3 to save two operations when normalizing force vector.
293
+ v = gravity * body.mass * sourceBody.mass / (r * r * r);
294
+ ${e("f{var} += v * d{var};",{indent:8})}
295
+ } else if (differentBody) {
296
+ // Otherwise, calculate the ratio s / r, where s is the width of the region
297
+ // represented by the internal node, and r is the distance between the body
298
+ // and the node's center-of-mass
299
+ ${e("d{var} = node.mass_{var} / node.mass - sourceBody.pos.{var};",{indent:8})}
300
+ r = Math.sqrt(${e("d{var} * d{var}",{join:" + "})});
301
+
302
+ if (r === 0) {
303
+ // Sorry about code duplication. I don't want to create many functions
304
+ // right away. Just want to see performance first.
305
+ ${e("d{var} = (random.nextDouble() - 0.5) / 50;",{indent:10})}
306
+ r = Math.sqrt(${e("d{var} * d{var}",{join:" + "})});
307
+ }
308
+ // If s / r < θ, treat this internal node as a single body, and calculate the
309
+ // force it exerts on sourceBody, and add this amount to sourceBody's net force.
310
+ if ((node.max_${i(0)} - node.min_${i(0)}) / r < theta) {
311
+ // in the if statement above we consider node's width only
312
+ // because the region was made into square during tree creation.
313
+ // Thus there is no difference between using width or height.
314
+ v = gravity * node.mass * sourceBody.mass / (r * r * r);
315
+ ${e("f{var} += v * d{var};",{indent:10})}
316
+ } else {
317
+ // Otherwise, run the procedure recursively on each of the current node's children.
318
+
319
+ // I intentionally unfolded this loop, to save several CPU cycles.
320
+ ${function(){let t=Array(11).join(" "),e=[];for(let r=0;r<n;++r)e.push(t+`if (node.quad${r}) {`),e.push(t+` queue[pushIdx] = node.quad${r};`),e.push(t+" queueLength += 1;"),e.push(t+" pushIdx += 1;"),e.push(t+"}");return e.join("\n")}()}
321
+ }
322
+ }
323
+ }
324
+
325
+ ${e("sourceBody.force.{var} += f{var};",{indent:4})}
326
+ }
327
+
328
+ function insertBodies(bodies) {
329
+ ${e("var {var}min = Number.MAX_VALUE;",{indent:4})}
330
+ ${e("var {var}max = Number.MIN_VALUE;",{indent:4})}
331
+ var i = bodies.length;
332
+
333
+ // To reduce quad tree depth we are looking for exact bounding box of all particles.
334
+ while (i--) {
335
+ var pos = bodies[i].pos;
336
+ ${e("if (pos.{var} < {var}min) {var}min = pos.{var};",{indent:6})}
337
+ ${e("if (pos.{var} > {var}max) {var}max = pos.{var};",{indent:6})}
338
+ }
339
+
340
+ // Makes the bounds square.
341
+ var maxSideLength = -Infinity;
342
+ ${e("if ({var}max - {var}min > maxSideLength) maxSideLength = {var}max - {var}min ;",{indent:4})}
343
+
344
+ currentInCache = 0;
345
+ root = newNode();
346
+ ${e("root.min_{var} = {var}min;",{indent:4})}
347
+ ${e("root.max_{var} = {var}min + maxSideLength;",{indent:4})}
348
+
349
+ i = bodies.length - 1;
350
+ if (i >= 0) {
351
+ root.body = bodies[i];
352
+ }
353
+ while (i--) {
354
+ insert(bodies[i], root);
355
+ }
356
+ }
357
+
358
+ function insert(newBody) {
359
+ insertStack.reset();
360
+ insertStack.push(root, newBody);
361
+
362
+ while (!insertStack.isEmpty()) {
363
+ var stackItem = insertStack.pop();
364
+ var node = stackItem.node;
365
+ var body = stackItem.body;
366
+
367
+ if (!node.body) {
368
+ // This is internal node. Update the total mass of the node and center-of-mass.
369
+ ${e("var {var} = body.pos.{var};",{indent:8})}
370
+ node.mass += body.mass;
371
+ ${e("node.mass_{var} += body.mass * {var};",{indent:8})}
372
+
373
+ // Recursively insert the body in the appropriate quadrant.
374
+ // But first find the appropriate quadrant.
375
+ var quadIdx = 0; // Assume we are in the 0's quad.
376
+ ${e("var min_{var} = node.min_{var};",{indent:8})}
377
+ ${e("var max_{var} = (min_{var} + node.max_{var}) / 2;",{indent:8})}
378
+
379
+ ${function(e){let n=[],r=Array(9).join(" ");for(let e=0;e<t;++e)n.push(r+`if (${i(e)} > max_${i(e)}) {`),n.push(r+` quadIdx = quadIdx + ${Math.pow(2,e)};`),n.push(r+` min_${i(e)} = max_${i(e)};`),n.push(r+` max_${i(e)} = node.max_${i(e)};`),n.push(r+"}");return n.join("\n")}(8)}
380
+
381
+ var child = getChild(node, quadIdx);
382
+
383
+ if (!child) {
384
+ // The node is internal but this quadrant is not taken. Add
385
+ // subnode to it.
386
+ child = newNode();
387
+ ${e("child.min_{var} = min_{var};",{indent:10})}
388
+ ${e("child.max_{var} = max_{var};",{indent:10})}
389
+ child.body = body;
390
+
391
+ setChild(node, quadIdx, child);
392
+ } else {
393
+ // continue searching in this quadrant.
394
+ insertStack.push(child, body);
395
+ }
396
+ } else {
397
+ // We are trying to add to the leaf node.
398
+ // We have to convert current leaf into internal node
399
+ // and continue adding two nodes.
400
+ var oldBody = node.body;
401
+ node.body = null; // internal nodes do not cary bodies
402
+
403
+ if (isSamePosition(oldBody.pos, body.pos)) {
404
+ // Prevent infinite subdivision by bumping one node
405
+ // anywhere in this quadrant
406
+ var retriesCount = 3;
407
+ do {
408
+ var offset = random.nextDouble();
409
+ ${e("var d{var} = (node.max_{var} - node.min_{var}) * offset;",{indent:12})}
410
+
411
+ ${e("oldBody.pos.{var} = node.min_{var} + d{var};",{indent:12})}
412
+ retriesCount -= 1;
413
+ // Make sure we don't bump it out of the box. If we do, next iteration should fix it
414
+ } while (retriesCount > 0 && isSamePosition(oldBody.pos, body.pos));
415
+
416
+ if (retriesCount === 0 && isSamePosition(oldBody.pos, body.pos)) {
417
+ // This is very bad, we ran out of precision.
418
+ // if we do not return from the method we'll get into
419
+ // infinite loop here. So we sacrifice correctness of layout, and keep the app running
420
+ // Next layout iteration should get larger bounding box in the first step and fix this
421
+ return;
422
+ }
423
+ }
424
+ // Next iteration should subdivide node further.
425
+ insertStack.push(node, oldBody);
426
+ insertStack.push(node, body);
427
+ }
428
+ }
429
+ }
430
+ }
431
+ return createQuadTree;
432
+
433
+ `}function a(t){let e=r(t);return`
434
+ function isSamePosition(point1, point2) {
435
+ ${e("var d{var} = Math.abs(point1.{var} - point2.{var});",{indent:2})}
436
+
437
+ return ${e("d{var} < 1e-8",{join:" && "})};
438
+ }
439
+ `}function s(t){var e=Math.pow(2,t);return`
440
+ function setChild(node, idx, child) {
441
+ ${function(){let t=[];for(let n=0;n<e;++n){let e=0===n?" ":" else ";t.push(`${e}if (idx === ${n}) node.quad${n} = child;`)}return t.join("\n")}()}
442
+ }`}function l(t){return`function getChild(node, idx) {
443
+ ${function(){let e=[],n=Math.pow(2,t);for(let t=0;t<n;++t)e.push(` if (idx === ${t}) return node.quad${t};`);return e.join("\n")}()}
444
+ return null;
445
+ }`}function h(t){let e=r(t),n=Math.pow(2,t);return`
446
+ function QuadNode() {
447
+ // body stored inside this node. In quad tree only leaf nodes (by construction)
448
+ // contain bodies:
449
+ this.body = null;
450
+
451
+ // Child nodes are stored in quads. Each quad is presented by number:
452
+ // 0 | 1
453
+ // -----
454
+ // 2 | 3
455
+ ${function(t){let e=[];for(let r=0;r<n;++r)e.push(`${t}quad${r} = null;`);return e.join("\n")}(" this.")}
456
+
457
+ // Total mass of current node
458
+ this.mass = 0;
459
+
460
+ // Center of mass coordinates
461
+ ${e("this.mass_{var} = 0;",{indent:2})}
462
+
463
+ // bounding box coordinates
464
+ ${e("this.min_{var} = 0;",{indent:2})}
465
+ ${e("this.max_{var} = 0;",{indent:2})}
466
+ }
467
+ `}function u(){return`
468
+ /**
469
+ * Our implementation of QuadTree is non-recursive to avoid GC hit
470
+ * This data structure represent stack of elements
471
+ * which we are trying to insert into quad tree.
472
+ */
473
+ function InsertStack () {
474
+ this.stack = [];
475
+ this.popIdx = 0;
476
+ }
477
+
478
+ InsertStack.prototype = {
479
+ isEmpty: function() {
480
+ return this.popIdx === 0;
481
+ },
482
+ push: function (node, body) {
483
+ var item = this.stack[this.popIdx];
484
+ if (!item) {
485
+ // we are trying to avoid memory pressure: create new element
486
+ // only when absolutely necessary
487
+ this.stack[this.popIdx] = new InsertStackElement(node, body);
488
+ } else {
489
+ item.node = node;
490
+ item.body = body;
491
+ }
492
+ ++this.popIdx;
493
+ },
494
+ pop: function () {
495
+ if (this.popIdx > 0) {
496
+ return this.stack[--this.popIdx];
497
+ }
498
+ },
499
+ reset: function () {
500
+ this.popIdx = 0;
501
+ }
502
+ };
503
+
504
+ function InsertStackElement(node, body) {
505
+ this.node = node; // QuadTree node
506
+ this.body = body; // physical body which needs to be inserted to node
507
+ }
508
+ `}t.exports=function(t){return Function(o(t))()},t.exports.generateQuadTreeFunctionBody=o,t.exports.getInsertStackCode=u,t.exports.getQuadNodeCode=h,t.exports.isSamePosition=a,t.exports.getChildBodyCode=l,t.exports.setChildBodyCode=s},83442:(t,e,n)=>{let r=n(91238);t.exports=function(t){return function(e,n){let i=n&&n.indent||0,o=n&&void 0!==n.join?n.join:"\n",a=Array(i+1).join(" "),s=[];for(let n=0;n<t;++n){let t=r(n),i=0===n?"":a;s.push(i+e.replace(/{var}/g,t))}return s.join(o)}}},86184:(t,e,n)=>{t.exports=function(t){var e=n(86208),u=n(58491),c=n(74834);if(t){if(void 0!==t.springCoeff)throw Error("springCoeff was renamed to springCoefficient");if(void 0!==t.dragCoeff)throw Error("dragCoeff was renamed to dragCoefficient")}var d=h[(t=u(t,{springLength:10,springCoefficient:.8,gravity:-12,theta:.8,dragCoefficient:.9,timeStep:.5,adaptiveTimeStepWeight:0,dimensions:2,debug:!1})).dimensions];if(!d){var f=t.dimensions;d={Body:r(f,t.debug),createQuadTree:i(f),createBounds:o(f),createDragForce:a(f),createSpringForce:s(f),integrate:l(f)},h[f]=d}var p=d.Body,_=d.createQuadTree,g=d.createBounds,y=d.createDragForce,m=d.createSpringForce,v=d.integrate,b=n(18433).random(42),w=[],x=[],k=_(t,b),P=g(w,t,b),E=m(t,b),S=y(t),O=[],M=new Map,C=0;T("nbody",function(){if(0!==w.length){k.insertBodies(w);for(var t=w.length;t--;){var e=w[t];e.isPinned||(e.reset(),k.updateBodyForce(e),S.update(e))}}}),T("spring",function(){for(var t=x.length;t--;)E.update(x[t])});var j={bodies:w,quadTree:k,springs:x,settings:t,addForce:T,removeForce:function(t){var e=O.indexOf(M.get(t));e<0||(O.splice(e,1),M.delete(t))},getForces:function(){return M},step:function(){for(var e=0;e<O.length;++e)O[e](C);var n=v(w,t.timeStep,t.adaptiveTimeStepWeight);return C+=1,n},addBody:function(t){if(!t)throw Error("Body is required");return w.push(t),t},addBodyAt:function(t){if(!t)throw Error("Body position is required");var e=new p(t);return w.push(e),e},removeBody:function(t){if(t){var e=w.indexOf(t);if(!(e<0))return w.splice(e,1),0===w.length&&P.reset(),!0}},addSpring:function(t,n,r,i){if(!t||!n)throw Error("Cannot add null spring to force simulator");"number"!=typeof r&&(r=-1);var o=new e(t,n,r,i>=0?i:-1);return x.push(o),o},getTotalMovement:function(){return 0},removeSpring:function(t){if(t){var e=x.indexOf(t);if(e>-1)return x.splice(e,1),!0}},getBestNewBodyPosition:function(t){return P.getBestNewPosition(t)},getBBox:A,getBoundingBox:A,invalidateBBox:function(){console.warn("invalidateBBox() is deprecated, bounds always recomputed on `getBBox()` call")},gravity:function(e){return void 0!==e?(t.gravity=e,k.options({gravity:e}),this):t.gravity},theta:function(e){return void 0!==e?(t.theta=e,k.options({theta:e}),this):t.theta},random:b};return function(t,e){for(var n in t)!function(t,e,n){t.hasOwnProperty(n)&&"function"!=typeof e[n]&&(Number.isFinite(t[n])?e[n]=function(r){if(void 0!==r){if(!Number.isFinite(r))throw Error("Value of "+n+" should be a valid number.");return t[n]=r,e}return t[n]}:e[n]=function(r){return void 0!==r?(t[n]=r,e):t[n]})}(t,e,n)}(t,j),c(j),j;function A(){return P.update(),P.box}function T(t,e){if(M.has(t))throw Error("Force "+t+" is already added");M.set(t,e),O.push(e)}};var r=n(18724),i=n(83003),o=n(29729),a=n(70993),s=n(24624),l=n(20429),h={}},86208:t=>{t.exports=function(t,e,n,r){this.from=t,this.to=e,this.length=n,this.coefficient=r}},91238:t=>{t.exports=function(t){return 0===t?"x":1===t?"y":2===t?"z":"c"+(t+1)}}}]);