@co-engram/viewer 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -0
- package/dist/brand-logos.d.ts +9 -0
- package/dist/brand-logos.d.ts.map +1 -0
- package/dist/brand-logos.js +10 -0
- package/dist/brand-logos.js.map +1 -0
- package/dist/html.d.ts +21 -0
- package/dist/html.d.ts.map +1 -0
- package/dist/html.js +299 -0
- package/dist/html.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/runtime/app.d.ts +11 -0
- package/dist/runtime/app.d.ts.map +1 -0
- package/dist/runtime/app.js +437 -0
- package/dist/runtime/app.js.map +1 -0
- package/dist/runtime/decay.d.ts +16 -0
- package/dist/runtime/decay.d.ts.map +1 -0
- package/dist/runtime/decay.js +108 -0
- package/dist/runtime/decay.js.map +1 -0
- package/dist/runtime/graph.d.ts +13 -0
- package/dist/runtime/graph.d.ts.map +1 -0
- package/dist/runtime/graph.js +313 -0
- package/dist/runtime/graph.js.map +1 -0
- package/dist/runtime/i18n.d.ts +16 -0
- package/dist/runtime/i18n.d.ts.map +1 -0
- package/dist/runtime/i18n.js +76 -0
- package/dist/runtime/i18n.js.map +1 -0
- package/dist/runtime/tabs.d.ts +8 -0
- package/dist/runtime/tabs.d.ts.map +1 -0
- package/dist/runtime/tabs.js +1783 -0
- package/dist/runtime/tabs.js.map +1 -0
- package/dist/server.d.ts +73 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +985 -0
- package/dist/server.js.map +1 -0
- package/dist/styles.d.ts +13 -0
- package/dist/styles.d.ts.map +1 -0
- package/dist/styles.js +1632 -0
- package/dist/styles.js.map +1 -0
- package/dist/vendor/dompurify-source.d.ts +11 -0
- package/dist/vendor/dompurify-source.d.ts.map +1 -0
- package/dist/vendor/dompurify-source.js +15 -0
- package/dist/vendor/dompurify-source.js.map +1 -0
- package/dist/vendor/marked-source.d.ts +11 -0
- package/dist/vendor/marked-source.d.ts.map +1 -0
- package/dist/vendor/marked-source.js +18 -0
- package/dist/vendor/marked-source.js.map +1 -0
- package/dist/vendor/vis-network-source.d.ts +11 -0
- package/dist/vendor/vis-network-source.d.ts.map +1 -0
- package/dist/vendor/vis-network-source.js +46 -0
- package/dist/vendor/vis-network-source.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-generated by scripts/build-vendor.mjs.
|
|
3
|
+
*
|
|
4
|
+
* Source: vis-network@10.1.0 - vis-network standalone UMD bundle (graph view)
|
|
5
|
+
* (~628KB minified)
|
|
6
|
+
*
|
|
7
|
+
* Inlined into the viewer SPA HTML so the viewer works offline without any
|
|
8
|
+
* CDN dependency. Do NOT edit by hand — re-run `pnpm build` to refresh.
|
|
9
|
+
*/
|
|
10
|
+
export declare const VIS_NETWORK_SOURCE = "/**\n * vis-network\n * https://visjs.github.io/vis-network/\n *\n * A dynamic, browser-based visualization library.\n *\n * @version 10.1.0\n * @date 2026-05-15T16:46:11.466Z\n *\n * @copyright (c) 2011-2017 Almende B.V, http://almende.com\n * @copyright (c) 2017-2019 visjs contributors, https://github.com/visjs\n *\n * @license\n * vis.js is dual licensed under both\n *\n * 1. The Apache 2.0 License\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * and\n *\n * 2. The MIT License\n * http://opensource.org/licenses/MIT\n *\n * vis.js may be distributed under either license.\n */\n!function(g,A){\"object\"==typeof exports&&\"undefined\"!=typeof module?A(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],A):A((g=\"undefined\"!=typeof globalThis?globalThis:g||self).vis=g.vis||{})}(this,function(g){function A(g,A){void 0===A&&(A={});var t=A.insertAt;if(g&&\"undefined\"!=typeof document){var C=document.head||document.getElementsByTagName(\"head\")[0],I=document.createElement(\"style\");I.type=\"text/css\",\"top\"===t&&C.firstChild?C.insertBefore(I,C.firstChild):C.appendChild(I),I.styleSheet?I.styleSheet.cssText=g:I.appendChild(document.createTextNode(g))}}A('div.vis-network div.vis-manipulation{background:#fff;background:-moz-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(48%,#fcfcfc),color-stop(50%,#fafafa),color-stop(100%,#fcfcfc));background:-webkit-linear-gradient(top,#fff,#fcfcfc 48%,#fafafa 50%,#fcfcfc);background:-o-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-ms-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:linear-gradient(180deg,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc);border:0 solid #d6d9d8;border-bottom:1px;box-sizing:content-box;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#ffffff\",endColorstr=\"#fcfcfc\",GradientType=0);height:28px;left:0;padding-top:4px;position:absolute;top:0;width:100%}div.vis-network button.vis-edit-mode,div.vis-network div.vis-edit-mode{height:30px;left:0;position:absolute;top:5px}div.vis-network button.vis-close{-webkit-touch-callout:none;background-color:transparent;background-image:url(\"data:image/png;base64,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/GMzLdsAADvGaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTQtMDItMTRUMTE6NTU6MzUrMDE6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE0LTAyLTE0VDEyOjA1OjE3KzAxOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNC0wMi0xNFQxMjowNToxNyswMTowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6NjU0YmM5YmQtMWI2Yi1jYjRhLTllOWQtNWY2MzgxNDVjZjk0PC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjk4MmM2MGIwLWUzZjMtMDk0MC04MjU0LTFiZTliNWE0ZTE4MzwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjk4MmM2MGIwLWUzZjMtMDk0MC04MjU0LTFiZTliNWE0ZTE4MzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo5ODJjNjBiMC1lM2YzLTA5NDAtODI1NC0xYmU5YjVhNGUxODM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMTRUMTE6NTU6MzUrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjIxODYxNmM2LTM1MWMtNDI0OS04YWFkLWJkZDQ2ZTczNWE0NDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0xNFQxMTo1NTozNSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6NjU0YmM5YmQtMWI2Yi1jYjRhLTllOWQtNWY2MzgxNDVjZjk0PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAyLTE0VDEyOjA1OjE3KzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjc8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NzwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+cZUZMwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAA2ElEQVR42gDLADT/AS0tLUQFBQUVFxcXtPHx8fPl5eUNCAgITCkpKesEHx8fGgYGBjH+/v4a+Pj4qgQEBFU6OjodMTExzwQUFBSvEBAQEfX19SD19fVqNDQ0CElJSd/9/f2vAwEBAfrn5+fkBwcHLRYWFgsXFxfz29vbo9LS0uwDDQ0NDfPz81orKysXIyMj+ODg4Avh4eEa/f391gMkJCRYPz8/KUhISOMCAgKh8fHxHRsbGx4UFBQQBDk5OeY7Ozv7CAgItPb29vMEBASaJSUlTQ0NDesDAEwpT0Ko8Ri2AAAAAElFTkSuQmCC\");background-position:20px 3px;background-repeat:no-repeat;border:none;cursor:pointer;height:30px;position:absolute;right:0;top:0;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:30px}div.vis-network button.vis-close:hover{opacity:.6}div.vis-network div.vis-edit-mode button.vis-button,div.vis-network div.vis-manipulation button.vis-button{-webkit-touch-callout:none;background-color:transparent;background-position:0 0;background-repeat:no-repeat;border:none;-moz-border-radius:15px;border-radius:15px;box-sizing:content-box;cursor:pointer;float:left;font-family:verdana;font-size:12px;height:24px;margin-left:10px;padding:0 8px;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.vis-network div.vis-manipulation button.vis-button:hover{box-shadow:1px 1px 8px rgba(0,0,0,.2)}div.vis-network div.vis-manipulation button.vis-button:active{box-shadow:1px 1px 8px rgba(0,0,0,.5)}div.vis-network div.vis-manipulation button.vis-button.vis-back{background-image:url(\"data:image/png;base64,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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNTowMTowOSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTU6MDE6MDkrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOmI2YjQwMjVkLTAxNjQtMzU0OC1hOTdlLTQ4ZmYxMWM3NTYzMzwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpmOWQ3OGY4ZC1lNzY0LTc1NDgtODZiNy1iNmQ1OGMzZDg2OTc8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTU6MDE6MDkrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmI2YjQwMjVkLTAxNjQtMzU0OC1hOTdlLTQ4ZmYxMWM3NTYzMzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNTowMTowOSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOmY5ZDc4ZjhkLWU3NjQtNzU0OC04NmI3LWI2ZDU4YzNkODY5Nzwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4jq1U/AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAVTSURBVHjanFVfTFNnFP+d77ve8qeVFbBrpcVgRrCRFikFByLxwSAaE32oRCHD6JMxxhhn8G2RxxH3MsOTbyYsmCAxPMmMMYtkIUYmK60OO0qAK23BFlNob0uh3x7WS5jLZPpLbm6+k/P9zrm5v9855PF4UFhYCABgjIExBgAgIqRSqRIi6gDQRkQ1RGTB3wgR0e8AHgH4Sa/XR/EBiAiJRAJ04cIF5Ofng4g2n0gkUkxENwF0c843LzHGQEQQQkCLExEA9ALotVgsUQAQQmgNQhJCbF5kjCEUCl0moj4t5na7fTU1NUpVVVXUYrEkASAcDhe8efOmxOfzWScmJqoBdBNR99LS0hWz2dynNSSEAF28eBGFhYVgjCEcDn9HRD1EhIMHD3o9Hs9kWVlZAh9BKBQqGB4edr58+dKZ+6JbJpOpBwBWV1fB6+rqIMsyIpHIFcZYL2MMra2tY5cuXRrfuXNnBtvAYDBk3G63oqpqZm5uzgrgSDKZjBoMhueZTAbc5XIhFouVEtFTxhiOHTs2dv78eS8+Efv374+oqpqZnZ21cs5PJJPJPlmWkyynnBuMMTQ0NHi7uro+mVyDx+Pxulwu71ZOlkqlSonoJhGhvb39s8k1nDx50ss5hyRJN9PpdKlERB2aWjSVaEilUvzBgwcORVEs5eXloXPnzk1sV8BkMiUdDofP7/dXZ7PZDilnIhw4cGBeS1pbW2P37t1zBwKBikQiUUREWFhYsHHO0d7evm0Ru90+/+rVq2rO+XGJiJxEhMrKyhgAjI6OWoeHh5tWVla+4JzDZrO9bW5unhwcHGzz+/32np4e+xaDbfoHAMxmc6ijo2O0oqIiJkkSNjY2HBIRmRljMJvNyWfPnln7+/tPMMZQXl6+0NbW9qK2tjYcj8floaEhqKpq+HCkbD3PzMwYBgYG0NXV9UuusFna2kEgELAQEQ4dOvSis7PzN41Ar9dnrl27NqCNkv/C3bt3zy4tLVmICJxzEBFJRBQmorLFxcWCqqqq0Pj4eO3Y2JhbUZTdra2tL2pra8OJRGLHnTt3zkqS9K+huHU4EhHMZnMoGo0W5OIh7nK5jjLGKq1W69vDhw8rRqMxMjc3t2t5eXnX5ORklc/nM+fl5SWnpqa+0uv1K/n5+Ws6nW5NluXNd15e3ppOp1uz2WyzZ86cGQ0Gg6ZAIFCZzWZ/lYjokRDiuN/vt7W0tMw3NTUpbrd78P79++5gMFgRiUTKHj58WMYYQ3V19etTp05tq6Lp6Wkb5xxCiEfc7XZPM8a6FxcXTfX19a/1en2Gcy5qamreNjY2/qGq6joRZe12+9Tp06e3JY/FYgWPHz8+mhvr3/CWlpbk+vp6PmOseWVlBS6XS9GSJUkSdrs93NDQ8Oe+ffvC/8fJIyMjddFo9Esi6pVleVjT2m0A8Hq9zqGhIefnjoknT544A4GAM/eDbxMReFNTE0pKSpKqqsaI6Pj8/LxVVdWM3W6PfCr5xMTE1zllXS0uLn6aSqXAGxsbodPpoNfrn6uqCs75EUVRrJFIZMfevXsXdTrdxseIE4mEPDIyUu/3++tynd8yGo29RIR0Og26fv06ioqKwBgD5xzv3r27zBjrIyJIkgSHwzFZWVmp7NmzJ1ZaWpoAgGg0WqgoSvHMzIw1GAw6tvjhitFo7NPW5fv370Hd3d0oKCgA53zTQMvLy+VCiKuSJH0rSdLmztZytIWv5RPRD0T0Y3Fx8dzWfby6ugopHo//w4mcc8iyPMc5v5FOp7/PZrOdQohWInIC2C2EgBBigYi8Qoifs9lsv06nWyIiaFxagXg8jr8GAGxuIe7LBeWhAAAAAElFTkSuQmCC\")}div.vis-network div.vis-manipulation div.vis-none:hover{box-shadow:1px 1px 8px transparent;cursor:default}div.vis-network div.vis-manipulation div.vis-none:active{box-shadow:1px 1px 8px transparent}div.vis-network div.vis-manipulation div.vis-none{line-height:23px;padding:0}div.vis-network div.vis-manipulation div.notification{font-weight:700;margin:2px}div.vis-network div.vis-manipulation button.vis-button.vis-add{background-image:url(\"data:image/png;base64,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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDo0MDoyOSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6NDA6MjkrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjVkNWIwNmQwLTVmMjAtOGE0NC1hMzIwLWZmMTEzMzQwNDc0YjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo2OWVmYWE1NS01ZTI5LTIzNGUtYTUzMy0xNDkxYjM1NDNmYmE8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6NDA6MjkrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjVkNWIwNmQwLTVmMjAtOGE0NC1hMzIwLWZmMTEzMzQwNDc0Yjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDo0MDoyOSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjY5ZWZhYTU1LTVlMjktMjM0ZS1hNTMzLTE0OTFiMzU0M2ZiYTwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5WKqp9AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYXSURBVHjafFZtUFTXGX7e9z27sveuMCwYV8ElrA7YSFYHtJUPkaaI0aRqG8wP00zUzljDINNSA/2ROtpO24SxnahlxjYd7SSjmUkymcxYlDhQPzHGisEVp8HwYWCVVVgEsrsuLnL74+5uqTF9Z+7cO/d8PO95zvO851BlZSV0XQcAMDOYGQBARDhX3JRmMDYZwLPMWAzGHACYIgwS46oBNBNwtOL8CwE8EkSEUCgE2rJlC2w2G4go8Zwo/bMDgnoG6gxLfAAAYvPDMCCszKTAMIAGAhrWnf15AAAMwwARIRKJgDZv3gy73Q4iAjPjxIr9VVOMRhbAYKB8zvrO0llrfEsdKwLZek6YAPSFvtSu3GtLawu0ZJ6625SHGBQB1T88t6MxvopgMAjaunUrdF0HM+P4yv27DMYeJmB1RqW3Jnf3tQX2p0L4P9EXuqEd7PmDp+XuMU9sRbvXnnt1TxxACgoKYLVacbzsQDUJGkSATe6qi28uPtzusM6Kxie6NHLGUX3lxVUNX9StPHnn4wy3njuUYcu6n2pNi66avcEXnByP/nv8aiaIyrqz2gO5A9+9FI1GIfn5+WhZdTAdjFMkwMvZOy7uWnTAOz3L4Yk71m3t69fdfTDoUGTBeHTUfiHQ6lo7Z2OXJvpDAChKe+aOCdKRKWxZ2+1qb3yyd3GYmRkQ7GQBVs99wfv6on3eR2k4PdTkDEbH7IuS8/svld/561PJS/pDk1/bzwx94pze7xc5v/H+YPY6r5BAkdrJzODTK46lE6PeYEJt7u+8j+OZwCBiEAgAoNgKJoEQf6PvNvdrXgtZoNhSf7q0KZ3B2AQmVMze0Jmt54S/DcDCVig2NcvEUGxJAE4Pl+YOr0iv6BRSIPAmBeBZAmHlE2sH4p1uhrq1s0MnnEQMBsf8wRASAICQQCCITN1X7/sOuc0kgOVp3/fPs2WHv+coG7gQOJUnLGsUCTxEjPzUohEA+NfIWUdtx0+efzA1kSSkIGyBAQNCKgHAEBAJ3u79U7kiAcWoem/gb5Fd33nrH3kp+SMWtuAB+GllMJxMjCx9QRgA3uiqL5kwHiTlpxb3smlfMDGYGPP1hcMAkJvs8ScpfdJspdj+MK6Pf+5+u29vyb4lR4+BGEziVESAkEpw6Av1OhUpHCz4qOXbzFWz4Ncdj/v/o08Lt92ODDgZDCEFJYoUGH4mzugP92puPTf0pD3H7wvfdFZdqSxnMtWjoGAAmG9fOLxjwesdjT2/XzIQ7ks3sycYMSEwGHNtWf5bkX5NkYCJBxUBXiGV0XHvosOt54Zey33j/K+8P33++vjnbiGJbbLE+J9SANAb6nJ2B79wcUwETAwQQ7fMjPzMvfP8ja87HUIKMOiaAqMZhrGmLdAy78eZrwwsTS0eObTs+IdtgVanxBUExqGbb5VzrIISGIoUXsmqbgEhJldCQWqRf27SvPAn/o8XmgLhZsUkR4ll37mhk3n94Z4OlzY/7NLcYZfm7o1z2zT4vsvUNSXqprBCkmiTFbPX90/fh8GIT2sf+zTPdDMf4dVnNg4z+E0ixsGeBs9jd5ViSgLHjCb/peaR+MD3d4/ZJg2llyuG2Vwy7QWAs8PNnn1f7vkGSGxAzE6mk+kxkx/p/4unffSCR0hAoL1EBCYiPNdWNcwkNQTCR7feWX6g+7f/A7I8rcw/U6UEe0Ndrhc/W7mtL9ztmqlSgstSS/zTJ28dalpOpkRryrwbhwBACgsLMWPGDOT4ll3qyeqAkJTdCF7P/CrUY/GkLL1rE+2hTbSH8+0Lb/WEuhzhyaA905blf9Vd/895WnZwLHrPevir/cvOB1oLYpTtLrm6oYGIMDExAaqtrUVKSgqYGSKCk0WHq5ikkWEWtNL0imv5qUW+RclLRjJsrhBAuH1/QL8R7HR4xy5nescuP23E6hOA6mLv+sb4uTw6Ogqqq6uDpmkQkcStorX4XRcM1FjZ+kvFFjCJKU1WpkNJJUqIMtX1RyLeX3JtQ0JRhmGYZ/L27duRnJycuFGISOJ9pqh5lrB6iYgqGOxRrOaa54DcZmKvkJxk8JHC9rKh+KVhOsD4+Dj+MwADIf8n5m4xGwAAAABJRU5ErkJggg==\")}div.vis-network div.vis-edit-mode button.vis-button.vis-edit,div.vis-network div.vis-manipulation button.vis-button.vis-edit{background-image:url(\"data:image/png;base64,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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNVQxNDoxMjoyNSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDVUMTQ6MTI6MjUrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjY5OTM3ZGZjLTJjNzQtYTU0YS05OTIzLTQyMmZhNDNkMjljNDwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDozOWNhNzE5ZC03YzNlLTUyNGEtYmY1NS03NGVmMmM1MzE0YTc8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDVUMTQ6MTI6MjUrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY5OTM3ZGZjLTJjNzQtYTU0YS05OTIzLTQyMmZhNDNkMjljNDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNVQxNDoxMjoyNSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjM5Y2E3MTlkLTdjM2UtNTI0YS1iZjU1LTc0ZWYyYzUzMTRhNzwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4ykninAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYpSURBVHjafFZtTFvnFX7Oea+NudiY2Hwam4CBlgQwXdKREDKUoYg0jbRJ29RJ2VZ1mjRFUxSpA3VTfkzJfkQbS7spU6rtx5Z2UtppScjaHxvLuiatWi2jLEoMIUDCh23g2gbj7+tPuPvhOurawPl1dc99n+c55z33fV46ceIEZFkGADAziAgAQERoe/9ZK4GPM/AcgbsIXAcABCgMvkfAqAa89eDoJyF8LogIqqqChoaGYDAYHr8kItS8uc8iIH6iAa9IkAo5EAQX8pqmgUVBCBggYFgDhv0/GAsBgKZpICJkMhnQ4OAgZFkGEYGZUXmp+0cS+CKBwWA0DVRPOg5Zl2q6zaHyJlnVAMQXVTkwHrUqH0Xsvn+tdQAAMQDgpPLS2MViFY8rkGUZzIzaS/t/xqCzGggtz9e697zsnKhoLUtim4jOq/LE6x7X0nsh16dEZ5a/O3a2SCAOHjwInU6Hujd6ThJ4mCDQ+b2G232v7v6vwarPbQn8MGlMr+X0kpE3Wr5Zt5hL5HPhqYSdQIfKJ+yhxDPKWC6Xg+jt7UXD5b5KBt1kCHS85Ljd8/On3NupfnhFaZj4rWff1B98B1R/hnUmKd36bdtCNl4g0en4edNE/cXwLq8qMTMIPAQwmo/WuHvObA8+9c58k/dKtD0TyZWXN5YGA7ej7epKxspM//7SoNOdWc/Jyq2wiwhDzPxT8cP0jys3VMM7OmL0/77zn4Ydui3b8uiK0jD7RrA77c9Wd57cefPpF+2T6bWsFPWkaiPTCWvTsZpHFU+XrS+8G3AR08F6X+1FJvBxQQzHQOWk2SmrW4FPX/U2LVwPuDZj+fJKl2khPpeyAqA9rzR/YqwuiWXX8taN/CabGkrVuq9YJlkQQDjOAJ5jAhz9Vt9W4N5/rNp8I+vtMV/aZm4zLnUNNt0urdYnF68HWoJj4Wo1mLGUNRr8LEgDgNqeCh8xQIKOsgC7iAjVe83rT9zQa8uNM28u70kspessu8q8zq/V3NcZpVzb9+0zmVhOvvvrhaMVzrJg0zeq7xMVCCwdpnWSGBqjUyJwLTFgbvxie3w31uoWR1Y74r60rdxZqrR8q85t2W2MGCp12bm/KC3hyaSTiMhxuGrKcahqpbjOaDOoEhOEoFqJQCCJvqA85I6bfTdDjQlf2lbxVNlS6wt19yy7jRHZZlDnrinNj/6sHMhnNw2Ogco7O79e5fm/xQywRBBCEAuwn4gQ96bkYj4Vyuq9N1Z3Bj4Od5bs0MXt/dZZ21ctiqFan174q985P+Lfp+U1g7XDON/1ctP458WlVjLyJhOISZE0wM0S1QfuRC3lTjkJAKKEtNC9eIOhSh9xHLZOJRZTFuXDsEoStLkR/768ummsaJG9Pb9oe+9J+xaeSVokiQDSJphAo5uaBuWjiKP4QTqS1cUWU7ayesN66wu22frD1vmVW6GW6T8u9eVjGyZzs+w78Nqu0a2mbvVu1KEJQAgeZRL0liQYyx+GOmKeQpu0rMYsAJPNEFGD2dLodLIy6c9Ys7G8yeSUl3tf2/X3rcBVJSOv34l3sCBogi7z1LH/rBHjl4IJ93/ncQFAnjeImJD0Z8zuCwu9q3djDXqTlAKID5xv+9t2R8n8VcUFBljQ8Gyfe40BYBM4DwDLt8Kue79ZcFkbzfEdbUbv+oN4c9KTtsfm1MbYQqqh+2zrVZYKs/7Ef+byimt1POYiJhDhPBFBIiIEXhxfs7/dfYoIF+auBfYTE/pebx/V8hqBP2ODvD34yvuh/WCAmU75Bx6sIgaI/v5+6PV6JLqUsYr7dpDAoehs0h73pHTWrvKgThYbRSt9UmSjef3MpaUvBz4O72UmADgTOPJguGiZor+/HyUlJWBmJFz+D8xTtlUiOpbwpmrmrweeSXrT+g11k4SBN3RGKUcAVCVdFhyP1nreDbY//NPyEXUlU/Pp4XYycGT6V0Ux2WwWdO7cOZSWlkII8diX7SPPNgDaKdbxoNAxwATBAEkEEgSWCEQAqPAMwqvMdCEwMO0tVqZpWsGTT58+DaPR+PhGIYQAAAgh0P7B3ioW/B0iGiCGiwXbCuOHFSJys6AbYFye2T+xWhT3WYJEIoH/DQBMw3kes8OJPgAAAABJRU5ErkJggg==\")}div.vis-network div.vis-edit-mode button.vis-button.vis-edit.vis-edit-mode{background-color:#fcfcfc;border:1px solid #ccc}div.vis-network div.vis-manipulation button.vis-button.vis-connect{background-image:url(\"data:image/png;base64,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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDozODo1NyswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6Mzg6NTcrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjlmYjUwMDU0LWE3ODEtMWQ0OC05ZTllLTU2ZWQ5YzhlYjdjNjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo3ZWRhMjI0MC0yYTQxLTNlNDQtYWM2My1iNzNiYTE5OWI3Y2E8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6Mzg6NTcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjlmYjUwMDU0LWE3ODEtMWQ0OC05ZTllLTU2ZWQ5YzhlYjdjNjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDozODo1NyswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjdlZGEyMjQwLTJhNDEtM2U0NC1hYzYzLWI3M2JhMTk5YjdjYTwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4ubxs+AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAUtSURBVHjajJZ/bNT1Gcdfz/P53PV6B4W7VltLqdAaplIOiMOoyxxJCSs/Gv/yB4gzJroAosmmDklwkYWR0bQsdmkykoojTpcsWYLxD/lRZdMQkTHRtkLZRqG0tIVe7662vTu43n32x/VKZ/jh89cn38/zvN7P5/l88zwf2blzJz6fDwARQUSm1n8s31CM0/VAnbNmsUPuAsDpgEO+Bg4C7//iyv5hvmMiQiqVQpqamvB6vVNwEeG1JZtCBrYi/MrkAwDNgjhwAlbzICBLA0rDb0+/839C6XQaaWxspLCw8Dp86cbNmqVFJQddE6KzdjZ9D89g+B6fSyCOcyn1nxil+O9xKg5HqWFSHGXLjrP7W/ICqVQK2bNnDz6fDxFh65KNvxbHDhF4rJj2bXPo+IGfcW5h5xL4f99P+FCEMIAob75x9t0dAMlkElNXV4e1lteXbNqiQoMaeOFOjrdU868SD2luYyEP6dUh+sYmSHeOU6GO5Z8VLx5+NNZxIpPJ5AS2L3upROCoCvz8Lo7vnkf77cAHhpiz/zIL9vWz8L8p/NvupmM0Q7pjnAoLqz8tDrc8MnQqYVUVhVdF4LEg7b+rvDn8wDDlH0WoPpukLJImSBaMwjcJqmwWts2jPZLG/8kwYVFeVdXXZcFf4yVDc2cNKfBFmD9X+0ncCP58F48eG+Feo2CAUkvs4dl0V/uJvdXLiiV+ut++n7YLSfxPfMMG54ChzB3WIesVWB2i82bw1AR6fJR7C4VsfYiv6u/k3A9nEgP4zXke8DiYHyAOMK+QxPIgnZ9GqSHr1itQJ8DK2fTerDQ+S/bHRXQJaHSCwNIZ2Xh+7+S3VAmwNMBA/tuPZtErgKquUmdMWIFlRURvdamRNEXGwIWrlP47pTMzLiunxghGMwTLvcTWlHAp77s4QNSrYMQtss6ZMgWqCm5cHoDHO1nbk6K8zEN8+3zatv2Hn1b59EqJZdxmYUERg9P9KwpIiAOTdWUWBXuLzB/vZG3P1Un4PNp2d1MbmyD45TWCxuCsQm0x56bHGHFYEZwxok7toAA9Sfw3hCcoL/NOwi9QO5wmWO1j4JEgZxTkodmcWRGkf3pcX0r8xoAaBixKu4U5/xwndM+0tpAvS6mP+PZK2nb1UBvPEKwKMLDvPj4ESGc55lGy303sdJKQdZB2rkMdctAB/4gzN+/Q2ENNd4LyUi/xN+bTtquX2thk5nk4wI3gAF+OMNcA1nFQDfK+BY5GqbkwWabTY5QZhXWlnNx1ntrY1Rz87fuvw29m/Sn8J+PUGAFj5T19baA1IspuBZp7cx1x4SwG1cEf+lgRSROs8jGwb+Ht4QB/GSSsAhYano39LWIBxNEIbP14hPDuiyS2VtJuHXQlKKvxM/jiXDq/D/xPlwifGMkJZB2NIoKpr69nxeiZxLHicFSFVWfGqBidIP3LSjrWltD94CyufF/4kQgPuVz2Lz93+dDRa9eu5QQ8Hg8/iXee+Dy4CKMs7xqn4nwKz9IirhQqmVuB42m8ey+x7LMoD6iAON782eChhqmRuXfvXgKBAKqKqtI0/8nNKrQI4BVYXkzHgzPpC88gWuHL/caXrhLoGiN0apSKr0ZZRBZM7q2w5ZnLR1oAnHOMjY0hra2tFBQUYIyZmstvVT1Z6eDlAuEVq7merxmwueNPDXy9PvybjKP5mctHLk4/XTKZRJqbm/H7/VNw1VyEMYbW4FN3WNWnnchKoy5sHeVGBRX6VWi3ymFx7r11Ix8MTX/y5C2RSPC/AQB61erowbpqSwAAAABJRU5ErkJggg==\")}div.vis-network div.vis-manipulation button.vis-button.vis-delete{background-image:url(\"data:image/png;base64,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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDo0MTowNCswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6NDE6MDQrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjc3NDkzYmUxLTEyZGItOTg0NC1iNDYyLTg2NGVmNGIzMzM3MTwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDowNmE3NWYwMy04MDdhLWUzNGYtYjk1Zi1jZGU2MjM0Mzg4OGY8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6NDE6MDQrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjc3NDkzYmUxLTEyZGItOTg0NC1iNDYyLTg2NGVmNGIzMzM3MTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDo0MTowNCswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjA2YTc1ZjAzLTgwN2EtZTM0Zi1iOTVmLWNkZTYyMzQzODg4Zjwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4aYJzYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYGSURBVHjalJZ7UJTnFcZ/73m/72PdJY1RbhoQp6lkXRAvmIYxdCUadLVOozPNtGObap1JsKipjiShbdoRbeKEiQHpQK3xj0xa03aamTbaTGyAYV1QGeqFi+JyiZFLAlmESBkWRmS3fyzslGkmnZ5/v/M873Oe75zzvqqoqAibzQaAiKCUAkApRdHIK/NFsx2NR91nOSILADDoJyzNaM4xxbtvPHh0iC+JiYkJ1OHDh4mJiUEpFSXPv/ziPC28TIiXDCOSrAClQDSEpsCwJPIhrEBRQpiSytXlQwDhcBilFPfu3UMVFxdjt9ujFTzfcLBADCoEEAFr1ZbrrNjch2vtEImPBgHob7fTcWE+bVXJNJ/NiFQlEGLvieXHKmYqGB8fRx05cgSbzYaIsPvywV8pKFaA7fGtLTzz61YWpo/xVTHQbufsq5lcez9zWuWhk5mvFwMEg0H0+vXrMU2Tn1wp3CtCiQ5DjGd3A/m/v8IDCZP8r4iNmyRrWx/j/5qktykZpXKzAjVDVxPzGqemptDr1q1jX3NRnIJarcDKK2hgR2ULXRfncv7UYv7xpovhnhiW5Mz+kefeSKO6LJ1A1xzEuk/Ojm4mRibpuZaMZW3OCtRUND60NmiICCIUShisx7a2sLMiQn4s77uEQgIabnqdfHIlgT1/qQeg8vs5dHhdCNB1wYn3RIiC995j26stjAbsNH+YiZJCESnS1Y/XxIXu8r4YIPv/VkVs3CTnTy2ms34xro1+sp9po6sxlTu34ultmsPVvy6is86FCHgO+DDs49zpjufBpCG+seYOC9OHaTidieicb9ouVAhKtouAseI710ma7pLuqwmgYfHqAFt+6WdLoQ/LBl11Lm7VudAa8vb72PCin9TlAWIsGGhLACD+kSAZnusYBii1XQAPYWDllt6ov2lrBkDBR2+6Ofuak2//3M+G/T4wAAPW7fPhKfRTVeqk9qQbFKRmDUTxS3N7QYGYmwzCkqklBGlPDEcTNv+sg9tNCbTXuvBWujE0bHrZj9JE1B/wU1Pm5PwJN6YBS9a2kVvQEcWnrh5GTFD3lxkYkqRMgYQlwVldUvDnen73LHTUuqitdKM0eAr9AFQfd1J/yo2aJn+2sn4Wdn5qEFODJskgBIjx5T0uCrQA08pnIjS9PERDjPnfOKXAMEBECUoGEIHBj+2zkt76UQ6dXheGAev3+cg74Kf6uJPqcicbfuond7cPy4SOiy7+tD9nFvZurx00KOk3CNEC+mE+vjSPBc7IWqgqTaPT60IMcO/xsXGa3HfKjRgRdbl7/KDg0jtubje6aHj7c7J3dgLQ2zoPwwQ91SooOQdAW1VKVMHty0kA5Bb48BycJn/LjWFGbLv4thvvb53kFvjJ+XEdWkPfjQVR/CcNKYgGMc8JWt5Fa2j+MIPPuyI2pa4IoHSkt6vLIuRaQ9q32khzt4GCxtNu6k46GeiIR2lIfDQQsafPzq1LGRGL9Gk9d+vrwewvfHPQOoexQVjxdB/auk/zmaUMdsfz6bVUtIalT7bxveP1ZHh6GPDPYeSzeD69kcpIfxymFWLNrka+ljhBTWkWwz2JiJT84YHnz2iPx0P20PkmRF5i6HYiwZFJsn/YzdezbzE3cQibY5xV266z6RfXohakb+xB9CjanCD9qTbW7Grk4WV38VZm0l6dhQiEw9taHSuDqrS0FIfDwXM3X9mHMsvRAk/sauDpQy38P+GtzOTGB9mEpkD0C2dS8n8zOjqK9ng8WJZFU+JTjasGvaCNXPpvJBPoMlm0OoDNMfWVxONfWNSUPUZ7TUQ56tCZlPwSgMnJSVRpaSmxsbFE1raw82ZxAZZRQUiBYUKGp5UlOX2krBzmoUVjiIKhHge9rfPo+Wcy3ZeXIYASgL1/X5RfMXMvj46OosrLy7HZbGitUUohIuzoem0RofALaOsghgWGjky0MiJTL8b0lOvI8hN1DKXKP0jd3TNTWDgcJhgMoo4ePYrD4Yi+KmaeLlprnrtXFo9h/AAlG1AqE8yFmBrC+jO0bgH9EVpO/1F2Dc5g//OAsbEx/j0Af+USsQynL1UAAAAASUVORK5CYII=\")}div.vis-network div.vis-edit-mode div.vis-label,div.vis-network div.vis-manipulation div.vis-label{line-height:25px;margin:0 0 0 23px}div.vis-network div.vis-manipulation div.vis-separator-line{background-color:#bdbdbd;display:inline-block;float:left;height:21px;margin:0 7px 0 15px;width:1px}');A('div.vis-network div.vis-navigation div.vis-button{-webkit-touch-callout:none;background-position:2px 2px;background-repeat:no-repeat;-moz-border-radius:17px;border-radius:17px;cursor:pointer;display:inline-block;height:34px;position:absolute;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:34px}div.vis-network div.vis-navigation div.vis-button:hover{box-shadow:0 0 3px 3px rgba(56,207,21,.3)}div.vis-network div.vis-navigation div.vis-button:active{box-shadow:0 0 1px 3px rgba(56,207,21,.95)}div.vis-network div.vis-navigation div.vis-button.vis-up{background-image:url(\"data:image/png;base64,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\");bottom:50px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-down{background-image:url(\"data:image/png;base64,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\");bottom:10px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-left{background-image:url(\"data:image/png;base64,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\");bottom:10px;left:15px}div.vis-network div.vis-navigation div.vis-button.vis-right{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAABs1JREFUeNqsl3tQlOcVxp9z3m+XygK7C4sLxkW5o4CAkYssFSkRjabjJEOSJm1IbZx2krapiZdeprW0NVVJ0pqMM0kYJQlqkoZImGioE1ItiCAgIsFwE4Es99vCslwChf36xy5EW1A0Pn9+73fO772e93kJC5EMCszFd20SbyFZNpJAAACtjWUI8KAN1CRAJTbg9LXNU+dBkG+Xkm7Zmg4OWoUdNqZXmQCZHQFsz0yOcCYGEc8mJGDnl2UTh5AO2x2DA3OxDaAsCDvQ32VF11qP9aZYz6SeFeooi17pPQEAvZNdTnWWKnWFuVhfYT7v0zza4M3EsMk2EPgnNZusby8Y7P8x/5lI/gMTYNSnNKQt/0Xtev1DfQtZlaK+M54fmDJXXhg4G8zEINBfqlLMe28L9s/lQ8Tyr5iAJ32fK/tj+OFq3IUO1O+JyGk7GgsiEPFrlQ/07bixXdwEPckHWZJ3MgG7Qw9+/mLIS/W4SyXoNvQskpyHLg1e8CNQ3NI0laoje7Tg/8CBudgGgQwSwO/DD322ze/FFnxLRWhiBzUK94GLA2f9mSTjfU+7mjqyrVe+AX8I4aGgShbA0/47Sn4ZuLcR90ih6qih0anRiVprtUEQb43bYtlXmwNZAEDAj/ACMW1M8ExpeDXyWMVCEl4yF7vntR/zLeov8JJlWfZR+Y3N92+cx/reOmu1quNrk27EWW0xvWspJcigoNNkA4C3Yk59vH7xltvu3ktDxe7PX34ilQCQfeci1j2xfn94ZrGCneY8uxcHCnW/vbr9EQD4d2ITc8AprAOAQLewroVAAaB8oMiLiRHvmVy7znNTjWCFrXKoJOSHFQ+kvnF9f+jco07s91MFdwmSkHQuYB0T8WYwIcYj0bTQdRufGlFKJMFVaCb/GvZW6aGI4yeXOwd2mr/u05zsyDY+W5X64Nm+fO85NpuJiCFJTpslIoonADEeiT2zIzIXuh+o25PQNtbsNVMOBUn2g08MiSTHN3uZjNTEDr4dnX/6H+1H/XPasmKvW+sMGfW/MXzende4K3h/ibvSYxIAItyie/K7cgCitQxCIBFjpTrKMgM+WPfrhLbxFi9iMQtlYjAJSCSBSYBAIPBNI3p86TPXj8bk56R4PVylFE626uFLQc9efiTVPDmgBIAAtzALEYNBQRITa4kYix21FwBax655CVagPLk7806Pj1qo/7MraF/FQ14/aMhszYhvGqn3KTef89rklWrSKXUTkn3mtJK9Bzf3XJA0e/PcrdgxIwSCDPmbZMQgABJkDBKzvn+yy2npIv9xAPB1Ceo2jTZ7Gc8afipIgEhAkACDwcSQQZBIIGnx5it7gg+U3wgcnbZKR1r+FnW+v2DVtDwtXCXNSKz797oAwDzZ7ySRAIBBFsTXmBh1w1+oZ4J3h+wv9lUFdbMDOrO+5IAqWIGZthuV13nC77nKRx8r7PssyibLIkoT1/h65HsfzWyu5tF6NYNB4EYJzKUETqgcLNVv0D/cDQBrNAnm9+LOfTLfNB5u2hf5z+6TMexYji+tVdrM5leMbWOtSwQx/F1C2rcuebIqwSO568a4WmuN3mEYSiUi+pRl2l1pLvYBsKArUKVwnZRYgdHpMWVG4+/WXhwoDBXE7OmkHzJ6JNemLfv51bniGqzVPoIkyLbpfK7ZMFIkE6FlrMn7Ql+BbiHg+zXGbgLjylDpyosD58KZmKM0cfWHI9//aD5o1VCZrnO83VuQQOja5PMCfwK8n3K2ChIbLVOD9KB36le3A+u/s2Q81C2yRavQmQNdVnamLnmq4nHD9jpB0rwm77jpjTW9E906Bu18fWlWCQHAox9CtGoXTwmS8IThZyXPB+29inuoE6bMsDM9ufEAMNHqJuU8ljMtAKA2B7IhzaWNiLfWjVQb3J10/SGuEZZ7Af1X7+lluZ3HkpgEQPL291M+qbzJgXQcG60ypKlVTGwsMxcFaJW6/hDXVZZvCz3RlrmRiQHwy9nRn2bM6bnas4cLfH6s1RIorsJcFDA2PToR7Z7QezfQD9qzwvI6TyTZC47ttXeiT+2c1+wBgOndoTPLt7mrmCRjvfULQ4O1xsVVchu7b9GysYUAqy3lnsdNb0aXmQuj7PYWL2etuRl6S0OfXLjiGQIdEY6K5esc2BWhjvkqXLO6x08VPKxV6iYAwuBkv5NpvNmtbrhaX2+tWdY70eVNINhtLW0/sjrv6B0/YdJlcGlR2AvE4hUlKwHQ7BU5cz8LRx0HaPY7gXb53L/67+mUfudPmP/twOWS6AQi/j6B4iWS/IlYK+yGYJDB1wWLErLRKd/omOJbAWf03wEAyO9m+/TtS3AAAAAASUVORK5CYII=\");bottom:10px;left:95px}div.vis-network div.vis-navigation div.vis-button.vis-zoomIn{background-image:url(\"data:image/png;base64,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\");bottom:10px;right:15px}div.vis-network div.vis-navigation div.vis-button.vis-zoomOut{background-image:url(\"data:image/png;base64,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\");bottom:10px;right:55px}div.vis-network div.vis-navigation div.vis-button.vis-zoomExtends{background-image:url(\"data:image/png;base64,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\");bottom:50px;right:15px}');A(\".vis-overlay{bottom:0;left:0;position:absolute;right:0;top:0;z-index:10}.vis-active{box-shadow:0 0 10px #86d5f8}\");A(\".vis [class*=span]{min-height:0;width:auto}\");A('div.vis-color-picker{background-color:#fff;border-radius:15px;box-shadow:0 0 10px 0 rgba(0,0,0,.5);display:none;height:444px;left:30px;margin-left:30px;margin-top:-140px;padding:10px;position:absolute;top:0;width:310px;z-index:1}div.vis-color-picker div.vis-arrow{left:5px;position:absolute;top:147px}div.vis-color-picker div.vis-arrow:after,div.vis-color-picker div.vis-arrow:before{border:solid transparent;content:\" \";height:0;pointer-events:none;position:absolute;right:100%;top:50%;width:0}div.vis-color-picker div.vis-arrow:after{border-color:hsla(0,0%,100%,0) #fff hsla(0,0%,100%,0) hsla(0,0%,100%,0);border-width:30px;margin-top:-30px}div.vis-color-picker div.vis-color{cursor:pointer;height:289px;position:absolute;width:289px}div.vis-color-picker div.vis-brightness{position:absolute;top:313px}div.vis-color-picker div.vis-opacity{position:absolute;top:350px}div.vis-color-picker div.vis-selector{background:#4c4c4c;background:-moz-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4c4c4c),color-stop(12%,#595959),color-stop(25%,#666),color-stop(39%,#474747),color-stop(50%,#2c2c2c),color-stop(51%,#000),color-stop(60%,#111),color-stop(76%,#2b2b2b),color-stop(91%,#1c1c1c),color-stop(100%,#131313));background:-webkit-linear-gradient(top,#4c4c4c,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313);background:-o-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-ms-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:linear-gradient(180deg,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313);border:1px solid #fff;border-radius:15px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#4c4c4c\",endColorstr=\"#131313\",GradientType=0);height:15px;left:137px;position:absolute;top:137px;width:15px}div.vis-color-picker div.vis-new-color{left:159px;padding-right:2px;text-align:right}div.vis-color-picker div.vis-initial-color,div.vis-color-picker div.vis-new-color{border:1px solid rgba(0,0,0,.1);border-radius:5px;color:rgba(0,0,0,.4);font-size:10px;height:20px;line-height:20px;position:absolute;top:380px;vertical-align:middle;width:140px}div.vis-color-picker div.vis-initial-color{left:10px;padding-left:2px;text-align:left}div.vis-color-picker div.vis-label{left:10px;position:absolute;width:300px}div.vis-color-picker div.vis-label.vis-brightness{top:300px}div.vis-color-picker div.vis-label.vis-opacity{top:338px}div.vis-color-picker div.vis-button{background-color:#f7f7f7;border:2px solid #d9d9d9;border-radius:10px;cursor:pointer;height:25px;line-height:25px;position:absolute;text-align:center;top:410px;vertical-align:middle;width:68px}div.vis-color-picker div.vis-button.vis-cancel{left:5px}div.vis-color-picker div.vis-button.vis-load{left:82px}div.vis-color-picker div.vis-button.vis-apply{left:159px}div.vis-color-picker div.vis-button.vis-save{left:236px}div.vis-color-picker input.vis-range{height:20px;width:290px}');A('div.vis-configuration{display:block;float:left;font-size:12px;position:relative}div.vis-configuration-wrapper{display:block;width:700px}div.vis-configuration-wrapper:after{clear:both;content:\"\";display:block}div.vis-configuration.vis-config-option-container{background-color:#fff;border:2px solid #f7f8fa;border-radius:4px;display:block;left:10px;margin-top:20px;padding-left:5px;width:495px}div.vis-configuration.vis-config-button{background-color:#f7f8fa;border:2px solid #ceced0;border-radius:4px;cursor:pointer;display:block;height:25px;left:10px;line-height:25px;margin-bottom:30px;margin-top:20px;padding-left:5px;vertical-align:middle;width:495px}div.vis-configuration.vis-config-button.hover{background-color:#4588e6;border:2px solid #214373;color:#fff}div.vis-configuration.vis-config-item{display:block;float:left;height:25px;line-height:25px;vertical-align:middle;width:495px}div.vis-configuration.vis-config-item.vis-config-s2{background-color:#f7f8fa;border-radius:3px;left:10px;padding-left:5px}div.vis-configuration.vis-config-item.vis-config-s3{background-color:#e4e9f0;border-radius:3px;left:20px;padding-left:5px}div.vis-configuration.vis-config-item.vis-config-s4{background-color:#cfd8e6;border-radius:3px;left:30px;padding-left:5px}div.vis-configuration.vis-config-header{font-size:18px;font-weight:700}div.vis-configuration.vis-config-label{height:25px;line-height:25px;width:120px}div.vis-configuration.vis-config-label.vis-config-s3{width:110px}div.vis-configuration.vis-config-label.vis-config-s4{width:100px}div.vis-configuration.vis-config-colorBlock{border:1px solid #444;border-radius:2px;cursor:pointer;height:19px;margin:0;padding:0;top:1px;width:30px}input.vis-configuration.vis-config-checkbox{left:-5px}input.vis-configuration.vis-config-rangeinput{margin:0;padding:1px;pointer-events:none;position:relative;top:-5px;width:60px}input.vis-configuration.vis-config-range{-webkit-appearance:none;background-color:transparent;border:0 solid #fff;height:20px;width:300px}input.vis-configuration.vis-config-range::-webkit-slider-runnable-track{background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(180deg,#dedede 0,#c8c8c8 99%);border:1px solid #999;border-radius:3px;box-shadow:0 0 3px 0 #aaa;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#dedede\",endColorstr=\"#c8c8c8\",GradientType=0);height:5px;width:300px}input.vis-configuration.vis-config-range::-webkit-slider-thumb{-webkit-appearance:none;background:#3876c2;background:-moz-linear-gradient(top,#3876c2 0,#385380 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#3876c2),color-stop(100%,#385380));background:-webkit-linear-gradient(top,#3876c2,#385380);background:-o-linear-gradient(top,#3876c2 0,#385380 100%);background:-ms-linear-gradient(top,#3876c2 0,#385380 100%);background:linear-gradient(180deg,#3876c2 0,#385380);border:1px solid #14334b;border-radius:50%;box-shadow:0 0 1px 0 #111927;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#3876c2\",endColorstr=\"#385380\",GradientType=0);height:17px;margin-top:-7px;width:17px}input.vis-configuration.vis-config-range:focus{outline:none}input.vis-configuration.vis-config-range:focus::-webkit-slider-runnable-track{background:#9d9d9d;background:-moz-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#9d9d9d),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#9d9d9d,#c8c8c8 99%);background:-o-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:linear-gradient(180deg,#9d9d9d 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#9d9d9d\",endColorstr=\"#c8c8c8\",GradientType=0)}input.vis-configuration.vis-config-range::-moz-range-track{background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(180deg,#dedede 0,#c8c8c8 99%);border:1px solid #999;border-radius:3px;box-shadow:0 0 3px 0 #aaa;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#dedede\",endColorstr=\"#c8c8c8\",GradientType=0);height:10px;width:300px}input.vis-configuration.vis-config-range::-moz-range-thumb{background:#385380;border:none;border-radius:50%;height:16px;width:16px}input.vis-configuration.vis-config-range:-moz-focusring{outline:1px solid #fff;outline-offset:-1px}input.vis-configuration.vis-config-range::-ms-track{background:transparent;border-color:transparent;border-width:6px 0;color:transparent;height:5px;width:300px}input.vis-configuration.vis-config-range::-ms-fill-lower{background:#777;border-radius:10px}input.vis-configuration.vis-config-range::-ms-fill-upper{background:#ddd;border-radius:10px}input.vis-configuration.vis-config-range::-ms-thumb{background:#385380;border:none;border-radius:50%;height:16px;width:16px}input.vis-configuration.vis-config-range:focus::-ms-fill-lower{background:#888}input.vis-configuration.vis-config-range:focus::-ms-fill-upper{background:#ccc}.vis-configuration-popup{background:rgba(57,76,89,.85);border:2px solid #f2faff;border-radius:4px;color:#fff;font-size:14px;height:30px;line-height:30px;position:absolute;text-align:center;-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;width:150px}.vis-configuration-popup:after,.vis-configuration-popup:before{border:solid transparent;content:\" \";height:0;left:100%;pointer-events:none;position:absolute;top:50%;width:0}.vis-configuration-popup:after{border-color:rgba(136,183,213,0) rgba(136,183,213,0) rgba(136,183,213,0) rgba(57,76,89,.85);border-width:8px;margin-top:-8px}.vis-configuration-popup:before{border-color:rgba(194,225,245,0) rgba(194,225,245,0) rgba(194,225,245,0) #f2faff;border-width:12px;margin-top:-12px}');A(\"div.vis-tooltip{background-color:#f5f4ed;border:1px solid #808074;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;box-shadow:3px 3px 10px rgba(0,0,0,.2);color:#000;font-family:verdana;font-size:14px;padding:5px;pointer-events:none;position:absolute;visibility:hidden;white-space:nowrap;z-index:5}\");var t=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{};function C(g){return g&&g.__esModule&&Object.prototype.hasOwnProperty.call(g,\"default\")?g.default:g}var I,e,i,o,n,s,r,a,d,h,l,c,u,p,f,v,b={};function m(){if(e)return I;e=1;var g=function(g){return g&&g.Math===Math&&g};return I=g(\"object\"==typeof globalThis&&globalThis)||g(\"object\"==typeof window&&window)||g(\"object\"==typeof self&&self)||g(\"object\"==typeof t&&t)||g(\"object\"==typeof I&&I)||function(){return this}()||Function(\"return this\")()}function y(){return o?i:(o=1,i=function(g){try{return!!g()}catch(g){return!0}})}function w(){return s?n:(s=1,n=!y()(function(){var g=function(){}.bind();return\"function\"!=typeof g||g.hasOwnProperty(\"prototype\")}))}function x(){if(a)return r;a=1;var g=w(),A=Function.prototype,t=A.apply,C=A.call;return r=\"object\"==typeof Reflect&&Reflect.apply||(g?C.bind(t):function(){return C.apply(t,arguments)}),r}function E(){if(h)return d;h=1;var g=w(),A=Function.prototype,t=A.call,C=g&&A.bind.bind(t,t);return d=g?C:function(g){return function(){return t.apply(g,arguments)}},d}function O(){if(c)return l;c=1;var g=E(),A=g({}.toString),t=g(\"\".slice);return l=function(g){return t(A(g),8,-1)},l}function T(){if(p)return u;p=1;var g=O(),A=E();return u=function(t){if(\"Function\"===g(t))return A(t)}}function D(){if(v)return f;v=1;var g=\"object\"==typeof document&&document.all;return f=void 0===g&&void 0!==g?function(A){return\"function\"==typeof A||A===g}:function(g){return\"function\"==typeof g}}var N,R,k,P,M={};function z(){return R?N:(R=1,N=!y()(function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))}function B(){if(P)return k;P=1;var g=w(),A=Function.prototype.call;return k=g?A.bind(A):function(){return A.apply(A,arguments)},k}var Z,S,F,G,L,j,V,Y,W,Q,U,K,H,X,_,J,q,$,gg,Ag,tg,Cg,Ig,eg,ig,og,ng,sg,rg,ag,dg,hg,lg,cg,ug,pg,fg,vg={};function bg(){if(Z)return vg;Z=1;var g={}.propertyIsEnumerable,A=Object.getOwnPropertyDescriptor,t=A&&!g.call({1:2},1);return vg.f=t?function(g){var t=A(this,g);return!!t&&t.enumerable}:g,vg}function mg(){return F?S:(F=1,S=function(g,A){return{enumerable:!(1&g),configurable:!(2&g),writable:!(4&g),value:A}})}function yg(){if(L)return G;L=1;var g=E(),A=y(),t=O(),C=Object,I=g(\"\".split);return G=A(function(){return!C(\"z\").propertyIsEnumerable(0)})?function(g){return\"String\"===t(g)?I(g,\"\"):C(g)}:C,G}function wg(){return V||(V=1,j=function(g){return null==g}),j}function xg(){if(W)return Y;W=1;var g=wg(),A=TypeError;return Y=function(t){if(g(t))throw new A(\"Can't call method on \"+t);return t},Y}function Eg(){if(U)return Q;U=1;var g=yg(),A=xg();return Q=function(t){return g(A(t))},Q}function Og(){if(H)return K;H=1;var g=D();return K=function(A){return\"object\"==typeof A?null!==A:g(A)},K}function Tg(){return _?X:(_=1,X={})}function Dg(){if(q)return J;q=1;var g=Tg(),A=m(),t=D(),C=function(g){return t(g)?g:void 0};return J=function(t,I){return arguments.length<2?C(g[t])||C(A[t]):g[t]&&g[t][I]||A[t]&&A[t][I]},J}function Ng(){return gg?$:(gg=1,$=E()({}.isPrototypeOf))}function Rg(){if(tg)return Ag;tg=1;var g=m().navigator,A=g&&g.userAgent;return Ag=A?String(A):\"\"}function kg(){if(Ig)return Cg;Ig=1;var g,A,t=m(),C=Rg(),I=t.process,e=t.Deno,i=I&&I.versions||e&&e.version,o=i&&i.v8;return o&&(A=(g=o.split(\".\"))[0]>0&&g[0]<4?1:+(g[0]+g[1])),!A&&C&&(!(g=C.match(/Edge\\/(\\d+)/))||g[1]>=74)&&(g=C.match(/Chrome\\/(\\d+)/))&&(A=+g[1]),Cg=A}function Pg(){if(ig)return eg;ig=1;var g=kg(),A=y(),t=m().String;return eg=!!Object.getOwnPropertySymbols&&!A(function(){var A=Symbol(\"symbol detection\");return!t(A)||!(Object(A)instanceof Symbol)||!Symbol.sham&&g&&g<41}),eg}function Mg(){return ng?og:(ng=1,og=Pg()&&!Symbol.sham&&\"symbol\"==typeof Symbol.iterator)}function zg(){if(rg)return sg;rg=1;var g=Dg(),A=D(),t=Ng(),C=Object;return sg=Mg()?function(g){return\"symbol\"==typeof g}:function(I){var e=g(\"Symbol\");return A(e)&&t(e.prototype,C(I))},sg}function Bg(){if(dg)return ag;dg=1;var g=String;return ag=function(A){try{return g(A)}catch(g){return\"Object\"}}}function Zg(){if(lg)return hg;lg=1;var g=D(),A=Bg(),t=TypeError;return hg=function(C){if(g(C))return C;throw new t(A(C)+\" is not a function\")}}function Sg(){if(ug)return cg;ug=1;var g=Zg(),A=wg();return cg=function(t,C){var I=t[C];return A(I)?void 0:g(I)}}function Fg(){if(fg)return pg;fg=1;var g=B(),A=D(),t=Og(),C=TypeError;return pg=function(I,e){var i,o;if(\"string\"===e&&A(i=I.toString)&&!t(o=g(i,I)))return o;if(A(i=I.valueOf)&&!t(o=g(i,I)))return o;if(\"string\"!==e&&A(i=I.toString)&&!t(o=g(i,I)))return o;throw new C(\"Can't convert object to primitive value\")}}var Gg,Lg,jg,Vg,Yg,Wg,Qg,Ug,Kg,Hg,Xg,_g,Jg,qg,$g,gA,AA,tA,CA,IA,eA,iA,oA,nA,sA,rA,aA,dA,hA={exports:{}};function lA(){return Lg?Gg:(Lg=1,Gg=!0)}function cA(){if(Vg)return jg;Vg=1;var g=m(),A=Object.defineProperty;return jg=function(t,C){try{A(g,t,{value:C,configurable:!0,writable:!0})}catch(A){g[t]=C}return C}}function uA(){if(Yg)return hA.exports;Yg=1;var g=lA(),A=m(),t=cA(),C=\"__core-js_shared__\",I=hA.exports=A[C]||t(C,{});return(I.versions||(I.versions=[])).push({version:\"3.44.0\",mode:g?\"pure\":\"global\",copyright:\"\u00A9 2014-2025 Denis Pushkarev (zloirock.ru)\",license:\"https://github.com/zloirock/core-js/blob/v3.44.0/LICENSE\",source:\"https://github.com/zloirock/core-js\"}),hA.exports}function pA(){if(Qg)return Wg;Qg=1;var g=uA();return Wg=function(A,t){return g[A]||(g[A]=t||{})}}function fA(){if(Kg)return Ug;Kg=1;var g=xg(),A=Object;return Ug=function(t){return A(g(t))}}function vA(){if(Xg)return Hg;Xg=1;var g=E(),A=fA(),t=g({}.hasOwnProperty);return Hg=Object.hasOwn||function(g,C){return t(A(g),C)},Hg}function bA(){if(Jg)return _g;Jg=1;var g=E(),A=0,t=Math.random(),C=g(1.1.toString);return _g=function(g){return\"Symbol(\"+(void 0===g?\"\":g)+\")_\"+C(++A+t,36)}}function mA(){if($g)return qg;$g=1;var g=m(),A=pA(),t=vA(),C=bA(),I=Pg(),e=Mg(),i=g.Symbol,o=A(\"wks\"),n=e?i.for||i:i&&i.withoutSetter||C;return qg=function(g){return t(o,g)||(o[g]=I&&t(i,g)?i[g]:n(\"Symbol.\"+g)),o[g]}}function yA(){if(AA)return gA;AA=1;var g=B(),A=Og(),t=zg(),C=Sg(),I=Fg(),e=TypeError,i=mA()(\"toPrimitive\");return gA=function(o,n){if(!A(o)||t(o))return o;var s,r=C(o,i);if(r){if(void 0===n&&(n=\"default\"),s=g(r,o,n),!A(s)||t(s))return s;throw new e(\"Can't convert object to primitive value\")}return void 0===n&&(n=\"number\"),I(o,n)}}function wA(){if(CA)return tA;CA=1;var g=yA(),A=zg();return tA=function(t){var C=g(t,\"string\");return A(C)?C:C+\"\"}}function xA(){if(eA)return IA;eA=1;var g=m(),A=Og(),t=g.document,C=A(t)&&A(t.createElement);return IA=function(g){return C?t.createElement(g):{}},IA}function EA(){if(oA)return iA;oA=1;var g=z(),A=y(),t=xA();return iA=!g&&!A(function(){return 7!==Object.defineProperty(t(\"div\"),\"a\",{get:function(){return 7}}).a})}function OA(){if(nA)return M;nA=1;var g=z(),A=B(),t=bg(),C=mg(),I=Eg(),e=wA(),i=vA(),o=EA(),n=Object.getOwnPropertyDescriptor;return M.f=g?n:function(g,s){if(g=I(g),s=e(s),o)try{return n(g,s)}catch(g){}if(i(g,s))return C(!A(t.f,g,s),g[s])},M}function TA(){if(rA)return sA;rA=1;var g=y(),A=D(),t=/#|\\.prototype\\./,C=function(t,C){var n=e[I(t)];return n===o||n!==i&&(A(C)?g(C):!!C)},I=C.normalize=function(g){return String(g).replace(t,\".\").toLowerCase()},e=C.data={},i=C.NATIVE=\"N\",o=C.POLYFILL=\"P\";return sA=C}function DA(){if(dA)return aA;dA=1;var g=T(),A=Zg(),t=w(),C=g(g.bind);return aA=function(g,I){return A(g),void 0===I?g:t?C(g,I):function(){return g.apply(I,arguments)}},aA}var NA,RA,kA,PA,MA,zA,BA,ZA,SA,FA,GA,LA,jA,VA,YA,WA,QA,UA,KA,HA,XA,_A,JA,qA,$A,gt,At,tt,Ct,It={};function et(){return RA?NA:(RA=1,NA=z()&&y()(function(){return 42!==Object.defineProperty(function(){},\"prototype\",{value:42,writable:!1}).prototype}))}function it(){if(PA)return kA;PA=1;var g=Og(),A=String,t=TypeError;return kA=function(C){if(g(C))return C;throw new t(A(C)+\" is not an object\")}}function ot(){if(MA)return It;MA=1;var g=z(),A=EA(),t=et(),C=it(),I=wA(),e=TypeError,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,n=\"enumerable\",s=\"configurable\",r=\"writable\";return It.f=g?t?function(g,A,t){if(C(g),A=I(A),C(t),\"function\"==typeof g&&\"prototype\"===A&&\"value\"in t&&r in t&&!t[r]){var e=o(g,A);e&&e[r]&&(g[A]=t.value,t={configurable:s in t?t[s]:e[s],enumerable:n in t?t[n]:e[n],writable:!1})}return i(g,A,t)}:i:function(g,t,o){if(C(g),t=I(t),C(o),A)try{return i(g,t,o)}catch(g){}if(\"get\"in o||\"set\"in o)throw new e(\"Accessors not supported\");return\"value\"in o&&(g[t]=o.value),g},It}function nt(){if(BA)return zA;BA=1;var g=z(),A=ot(),t=mg();return zA=g?function(g,C,I){return A.f(g,C,t(1,I))}:function(g,A,t){return g[A]=t,g},zA}function st(){if(SA)return ZA;SA=1;var g=m(),A=x(),t=T(),C=D(),I=OA().f,e=TA(),i=Tg(),o=DA(),n=nt(),s=vA(),r=function(g){var t=function(C,I,e){if(this instanceof t){switch(arguments.length){case 0:return new g;case 1:return new g(C);case 2:return new g(C,I)}return new g(C,I,e)}return A(g,this,arguments)};return t.prototype=g.prototype,t};return ZA=function(A,a){var d,h,l,c,u,p,f,v,b,m=A.target,y=A.global,w=A.stat,x=A.proto,E=y?g:w?g[m]:g[m]&&g[m].prototype,O=y?i:i[m]||n(i,m,{})[m],T=O.prototype;for(c in a)h=!(d=e(y?c:m+(w?\".\":\"#\")+c,A.forced))&&E&&s(E,c),p=O[c],h&&(f=A.dontCallGetSet?(b=I(E,c))&&b.value:E[c]),u=h&&f?f:a[c],(d||x||typeof p!=typeof u)&&(v=A.bind&&h?o(u,g):A.wrap&&h?r(u):x&&C(u)?t(u):u,(A.sham||u&&u.sham||p&&p.sham)&&n(v,\"sham\",!0),n(O,c,v),x&&(s(i,l=m+\"Prototype\")||n(i,l,{}),n(i[l],c,u),A.real&&T&&(d||!T[c])&&n(T,c,u)))},ZA}function rt(){if(GA)return FA;GA=1;var g=Math.ceil,A=Math.floor;return FA=Math.trunc||function(t){var C=+t;return(C>0?A:g)(C)}}function at(){if(jA)return LA;jA=1;var g=rt();return LA=function(A){var t=+A;return t!=t||0===t?0:g(t)},LA}function dt(){if(YA)return VA;YA=1;var g=at(),A=Math.max,t=Math.min;return VA=function(C,I){var e=g(C);return e<0?A(e+I,0):t(e,I)},VA}function ht(){if(QA)return WA;QA=1;var g=at(),A=Math.min;return WA=function(t){var C=g(t);return C>0?A(C,9007199254740991):0}}function lt(){if(KA)return UA;KA=1;var g=ht();return UA=function(A){return g(A.length)}}function ct(){if(XA)return HA;XA=1;var g=Eg(),A=dt(),t=lt(),C=function(C){return function(I,e,i){var o=g(I),n=t(o);if(0===n)return!C&&-1;var s,r=A(i,n);if(C&&e!=e){for(;n>r;)if((s=o[r++])!=s)return!0}else for(;n>r;r++)if((C||r in o)&&o[r]===e)return C||r||0;return!C&&-1}};return HA={includes:C(!0),indexOf:C(!1)}}function ut(){return JA?_A:(JA=1,_A={})}function pt(){if($A)return qA;$A=1;var g=E(),A=vA(),t=Eg(),C=ct().indexOf,I=ut(),e=g([].push);return qA=function(g,i){var o,n=t(g),s=0,r=[];for(o in n)!A(I,o)&&A(n,o)&&e(r,o);for(;i.length>s;)A(n,o=i[s++])&&(~C(r,o)||e(r,o));return r},qA}function ft(){return At?gt:(At=1,gt=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"])}function vt(){if(Ct)return tt;Ct=1;var g=pt(),A=ft();return tt=Object.keys||function(t){return g(t,A)}}var bt,mt,yt,wt,xt,Et,Ot,Tt,Dt,Nt,Rt={};function kt(){return bt||(bt=1,Rt.f=Object.getOwnPropertySymbols),Rt}function Pt(){if(yt)return mt;yt=1;var g=z(),A=E(),t=B(),C=y(),I=vt(),e=kt(),i=bg(),o=fA(),n=yg(),s=Object.assign,r=Object.defineProperty,a=A([].concat);return mt=!s||C(function(){if(g&&1!==s({b:1},s(r({},\"a\",{enumerable:!0,get:function(){r(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var A={},t={},C=Symbol(\"assign detection\"),e=\"abcdefghijklmnopqrst\";return A[C]=7,e.split(\"\").forEach(function(g){t[g]=g}),7!==s({},A)[C]||I(s({},t)).join(\"\")!==e})?function(A,C){for(var s=o(A),r=arguments.length,d=1,h=e.f,l=i.f;r>d;)for(var c,u=n(arguments[d++]),p=h?a(I(u),h(u)):I(u),f=p.length,v=0;f>v;)c=p[v++],g&&!t(l,u,c)||(s[c]=u[c]);return s}:s,mt}function Mt(){return Et?xt:(Et=1,function(){if(wt)return b;wt=1;var g=st(),A=Pt();g({target:\"Object\",stat:!0,arity:2,forced:Object.assign!==A},{assign:A})}(),xt=Tg().Object.assign)}function zt(){return Tt?Ot:(Tt=1,Ot=Mt())}var Bt,Zt,St,Ft,Gt,Lt,jt,Vt,Yt,Wt,Qt,Ut,Kt,Ht,Xt,_t=C(Nt?Dt:(Nt=1,Dt=zt())),Jt={};function qt(){return Zt?Bt:(Zt=1,Bt=E()([].slice))}function $t(){if(Ft)return St;Ft=1;var g=E(),A=Zg(),t=Og(),C=vA(),I=qt(),e=w(),i=Function,o=g([].concat),n=g([].join),s={};return St=e?i.bind:function(g){var e=A(this),r=e.prototype,a=I(arguments,1),d=function(){var A=o(a,I(arguments));return this instanceof d?function(g,A,t){if(!C(s,A)){for(var I=[],e=0;e<A;e++)I[e]=\"a[\"+e+\"]\";s[A]=i(\"C,a\",\"return new C(\"+n(I,\",\")+\")\")}return s[A](g,t)}(e,A.length,A):e.apply(g,A)};return t(r)&&(d.prototype=r),d},St}function gC(){if(jt)return Lt;jt=1;var g=m(),A=Tg();return Lt=function(t,C){var I=A[t+\"Prototype\"],e=I&&I[C];if(e)return e;var i=g[t],o=i&&i.prototype;return o&&o[C]}}function AC(){return Yt?Vt:(Yt=1,function(){if(Gt)return Jt;Gt=1;var g=st(),A=$t();g({target:\"Function\",proto:!0,forced:Function.bind!==A},{bind:A})}(),Vt=gC()(\"Function\",\"bind\"))}function tC(){if(Qt)return Wt;Qt=1;var g=Ng(),A=AC(),t=Function.prototype;return Wt=function(C){var I=C.bind;return C===t||g(t,C)&&I===t.bind?A:I},Wt}function CC(){return Kt?Ut:(Kt=1,Ut=tC())}var IC=C(Xt?Ht:(Xt=1,Ht=CC()));function eC(g,A,t,C){g.beginPath(),g.arc(A,t,C,0,2*Math.PI,!1),g.closePath()}function iC(g,A,t,C,I,e){const i=Math.PI/180;C-2*e<0&&(e=C/2),I-2*e<0&&(e=I/2),g.beginPath(),g.moveTo(A+e,t),g.lineTo(A+C-e,t),g.arc(A+C-e,t+e,e,270*i,360*i,!1),g.lineTo(A+C,t+I-e),g.arc(A+C-e,t+I-e,e,0,90*i,!1),g.lineTo(A+e,t+I),g.arc(A+e,t+I-e,e,90*i,180*i,!1),g.lineTo(A,t+e),g.arc(A+e,t+e,e,180*i,270*i,!1),g.closePath()}function oC(g,A,t,C,I){const e=.5522848,i=C/2*e,o=I/2*e,n=A+C,s=t+I,r=A+C/2,a=t+I/2;g.beginPath(),g.moveTo(A,a),g.bezierCurveTo(A,a-o,r-i,t,r,t),g.bezierCurveTo(r+i,t,n,a-o,n,a),g.bezierCurveTo(n,a+o,r+i,s,r,s),g.bezierCurveTo(r-i,s,A,a+o,A,a),g.closePath()}function nC(g,A,t,C,I){const e=I*(1/3),i=.5522848,o=C/2*i,n=e/2*i,s=A+C,r=t+e,a=A+C/2,d=t+e/2,h=t+(I-e/2),l=t+I;g.beginPath(),g.moveTo(s,d),g.bezierCurveTo(s,d+n,a+o,r,a,r),g.bezierCurveTo(a-o,r,A,d+n,A,d),g.bezierCurveTo(A,d-n,a-o,t,a,t),g.bezierCurveTo(a+o,t,s,d-n,s,d),g.lineTo(s,h),g.bezierCurveTo(s,h+n,a+o,l,a,l),g.bezierCurveTo(a-o,l,A,h+n,A,h),g.lineTo(A,d)}function sC(g,A,t,C,I,e){g.beginPath(),g.moveTo(A,t);const i=e.length,o=C-A,n=I-t,s=n/o;let r=Math.sqrt(o*o+n*n),a=0,d=!0,h=0,l=+e[0];for(;r>=.1;)l=+e[a++%i],l>r&&(l=r),h=Math.sqrt(l*l/(1+s*s)),h=o<0?-h:h,A+=h,t+=s*h,!0===d?g.lineTo(A,t):g.moveTo(A,t),r-=l,d=!d}const rC={circle:eC,dashedLine:sC,database:nC,diamond:function(g,A,t,C){g.beginPath(),g.lineTo(A,t+C),g.lineTo(A+C,t),g.lineTo(A,t-C),g.lineTo(A-C,t),g.closePath()},ellipse:oC,ellipse_vis:oC,hexagon:function(g,A,t,C){g.beginPath();const I=2*Math.PI/6;g.moveTo(A+C,t);for(let e=1;e<6;e++)g.lineTo(A+C*Math.cos(I*e),t+C*Math.sin(I*e));g.closePath()},roundRect:iC,square:function(g,A,t,C){g.beginPath(),g.rect(A-C,t-C,2*C,2*C),g.closePath()},star:function(g,A,t,C){g.beginPath(),t+=.1*(C*=.82);for(let I=0;I<10;I++){const e=I%2==0?1.3*C:.5*C;g.lineTo(A+e*Math.sin(2*I*Math.PI/10),t-e*Math.cos(2*I*Math.PI/10))}g.closePath()},triangle:function(g,A,t,C){g.beginPath(),t+=.275*(C*=1.15);const I=2*C,e=I/2,i=Math.sqrt(3)/6*I,o=Math.sqrt(I*I-e*e);g.moveTo(A,t-(o-i)),g.lineTo(A+e,t+i),g.lineTo(A-e,t+i),g.lineTo(A,t-(o-i)),g.closePath()},triangleDown:function(g,A,t,C){g.beginPath(),t-=.275*(C*=1.15);const I=2*C,e=I/2,i=Math.sqrt(3)/6*I,o=Math.sqrt(I*I-e*e);g.moveTo(A,t+(o-i)),g.lineTo(A+e,t-i),g.lineTo(A-e,t-i),g.lineTo(A,t+(o-i)),g.closePath()}};var aC,dC={exports:{}};var hC,lC,cC,uC,pC,fC,vC,bC,mC,yC,wC,xC,EC,OC,TC,DC,NC,RC,kC,PC,MC,zC=(aC||(aC=1,function(g){function A(g){if(g)return function(g){for(var t in A.prototype)g[t]=A.prototype[t];return g}(g)}g.exports=A,A.prototype.on=A.prototype.addEventListener=function(g,A){return this._callbacks=this._callbacks||{},(this._callbacks[\"$\"+g]=this._callbacks[\"$\"+g]||[]).push(A),this},A.prototype.once=function(g,A){function t(){this.off(g,t),A.apply(this,arguments)}return t.fn=A,this.on(g,t),this},A.prototype.off=A.prototype.removeListener=A.prototype.removeAllListeners=A.prototype.removeEventListener=function(g,A){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var t,C=this._callbacks[\"$\"+g];if(!C)return this;if(1==arguments.length)return delete this._callbacks[\"$\"+g],this;for(var I=0;I<C.length;I++)if((t=C[I])===A||t.fn===A){C.splice(I,1);break}return 0===C.length&&delete this._callbacks[\"$\"+g],this},A.prototype.emit=function(g){this._callbacks=this._callbacks||{};for(var A=new Array(arguments.length-1),t=this._callbacks[\"$\"+g],C=1;C<arguments.length;C++)A[C-1]=arguments[C];if(t){C=0;for(var I=(t=t.slice(0)).length;C<I;++C)t[C].apply(this,A)}return this},A.prototype.listeners=function(g){return this._callbacks=this._callbacks||{},this._callbacks[\"$\"+g]||[]},A.prototype.hasListeners=function(g){return!!this.listeners(g).length}}(dC)),dC.exports),BC=C(zC),ZC={};function SC(){if(lC)return hC;lC=1;var g=O();return hC=Array.isArray||function(A){return\"Array\"===g(A)}}function FC(){if(uC)return cC;uC=1;var g=TypeError;return cC=function(A){if(A>9007199254740991)throw g(\"Maximum allowed index exceeded\");return A},cC}function GC(){if(fC)return pC;fC=1;var g=z(),A=ot(),t=mg();return pC=function(C,I,e){g?A.f(C,I,t(0,e)):C[I]=e},pC}function LC(){if(bC)return vC;bC=1;var g={};return g[mA()(\"toStringTag\")]=\"z\",vC=\"[object z]\"===String(g)}function jC(){if(yC)return mC;yC=1;var g=LC(),A=D(),t=O(),C=mA()(\"toStringTag\"),I=Object,e=\"Arguments\"===t(function(){return arguments}());return mC=g?t:function(g){var i,o,n;return void 0===g?\"Undefined\":null===g?\"Null\":\"string\"==typeof(o=function(g,A){try{return g[A]}catch(g){}}(i=I(g),C))?o:e?t(i):\"Object\"===(n=t(i))&&A(i.callee)?\"Arguments\":n},mC}function VC(){if(xC)return wC;xC=1;var g=E(),A=D(),t=uA(),C=g(Function.toString);return A(t.inspectSource)||(t.inspectSource=function(g){return C(g)}),wC=t.inspectSource}function YC(){if(OC)return EC;OC=1;var g=E(),A=y(),t=D(),C=jC(),I=Dg(),e=VC(),i=function(){},o=I(\"Reflect\",\"construct\"),n=/^\\s*(?:class|function)\\b/,s=g(n.exec),r=!n.test(i),a=function(g){if(!t(g))return!1;try{return o(i,[],g),!0}catch(g){return!1}},d=function(g){if(!t(g))return!1;switch(C(g)){case\"AsyncFunction\":case\"GeneratorFunction\":case\"AsyncGeneratorFunction\":return!1}try{return r||!!s(n,e(g))}catch(g){return!0}};return d.sham=!0,EC=!o||A(function(){var g;return a(a.call)||!a(Object)||!a(function(){g=!0})||g})?d:a}function WC(){if(DC)return TC;DC=1;var g=SC(),A=YC(),t=Og(),C=mA()(\"species\"),I=Array;return TC=function(e){var i;return g(e)&&(i=e.constructor,(A(i)&&(i===I||g(i.prototype))||t(i)&&null===(i=i[C]))&&(i=void 0)),void 0===i?I:i}}function QC(){if(RC)return NC;RC=1;var g=WC();return NC=function(A,t){return new(g(A))(0===t?0:t)}}function UC(){if(PC)return kC;PC=1;var g=y(),A=mA(),t=kg(),C=A(\"species\");return kC=function(A){return t>=51||!g(function(){var g=[];return(g.constructor={})[C]=function(){return{foo:1}},1!==g[A](Boolean).foo})},kC}function KC(){if(MC)return ZC;MC=1;var g=st(),A=y(),t=SC(),C=Og(),I=fA(),e=lt(),i=FC(),o=GC(),n=QC(),s=UC(),r=mA(),a=kg(),d=r(\"isConcatSpreadable\"),h=a>=51||!A(function(){var g=[];return g[d]=!1,g.concat()[0]!==g}),l=function(g){if(!C(g))return!1;var A=g[d];return void 0!==A?!!A:t(g)};return g({target:\"Array\",proto:!0,arity:1,forced:!h||!s(\"concat\")},{concat:function(g){var A,t,C,s,r,a=I(this),d=n(a,0),h=0;for(A=-1,C=arguments.length;A<C;A++)if(l(r=-1===A?a:arguments[A]))for(s=e(r),i(h+s),t=0;t<s;t++,h++)t in r&&o(d,h,r[t]);else i(h+1),o(d,h++,r);return d.length=h,d}}),ZC}var HC,XC,_C={},JC={};function qC(){if(XC)return HC;XC=1;var g=jC(),A=String;return HC=function(t){if(\"Symbol\"===g(t))throw new TypeError(\"Cannot convert a Symbol value to a string\");return A(t)}}var $C,gI,AI,tI,CI,II,eI,iI={};function oI(){if($C)return iI;$C=1;var g=z(),A=et(),t=ot(),C=it(),I=Eg(),e=vt();return iI.f=g&&!A?Object.defineProperties:function(g,A){C(g);for(var i,o=I(A),n=e(A),s=n.length,r=0;s>r;)t.f(g,i=n[r++],o[i]);return g},iI}function nI(){return AI?gI:(AI=1,gI=Dg()(\"document\",\"documentElement\"))}function sI(){if(CI)return tI;CI=1;var g=pA(),A=bA(),t=g(\"keys\");return tI=function(g){return t[g]||(t[g]=A(g))}}function rI(){if(eI)return II;eI=1;var g,A=it(),t=oI(),C=ft(),I=ut(),e=nI(),i=xA(),o=\"prototype\",n=\"script\",s=sI()(\"IE_PROTO\"),r=function(){},a=function(g){return\"<\"+n+\">\"+g+\"</\"+n+\">\"},d=function(g){g.write(a(\"\")),g.close();var A=g.parentWindow.Object;return g=null,A},h=function(){try{g=new ActiveXObject(\"htmlfile\")}catch(g){}var A,t,I;h=\"undefined\"!=typeof document?document.domain&&g?d(g):(t=i(\"iframe\"),I=\"java\"+n+\":\",t.style.display=\"none\",e.appendChild(t),t.src=String(I),(A=t.contentWindow.document).open(),A.write(a(\"document.F=Object\")),A.close(),A.F):d(g);for(var s=C.length;s--;)delete h[o][C[s]];return h()};return I[s]=!0,II=Object.create||function(g,C){var I;return null!==g?(r[o]=A(g),I=new r,r[o]=null,I[s]=g):I=h(),void 0===C?I:t.f(I,C)}}var aI,dI={};function hI(){if(aI)return dI;aI=1;var g=pt(),A=ft().concat(\"length\",\"prototype\");return dI.f=Object.getOwnPropertyNames||function(t){return g(t,A)},dI}var lI,cI,uI,pI,fI,vI={};function bI(){if(lI)return vI;lI=1;var g=O(),A=Eg(),t=hI().f,C=qt(),I=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];return vI.f=function(e){return I&&\"Window\"===g(e)?function(g){try{return t(g)}catch(g){return C(I)}}(e):t(A(e))},vI}function mI(){if(uI)return cI;uI=1;var g=nt();return cI=function(A,t,C,I){return I&&I.enumerable?A[t]=C:g(A,t,C),A},cI}function yI(){if(fI)return pI;fI=1;var g=ot();return pI=function(A,t,C){return g.f(A,t,C)}}var wI,xI,EI,OI,TI,DI,NI,RI,kI,PI,MI,zI,BI,ZI,SI,FI,GI={};function LI(){if(wI)return GI;wI=1;var g=mA();return GI.f=g,GI}function jI(){if(EI)return xI;EI=1;var g=Tg(),A=vA(),t=LI(),C=ot().f;return xI=function(I){var e=g.Symbol||(g.Symbol={});A(e,I)||C(e,I,{value:t.f(I)})}}function VI(){if(TI)return OI;TI=1;var g=B(),A=Dg(),t=mA(),C=mI();return OI=function(){var I=A(\"Symbol\"),e=I&&I.prototype,i=e&&e.valueOf,o=t(\"toPrimitive\");e&&!e[o]&&C(e,o,function(A){return g(i,this)},{arity:1})}}function YI(){if(NI)return DI;NI=1;var g=LC(),A=jC();return DI=g?{}.toString:function(){return\"[object \"+A(this)+\"]\"}}function WI(){if(kI)return RI;kI=1;var g=LC(),A=ot().f,t=nt(),C=vA(),I=YI(),e=mA()(\"toStringTag\");return RI=function(i,o,n,s){var r=n?i:i&&i.prototype;r&&(C(r,e)||A(r,e,{configurable:!0,value:o}),s&&!g&&t(r,\"toString\",I))},RI}function QI(){if(MI)return PI;MI=1;var g=m(),A=D(),t=g.WeakMap;return PI=A(t)&&/native code/.test(String(t))}function UI(){if(BI)return zI;BI=1;var g,A,t,C=QI(),I=m(),e=Og(),i=nt(),o=vA(),n=uA(),s=sI(),r=ut(),a=\"Object already initialized\",d=I.TypeError,h=I.WeakMap;if(C||n.state){var l=n.state||(n.state=new h);l.get=l.get,l.has=l.has,l.set=l.set,g=function(g,A){if(l.has(g))throw new d(a);return A.facade=g,l.set(g,A),A},A=function(g){return l.get(g)||{}},t=function(g){return l.has(g)}}else{var c=s(\"state\");r[c]=!0,g=function(g,A){if(o(g,c))throw new d(a);return A.facade=g,i(g,c,A),A},A=function(g){return o(g,c)?g[c]:{}},t=function(g){return o(g,c)}}return zI={set:g,get:A,has:t,enforce:function(C){return t(C)?A(C):g(C,{})},getterFor:function(g){return function(t){var C;if(!e(t)||(C=A(t)).type!==g)throw new d(\"Incompatible receiver, \"+g+\" required\");return C}}},zI}function KI(){if(SI)return ZI;SI=1;var g=DA(),A=E(),t=yg(),C=fA(),I=lt(),e=QC(),i=A([].push),o=function(A){var o=1===A,n=2===A,s=3===A,r=4===A,a=6===A,d=7===A,h=5===A||a;return function(l,c,u,p){for(var f,v,b=C(l),m=t(b),y=I(m),w=g(c,u),x=0,E=p||e,O=o?E(l,y):n||d?E(l,0):void 0;y>x;x++)if((h||x in m)&&(v=w(f=m[x],x,b),A))if(o)O[x]=v;else if(v)switch(A){case 3:return!0;case 5:return f;case 6:return x;case 2:i(O,f)}else switch(A){case 4:return!1;case 7:i(O,f)}return a?-1:s||r?r:O}};return ZI={forEach:o(0),map:o(1),filter:o(2),some:o(3),every:o(4),find:o(5),findIndex:o(6),filterReject:o(7)}}var HI,XI,_I,JI={};function qI(){return XI?HI:(XI=1,HI=Pg()&&!!Symbol.for&&!!Symbol.keyFor)}var $I,ge={};var Ae,te,Ce,Ie={};function ee(){if(te)return Ae;te=1;var g=E(),A=SC(),t=D(),C=O(),I=qC(),e=g([].push);return Ae=function(g){if(t(g))return g;if(A(g)){for(var i=g.length,o=[],n=0;n<i;n++){var s=g[n];\"string\"==typeof s?e(o,s):\"number\"!=typeof s&&\"Number\"!==C(s)&&\"String\"!==C(s)||e(o,I(s))}var r=o.length,a=!0;return function(g,t){if(a)return a=!1,t;if(A(this))return t;for(var C=0;C<r;C++)if(o[C]===g)return t}}},Ae}function ie(){if(Ce)return Ie;Ce=1;var g=st(),A=Dg(),t=x(),C=B(),I=E(),e=y(),i=D(),o=zg(),n=qt(),s=ee(),r=Pg(),a=String,d=A(\"JSON\",\"stringify\"),h=I(/./.exec),l=I(\"\".charAt),c=I(\"\".charCodeAt),u=I(\"\".replace),p=I(1.1.toString),f=/[\\uD800-\\uDFFF]/g,v=/^[\\uD800-\\uDBFF]$/,b=/^[\\uDC00-\\uDFFF]$/,m=!r||e(function(){var g=A(\"Symbol\")(\"stringify detection\");return\"[null]\"!==d([g])||\"{}\"!==d({a:g})||\"{}\"!==d(Object(g))}),w=e(function(){return'\"\\\\udf06\\\\ud834\"'!==d(\"\\udf06\\ud834\")||'\"\\\\udead\"'!==d(\"\\udead\")}),O=function(g,A){var I=n(arguments),e=s(A);if(i(e)||void 0!==g&&!o(g))return I[1]=function(g,A){if(i(e)&&(A=C(e,this,a(g),A)),!o(A))return A},t(d,null,I)},T=function(g,A,t){var C=l(t,A-1),I=l(t,A+1);return h(v,g)&&!h(b,I)||h(b,g)&&!h(v,C)?\"\\\\u\"+p(c(g,0),16):g};return d&&g({target:\"JSON\",stat:!0,arity:3,forced:m||w},{stringify:function(g,A,C){var I=n(arguments),e=t(m?O:d,null,I);return w&&\"string\"==typeof e?u(e,f,T):e}}),Ie}var oe,ne,se={};function re(){return ne||(ne=1,function(){if(FI)return JC;FI=1;var g=st(),A=m(),t=B(),C=E(),I=lA(),e=z(),i=Pg(),o=y(),n=vA(),s=Ng(),r=it(),a=Eg(),d=wA(),h=qC(),l=mg(),c=rI(),u=vt(),p=hI(),f=bI(),v=kt(),b=OA(),w=ot(),x=oI(),O=bg(),T=mI(),D=yI(),N=pA(),R=sI(),k=ut(),P=bA(),M=mA(),Z=LI(),S=jI(),F=VI(),G=WI(),L=UI(),j=KI().forEach,V=R(\"hidden\"),Y=\"Symbol\",W=\"prototype\",Q=L.set,U=L.getterFor(Y),K=Object[W],H=A.Symbol,X=H&&H[W],_=A.RangeError,J=A.TypeError,q=A.QObject,$=b.f,gg=w.f,Ag=f.f,tg=O.f,Cg=C([].push),Ig=N(\"symbols\"),eg=N(\"op-symbols\"),ig=N(\"wks\"),og=!q||!q[W]||!q[W].findChild,ng=function(g,A,t){var C=$(K,A);C&&delete K[A],gg(g,A,t),C&&g!==K&&gg(K,A,C)},sg=e&&o(function(){return 7!==c(gg({},\"a\",{get:function(){return gg(this,\"a\",{value:7}).a}})).a})?ng:gg,rg=function(g,A){var t=Ig[g]=c(X);return Q(t,{type:Y,tag:g,description:A}),e||(t.description=A),t},ag=function(g,A,t){g===K&&ag(eg,A,t),r(g);var C=d(A);return r(t),n(Ig,C)?(t.enumerable?(n(g,V)&&g[V][C]&&(g[V][C]=!1),t=c(t,{enumerable:l(0,!1)})):(n(g,V)||gg(g,V,l(1,c(null))),g[V][C]=!0),sg(g,C,t)):gg(g,C,t)},dg=function(g,A){r(g);var C=a(A),I=u(C).concat(ug(C));return j(I,function(A){e&&!t(hg,C,A)||ag(g,A,C[A])}),g},hg=function(g){var A=d(g),C=t(tg,this,A);return!(this===K&&n(Ig,A)&&!n(eg,A))&&(!(C||!n(this,A)||!n(Ig,A)||n(this,V)&&this[V][A])||C)},lg=function(g,A){var t=a(g),C=d(A);if(t!==K||!n(Ig,C)||n(eg,C)){var I=$(t,C);return!I||!n(Ig,C)||n(t,V)&&t[V][C]||(I.enumerable=!0),I}},cg=function(g){var A=Ag(a(g)),t=[];return j(A,function(g){n(Ig,g)||n(k,g)||Cg(t,g)}),t},ug=function(g){var A=g===K,t=Ag(A?eg:a(g)),C=[];return j(t,function(g){!n(Ig,g)||A&&!n(K,g)||Cg(C,Ig[g])}),C};i||(H=function(){if(s(X,this))throw new J(\"Symbol is not a constructor\");var g=arguments.length&&void 0!==arguments[0]?h(arguments[0]):void 0,C=P(g),I=function(g){var e=void 0===this?A:this;e===K&&t(I,eg,g),n(e,V)&&n(e[V],C)&&(e[V][C]=!1);var i=l(1,g);try{sg(e,C,i)}catch(g){if(!(g instanceof _))throw g;ng(e,C,i)}};return e&&og&&sg(K,C,{configurable:!0,set:I}),rg(C,g)},T(X=H[W],\"toString\",function(){return U(this).tag}),T(H,\"withoutSetter\",function(g){return rg(P(g),g)}),O.f=hg,w.f=ag,x.f=dg,b.f=lg,p.f=f.f=cg,v.f=ug,Z.f=function(g){return rg(M(g),g)},e&&(D(X,\"description\",{configurable:!0,get:function(){return U(this).description}}),I||T(K,\"propertyIsEnumerable\",hg,{unsafe:!0}))),g({global:!0,constructor:!0,wrap:!0,forced:!i,sham:!i},{Symbol:H}),j(u(ig),function(g){S(g)}),g({target:Y,stat:!0,forced:!i},{useSetter:function(){og=!0},useSimple:function(){og=!1}}),g({target:\"Object\",stat:!0,forced:!i,sham:!e},{create:function(g,A){return void 0===A?c(g):dg(c(g),A)},defineProperty:ag,defineProperties:dg,getOwnPropertyDescriptor:lg}),g({target:\"Object\",stat:!0,forced:!i},{getOwnPropertyNames:cg}),F(),G(H,Y),k[V]=!0}(),function(){if(_I)return JI;_I=1;var g=st(),A=Dg(),t=vA(),C=qC(),I=pA(),e=qI(),i=I(\"string-to-symbol-registry\"),o=I(\"symbol-to-string-registry\");g({target:\"Symbol\",stat:!0,forced:!e},{for:function(g){var I=C(g);if(t(i,I))return i[I];var e=A(\"Symbol\")(I);return i[I]=e,o[e]=I,e}})}(),function(){if($I)return ge;$I=1;var g=st(),A=vA(),t=zg(),C=Bg(),I=pA(),e=qI(),i=I(\"symbol-to-string-registry\");g({target:\"Symbol\",stat:!0,forced:!e},{keyFor:function(g){if(!t(g))throw new TypeError(C(g)+\" is not a symbol\");if(A(i,g))return i[g]}})}(),ie(),function(){if(oe)return se;oe=1;var g=st(),A=Pg(),t=y(),C=kt(),I=fA();g({target:\"Object\",stat:!0,forced:!A||t(function(){C.f(1)})},{getOwnPropertySymbols:function(g){var A=C.f;return A?A(I(g)):[]}})}()),_C}var ae,de={};function he(){return ae||(ae=1,jI()(\"asyncDispose\")),de}var le;var ce,ue={};function pe(){return ce||(ce=1,jI()(\"dispose\")),ue}var fe;var ve;var be,me={};function ye(){return be||(be=1,jI()(\"iterator\")),me}var we;var xe;var Ee;var Oe;var Te;var De;var Ne,Re={};function ke(){if(Ne)return Re;Ne=1;var g=jI(),A=VI();return g(\"toPrimitive\"),A(),Re}var Pe,Me={};var ze;var Be,Ze,Se,Fe={};function Ge(){return Se?Ze:(Se=1,KC(),re(),he(),le||(le=1,jI()(\"asyncIterator\")),pe(),fe||(fe=1,jI()(\"hasInstance\")),ve||(ve=1,jI()(\"isConcatSpreadable\")),ye(),we||(we=1,jI()(\"match\")),xe||(xe=1,jI()(\"matchAll\")),Ee||(Ee=1,jI()(\"replace\")),Oe||(Oe=1,jI()(\"search\")),Te||(Te=1,jI()(\"species\")),De||(De=1,jI()(\"split\")),ke(),function(){if(Pe)return Me;Pe=1;var g=Dg(),A=jI(),t=WI();A(\"toStringTag\"),t(g(\"Symbol\"),\"Symbol\")}(),ze||(ze=1,jI()(\"unscopables\")),function(){if(Be)return Fe;Be=1;var g=m();WI()(g.JSON,\"JSON\",!0)}(),Ze=Tg().Symbol)}var Le,je,Ve,Ye,We,Qe,Ue,Ke,He,Xe,_e,Je,qe,$e,gi,Ai,ti,Ci,Ii,ei,ii,oi,ni,si,ri,ai,di,hi,li,ci,ui,pi,fi,vi,bi,mi={};function yi(){return je?Le:(je=1,Le=function(){})}function wi(){return Ye?Ve:(Ye=1,Ve={})}function xi(){if(Qe)return We;Qe=1;var g=z(),A=vA(),t=Function.prototype,C=g&&Object.getOwnPropertyDescriptor,I=A(t,\"name\"),e=I&&\"something\"===function(){}.name,i=I&&(!g||g&&C(t,\"name\").configurable);return We={EXISTS:I,PROPER:e,CONFIGURABLE:i}}function Ei(){return Ke?Ue:(Ke=1,Ue=!y()(function(){function g(){}return g.prototype.constructor=null,Object.getPrototypeOf(new g)!==g.prototype}))}function Oi(){if(Xe)return He;Xe=1;var g=vA(),A=D(),t=fA(),C=sI(),I=Ei(),e=C(\"IE_PROTO\"),i=Object,o=i.prototype;return He=I?i.getPrototypeOf:function(C){var I=t(C);if(g(I,e))return I[e];var n=I.constructor;return A(n)&&I instanceof n?n.prototype:I instanceof i?o:null},He}function Ti(){if(Je)return _e;Je=1;var g,A,t,C=y(),I=D(),e=Og(),i=rI(),o=Oi(),n=mI(),s=mA(),r=lA(),a=s(\"iterator\"),d=!1;return[].keys&&(\"next\"in(t=[].keys())?(A=o(o(t)))!==Object.prototype&&(g=A):d=!0),!e(g)||C(function(){var A={};return g[a].call(A)!==A})?g={}:r&&(g=i(g)),I(g[a])||n(g,a,function(){return this}),_e={IteratorPrototype:g,BUGGY_SAFARI_ITERATORS:d}}function Di(){if($e)return qe;$e=1;var g=Ti().IteratorPrototype,A=rI(),t=mg(),C=WI(),I=wi(),e=function(){return this};return qe=function(i,o,n,s){var r=o+\" Iterator\";return i.prototype=A(g,{next:t(+!s,n)}),C(i,r,!1,!0),I[r]=e,i},qe}function Ni(){if(Ai)return gi;Ai=1;var g=E(),A=Zg();return gi=function(t,C,I){try{return g(A(Object.getOwnPropertyDescriptor(t,C)[I]))}catch(g){}},gi}function Ri(){if(Ci)return ti;Ci=1;var g=Og();return ti=function(A){return g(A)||null===A}}function ki(){if(ei)return Ii;ei=1;var g=Ri(),A=String,t=TypeError;return Ii=function(C){if(g(C))return C;throw new t(\"Can't set \"+A(C)+\" as a prototype\")}}function Pi(){if(oi)return ii;oi=1;var g=Ni(),A=Og(),t=xg(),C=ki();return ii=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var I,e=!1,i={};try{(I=g(Object.prototype,\"__proto__\",\"set\"))(i,[]),e=i instanceof Array}catch(g){}return function(g,i){return t(g),C(i),A(g)?(e?I(g,i):g.__proto__=i,g):g}}():void 0)}function Mi(){if(si)return ni;si=1;var g=st(),A=B(),t=lA(),C=xi(),I=D(),e=Di(),i=Oi(),o=Pi(),n=WI(),s=nt(),r=mI(),a=mA(),d=wi(),h=Ti(),l=C.PROPER,c=C.CONFIGURABLE,u=h.IteratorPrototype,p=h.BUGGY_SAFARI_ITERATORS,f=a(\"iterator\"),v=\"keys\",b=\"values\",m=\"entries\",y=function(){return this};return ni=function(C,a,h,w,x,E,O){e(h,a,w);var T,D,N,R=function(g){if(g===x&&B)return B;if(!p&&g&&g in M)return M[g];switch(g){case v:case b:case m:return function(){return new h(this,g)}}return function(){return new h(this)}},k=a+\" Iterator\",P=!1,M=C.prototype,z=M[f]||M[\"@@iterator\"]||x&&M[x],B=!p&&z||R(x),Z=\"Array\"===a&&M.entries||z;if(Z&&(T=i(Z.call(new C)))!==Object.prototype&&T.next&&(t||i(T)===u||(o?o(T,u):I(T[f])||r(T,f,y)),n(T,k,!0,!0),t&&(d[k]=y)),l&&x===b&&z&&z.name!==b&&(!t&&c?s(M,\"name\",b):(P=!0,B=function(){return A(z,this)})),x)if(D={values:R(b),keys:E?B:R(v),entries:R(m)},O)for(N in D)(p||P||!(N in M))&&r(M,N,D[N]);else g({target:a,proto:!0,forced:p||P},D);return t&&!O||M[f]===B||r(M,f,B,{name:x}),d[a]=B,D},ni}function zi(){return ai?ri:(ai=1,ri=function(g,A){return{value:g,done:A}})}function Bi(){if(hi)return di;hi=1;var g=Eg(),A=yi(),t=wi(),C=UI(),I=ot().f,e=Mi(),i=zi(),o=lA(),n=z(),s=\"Array Iterator\",r=C.set,a=C.getterFor(s);di=e(Array,\"Array\",function(A,t){r(this,{type:s,target:g(A),index:0,kind:t})},function(){var g=a(this),A=g.target,t=g.index++;if(!A||t>=A.length)return g.target=null,i(void 0,!0);switch(g.kind){case\"keys\":return i(t,!1);case\"values\":return i(A[t],!1)}return i([t,A[t]],!1)},\"values\");var d=t.Arguments=t.Array;if(A(\"keys\"),A(\"values\"),A(\"entries\"),!o&&n&&\"values\"!==d.name)try{I(d,\"name\",{value:\"values\"})}catch(g){}return di}function Zi(){return ci?li:(ci=1,li={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0})}function Si(){if(ui)return mi;ui=1,Bi();var g=Zi(),A=m(),t=WI(),C=wi();for(var I in g)t(A[I],I),C[I]=C.Array;return mi}function Fi(){if(fi)return pi;fi=1;var g=Ge();return Si(),pi=g}var Gi,Li,ji,Vi,Yi,Wi,Qi,Ui,Ki,Hi=C(bi?vi:(bi=1,vi=Fi())),Xi={};function _i(){return ji?Li:(ji=1,function(){if(Gi)return Xi;Gi=1;var g=st(),A=SC(),t=YC(),C=Og(),I=dt(),e=lt(),i=Eg(),o=GC(),n=mA(),s=UC(),r=qt(),a=s(\"slice\"),d=n(\"species\"),h=Array,l=Math.max;g({target:\"Array\",proto:!0,forced:!a},{slice:function(g,n){var s,a,c,u=i(this),p=e(u),f=I(g,p),v=I(void 0===n?p:n,p);if(A(u)&&(s=u.constructor,(t(s)&&(s===h||A(s.prototype))||C(s)&&null===(s=s[d]))&&(s=void 0),s===h||void 0===s))return r(u,f,v);for(a=new(void 0===s?h:s)(l(v-f,0)),c=0;f<v;f++,c++)f in u&&o(a,c,u[f]);return a.length=c,a}})}(),Li=gC()(\"Array\",\"slice\"))}function Ji(){if(Yi)return Vi;Yi=1;var g=Ng(),A=_i(),t=Array.prototype;return Vi=function(C){var I=C.slice;return C===t||g(t,C)&&I===t.slice?A:I},Vi}function qi(){return Qi?Wi:(Qi=1,Wi=Ji())}var $i,go,Ao,to,Co,Io,eo,io,oo,no=C(Ki?Ui:(Ki=1,Ui=qi()));function so(){if(go)return $i;go=1;var g=Dg(),A=E(),t=hI(),C=kt(),I=it(),e=A([].concat);return $i=g(\"Reflect\",\"ownKeys\")||function(g){var A=t.f(I(g)),i=C.f;return i?e(A,i(g)):A},$i}function ro(){return Co?to:(Co=1,Ao||(Ao=1,st()({target:\"Reflect\",stat:!0},{ownKeys:so()})),to=Tg().Reflect.ownKeys)}function ao(){return eo?Io:(eo=1,Io=ro())}var ho,lo,co,uo,po,fo,vo,bo=C(oo?io:(oo=1,io=ao()));function mo(){return co?lo:(co=1,ho||(ho=1,st()({target:\"Array\",stat:!0},{isArray:SC()})),lo=Tg().Array.isArray)}function yo(){return po?uo:(po=1,uo=mo())}var wo,xo,Eo,Oo,To,Do,No,Ro,ko,Po=C(vo?fo:(vo=1,fo=yo())),Mo={};function zo(){return Eo?xo:(Eo=1,function(){if(wo)return Mo;wo=1;var g=st(),A=KI().map;g({target:\"Array\",proto:!0,forced:!UC()(\"map\")},{map:function(g){return A(this,g,arguments.length>1?arguments[1]:void 0)}})}(),xo=gC()(\"Array\",\"map\"))}function Bo(){if(To)return Oo;To=1;var g=Ng(),A=zo(),t=Array.prototype;return Oo=function(C){var I=C.map;return C===t||g(t,C)&&I===t.map?A:I},Oo}function Zo(){return No?Do:(No=1,Do=Bo())}var So,Fo,Go,Lo,jo,Vo,Yo,Wo=C(ko?Ro:(ko=1,Ro=Zo())),Qo={};function Uo(){return Go?Fo:(Go=1,function(){if(So)return Qo;So=1;var g=st(),A=fA(),t=vt();g({target:\"Object\",stat:!0,forced:y()(function(){t(1)})},{keys:function(g){return t(A(g))}})}(),Fo=Tg().Object.keys)}function Ko(){return jo?Lo:(jo=1,Lo=Uo())}var Ho,Xo,_o,Jo,qo,$o,gn,An=C(Yo?Vo:(Yo=1,Vo=Ko())),tn={};function Cn(){return _o?Xo:(_o=1,function(){if(Ho)return tn;Ho=1;var g=st(),A=Date,t=E()(A.prototype.getTime);g({target:\"Date\",stat:!0},{now:function(){return t(new A)}})}(),Xo=Tg().Date.now)}function In(){return qo?Jo:(qo=1,Jo=Cn())}var en,on,nn,sn,rn,an,dn,hn,ln,cn,un,pn,fn,vn=C(gn?$o:(gn=1,$o=In())),bn={};function mn(){if(on)return en;on=1;var g=y();return en=function(A,t){var C=[][A];return!!C&&g(function(){C.call(null,t||function(){return 1},1)})}}function yn(){if(sn)return nn;sn=1;var g=KI().forEach,A=mn()(\"forEach\");return nn=A?[].forEach:function(A){return g(this,A,arguments.length>1?arguments[1]:void 0)},nn}function wn(){return dn?an:(dn=1,function(){if(rn)return bn;rn=1;var g=st(),A=yn();g({target:\"Array\",proto:!0,forced:[].forEach!==A},{forEach:A})}(),an=gC()(\"Array\",\"forEach\"))}function xn(){return ln?hn:(ln=1,hn=wn())}function En(){if(un)return cn;un=1;var g=jC(),A=vA(),t=Ng(),C=xn(),I=Array.prototype,e={DOMTokenList:!0,NodeList:!0};return cn=function(i){var o=i.forEach;return i===I||t(I,i)&&o===I.forEach||A(e,g(i))?C:o},cn}var On,Tn,Dn,Nn,Rn,kn,Pn,Mn,zn,Bn=C(fn?pn:(fn=1,pn=En())),Zn={};function Sn(){return Dn?Tn:(Dn=1,function(){if(On)return Zn;On=1;var g=st(),A=E(),t=SC(),C=A([].reverse),I=[1,2];g({target:\"Array\",proto:!0,forced:String(I)===String(I.reverse())},{reverse:function(){return t(this)&&(this.length=this.length),C(this)}})}(),Tn=gC()(\"Array\",\"reverse\"))}function Fn(){if(Rn)return Nn;Rn=1;var g=Ng(),A=Sn(),t=Array.prototype;return Nn=function(C){var I=C.reverse;return C===t||g(t,C)&&I===t.reverse?A:I},Nn}function Gn(){return Pn?kn:(Pn=1,kn=Fn())}var Ln,jn,Vn,Yn,Wn,Qn,Un,Kn,Hn,Xn,_n,Jn,qn,$n=C(zn?Mn:(zn=1,Mn=Gn())),gs={};function As(){if(jn)return Ln;jn=1;var g=z(),A=SC(),t=TypeError,C=Object.getOwnPropertyDescriptor,I=g&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],\"length\",{writable:!1}).length=1}catch(g){return g instanceof TypeError}}();return Ln=I?function(g,I){if(A(g)&&!C(g,\"length\").writable)throw new t(\"Cannot set read only .length\");return g.length=I}:function(g,A){return g.length=A}}function ts(){if(Yn)return Vn;Yn=1;var g=Bg(),A=TypeError;return Vn=function(t,C){if(!delete t[C])throw new A(\"Cannot delete property \"+g(C)+\" of \"+g(t))}}function Cs(){return Un?Qn:(Un=1,function(){if(Wn)return gs;Wn=1;var g=st(),A=fA(),t=dt(),C=at(),I=lt(),e=As(),i=FC(),o=QC(),n=GC(),s=ts(),r=UC()(\"splice\"),a=Math.max,d=Math.min;g({target:\"Array\",proto:!0,forced:!r},{splice:function(g,r){var h,l,c,u,p,f,v=A(this),b=I(v),m=t(g,b),y=arguments.length;for(0===y?h=l=0:1===y?(h=0,l=b-m):(h=y-2,l=d(a(C(r),0),b-m)),i(b+h-l),c=o(v,l),u=0;u<l;u++)(p=m+u)in v&&n(c,u,v[p]);if(c.length=l,h<l){for(u=m;u<b-l;u++)f=u+h,(p=u+l)in v?v[f]=v[p]:s(v,f);for(u=b;u>b-l+h;u--)s(v,u-1)}else if(h>l)for(u=b-l;u>m;u--)f=u+h-1,(p=u+l-1)in v?v[f]=v[p]:s(v,f);for(u=0;u<h;u++)v[u+m]=arguments[u+2];return e(v,b-l+h),c}})}(),Qn=gC()(\"Array\",\"splice\"))}function Is(){if(Hn)return Kn;Hn=1;var g=Ng(),A=Cs(),t=Array.prototype;return Kn=function(C){var I=C.splice;return C===t||g(t,C)&&I===t.splice?A:I},Kn}function es(){return _n?Xn:(_n=1,Xn=Is())}var is,os,ns,ss=C(qn?Jn:(qn=1,Jn=es())),rs={};function as(){return ns?os:(ns=1,function(){if(is)return rs;is=1;var g=st(),A=ct().includes,t=y(),C=yi();g({target:\"Array\",proto:!0,forced:t(function(){return!Array(1).includes()})},{includes:function(g){return A(this,g,arguments.length>1?arguments[1]:void 0)}}),C(\"includes\")}(),os=gC()(\"Array\",\"includes\"))}var ds,hs,ls,cs,us,ps,fs,vs,bs,ms,ys,ws,xs,Es,Os,Ts={};function Ds(){if(hs)return ds;hs=1;var g=Og(),A=O(),t=mA()(\"match\");return ds=function(C){var I;return g(C)&&(void 0!==(I=C[t])?!!I:\"RegExp\"===A(C))},ds}function Ns(){if(cs)return ls;cs=1;var g=Ds(),A=TypeError;return ls=function(t){if(g(t))throw new A(\"The method doesn't accept regular expressions\");return t},ls}function Rs(){if(ps)return us;ps=1;var g=mA()(\"match\");return us=function(A){var t=/./;try{\"/./\"[A](t)}catch(C){try{return t[g]=!1,\"/./\"[A](t)}catch(g){}}return!1}}function ks(){return bs?vs:(bs=1,function(){if(fs)return Ts;fs=1;var g=st(),A=E(),t=Ns(),C=xg(),I=qC(),e=Rs(),i=A(\"\".indexOf);g({target:\"String\",proto:!0,forced:!e(\"includes\")},{includes:function(g){return!!~i(I(C(this)),I(t(g)),arguments.length>1?arguments[1]:void 0)}})}(),vs=gC()(\"String\",\"includes\"))}function Ps(){if(ys)return ms;ys=1;var g=Ng(),A=as(),t=ks(),C=Array.prototype,I=String.prototype;return ms=function(e){var i=e.includes;return e===C||g(C,e)&&i===C.includes?A:\"string\"==typeof e||e===I||g(I,e)&&i===I.includes?t:i},ms}function Ms(){return xs?ws:(xs=1,ws=Ps())}var zs,Bs,Zs,Ss,Fs,Gs,Ls,js=C(Os?Es:(Os=1,Es=Ms())),Vs={};function Ys(){return Zs?Bs:(Zs=1,function(){if(zs)return Vs;zs=1;var g=st(),A=y(),t=fA(),C=Oi(),I=Ei();g({target:\"Object\",stat:!0,forced:A(function(){C(1)}),sham:!I},{getPrototypeOf:function(g){return C(t(g))}})}(),Bs=Tg().Object.getPrototypeOf)}function Ws(){return Fs?Ss:(Fs=1,Ss=Ys())}var Qs,Us,Ks,Hs,Xs,_s,Js,qs,$s=C(Ls?Gs:(Ls=1,Gs=Ws()));function gr(){return Us?Qs:(Us=1,KC(),Qs=gC()(\"Array\",\"concat\"))}function Ar(){if(Hs)return Ks;Hs=1;var g=Ng(),A=gr(),t=Array.prototype;return Ks=function(C){var I=C.concat;return C===t||g(t,C)&&I===t.concat?A:I},Ks}function tr(){return _s?Xs:(_s=1,Xs=Ar())}var Cr,Ir,er,ir,or,nr,sr,rr,ar,dr=C(qs?Js:(qs=1,Js=tr())),hr={};function lr(){return er?Ir:(er=1,function(){if(Cr)return hr;Cr=1;var g=st(),A=KI().filter;g({target:\"Array\",proto:!0,forced:!UC()(\"filter\")},{filter:function(g){return A(this,g,arguments.length>1?arguments[1]:void 0)}})}(),Ir=gC()(\"Array\",\"filter\"))}function cr(){if(or)return ir;or=1;var g=Ng(),A=lr(),t=Array.prototype;return ir=function(C){var I=C.filter;return C===t||g(t,C)&&I===t.filter?A:I},ir}function ur(){return sr?nr:(sr=1,nr=cr())}var pr,fr,vr,br,mr,yr,wr,xr,Er,Or=C(ar?rr:(ar=1,rr=ur())),Tr={};function Dr(){if(fr)return pr;fr=1;var g=z(),A=y(),t=E(),C=Oi(),I=vt(),e=Eg(),i=t(bg().f),o=t([].push),n=g&&A(function(){var g=Object.create(null);return g[2]=2,!i(g,2)}),s=function(A){return function(t){for(var s,r=e(t),a=I(r),d=n&&null===C(r),h=a.length,l=0,c=[];h>l;)s=a[l++],g&&!(d?s in r:i(r,s))||o(c,A?[s,r[s]]:r[s]);return c}};return pr={entries:s(!0),values:s(!1)}}function Nr(){return mr?br:(mr=1,function(){if(vr)return Tr;vr=1;var g=st(),A=Dr().values;g({target:\"Object\",stat:!0},{values:function(g){return A(g)}})}(),br=Tg().Object.values)}function Rr(){return wr?yr:(wr=1,yr=Nr())}var kr,Pr,Mr,zr,Br,Zr,Sr,Fr,Gr,Lr,jr,Vr,Yr,Wr=C(Er?xr:(Er=1,xr=Rr())),Qr={};function Ur(){return Pr?kr:(Pr=1,kr=\"\\t\\n\\v\\f\\r \u00A0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\\u2028\\u2029\\ufeff\")}function Kr(){if(zr)return Mr;zr=1;var g=E(),A=xg(),t=qC(),C=Ur(),I=g(\"\".replace),e=RegExp(\"^[\"+C+\"]+\"),i=RegExp(\"(^|[^\"+C+\"])[\"+C+\"]+$\"),o=function(g){return function(C){var o=t(A(C));return 1&g&&(o=I(o,e,\"\")),2&g&&(o=I(o,i,\"$1\")),o}};return Mr={start:o(1),end:o(2),trim:o(3)}}function Hr(){if(Zr)return Br;Zr=1;var g=m(),A=y(),t=E(),C=qC(),I=Kr().trim,e=Ur(),i=g.parseInt,o=g.Symbol,n=o&&o.iterator,s=/^[+-]?0x/i,r=t(s.exec),a=8!==i(e+\"08\")||22!==i(e+\"0x16\")||n&&!A(function(){i(Object(n))});return Br=a?function(g,A){var t=I(C(g));return i(t,A>>>0||(r(s,t)?16:10))}:i,Br}function Xr(){return Gr?Fr:(Gr=1,function(){if(Sr)return Qr;Sr=1;var g=st(),A=Hr();g({global:!0,forced:parseInt!==A},{parseInt:A})}(),Fr=Tg().parseInt)}function _r(){return jr?Lr:(jr=1,Lr=Xr())}var Jr,qr,$r,ga,Aa,ta,Ca,Ia,ea,ia=C(Yr?Vr:(Yr=1,Vr=_r())),oa={};function na(){return $r?qr:($r=1,function(){if(Jr)return oa;Jr=1;var g=st(),A=T(),t=ct().indexOf,C=mn(),I=A([].indexOf),e=!!I&&1/I([1],1,-0)<0;g({target:\"Array\",proto:!0,forced:e||!C(\"indexOf\")},{indexOf:function(g){var A=arguments.length>1?arguments[1]:void 0;return e?I(this,g,A)||0:t(this,g,A)}})}(),qr=gC()(\"Array\",\"indexOf\"))}function sa(){if(Aa)return ga;Aa=1;var g=Ng(),A=na(),t=Array.prototype;return ga=function(C){var I=C.indexOf;return C===t||g(t,C)&&I===t.indexOf?A:I},ga}function ra(){return Ca?ta:(Ca=1,ta=sa())}var aa,da,ha,la,ca,ua,pa,fa=C(ea?Ia:(ea=1,Ia=ra()));function va(){if(ha)return da;ha=1,aa||(aa=1,st()({target:\"Object\",stat:!0,sham:!z()},{create:rI()}));var g=Tg().Object;return da=function(A,t){return g.create(A,t)}}function ba(){return ca?la:(ca=1,la=va())}var ma,ya,wa,xa,Ea,Oa,Ta,Da,Na,Ra,ka,Pa,Ma,za=C(pa?ua:(pa=1,ua=ba())),Ba={};function Za(){if(ya)return ma;ya=1;var g=at(),A=qC(),t=xg(),C=RangeError;return ma=function(I){var e=A(t(this)),i=\"\",o=g(I);if(o<0||o===1/0)throw new C(\"Wrong number of repetitions\");for(;o>0;(o>>>=1)&&(e+=e))1&o&&(i+=e);return i}}function Sa(){if(xa)return wa;xa=1;var g=E(),A=ht(),t=qC(),C=Za(),I=xg(),e=g(C),i=g(\"\".slice),o=Math.ceil,n=function(g){return function(C,n,s){var r,a,d=t(I(C)),h=A(n),l=d.length,c=void 0===s?\" \":t(s);return h<=l||\"\"===c?d:((a=e(c,o((r=h-l)/c.length))).length>r&&(a=i(a,0,r)),g?d+a:a+d)}};return wa={start:n(!1),end:n(!0)}}function Fa(){if(Oa)return Ea;Oa=1;var g=E(),A=y(),t=Sa().start,C=RangeError,I=isFinite,e=Math.abs,i=Date.prototype,o=i.toISOString,n=g(i.getTime),s=g(i.getUTCDate),r=g(i.getUTCFullYear),a=g(i.getUTCHours),d=g(i.getUTCMilliseconds),h=g(i.getUTCMinutes),l=g(i.getUTCMonth),c=g(i.getUTCSeconds);return Ea=A(function(){return\"0385-07-25T07:06:39.999Z\"!==o.call(new Date(-50000000000001))})||!A(function(){o.call(new Date(NaN))})?function(){if(!I(n(this)))throw new C(\"Invalid time value\");var g=this,A=r(g),i=d(g),o=A<0?\"-\":A>9999?\"+\":\"\";return o+t(e(A),o?6:4,0)+\"-\"+t(l(g)+1,2,0)+\"-\"+t(s(g),2,0)+\"T\"+t(a(g),2,0)+\":\"+t(h(g),2,0)+\":\"+t(c(g),2,0)+\".\"+t(i,3,0)+\"Z\"}:o}function Ga(){if(Na)return Da;Na=1,function(){if(Ta)return Ba;Ta=1;var g=st(),A=B(),t=fA(),C=yA(),I=Fa(),e=O();g({target:\"Date\",proto:!0,forced:y()(function(){return null!==new Date(NaN).toJSON()||1!==A(Date.prototype.toJSON,{toISOString:function(){return 1}})})},{toJSON:function(g){var i=t(this),o=C(i,\"number\");return\"number\"!=typeof o||isFinite(o)?\"toISOString\"in i||\"Date\"!==e(i)?i.toISOString():A(I,i):null}})}(),ie();var g=Tg(),A=x();return g.JSON||(g.JSON={stringify:JSON.stringify}),Da=function(t,C,I){return A(g.JSON.stringify,null,arguments)},Da}function La(){return ka?Ra:(ka=1,Ra=Ga())}var ja,Va,Ya,Wa,Qa,Ua,Ka,Ha=C(Ma?Pa:(Ma=1,Pa=La())),Xa={},_a={};function Ja(){if(Va)return ja;Va=1;var g=m(),A=Rg(),t=O(),C=function(g){return A.slice(0,g.length)===g};return ja=C(\"Bun/\")?\"BUN\":C(\"Cloudflare-Workers\")?\"CLOUDFLARE\":C(\"Deno/\")?\"DENO\":C(\"Node.js/\")?\"NODE\":g.Bun&&\"string\"==typeof Bun.version?\"BUN\":g.Deno&&\"object\"==typeof Deno.version?\"DENO\":\"process\"===t(g.process)?\"NODE\":g.window&&g.document?\"BROWSER\":\"REST\"}function qa(){if(Wa)return Ya;Wa=1;var g=TypeError;return Ya=function(A,t){if(A<t)throw new g(\"Not enough arguments\");return A}}function $a(){if(Ua)return Qa;Ua=1;var g,A=m(),t=x(),C=D(),I=Ja(),e=Rg(),i=qt(),o=qa(),n=A.Function,s=/MSIE .\\./.test(e)||\"BUN\"===I&&((g=A.Bun.version.split(\".\")).length<3||\"0\"===g[0]&&(g[1]<3||\"3\"===g[1]&&\"0\"===g[2]));return Qa=function(g,A){var I=A?2:1;return s?function(e,s){var r=o(arguments.length,1)>I,a=C(e)?e:n(e),d=r?i(arguments,I):[],h=r?function(){t(a,this,d)}:a;return A?g(h,s):g(h)}:g},Qa}var gd,Ad,td,Cd,Id,ed,id={};function od(){return Ad||(Ad=1,function(){if(Ka)return _a;Ka=1;var g=st(),A=m(),t=$a()(A.setInterval,!0);g({global:!0,bind:!0,forced:A.setInterval!==t},{setInterval:t})}(),function(){if(gd)return id;gd=1;var g=st(),A=m(),t=$a()(A.setTimeout,!0);g({global:!0,bind:!0,forced:A.setTimeout!==t},{setTimeout:t})}()),Xa}function nd(){return Cd?td:(Cd=1,od(),td=Tg().setTimeout)}var sd,rd,ad,dd,hd,ld,cd,ud,pd,fd,vd,bd=C(ed?Id:(ed=1,Id=nd())),md={};function yd(){if(rd)return sd;rd=1;var g=fA(),A=dt(),t=lt();return sd=function(C){for(var I=g(this),e=t(I),i=arguments.length,o=A(i>1?arguments[1]:void 0,e),n=i>2?arguments[2]:void 0,s=void 0===n?e:A(n,e);s>o;)I[o++]=C;return I},sd}function wd(){return hd?dd:(hd=1,function(){if(ad)return md;ad=1;var g=st(),A=yd(),t=yi();g({target:\"Array\",proto:!0},{fill:A}),t(\"fill\")}(),dd=gC()(\"Array\",\"fill\"))}function xd(){if(cd)return ld;cd=1;var g=Ng(),A=wd(),t=Array.prototype;return ld=function(C){var I=C.fill;return C===t||g(t,C)&&I===t.fill?A:I},ld}function Ed(){return pd?ud:(pd=1,ud=xd())}var Od,Td=C(vd?fd:(vd=1,fd=Ed()));\n/*! Hammer.JS - v2.0.17-rc - 2019-12-16\n * http://naver.github.io/egjs\n *\n * Forked By Naver egjs\n * Copyright (c) hammerjs\n * Licensed under the MIT license */\nfunction Dd(){return Dd=Object.assign||function(g){for(var A=1;A<arguments.length;A++){var t=arguments[A];for(var C in t)Object.prototype.hasOwnProperty.call(t,C)&&(g[C]=t[C])}return g},Dd.apply(this,arguments)}function Nd(g,A){g.prototype=Object.create(A.prototype),g.prototype.constructor=g,g.__proto__=A}function Rd(g){if(void 0===g)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return g}Od=\"function\"!=typeof Object.assign?function(g){if(null==g)throw new TypeError(\"Cannot convert undefined or null to object\");for(var A=Object(g),t=1;t<arguments.length;t++){var C=arguments[t];if(null!=C)for(var I in C)C.hasOwnProperty(I)&&(A[I]=C[I])}return A}:Object.assign;var kd,Pd=Od,Md=[\"\",\"webkit\",\"Moz\",\"MS\",\"ms\",\"o\"],zd=\"undefined\"==typeof document?{style:{}}:document.createElement(\"div\"),Bd=Math.round,Zd=Math.abs,Sd=Date.now;function Fd(g,A){for(var t,C,I=A[0].toUpperCase()+A.slice(1),e=0;e<Md.length;){if((C=(t=Md[e])?t+I:A)in g)return C;e++}}kd=\"undefined\"==typeof window?{}:window;var Gd=Fd(zd.style,\"touchAction\"),Ld=void 0!==Gd;var jd=\"compute\",Vd=\"auto\",Yd=\"manipulation\",Wd=\"none\",Qd=\"pan-x\",Ud=\"pan-y\",Kd=function(){if(!Ld)return!1;var g={},A=kd.CSS&&kd.CSS.supports;return[\"auto\",\"manipulation\",\"pan-y\",\"pan-x\",\"pan-x pan-y\",\"none\"].forEach(function(t){return g[t]=!A||kd.CSS.supports(\"touch-action\",t)}),g}(),Hd=\"ontouchstart\"in kd,Xd=void 0!==Fd(kd,\"PointerEvent\"),_d=Hd&&/mobile|tablet|ip(ad|hone|od)|android/i.test(navigator.userAgent),Jd=\"touch\",qd=\"mouse\",$d=16,gh=24,Ah=[\"x\",\"y\"],th=[\"clientX\",\"clientY\"];function Ch(g,A,t){var C;if(g)if(g.forEach)g.forEach(A,t);else if(void 0!==g.length)for(C=0;C<g.length;)A.call(t,g[C],C,g),C++;else for(C in g)g.hasOwnProperty(C)&&A.call(t,g[C],C,g)}function Ih(g,A){return\"function\"==typeof g?g.apply(A&&A[0]||void 0,A):g}function eh(g,A){return g.indexOf(A)>-1}var ih=function(){function g(g,A){this.manager=g,this.set(A)}var A=g.prototype;return A.set=function(g){g===jd&&(g=this.compute()),Ld&&this.manager.element.style&&Kd[g]&&(this.manager.element.style[Gd]=g),this.actions=g.toLowerCase().trim()},A.update=function(){this.set(this.manager.options.touchAction)},A.compute=function(){var g=[];return Ch(this.manager.recognizers,function(A){Ih(A.options.enable,[A])&&(g=g.concat(A.getTouchAction()))}),function(g){if(eh(g,Wd))return Wd;var A=eh(g,Qd),t=eh(g,Ud);return A&&t?Wd:A||t?A?Qd:Ud:eh(g,Yd)?Yd:Vd}(g.join(\" \"))},A.preventDefaults=function(g){var A=g.srcEvent,t=g.offsetDirection;if(this.manager.session.prevented)A.preventDefault();else{var C=this.actions,I=eh(C,Wd)&&!Kd[Wd],e=eh(C,Ud)&&!Kd[Ud],i=eh(C,Qd)&&!Kd[Qd];if(I){var o=1===g.pointers.length,n=g.distance<2,s=g.deltaTime<250;if(o&&n&&s)return}if(!i||!e)return I||e&&6&t||i&&t&gh?this.preventSrc(A):void 0}},A.preventSrc=function(g){this.manager.session.prevented=!0,g.preventDefault()},g}();function oh(g,A){for(;g;){if(g===A)return!0;g=g.parentNode}return!1}function nh(g){var A=g.length;if(1===A)return{x:Bd(g[0].clientX),y:Bd(g[0].clientY)};for(var t=0,C=0,I=0;I<A;)t+=g[I].clientX,C+=g[I].clientY,I++;return{x:Bd(t/A),y:Bd(C/A)}}function sh(g){for(var A=[],t=0;t<g.pointers.length;)A[t]={clientX:Bd(g.pointers[t].clientX),clientY:Bd(g.pointers[t].clientY)},t++;return{timeStamp:Sd(),pointers:A,center:nh(A),deltaX:g.deltaX,deltaY:g.deltaY}}function rh(g,A,t){t||(t=Ah);var C=A[t[0]]-g[t[0]],I=A[t[1]]-g[t[1]];return Math.sqrt(C*C+I*I)}function ah(g,A,t){t||(t=Ah);var C=A[t[0]]-g[t[0]],I=A[t[1]]-g[t[1]];return 180*Math.atan2(I,C)/Math.PI}function dh(g,A){return g===A?1:Zd(g)>=Zd(A)?g<0?2:4:A<0?8:$d}function hh(g,A,t){return{x:A/g||0,y:t/g||0}}function lh(g,A){var t=g.session,C=A.pointers,I=C.length;t.firstInput||(t.firstInput=sh(A)),I>1&&!t.firstMultiple?t.firstMultiple=sh(A):1===I&&(t.firstMultiple=!1);var e=t.firstInput,i=t.firstMultiple,o=i?i.center:e.center,n=A.center=nh(C);A.timeStamp=Sd(),A.deltaTime=A.timeStamp-e.timeStamp,A.angle=ah(o,n),A.distance=rh(o,n),function(g,A){var t=A.center,C=g.offsetDelta||{},I=g.prevDelta||{},e=g.prevInput||{};1!==A.eventType&&4!==e.eventType||(I=g.prevDelta={x:e.deltaX||0,y:e.deltaY||0},C=g.offsetDelta={x:t.x,y:t.y}),A.deltaX=I.x+(t.x-C.x),A.deltaY=I.y+(t.y-C.y)}(t,A),A.offsetDirection=dh(A.deltaX,A.deltaY);var s,r,a=hh(A.deltaTime,A.deltaX,A.deltaY);A.overallVelocityX=a.x,A.overallVelocityY=a.y,A.overallVelocity=Zd(a.x)>Zd(a.y)?a.x:a.y,A.scale=i?(s=i.pointers,rh((r=C)[0],r[1],th)/rh(s[0],s[1],th)):1,A.rotation=i?function(g,A){return ah(A[1],A[0],th)+ah(g[1],g[0],th)}(i.pointers,C):0,A.maxPointers=t.prevInput?A.pointers.length>t.prevInput.maxPointers?A.pointers.length:t.prevInput.maxPointers:A.pointers.length,function(g,A){var t,C,I,e,i=g.lastInterval||A,o=A.timeStamp-i.timeStamp;if(8!==A.eventType&&(o>25||void 0===i.velocity)){var n=A.deltaX-i.deltaX,s=A.deltaY-i.deltaY,r=hh(o,n,s);C=r.x,I=r.y,t=Zd(r.x)>Zd(r.y)?r.x:r.y,e=dh(n,s),g.lastInterval=A}else t=i.velocity,C=i.velocityX,I=i.velocityY,e=i.direction;A.velocity=t,A.velocityX=C,A.velocityY=I,A.direction=e}(t,A);var d,h=g.element,l=A.srcEvent;oh(d=l.composedPath?l.composedPath()[0]:l.path?l.path[0]:l.target,h)&&(h=d),A.target=h}function ch(g,A,t){var C=t.pointers.length,I=t.changedPointers.length,e=1&A&&C-I===0,i=12&A&&C-I===0;t.isFirst=!!e,t.isFinal=!!i,e&&(g.session={}),t.eventType=A,lh(g,t),g.emit(\"hammer.input\",t),g.recognize(t),g.session.prevInput=t}function uh(g){return g.trim().split(/\\s+/g)}function ph(g,A,t){Ch(uh(A),function(A){g.addEventListener(A,t,!1)})}function fh(g,A,t){Ch(uh(A),function(A){g.removeEventListener(A,t,!1)})}function vh(g){var A=g.ownerDocument||g;return A.defaultView||A.parentWindow||window}var bh=function(){function g(g,A){var t=this;this.manager=g,this.callback=A,this.element=g.element,this.target=g.options.inputTarget,this.domHandler=function(A){Ih(g.options.enable,[g])&&t.handler(A)},this.init()}var A=g.prototype;return A.handler=function(){},A.init=function(){this.evEl&&ph(this.element,this.evEl,this.domHandler),this.evTarget&&ph(this.target,this.evTarget,this.domHandler),this.evWin&&ph(vh(this.element),this.evWin,this.domHandler)},A.destroy=function(){this.evEl&&fh(this.element,this.evEl,this.domHandler),this.evTarget&&fh(this.target,this.evTarget,this.domHandler),this.evWin&&fh(vh(this.element),this.evWin,this.domHandler)},g}();function mh(g,A,t){if(g.indexOf&&!t)return g.indexOf(A);for(var C=0;C<g.length;){if(t&&g[C][t]==A||!t&&g[C]===A)return C;C++}return-1}var yh={pointerdown:1,pointermove:2,pointerup:4,pointercancel:8,pointerout:8},wh={2:Jd,3:\"pen\",4:qd,5:\"kinect\"},xh=\"pointerdown\",Eh=\"pointermove pointerup pointercancel\";kd.MSPointerEvent&&!kd.PointerEvent&&(xh=\"MSPointerDown\",Eh=\"MSPointerMove MSPointerUp MSPointerCancel\");var Oh=function(g){function A(){var t,C=A.prototype;return C.evEl=xh,C.evWin=Eh,(t=g.apply(this,arguments)||this).store=t.manager.session.pointerEvents=[],t}return Nd(A,g),A.prototype.handler=function(g){var A=this.store,t=!1,C=g.type.toLowerCase().replace(\"ms\",\"\"),I=yh[C],e=wh[g.pointerType]||g.pointerType,i=e===Jd,o=mh(A,g.pointerId,\"pointerId\");1&I&&(0===g.button||i)?o<0&&(A.push(g),o=A.length-1):12&I&&(t=!0),o<0||(A[o]=g,this.callback(this.manager,I,{pointers:A,changedPointers:[g],pointerType:e,srcEvent:g}),t&&A.splice(o,1))},A}(bh);function Th(g){return Array.prototype.slice.call(g,0)}function Dh(g,A,t){for(var C=[],I=[],e=0;e<g.length;){var i=A?g[e][A]:g[e];mh(I,i)<0&&C.push(g[e]),I[e]=i,e++}return t&&(C=A?C.sort(function(g,t){return g[A]>t[A]}):C.sort()),C}var Nh={touchstart:1,touchmove:2,touchend:4,touchcancel:8},Rh=function(g){function A(){var t;return A.prototype.evTarget=\"touchstart touchmove touchend touchcancel\",(t=g.apply(this,arguments)||this).targetIds={},t}return Nd(A,g),A.prototype.handler=function(g){var A=Nh[g.type],t=kh.call(this,g,A);t&&this.callback(this.manager,A,{pointers:t[0],changedPointers:t[1],pointerType:Jd,srcEvent:g})},A}(bh);function kh(g,A){var t,C,I=Th(g.touches),e=this.targetIds;if(3&A&&1===I.length)return e[I[0].identifier]=!0,[I,I];var i=Th(g.changedTouches),o=[],n=this.target;if(C=I.filter(function(g){return oh(g.target,n)}),1===A)for(t=0;t<C.length;)e[C[t].identifier]=!0,t++;for(t=0;t<i.length;)e[i[t].identifier]&&o.push(i[t]),12&A&&delete e[i[t].identifier],t++;return o.length?[Dh(C.concat(o),\"identifier\",!0),o]:void 0}var Ph={mousedown:1,mousemove:2,mouseup:4},Mh=function(g){function A(){var t,C=A.prototype;return C.evEl=\"mousedown\",C.evWin=\"mousemove mouseup\",(t=g.apply(this,arguments)||this).pressed=!1,t}return Nd(A,g),A.prototype.handler=function(g){var A=Ph[g.type];1&A&&0===g.button&&(this.pressed=!0),2&A&&1!==g.which&&(A=4),this.pressed&&(4&A&&(this.pressed=!1),this.callback(this.manager,A,{pointers:[g],changedPointers:[g],pointerType:qd,srcEvent:g}))},A}(bh);function zh(g){var A=g.changedPointers[0];if(A.identifier===this.primaryTouch){var t={x:A.clientX,y:A.clientY},C=this.lastTouches;this.lastTouches.push(t);setTimeout(function(){var g=C.indexOf(t);g>-1&&C.splice(g,1)},2500)}}function Bh(g,A){1&g?(this.primaryTouch=A.changedPointers[0].identifier,zh.call(this,A)):12&g&&zh.call(this,A)}function Zh(g){for(var A=g.srcEvent.clientX,t=g.srcEvent.clientY,C=0;C<this.lastTouches.length;C++){var I=this.lastTouches[C],e=Math.abs(A-I.x),i=Math.abs(t-I.y);if(e<=25&&i<=25)return!0}return!1}var Sh=function(){return function(g){function A(A,t){var C;return(C=g.call(this,A,t)||this).handler=function(g,A,t){var I=t.pointerType===Jd,e=t.pointerType===qd;if(!(e&&t.sourceCapabilities&&t.sourceCapabilities.firesTouchEvents)){if(I)Bh.call(Rd(Rd(C)),A,t);else if(e&&Zh.call(Rd(Rd(C)),t))return;C.callback(g,A,t)}},C.touch=new Rh(C.manager,C.handler),C.mouse=new Mh(C.manager,C.handler),C.primaryTouch=null,C.lastTouches=[],C}return Nd(A,g),A.prototype.destroy=function(){this.touch.destroy(),this.mouse.destroy()},A}(bh)}();function Fh(g,A,t){return!!Array.isArray(g)&&(Ch(g,t[A],t),!0)}var Gh=32,Lh=1;function jh(g,A){var t=A.manager;return t?t.get(g):g}function Vh(g){return 16&g?\"cancel\":8&g?\"end\":4&g?\"move\":2&g?\"start\":\"\"}var Yh=function(){function g(g){void 0===g&&(g={}),this.options=Dd({enable:!0},g),this.id=Lh++,this.manager=null,this.state=1,this.simultaneous={},this.requireFail=[]}var A=g.prototype;return A.set=function(g){return Pd(this.options,g),this.manager&&this.manager.touchAction.update(),this},A.recognizeWith=function(g){if(Fh(g,\"recognizeWith\",this))return this;var A=this.simultaneous;return A[(g=jh(g,this)).id]||(A[g.id]=g,g.recognizeWith(this)),this},A.dropRecognizeWith=function(g){return Fh(g,\"dropRecognizeWith\",this)||(g=jh(g,this),delete this.simultaneous[g.id]),this},A.requireFailure=function(g){if(Fh(g,\"requireFailure\",this))return this;var A=this.requireFail;return-1===mh(A,g=jh(g,this))&&(A.push(g),g.requireFailure(this)),this},A.dropRequireFailure=function(g){if(Fh(g,\"dropRequireFailure\",this))return this;g=jh(g,this);var A=mh(this.requireFail,g);return A>-1&&this.requireFail.splice(A,1),this},A.hasRequireFailures=function(){return this.requireFail.length>0},A.canRecognizeWith=function(g){return!!this.simultaneous[g.id]},A.emit=function(g){var A=this,t=this.state;function C(t){A.manager.emit(t,g)}t<8&&C(A.options.event+Vh(t)),C(A.options.event),g.additionalEvent&&C(g.additionalEvent),t>=8&&C(A.options.event+Vh(t))},A.tryEmit=function(g){if(this.canEmit())return this.emit(g);this.state=Gh},A.canEmit=function(){for(var g=0;g<this.requireFail.length;){if(!(33&this.requireFail[g].state))return!1;g++}return!0},A.recognize=function(g){var A=Pd({},g);if(!Ih(this.options.enable,[this,A]))return this.reset(),void(this.state=Gh);56&this.state&&(this.state=1),this.state=this.process(A),30&this.state&&this.tryEmit(A)},A.process=function(g){},A.getTouchAction=function(){},A.reset=function(){},g}(),Wh=function(g){function A(A){var t;return void 0===A&&(A={}),(t=g.call(this,Dd({event:\"tap\",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},A))||this).pTime=!1,t.pCenter=!1,t._timer=null,t._input=null,t.count=0,t}Nd(A,g);var t=A.prototype;return t.getTouchAction=function(){return[Yd]},t.process=function(g){var A=this,t=this.options,C=g.pointers.length===t.pointers,I=g.distance<t.threshold,e=g.deltaTime<t.time;if(this.reset(),1&g.eventType&&0===this.count)return this.failTimeout();if(I&&e&&C){if(4!==g.eventType)return this.failTimeout();var i=!this.pTime||g.timeStamp-this.pTime<t.interval,o=!this.pCenter||rh(this.pCenter,g.center)<t.posThreshold;if(this.pTime=g.timeStamp,this.pCenter=g.center,o&&i?this.count+=1:this.count=1,this._input=g,0===this.count%t.taps)return this.hasRequireFailures()?(this._timer=setTimeout(function(){A.state=8,A.tryEmit()},t.interval),2):8}return Gh},t.failTimeout=function(){var g=this;return this._timer=setTimeout(function(){g.state=Gh},this.options.interval),Gh},t.reset=function(){clearTimeout(this._timer)},t.emit=function(){8===this.state&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))},A}(Yh),Qh=function(g){function A(A){return void 0===A&&(A={}),g.call(this,Dd({pointers:1},A))||this}Nd(A,g);var t=A.prototype;return t.attrTest=function(g){var A=this.options.pointers;return 0===A||g.pointers.length===A},t.process=function(g){var A=this.state,t=g.eventType,C=6&A,I=this.attrTest(g);return C&&(8&t||!I)?16|A:C||I?4&t?8|A:2&A?4|A:2:Gh},A}(Yh);function Uh(g){return g===$d?\"down\":8===g?\"up\":2===g?\"left\":4===g?\"right\":\"\"}var Kh=function(g){function A(A){var t;return void 0===A&&(A={}),(t=g.call(this,Dd({event:\"pan\",threshold:10,pointers:1,direction:30},A))||this).pX=null,t.pY=null,t}Nd(A,g);var t=A.prototype;return t.getTouchAction=function(){var g=this.options.direction,A=[];return 6&g&&A.push(Ud),g&gh&&A.push(Qd),A},t.directionTest=function(g){var A=this.options,t=!0,C=g.distance,I=g.direction,e=g.deltaX,i=g.deltaY;return I&A.direction||(6&A.direction?(I=0===e?1:e<0?2:4,t=e!==this.pX,C=Math.abs(g.deltaX)):(I=0===i?1:i<0?8:$d,t=i!==this.pY,C=Math.abs(g.deltaY))),g.direction=I,t&&C>A.threshold&&I&A.direction},t.attrTest=function(g){return Qh.prototype.attrTest.call(this,g)&&(2&this.state||!(2&this.state)&&this.directionTest(g))},t.emit=function(A){this.pX=A.deltaX,this.pY=A.deltaY;var t=Uh(A.direction);t&&(A.additionalEvent=this.options.event+t),g.prototype.emit.call(this,A)},A}(Qh),Hh=function(g){function A(A){return void 0===A&&(A={}),g.call(this,Dd({event:\"swipe\",threshold:10,velocity:.3,direction:30,pointers:1},A))||this}Nd(A,g);var t=A.prototype;return t.getTouchAction=function(){return Kh.prototype.getTouchAction.call(this)},t.attrTest=function(A){var t,C=this.options.direction;return 30&C?t=A.overallVelocity:6&C?t=A.overallVelocityX:C&gh&&(t=A.overallVelocityY),g.prototype.attrTest.call(this,A)&&C&A.offsetDirection&&A.distance>this.options.threshold&&A.maxPointers===this.options.pointers&&Zd(t)>this.options.velocity&&4&A.eventType},t.emit=function(g){var A=Uh(g.offsetDirection);A&&this.manager.emit(this.options.event+A,g),this.manager.emit(this.options.event,g)},A}(Qh),Xh=function(g){function A(A){return void 0===A&&(A={}),g.call(this,Dd({event:\"pinch\",threshold:0,pointers:2},A))||this}Nd(A,g);var t=A.prototype;return t.getTouchAction=function(){return[Wd]},t.attrTest=function(A){return g.prototype.attrTest.call(this,A)&&(Math.abs(A.scale-1)>this.options.threshold||2&this.state)},t.emit=function(A){if(1!==A.scale){var t=A.scale<1?\"in\":\"out\";A.additionalEvent=this.options.event+t}g.prototype.emit.call(this,A)},A}(Qh),_h=function(g){function A(A){return void 0===A&&(A={}),g.call(this,Dd({event:\"rotate\",threshold:0,pointers:2},A))||this}Nd(A,g);var t=A.prototype;return t.getTouchAction=function(){return[Wd]},t.attrTest=function(A){return g.prototype.attrTest.call(this,A)&&(Math.abs(A.rotation)>this.options.threshold||2&this.state)},A}(Qh),Jh=function(g){function A(A){var t;return void 0===A&&(A={}),(t=g.call(this,Dd({event:\"press\",pointers:1,time:251,threshold:9},A))||this)._timer=null,t._input=null,t}Nd(A,g);var t=A.prototype;return t.getTouchAction=function(){return[Vd]},t.process=function(g){var A=this,t=this.options,C=g.pointers.length===t.pointers,I=g.distance<t.threshold,e=g.deltaTime>t.time;if(this._input=g,!I||!C||12&g.eventType&&!e)this.reset();else if(1&g.eventType)this.reset(),this._timer=setTimeout(function(){A.state=8,A.tryEmit()},t.time);else if(4&g.eventType)return 8;return Gh},t.reset=function(){clearTimeout(this._timer)},t.emit=function(g){8===this.state&&(g&&4&g.eventType?this.manager.emit(this.options.event+\"up\",g):(this._input.timeStamp=Sd(),this.manager.emit(this.options.event,this._input)))},A}(Yh),qh={domEvents:!1,touchAction:jd,enable:!0,inputTarget:null,inputClass:null,cssProps:{userSelect:\"none\",touchSelect:\"none\",touchCallout:\"none\",contentZooming:\"none\",userDrag:\"none\",tapHighlightColor:\"rgba(0,0,0,0)\"}},$h=[[_h,{enable:!1}],[Xh,{enable:!1},[\"rotate\"]],[Hh,{direction:6}],[Kh,{direction:6},[\"swipe\"]],[Wh],[Wh,{event:\"doubletap\",taps:2},[\"tap\"]],[Jh]];function gl(g,A){var t,C=g.element;C.style&&(Ch(g.options.cssProps,function(I,e){t=Fd(C.style,e),A?(g.oldCssProps[t]=C.style[t],C.style[t]=I):C.style[t]=g.oldCssProps[t]||\"\"}),A||(g.oldCssProps={}))}var Al=function(){function g(g,A){var t,C=this;this.options=Pd({},qh,A||{}),this.options.inputTarget=this.options.inputTarget||g,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=g,this.input=new((t=this).options.inputClass||(Xd?Oh:_d?Rh:Hd?Sh:Mh))(t,ch),this.touchAction=new ih(this,this.options.touchAction),gl(this,!0),Ch(this.options.recognizers,function(g){var A=C.add(new g[0](g[1]));g[2]&&A.recognizeWith(g[2]),g[3]&&A.requireFailure(g[3])},this)}var A=g.prototype;return A.set=function(g){return Pd(this.options,g),g.touchAction&&this.touchAction.update(),g.inputTarget&&(this.input.destroy(),this.input.target=g.inputTarget,this.input.init()),this},A.stop=function(g){this.session.stopped=g?2:1},A.recognize=function(g){var A=this.session;if(!A.stopped){var t;this.touchAction.preventDefaults(g);var C=this.recognizers,I=A.curRecognizer;(!I||I&&8&I.state)&&(A.curRecognizer=null,I=null);for(var e=0;e<C.length;)t=C[e],2===A.stopped||I&&t!==I&&!t.canRecognizeWith(I)?t.reset():t.recognize(g),!I&&14&t.state&&(A.curRecognizer=t,I=t),e++}},A.get=function(g){if(g instanceof Yh)return g;for(var A=this.recognizers,t=0;t<A.length;t++)if(A[t].options.event===g)return A[t];return null},A.add=function(g){if(Fh(g,\"add\",this))return this;var A=this.get(g.options.event);return A&&this.remove(A),this.recognizers.push(g),g.manager=this,this.touchAction.update(),g},A.remove=function(g){if(Fh(g,\"remove\",this))return this;var A=this.get(g);if(g){var t=this.recognizers,C=mh(t,A);-1!==C&&(t.splice(C,1),this.touchAction.update())}return this},A.on=function(g,A){if(void 0===g||void 0===A)return this;var t=this.handlers;return Ch(uh(g),function(g){t[g]=t[g]||[],t[g].push(A)}),this},A.off=function(g,A){if(void 0===g)return this;var t=this.handlers;return Ch(uh(g),function(g){A?t[g]&&t[g].splice(mh(t[g],A),1):delete t[g]}),this},A.emit=function(g,A){this.options.domEvents&&function(g,A){var t=document.createEvent(\"Event\");t.initEvent(g,!0,!0),t.gesture=A,A.target.dispatchEvent(t)}(g,A);var t=this.handlers[g]&&this.handlers[g].slice();if(t&&t.length){A.type=g,A.preventDefault=function(){A.srcEvent.preventDefault()};for(var C=0;C<t.length;)t[C](A),C++}},A.destroy=function(){this.element&&gl(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null},g}(),tl={touchstart:1,touchmove:2,touchend:4,touchcancel:8},Cl=function(g){function A(){var t,C=A.prototype;return C.evTarget=\"touchstart\",C.evWin=\"touchstart touchmove touchend touchcancel\",(t=g.apply(this,arguments)||this).started=!1,t}return Nd(A,g),A.prototype.handler=function(g){var A=tl[g.type];if(1===A&&(this.started=!0),this.started){var t=Il.call(this,g,A);12&A&&t[0].length-t[1].length===0&&(this.started=!1),this.callback(this.manager,A,{pointers:t[0],changedPointers:t[1],pointerType:Jd,srcEvent:g})}},A}(bh);function Il(g,A){var t=Th(g.touches),C=Th(g.changedTouches);return 12&A&&(t=Dh(t.concat(C),\"identifier\",!0)),[t,C]}function el(g,A,t){var C=\"DEPRECATED METHOD: \"+A+\"\\n\"+t+\" AT \\n\";return function(){var A=new Error(\"get-stack-trace\"),t=A&&A.stack?A.stack.replace(/^[^\\(]+?[\\n$]/gm,\"\").replace(/^\\s+at\\s+/gm,\"\").replace(/^Object.<anonymous>\\s*\\(/gm,\"{anonymous}()@\"):\"Unknown Stack Trace\",I=window.console&&(window.console.warn||window.console.log);return I&&I.call(window.console,C,t),g.apply(this,arguments)}}var il=el(function(g,A,t){for(var C=Object.keys(A),I=0;I<C.length;)(!t||t&&void 0===g[C[I]])&&(g[C[I]]=A[C[I]]),I++;return g},\"extend\",\"Use `assign`.\"),ol=el(function(g,A){return il(g,A,!0)},\"merge\",\"Use `assign`.\");function nl(g,A,t){var C,I=A.prototype;(C=g.prototype=Object.create(I)).constructor=g,C._super=I,t&&Pd(C,t)}function sl(g,A){return function(){return g.apply(A,arguments)}}var rl=function(){var g=function(g,A){return void 0===A&&(A={}),new Al(g,Dd({recognizers:$h.concat()},A))};return g.VERSION=\"2.0.17-rc\",g.DIRECTION_ALL=30,g.DIRECTION_DOWN=$d,g.DIRECTION_LEFT=2,g.DIRECTION_RIGHT=4,g.DIRECTION_UP=8,g.DIRECTION_HORIZONTAL=6,g.DIRECTION_VERTICAL=gh,g.DIRECTION_NONE=1,g.DIRECTION_DOWN=$d,g.INPUT_START=1,g.INPUT_MOVE=2,g.INPUT_END=4,g.INPUT_CANCEL=8,g.STATE_POSSIBLE=1,g.STATE_BEGAN=2,g.STATE_CHANGED=4,g.STATE_ENDED=8,g.STATE_RECOGNIZED=8,g.STATE_CANCELLED=16,g.STATE_FAILED=Gh,g.Manager=Al,g.Input=bh,g.TouchAction=ih,g.TouchInput=Rh,g.MouseInput=Mh,g.PointerEventInput=Oh,g.TouchMouseInput=Sh,g.SingleTouchInput=Cl,g.Recognizer=Yh,g.AttrRecognizer=Qh,g.Tap=Wh,g.Pan=Kh,g.Swipe=Hh,g.Pinch=Xh,g.Rotate=_h,g.Press=Jh,g.on=ph,g.off=fh,g.each=Ch,g.merge=ol,g.extend=il,g.bindFn=sl,g.assign=Pd,g.inherit=nl,g.bindFn=sl,g.prefixed=Fd,g.toArray=Th,g.inArray=mh,g.uniqueArray=Dh,g.splitStr=uh,g.boolOrFn=Ih,g.hasParent=oh,g.addEventListeners=ph,g.removeEventListeners=fh,g.defaults=Pd({},qh,{preset:$h}),g}();rl.defaults;const al=Hi(\"DELETE\");function dl(){const g=hl(...arguments);return cl(g),g}function hl(){for(var g=arguments.length,A=new Array(g),t=0;t<g;t++)A[t]=arguments[t];if(A.length<2)return A[0];if(A.length>2)return hl(dl(A[0],A[1]),...no(A).call(A,2));const C=A[0],I=A[1];if(C instanceof Date&&I instanceof Date)return C.setTime(I.getTime()),C;for(const g of bo(I))Object.prototype.propertyIsEnumerable.call(I,g)&&(I[g]===al?delete C[g]:null===C[g]||null===I[g]||\"object\"!=typeof C[g]||\"object\"!=typeof I[g]||Po(C[g])||Po(I[g])?C[g]=ll(I[g]):C[g]=hl(C[g],I[g]));return C}function ll(g){return Po(g)?Wo(g).call(g,g=>ll(g)):\"object\"==typeof g&&null!==g?g instanceof Date?new Date(g.getTime()):hl({},g):g}function cl(g){for(const A of An(g))g[A]===al?delete g[A]:\"object\"==typeof g[A]&&null!==g[A]&&cl(g[A])}function ul(){for(var g=arguments.length,A=new Array(g),t=0;t<g;t++)A[t]=arguments[t];return function(g){let[A,t,C]=function(){const g=function(){let g=4022871197;return function(A){const t=A.toString();for(let A=0;A<t.length;A++){g+=t.charCodeAt(A);let C=.02519603282416938*g;g=C>>>0,C-=g,C*=g,g=C>>>0,C-=g,g+=4294967296*C}return 2.3283064365386963e-10*(g>>>0)}}();let A=g(\" \"),t=g(\" \"),C=g(\" \");for(let I=0;I<arguments.length;I++)A-=g(I<0||arguments.length<=I?void 0:arguments[I]),A<0&&(A+=1),t-=g(I<0||arguments.length<=I?void 0:arguments[I]),t<0&&(t+=1),C-=g(I<0||arguments.length<=I?void 0:arguments[I]),C<0&&(C+=1);return[A,t,C]}(g),I=1;const e=()=>{const g=2091639*A+2.3283064365386963e-10*I;return A=t,t=C,C=g-(I=0|g)};return e.uint32=()=>4294967296*e(),e.fract53=()=>e()+11102230246251565e-32*(2097152*e()|0),e.algorithm=\"Alea\",e.seed=g,e.version=\"0.9\",e}(A.length?A:[vn()])}const pl=\"undefined\"!=typeof window?window.Hammer||rl:function(){return function(){const g=()=>{};return{on:g,off:g,destroy:g,emit:g,get:()=>({set:g})}}()};function fl(g){var A;this._cleanupQueue=[],this.active=!1,this._dom={container:g,overlay:document.createElement(\"div\")},this._dom.overlay.classList.add(\"vis-overlay\"),this._dom.container.appendChild(this._dom.overlay),this._cleanupQueue.push(()=>{this._dom.overlay.parentNode.removeChild(this._dom.overlay)});const t=pl(this._dom.overlay);t.on(\"tap\",IC(A=this._onTapOverlay).call(A,this)),this._cleanupQueue.push(()=>{t.destroy()});const C=[\"tap\",\"doubletap\",\"press\",\"pinch\",\"pan\",\"panstart\",\"panmove\",\"panend\"];Bn(C).call(C,g=>{t.on(g,g=>{g.srcEvent.stopPropagation()})}),document&&document.body&&(this._onClick=A=>{(function(g,A){for(;g;){if(g===A)return!0;g=g.parentNode}return!1})(A.target,g)||this.deactivate()},document.body.addEventListener(\"click\",this._onClick),this._cleanupQueue.push(()=>{document.body.removeEventListener(\"click\",this._onClick)})),this._escListener=g=>{(\"key\"in g?\"Escape\"===g.key:27===g.keyCode)&&this.deactivate()}}BC(fl.prototype),fl.current=null,fl.prototype.destroy=function(){this.deactivate();for(const t of $n(g=ss(A=this._cleanupQueue).call(A,0)).call(g)){var g,A;t()}},fl.prototype.activate=function(){fl.current&&fl.current.deactivate(),fl.current=this,this.active=!0,this._dom.overlay.style.display=\"none\",this._dom.container.classList.add(\"vis-active\"),this.emit(\"change\"),this.emit(\"activate\"),document.body.addEventListener(\"keydown\",this._escListener)},fl.prototype.deactivate=function(){this.active=!1,this._dom.overlay.style.display=\"block\",this._dom.container.classList.remove(\"vis-active\"),document.body.removeEventListener(\"keydown\",this._escListener),this.emit(\"change\"),this.emit(\"deactivate\")},fl.prototype._onTapOverlay=function(g){this.activate(),g.srcEvent.stopPropagation()};const vl=/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i,bl=/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i,ml=/^rgb\\( *(1?\\d{1,2}|2[0-4]\\d|25[0-5]) *, *(1?\\d{1,2}|2[0-4]\\d|25[0-5]) *, *(1?\\d{1,2}|2[0-4]\\d|25[0-5]) *\\)$/i,yl=/^rgba\\( *(1?\\d{1,2}|2[0-4]\\d|25[0-5]) *, *(1?\\d{1,2}|2[0-4]\\d|25[0-5]) *, *(1?\\d{1,2}|2[0-4]\\d|25[0-5]) *, *([01]|0?\\.\\d+) *\\)$/i;function wl(g){if(g)for(;!0===g.hasChildNodes();){const A=g.firstChild;A&&(wl(A),g.removeChild(A))}}function xl(g){return g instanceof String||\"string\"==typeof g}function El(g){return\"object\"==typeof g&&null!==g}function Ol(g,A,t,C){let I=!1;!0===C&&(I=null===A[t]&&void 0!==g[t]),I?delete g[t]:g[t]=A[t]}function Tl(g,A){let t=arguments.length>2&&void 0!==arguments[2]&&arguments[2];for(const C in g)if(void 0!==A[C])if(null===A[C]||\"object\"!=typeof A[C])Ol(g,A,C,t);else{const I=g[C],e=A[C];El(I)&&El(e)&&Tl(I,e,t)}}function Dl(g,A,t){let C=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(Po(t))throw new TypeError(\"Arrays are not supported by deepExtend\");for(let I=0;I<g.length;I++){const e=g[I];if(Object.prototype.hasOwnProperty.call(t,e))if(t[e]&&t[e].constructor===Object)void 0===A[e]&&(A[e]={}),A[e].constructor===Object?Rl(A[e],t[e],!1,C):Ol(A,t,e,C);else{if(Po(t[e]))throw new TypeError(\"Arrays are not supported by deepExtend\");Ol(A,t,e,C)}}return A}function Nl(g,A,t){let C=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(Po(t))throw new TypeError(\"Arrays are not supported by deepExtend\");for(const I in t)if(Object.prototype.hasOwnProperty.call(t,I)&&!js(g).call(g,I))if(t[I]&&t[I].constructor===Object)void 0===A[I]&&(A[I]={}),A[I].constructor===Object?Rl(A[I],t[I]):Ol(A,t,I,C);else if(Po(t[I])){A[I]=[];for(let g=0;g<t[I].length;g++)A[I].push(t[I][g])}else Ol(A,t,I,C);return A}function Rl(g,A){let t=arguments.length>2&&void 0!==arguments[2]&&arguments[2],C=arguments.length>3&&void 0!==arguments[3]&&arguments[3];for(const e in A)if(Object.prototype.hasOwnProperty.call(A,e)||!0===t)if(\"object\"==typeof A[e]&&null!==A[e]&&$s(A[e])===Object.prototype)void 0===g[e]?g[e]=Rl({},A[e],t):\"object\"==typeof g[e]&&null!==g[e]&&$s(g[e])===Object.prototype?Rl(g[e],A[e],t):Ol(g,A,e,C);else if(Po(A[e])){var I;g[e]=no(I=A[e]).call(I)}else Ol(g,A,e,C);return g}function kl(g,A){return[...g,A]}function Pl(g){return no(g).call(g)}function Ml(g){return g.getBoundingClientRect().top}function zl(g,A){if(Po(g)){const t=g.length;for(let C=0;C<t;C++)A(g[C],C,g)}else for(const t in g)Object.prototype.hasOwnProperty.call(g,t)&&A(g[t],t,g)}function Bl(g){let A;switch(g.length){case 3:case 4:return A=bl.exec(g),A?{r:ia(A[1]+A[1],16),g:ia(A[2]+A[2],16),b:ia(A[3]+A[3],16)}:null;case 6:case 7:return A=vl.exec(g),A?{r:ia(A[1],16),g:ia(A[2],16),b:ia(A[3],16)}:null;default:return null}}function Zl(g,A){if(js(g).call(g,\"rgba\"))return g;if(js(g).call(g,\"rgb\")){const t=g.substr(fa(g).call(g,\"(\")+1).replace(\")\",\"\").split(\",\");return\"rgba(\"+t[0]+\",\"+t[1]+\",\"+t[2]+\",\"+A+\")\"}{const t=Bl(g);return null==t?g:\"rgba(\"+t.r+\",\"+t.g+\",\"+t.b+\",\"+A+\")\"}}function Sl(g,A,t){var C;return\"#\"+no(C=((1<<24)+(g<<16)+(A<<8)+t).toString(16)).call(C,1)}function Fl(g,A){if(xl(g)){let A=g;if(Yl(A)){var t;const g=Wo(t=A.substr(4).substr(0,A.length-5).split(\",\")).call(t,function(g){return ia(g)});A=Sl(g[0],g[1],g[2])}if(!0===Vl(A)){const g=function(g){const A=Bl(g);if(!A)throw new TypeError(\"'\".concat(g,\"' is not a valid color.\"));return Gl(A.r,A.g,A.b)}(A),t={h:g.h,s:.8*g.s,v:Math.min(1,1.02*g.v)},C={h:g.h,s:Math.min(1,1.25*g.s),v:.8*g.v},I=jl(C.h,C.s,C.v),e=jl(t.h,t.s,t.v);return{background:A,border:I,highlight:{background:e,border:I},hover:{background:e,border:I}}}return{background:A,border:A,highlight:{background:A,border:A},hover:{background:A,border:A}}}return{background:g.background||void 0,border:g.border||void 0,highlight:xl(g.highlight)?{border:g.highlight,background:g.highlight}:{background:g.highlight&&g.highlight.background||void 0,border:g.highlight&&g.highlight.border||void 0},hover:xl(g.hover)?{border:g.hover,background:g.hover}:{border:g.hover&&g.hover.border||void 0,background:g.hover&&g.hover.background||void 0}}}function Gl(g,A,t){g/=255,A/=255,t/=255;const C=Math.min(g,Math.min(A,t)),I=Math.max(g,Math.max(A,t));if(C===I)return{h:0,s:0,v:C};return{h:60*((g===C?3:t===C?1:5)-(g===C?A-t:t===C?g-A:t-g)/(I-C))/360,s:(I-C)/I,v:I}}function Ll(g,A,t){let C,I,e;const i=Math.floor(6*g),o=6*g-i,n=t*(1-A),s=t*(1-o*A),r=t*(1-(1-o)*A);switch(i%6){case 0:C=t,I=r,e=n;break;case 1:C=s,I=t,e=n;break;case 2:C=n,I=t,e=r;break;case 3:C=n,I=s,e=t;break;case 4:C=r,I=n,e=t;break;case 5:C=t,I=n,e=s}return{r:Math.floor(255*C),g:Math.floor(255*I),b:Math.floor(255*e)}}function jl(g,A,t){const C=Ll(g,A,t);return Sl(C.r,C.g,C.b)}function Vl(g){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(g)}function Yl(g){return ml.test(g)}function Wl(g){if(null===g||\"object\"!=typeof g)return null;if(g instanceof Element)return g;const A=za(g);for(const t in g)Object.prototype.hasOwnProperty.call(g,t)&&\"object\"==typeof g[t]&&(A[t]=Wl(g[t]));return A}function Ql(g,A,t){let C=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const I=function(g){return null!=g},e=function(g){return null!==g&&\"object\"==typeof g};if(!e(g))throw new Error(\"Parameter mergeTarget must be an object\");if(!e(A))throw new Error(\"Parameter options must be an object\");if(!I(t))throw new Error(\"Parameter option must have a value\");if(!e(C))throw new Error(\"Parameter globalOptions must be an object\");const i=A[t],o=e(C)&&!function(g){for(const A in g)if(Object.prototype.hasOwnProperty.call(g,A))return!1;return!0}(C)?C[t]:void 0,n=o?o.enabled:void 0;if(void 0===i)return;if(\"boolean\"==typeof i)return e(g[t])||(g[t]={}),void(g[t].enabled=i);if(null===i&&!e(g[t])){if(!I(o))return;g[t]=za(o)}if(!e(i))return;let s=!0;void 0!==i.enabled?s=i.enabled:void 0!==n&&(s=o.enabled),function(g,A,t){e(g[t])||(g[t]={});const C=A[t],I=g[t];for(const g in C)Object.prototype.hasOwnProperty.call(C,g)&&(I[g]=C[g])}(g,A,t),g[t].enabled=s}const Ul={linear:g=>g,easeInQuad:g=>g*g,easeOutQuad:g=>g*(2-g),easeInOutQuad:g=>g<.5?2*g*g:(4-2*g)*g-1,easeInCubic:g=>g*g*g,easeOutCubic:g=>--g*g*g+1,easeInOutCubic:g=>g<.5?4*g*g*g:(g-1)*(2*g-2)*(2*g-2)+1,easeInQuart:g=>g*g*g*g,easeOutQuart:g=>1- --g*g*g*g,easeInOutQuart:g=>g<.5?8*g*g*g*g:1-8*--g*g*g*g,easeInQuint:g=>g*g*g*g*g,easeOutQuint:g=>1+--g*g*g*g*g,easeInOutQuint:g=>g<.5?16*g*g*g*g*g:1+16*--g*g*g*g*g};function Kl(g,A){let t;Po(A)||(A=[A]);for(const C of g)if(C){t=C[A[0]];for(let g=1;g<A.length;g++)t&&(t=t[A[g]]);if(void 0!==t)break}return t}const Hl={black:\"#000000\",navy:\"#000080\",darkblue:\"#00008B\",mediumblue:\"#0000CD\",blue:\"#0000FF\",darkgreen:\"#006400\",green:\"#008000\",teal:\"#008080\",darkcyan:\"#008B8B\",deepskyblue:\"#00BFFF\",darkturquoise:\"#00CED1\",mediumspringgreen:\"#00FA9A\",lime:\"#00FF00\",springgreen:\"#00FF7F\",aqua:\"#00FFFF\",cyan:\"#00FFFF\",midnightblue:\"#191970\",dodgerblue:\"#1E90FF\",lightseagreen:\"#20B2AA\",forestgreen:\"#228B22\",seagreen:\"#2E8B57\",darkslategray:\"#2F4F4F\",limegreen:\"#32CD32\",mediumseagreen:\"#3CB371\",turquoise:\"#40E0D0\",royalblue:\"#4169E1\",steelblue:\"#4682B4\",darkslateblue:\"#483D8B\",mediumturquoise:\"#48D1CC\",indigo:\"#4B0082\",darkolivegreen:\"#556B2F\",cadetblue:\"#5F9EA0\",cornflowerblue:\"#6495ED\",mediumaquamarine:\"#66CDAA\",dimgray:\"#696969\",slateblue:\"#6A5ACD\",olivedrab:\"#6B8E23\",slategray:\"#708090\",lightslategray:\"#778899\",mediumslateblue:\"#7B68EE\",lawngreen:\"#7CFC00\",chartreuse:\"#7FFF00\",aquamarine:\"#7FFFD4\",maroon:\"#800000\",purple:\"#800080\",olive:\"#808000\",gray:\"#808080\",skyblue:\"#87CEEB\",lightskyblue:\"#87CEFA\",blueviolet:\"#8A2BE2\",darkred:\"#8B0000\",darkmagenta:\"#8B008B\",saddlebrown:\"#8B4513\",darkseagreen:\"#8FBC8F\",lightgreen:\"#90EE90\",mediumpurple:\"#9370D8\",darkviolet:\"#9400D3\",palegreen:\"#98FB98\",darkorchid:\"#9932CC\",yellowgreen:\"#9ACD32\",sienna:\"#A0522D\",brown:\"#A52A2A\",darkgray:\"#A9A9A9\",lightblue:\"#ADD8E6\",greenyellow:\"#ADFF2F\",paleturquoise:\"#AFEEEE\",lightsteelblue:\"#B0C4DE\",powderblue:\"#B0E0E6\",firebrick:\"#B22222\",darkgoldenrod:\"#B8860B\",mediumorchid:\"#BA55D3\",rosybrown:\"#BC8F8F\",darkkhaki:\"#BDB76B\",silver:\"#C0C0C0\",mediumvioletred:\"#C71585\",indianred:\"#CD5C5C\",peru:\"#CD853F\",chocolate:\"#D2691E\",tan:\"#D2B48C\",lightgrey:\"#D3D3D3\",palevioletred:\"#D87093\",thistle:\"#D8BFD8\",orchid:\"#DA70D6\",goldenrod:\"#DAA520\",crimson:\"#DC143C\",gainsboro:\"#DCDCDC\",plum:\"#DDA0DD\",burlywood:\"#DEB887\",lightcyan:\"#E0FFFF\",lavender:\"#E6E6FA\",darksalmon:\"#E9967A\",violet:\"#EE82EE\",palegoldenrod:\"#EEE8AA\",lightcoral:\"#F08080\",khaki:\"#F0E68C\",aliceblue:\"#F0F8FF\",honeydew:\"#F0FFF0\",azure:\"#F0FFFF\",sandybrown:\"#F4A460\",wheat:\"#F5DEB3\",beige:\"#F5F5DC\",whitesmoke:\"#F5F5F5\",mintcream:\"#F5FFFA\",ghostwhite:\"#F8F8FF\",salmon:\"#FA8072\",antiquewhite:\"#FAEBD7\",linen:\"#FAF0E6\",lightgoldenrodyellow:\"#FAFAD2\",oldlace:\"#FDF5E6\",red:\"#FF0000\",fuchsia:\"#FF00FF\",magenta:\"#FF00FF\",deeppink:\"#FF1493\",orangered:\"#FF4500\",tomato:\"#FF6347\",hotpink:\"#FF69B4\",coral:\"#FF7F50\",darkorange:\"#FF8C00\",lightsalmon:\"#FFA07A\",orange:\"#FFA500\",lightpink:\"#FFB6C1\",pink:\"#FFC0CB\",gold:\"#FFD700\",peachpuff:\"#FFDAB9\",navajowhite:\"#FFDEAD\",moccasin:\"#FFE4B5\",bisque:\"#FFE4C4\",mistyrose:\"#FFE4E1\",blanchedalmond:\"#FFEBCD\",papayawhip:\"#FFEFD5\",lavenderblush:\"#FFF0F5\",seashell:\"#FFF5EE\",cornsilk:\"#FFF8DC\",lemonchiffon:\"#FFFACD\",floralwhite:\"#FFFAF0\",snow:\"#FFFAFA\",yellow:\"#FFFF00\",lightyellow:\"#FFFFE0\",ivory:\"#FFFFF0\",white:\"#FFFFFF\"};let Xl=class{constructor(){let g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;this.pixelRatio=g,this.generated=!1,this.centerCoordinates={x:144.5,y:144.5},this.r=289*.49,this.color={r:255,g:255,b:255,a:1},this.hueCircle=void 0,this.initialColor={r:255,g:255,b:255,a:1},this.previousColor=void 0,this.applied=!1,this.updateCallback=()=>{},this.closeCallback=()=>{},this._create()}insertTo(g){void 0!==this.hammer&&(this.hammer.destroy(),this.hammer=void 0),this.container=g,this.container.appendChild(this.frame),this._bindHammer(),this._setSize()}setUpdateCallback(g){if(\"function\"!=typeof g)throw new Error(\"Function attempted to set as colorPicker update callback is not a function.\");this.updateCallback=g}setCloseCallback(g){if(\"function\"!=typeof g)throw new Error(\"Function attempted to set as colorPicker closing callback is not a function.\");this.closeCallback=g}_isColorString(g){if(\"string\"==typeof g)return Hl[g]}setColor(g){let A,t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(\"none\"===g)return;const C=this._isColorString(g);if(void 0!==C&&(g=C),!0===xl(g)){if(!0===Yl(g)){const t=g.substr(4).substr(0,g.length-5).split(\",\");A={r:t[0],g:t[1],b:t[2],a:1}}else if(!0===function(g){return yl.test(g)}(g)){const t=g.substr(5).substr(0,g.length-6).split(\",\");A={r:t[0],g:t[1],b:t[2],a:t[3]}}else if(!0===Vl(g)){const t=Bl(g);A={r:t.r,g:t.g,b:t.b,a:1}}}else if(g instanceof Object&&void 0!==g.r&&void 0!==g.g&&void 0!==g.b){const t=void 0!==g.a?g.a:\"1.0\";A={r:g.r,g:g.g,b:g.b,a:t}}if(void 0===A)throw new Error(\"Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: \"+Ha(g));this._setColor(A,t)}show(){void 0!==this.closeCallback&&(this.closeCallback(),this.closeCallback=void 0),this.applied=!1,this.frame.style.display=\"block\",this._generateHueCircle()}_hide(){!0===(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])&&(this.previousColor=_t({},this.color)),!0===this.applied&&this.updateCallback(this.initialColor),this.frame.style.display=\"none\",bd(()=>{void 0!==this.closeCallback&&(this.closeCallback(),this.closeCallback=void 0)},0)}_save(){this.updateCallback(this.color),this.applied=!1,this._hide()}_apply(){this.applied=!0,this.updateCallback(this.color),this._updatePicker(this.color)}_loadLast(){void 0!==this.previousColor?this.setColor(this.previousColor,!1):alert(\"There is no last color to load...\")}_setColor(g){!0===(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])&&(this.initialColor=_t({},g)),this.color=g;const A=Gl(g.r,g.g,g.b),t=2*Math.PI,C=this.r*A.s,I=this.centerCoordinates.x+C*Math.sin(t*A.h),e=this.centerCoordinates.y+C*Math.cos(t*A.h);this.colorPickerSelector.style.left=I-.5*this.colorPickerSelector.clientWidth+\"px\",this.colorPickerSelector.style.top=e-.5*this.colorPickerSelector.clientHeight+\"px\",this._updatePicker(g)}_setOpacity(g){this.color.a=g/100,this._updatePicker(this.color)}_setBrightness(g){const A=Gl(this.color.r,this.color.g,this.color.b);A.v=g/100;const t=Ll(A.h,A.s,A.v);t.a=this.color.a,this.color=t,this._updatePicker()}_updatePicker(){let g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.color;const A=Gl(g.r,g.g,g.b),t=this.colorPickerCanvas.getContext(\"2d\");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)),t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);const C=this.colorPickerCanvas.clientWidth,I=this.colorPickerCanvas.clientHeight;t.clearRect(0,0,C,I),t.putImageData(this.hueCircle,0,0),t.fillStyle=\"rgba(0,0,0,\"+(1-A.v)+\")\",t.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),Td(t).call(t),this.brightnessRange.value=100*A.v,this.opacityRange.value=100*g.a,this.initialColorDiv.style.backgroundColor=\"rgba(\"+this.initialColor.r+\",\"+this.initialColor.g+\",\"+this.initialColor.b+\",\"+this.initialColor.a+\")\",this.newColorDiv.style.backgroundColor=\"rgba(\"+this.color.r+\",\"+this.color.g+\",\"+this.color.b+\",\"+this.color.a+\")\"}_setSize(){this.colorPickerCanvas.style.width=\"100%\",this.colorPickerCanvas.style.height=\"100%\",this.colorPickerCanvas.width=289*this.pixelRatio,this.colorPickerCanvas.height=289*this.pixelRatio}_create(){var g,A,t,C;if(this.frame=document.createElement(\"div\"),this.frame.className=\"vis-color-picker\",this.colorPickerDiv=document.createElement(\"div\"),this.colorPickerSelector=document.createElement(\"div\"),this.colorPickerSelector.className=\"vis-selector\",this.colorPickerDiv.appendChild(this.colorPickerSelector),this.colorPickerCanvas=document.createElement(\"canvas\"),this.colorPickerDiv.appendChild(this.colorPickerCanvas),this.colorPickerCanvas.getContext){const g=this.colorPickerCanvas.getContext(\"2d\");this.pixelRatio=(window.devicePixelRatio||1)/(g.webkitBackingStorePixelRatio||g.mozBackingStorePixelRatio||g.msBackingStorePixelRatio||g.oBackingStorePixelRatio||g.backingStorePixelRatio||1),this.colorPickerCanvas.getContext(\"2d\").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{const g=document.createElement(\"DIV\");g.style.color=\"red\",g.style.fontWeight=\"bold\",g.style.padding=\"10px\",g.innerText=\"Error: your browser does not support HTML canvas\",this.colorPickerCanvas.appendChild(g)}this.colorPickerDiv.className=\"vis-color\",this.opacityDiv=document.createElement(\"div\"),this.opacityDiv.className=\"vis-opacity\",this.brightnessDiv=document.createElement(\"div\"),this.brightnessDiv.className=\"vis-brightness\",this.arrowDiv=document.createElement(\"div\"),this.arrowDiv.className=\"vis-arrow\",this.opacityRange=document.createElement(\"input\");try{this.opacityRange.type=\"range\",this.opacityRange.min=\"0\",this.opacityRange.max=\"100\"}catch(g){}this.opacityRange.value=\"100\",this.opacityRange.className=\"vis-range\",this.brightnessRange=document.createElement(\"input\");try{this.brightnessRange.type=\"range\",this.brightnessRange.min=\"0\",this.brightnessRange.max=\"100\"}catch(g){}this.brightnessRange.value=\"100\",this.brightnessRange.className=\"vis-range\",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);const I=this;this.opacityRange.onchange=function(){I._setOpacity(this.value)},this.opacityRange.oninput=function(){I._setOpacity(this.value)},this.brightnessRange.onchange=function(){I._setBrightness(this.value)},this.brightnessRange.oninput=function(){I._setBrightness(this.value)},this.brightnessLabel=document.createElement(\"div\"),this.brightnessLabel.className=\"vis-label vis-brightness\",this.brightnessLabel.innerText=\"brightness:\",this.opacityLabel=document.createElement(\"div\"),this.opacityLabel.className=\"vis-label vis-opacity\",this.opacityLabel.innerText=\"opacity:\",this.newColorDiv=document.createElement(\"div\"),this.newColorDiv.className=\"vis-new-color\",this.newColorDiv.innerText=\"new\",this.initialColorDiv=document.createElement(\"div\"),this.initialColorDiv.className=\"vis-initial-color\",this.initialColorDiv.innerText=\"initial\",this.cancelButton=document.createElement(\"div\"),this.cancelButton.className=\"vis-button vis-cancel\",this.cancelButton.innerText=\"cancel\",this.cancelButton.onclick=IC(g=this._hide).call(g,this,!1),this.applyButton=document.createElement(\"div\"),this.applyButton.className=\"vis-button vis-apply\",this.applyButton.innerText=\"apply\",this.applyButton.onclick=IC(A=this._apply).call(A,this),this.saveButton=document.createElement(\"div\"),this.saveButton.className=\"vis-button vis-save\",this.saveButton.innerText=\"save\",this.saveButton.onclick=IC(t=this._save).call(t,this),this.loadButton=document.createElement(\"div\"),this.loadButton.className=\"vis-button vis-load\",this.loadButton.innerText=\"load last\",this.loadButton.onclick=IC(C=this._loadLast).call(C,this),this.frame.appendChild(this.colorPickerDiv),this.frame.appendChild(this.arrowDiv),this.frame.appendChild(this.brightnessLabel),this.frame.appendChild(this.brightnessDiv),this.frame.appendChild(this.opacityLabel),this.frame.appendChild(this.opacityDiv),this.frame.appendChild(this.newColorDiv),this.frame.appendChild(this.initialColorDiv),this.frame.appendChild(this.cancelButton),this.frame.appendChild(this.applyButton),this.frame.appendChild(this.saveButton),this.frame.appendChild(this.loadButton)}_bindHammer(){this.drag={},this.pinch={},this.hammer=new pl(this.colorPickerCanvas),this.hammer.get(\"pinch\").set({enable:!0}),this.hammer.on(\"hammer.input\",g=>{g.isFirst&&this._moveSelector(g)}),this.hammer.on(\"tap\",g=>{this._moveSelector(g)}),this.hammer.on(\"panstart\",g=>{this._moveSelector(g)}),this.hammer.on(\"panmove\",g=>{this._moveSelector(g)}),this.hammer.on(\"panend\",g=>{this._moveSelector(g)})}_generateHueCircle(){if(!1===this.generated){const g=this.colorPickerCanvas.getContext(\"2d\");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(g.webkitBackingStorePixelRatio||g.mozBackingStorePixelRatio||g.msBackingStorePixelRatio||g.oBackingStorePixelRatio||g.backingStorePixelRatio||1)),g.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);const A=this.colorPickerCanvas.clientWidth,t=this.colorPickerCanvas.clientHeight;let C,I,e,i;g.clearRect(0,0,A,t),this.centerCoordinates={x:.5*A,y:.5*t},this.r=.49*A;const o=2*Math.PI/360,n=1/360,s=1/this.r;let r;for(e=0;e<360;e++)for(i=0;i<this.r;i++)C=this.centerCoordinates.x+i*Math.sin(o*e),I=this.centerCoordinates.y+i*Math.cos(o*e),r=Ll(e*n,i*s,1),g.fillStyle=\"rgb(\"+r.r+\",\"+r.g+\",\"+r.b+\")\",g.fillRect(C-.5,I-.5,2,2);g.strokeStyle=\"rgba(0,0,0,1)\",g.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),g.stroke(),this.hueCircle=g.getImageData(0,0,A,t)}this.generated=!0}_moveSelector(g){const A=this.colorPickerDiv.getBoundingClientRect(),t=g.center.x-A.left,C=g.center.y-A.top,I=.5*this.colorPickerDiv.clientHeight,e=.5*this.colorPickerDiv.clientWidth,i=t-e,o=C-I,n=Math.atan2(i,o),s=.98*Math.min(Math.sqrt(i*i+o*o),e),r=Math.cos(n)*s+I,a=Math.sin(n)*s+e;this.colorPickerSelector.style.top=r-.5*this.colorPickerSelector.clientHeight+\"px\",this.colorPickerSelector.style.left=a-.5*this.colorPickerSelector.clientWidth+\"px\";let d=n/(2*Math.PI);d=d<0?d+1:d;const h=s/this.r,l=Gl(this.color.r,this.color.g,this.color.b);l.h=d,l.s=h;const c=Ll(l.h,l.s,l.v);c.a=this.color.a,this.color=c,this.initialColorDiv.style.backgroundColor=\"rgba(\"+this.initialColor.r+\",\"+this.initialColor.g+\",\"+this.initialColor.b+\",\"+this.initialColor.a+\")\",this.newColorDiv.style.backgroundColor=\"rgba(\"+this.color.r+\",\"+this.color.g+\",\"+this.color.b+\",\"+this.color.a+\")\"}};function _l(){for(var g=arguments.length,A=new Array(g),t=0;t<g;t++)A[t]=arguments[t];if(A.length<1)throw new TypeError(\"Invalid arguments.\");if(1===A.length)return document.createTextNode(A[0]);{const g=document.createElement(A[0]);return g.appendChild(_l(...no(A).call(A,1))),g}}let Jl,ql=!1;const $l=\"background: #FFeeee; color: #dd0000\";const gc=fl,Ac=class{constructor(g,A,t){let C=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,I=arguments.length>4&&void 0!==arguments[4]?arguments[4]:()=>!1;this.parent=g,this.changedOptions=[],this.container=A,this.allowCreation=!1,this.hideOption=I,this.options={},this.initialized=!1,this.popupCounter=0,this.defaultOptions={enabled:!1,filter:!0,container:void 0,showButton:!0},_t(this.options,this.defaultOptions),this.configureOptions=t,this.moduleOptions={},this.domElements=[],this.popupDiv={},this.popupLimit=5,this.popupHistory={},this.colorPicker=new Xl(C),this.wrapper=void 0}setOptions(g){if(void 0!==g){this.popupHistory={},this._removePopup();let A=!0;if(\"string\"==typeof g)this.options.filter=g;else if(Po(g))this.options.filter=g.join();else if(\"object\"==typeof g){if(null==g)throw new TypeError(\"options cannot be null\");void 0!==g.container&&(this.options.container=g.container),void 0!==Or(g)&&(this.options.filter=Or(g)),void 0!==g.showButton&&(this.options.showButton=g.showButton),void 0!==g.enabled&&(A=g.enabled)}else\"boolean\"==typeof g?(this.options.filter=!0,A=g):\"function\"==typeof g&&(this.options.filter=g,A=!0);!1===Or(this.options)&&(A=!1),this.options.enabled=A}this._clean()}setModuleOptions(g){this.moduleOptions=g,!0===this.options.enabled&&(this._clean(),void 0!==this.options.container&&(this.container=this.options.container),this._create())}_create(){this._clean(),this.changedOptions=[];const g=Or(this.options);let A=0,t=!1;for(const C in this.configureOptions)Object.prototype.hasOwnProperty.call(this.configureOptions,C)&&(this.allowCreation=!1,t=!1,\"function\"==typeof g?(t=g(C,[]),t=t||this._handleObject(this.configureOptions[C],[C],!0)):!0!==g&&-1===fa(g).call(g,C)||(t=!0),!1!==t&&(this.allowCreation=!0,A>0&&this._makeItem([]),this._makeHeader(C),this._handleObject(this.configureOptions[C],[C])),A++);this._makeButton(),this._push()}_push(){this.wrapper=document.createElement(\"div\"),this.wrapper.className=\"vis-configuration-wrapper\",this.container.appendChild(this.wrapper);for(let g=0;g<this.domElements.length;g++)this.wrapper.appendChild(this.domElements[g]);this._showPopupIfNeeded()}_clean(){for(let g=0;g<this.domElements.length;g++)this.wrapper.removeChild(this.domElements[g]);void 0!==this.wrapper&&(this.container.removeChild(this.wrapper),this.wrapper=void 0),this.domElements=[],this._removePopup()}_getValue(g){let A=this.moduleOptions;for(let t=0;t<g.length;t++){if(void 0===A[g[t]]){A=void 0;break}A=A[g[t]]}return A}_makeItem(g){if(!0===this.allowCreation){const I=document.createElement(\"div\");I.className=\"vis-configuration vis-config-item vis-config-s\"+g.length;for(var A=arguments.length,t=new Array(A>1?A-1:0),C=1;C<A;C++)t[C-1]=arguments[C];return Bn(t).call(t,g=>{I.appendChild(g)}),this.domElements.push(I),this.domElements.length}return 0}_makeHeader(g){const A=document.createElement(\"div\");A.className=\"vis-configuration vis-config-header\",A.innerText=g,this._makeItem([],A)}_makeLabel(g,A){let t=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const C=document.createElement(\"div\");if(C.className=\"vis-configuration vis-config-label vis-config-s\"+A.length,!0===t){for(;C.firstChild;)C.removeChild(C.firstChild);C.appendChild(_l(\"i\",\"b\",g))}else C.innerText=g+\":\";return C}_makeDropdown(g,A,t){const C=document.createElement(\"select\");C.className=\"vis-configuration vis-config-select\";let I=0;void 0!==A&&-1!==fa(g).call(g,A)&&(I=fa(g).call(g,A));for(let A=0;A<g.length;A++){const t=document.createElement(\"option\");t.value=g[A],A===I&&(t.selected=\"selected\"),t.innerText=g[A],C.appendChild(t)}const e=this;C.onchange=function(){e._update(this.value,t)};const i=this._makeLabel(t[t.length-1],t);this._makeItem(t,i,C)}_makeRange(g,A,t){const C=g[0],I=g[1],e=g[2],i=g[3],o=document.createElement(\"input\");o.className=\"vis-configuration vis-config-range\";try{o.type=\"range\",o.min=I,o.max=e}catch(g){}o.step=i;let n=\"\",s=0;if(void 0!==A){const g=1.2;A<0&&A*g<I?(o.min=Math.ceil(A*g),s=o.min,n=\"range increased\"):A/g<I&&(o.min=Math.ceil(A/g),s=o.min,n=\"range increased\"),A*g>e&&1!==e&&(o.max=Math.ceil(A*g),s=o.max,n=\"range increased\"),o.value=A}else o.value=C;const r=document.createElement(\"input\");r.className=\"vis-configuration vis-config-rangeinput\",r.value=o.value;const a=this;o.onchange=function(){r.value=this.value,a._update(Number(this.value),t)},o.oninput=function(){r.value=this.value};const d=this._makeLabel(t[t.length-1],t),h=this._makeItem(t,d,o,r);\"\"!==n&&this.popupHistory[h]!==s&&(this.popupHistory[h]=s,this._setupPopup(n,h))}_makeButton(){if(!0===this.options.showButton){const g=document.createElement(\"div\");g.className=\"vis-configuration vis-config-button\",g.innerText=\"generate options\",g.onclick=()=>{this._printOptions()},g.onmouseover=()=>{g.className=\"vis-configuration vis-config-button hover\"},g.onmouseout=()=>{g.className=\"vis-configuration vis-config-button\"},this.optionsContainer=document.createElement(\"div\"),this.optionsContainer.className=\"vis-configuration vis-config-option-container\",this.domElements.push(this.optionsContainer),this.domElements.push(g)}}_setupPopup(g,A){if(!0===this.initialized&&!0===this.allowCreation&&this.popupCounter<this.popupLimit){const t=document.createElement(\"div\");t.id=\"vis-configuration-popup\",t.className=\"vis-configuration-popup\",t.innerText=g,t.onclick=()=>{this._removePopup()},this.popupCounter+=1,this.popupDiv={html:t,index:A}}}_removePopup(){void 0!==this.popupDiv.html&&(this.popupDiv.html.parentNode.removeChild(this.popupDiv.html),clearTimeout(this.popupDiv.hideTimeout),clearTimeout(this.popupDiv.deleteTimeout),this.popupDiv={})}_showPopupIfNeeded(){if(void 0!==this.popupDiv.html){const g=this.domElements[this.popupDiv.index].getBoundingClientRect();this.popupDiv.html.style.left=g.left+\"px\",this.popupDiv.html.style.top=g.top-30+\"px\",document.body.appendChild(this.popupDiv.html),this.popupDiv.hideTimeout=bd(()=>{this.popupDiv.html.style.opacity=0},1500),this.popupDiv.deleteTimeout=bd(()=>{this._removePopup()},1800)}}_makeCheckbox(g,A,t){const C=document.createElement(\"input\");C.type=\"checkbox\",C.className=\"vis-configuration vis-config-checkbox\",C.checked=g,void 0!==A&&(C.checked=A,A!==g&&(\"object\"==typeof g?A!==g.enabled&&this.changedOptions.push({path:t,value:A}):this.changedOptions.push({path:t,value:A})));const I=this;C.onchange=function(){I._update(this.checked,t)};const e=this._makeLabel(t[t.length-1],t);this._makeItem(t,e,C)}_makeTextInput(g,A,t){const C=document.createElement(\"input\");C.type=\"text\",C.className=\"vis-configuration vis-config-text\",C.value=A,A!==g&&this.changedOptions.push({path:t,value:A});const I=this;C.onchange=function(){I._update(this.value,t)};const e=this._makeLabel(t[t.length-1],t);this._makeItem(t,e,C)}_makeColorField(g,A,t){const C=g[1],I=document.createElement(\"div\");\"none\"!==(A=void 0===A?C:A)?(I.className=\"vis-configuration vis-config-colorBlock\",I.style.backgroundColor=A):I.className=\"vis-configuration vis-config-colorBlock none\",A=void 0===A?C:A,I.onclick=()=>{this._showColorPicker(A,I,t)};const e=this._makeLabel(t[t.length-1],t);this._makeItem(t,e,I)}_showColorPicker(g,A,t){A.onclick=function(){},this.colorPicker.insertTo(A),this.colorPicker.show(),this.colorPicker.setColor(g),this.colorPicker.setUpdateCallback(g=>{const C=\"rgba(\"+g.r+\",\"+g.g+\",\"+g.b+\",\"+g.a+\")\";A.style.backgroundColor=C,this._update(C,t)}),this.colorPicker.setCloseCallback(()=>{A.onclick=()=>{this._showColorPicker(g,A,t)}})}_handleObject(g){let A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],t=arguments.length>2&&void 0!==arguments[2]&&arguments[2],C=!1;const I=Or(this.options);let e=!1;for(const i in g)if(Object.prototype.hasOwnProperty.call(g,i)){C=!0;const o=g[i],n=kl(A,i);if(\"function\"==typeof I&&(C=I(i,A),!1===C&&!Po(o)&&\"string\"!=typeof o&&\"boolean\"!=typeof o&&o instanceof Object&&(this.allowCreation=!1,C=this._handleObject(o,n,!0),this.allowCreation=!1===t)),!1!==C){e=!0;const g=this._getValue(n);if(Po(o))this._handleArray(o,g,n);else if(\"string\"==typeof o)this._makeTextInput(o,g,n);else if(\"boolean\"==typeof o)this._makeCheckbox(o,g,n);else if(o instanceof Object){if(!this.hideOption(A,i,this.moduleOptions))if(void 0!==o.enabled){const g=kl(n,\"enabled\"),A=this._getValue(g);if(!0===A){const g=this._makeLabel(i,n,!0);this._makeItem(n,g),e=this._handleObject(o,n)||e}else this._makeCheckbox(o,A,n)}else{const g=this._makeLabel(i,n,!0);this._makeItem(n,g),e=this._handleObject(o,n)||e}}else console.error(\"dont know how to handle\",o,i,n)}}return e}_handleArray(g,A,t){\"string\"==typeof g[0]&&\"color\"===g[0]?(this._makeColorField(g,A,t),g[1]!==A&&this.changedOptions.push({path:t,value:A})):\"string\"==typeof g[0]?(this._makeDropdown(g,A,t),g[0]!==A&&this.changedOptions.push({path:t,value:A})):\"number\"==typeof g[0]&&(this._makeRange(g,A,t),g[0]!==A&&this.changedOptions.push({path:t,value:Number(A)}))}_update(g,A){const t=this._constructOptions(g,A);this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit&&this.parent.body.emitter.emit(\"configChange\",t),this.initialized=!0,this.parent.setOptions(t)}_constructOptions(g,A){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},C=t;g=\"false\"!==(g=\"true\"===g||g)&&g;for(let t=0;t<A.length;t++)\"global\"!==A[t]&&(void 0===C[A[t]]&&(C[A[t]]={}),t!==A.length-1?C=C[A[t]]:C[A[t]]=g);return t}_printOptions(){const g=this.getOptions();for(;this.optionsContainer.firstChild;)this.optionsContainer.removeChild(this.optionsContainer.firstChild);this.optionsContainer.appendChild(_l(\"pre\",\"const options = \"+Ha(g,null,2)))}getOptions(){const g={};for(let A=0;A<this.changedOptions.length;A++)this._constructOptions(this.changedOptions[A].value,this.changedOptions[A].path,g);return g}},tc=pl,Cc=class{constructor(g,A){this.container=g,this.overflowMethod=A||\"cap\",this.x=0,this.y=0,this.padding=5,this.hidden=!1,this.frame=document.createElement(\"div\"),this.frame.className=\"vis-tooltip\",this.container.appendChild(this.frame)}setPosition(g,A){this.x=ia(g),this.y=ia(A)}setText(g){if(g instanceof Element){for(;this.frame.firstChild;)this.frame.removeChild(this.frame.firstChild);this.frame.appendChild(g)}else this.frame.innerText=g}show(g){if(void 0===g&&(g=!0),!0===g){const g=this.frame.clientHeight,A=this.frame.clientWidth,t=this.frame.parentNode.clientHeight,C=this.frame.parentNode.clientWidth;let I=0,e=0;if(\"flip\"==this.overflowMethod){let t=!1,i=!0;this.y-g<this.padding&&(i=!1),this.x+A>C-this.padding&&(t=!0),I=t?this.x-A:this.x,e=i?this.y-g:this.y}else e=this.y-g,e+g+this.padding>t&&(e=t-g-this.padding),e<this.padding&&(e=this.padding),I=this.x,I+A+this.padding>C&&(I=C-A-this.padding),I<this.padding&&(I=this.padding);this.frame.style.left=I+\"px\",this.frame.style.top=e+\"px\",this.frame.style.visibility=\"visible\",this.hidden=!1}else this.hide()}hide(){this.hidden=!0,this.frame.style.left=\"0\",this.frame.style.top=\"0\",this.frame.style.visibility=\"hidden\"}destroy(){this.frame.parentNode.removeChild(this.frame)}},Ic=$l,ec=class g{static validate(A,t,C){ql=!1,Jl=t;let I=t;return void 0!==C&&(I=t[C]),g.parse(A,I,[]),ql}static parse(A,t,C){for(const I in A)Object.prototype.hasOwnProperty.call(A,I)&&g.check(I,A,t,C)}static check(A,t,C,I){if(void 0===C[A]&&void 0===C.__any__)return void g.getSuggestion(A,C,I);let e=A,i=!0;void 0===C[A]&&void 0!==C.__any__&&(e=\"__any__\",i=\"object\"===g.getType(t[A]));let o=C[e];i&&void 0!==o.__type__&&(o=o.__type__),g.checkFields(A,t,C,e,o,I)}static checkFields(A,t,C,I,e,i){const o=function(t){console.error(\"%c\"+t+g.printLocation(i,A),$l)},n=g.getType(t[A]),s=e[n];void 0!==s?\"array\"===g.getType(s)&&-1===fa(s).call(s,t[A])?(o('Invalid option detected in \"'+A+'\". Allowed values are:'+g.print(s)+' not \"'+t[A]+'\". '),ql=!0):\"object\"===n&&\"__any__\"!==I&&(i=kl(i,A),g.parse(t[A],C[I],i)):void 0===e.any&&(o('Invalid type received for \"'+A+'\". Expected: '+g.print(An(e))+\". Received [\"+n+'] \"'+t[A]+'\"'),ql=!0)}static getType(g){const A=typeof g;return\"object\"===A?null===g?\"null\":g instanceof Boolean?\"boolean\":g instanceof Number?\"number\":g instanceof String?\"string\":Po(g)?\"array\":g instanceof Date?\"date\":void 0!==g.nodeType?\"dom\":!0===g._isAMomentObject?\"moment\":\"object\":\"number\"===A?\"number\":\"boolean\"===A?\"boolean\":\"string\"===A?\"string\":void 0===A?\"undefined\":A}static getSuggestion(A,t,C){const I=g.findInOptions(A,t,C,!1),e=g.findInOptions(A,Jl,[],!0);let i;i=void 0!==I.indexMatch?\" in \"+g.printLocation(I.path,A,\"\")+'Perhaps it was incomplete? Did you mean: \"'+I.indexMatch+'\"?\\n\\n':e.distance<=4&&I.distance>e.distance?\" in \"+g.printLocation(I.path,A,\"\")+\"Perhaps it was misplaced? Matching option found at: \"+g.printLocation(e.path,e.closestMatch,\"\"):I.distance<=8?'. Did you mean \"'+I.closestMatch+'\"?'+g.printLocation(I.path,A):\". Did you mean one of these: \"+g.print(An(t))+g.printLocation(C,A),console.error('%cUnknown option detected: \"'+A+'\"'+i,$l),ql=!0}static findInOptions(A,t,C){let I=arguments.length>3&&void 0!==arguments[3]&&arguments[3],e=1e9,i=\"\",o=[];const n=A.toLowerCase();let s;for(const a in t){let d;if(void 0!==t[a].__type__&&!0===I){const I=g.findInOptions(A,t[a],kl(C,a));e>I.distance&&(i=I.closestMatch,o=I.path,e=I.distance,s=I.indexMatch)}else{var r;-1!==fa(r=a.toLowerCase()).call(r,n)&&(s=a),d=g.levenshteinDistance(A,a),e>d&&(i=a,o=Pl(C),e=d)}}return{closestMatch:i,path:o,distance:e,indexMatch:s}}static printLocation(g,A){let t=\"\\n\\n\"+(arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"Problem value found at: \\n\")+\"options = {\\n\";for(let A=0;A<g.length;A++){for(let g=0;g<A+1;g++)t+=\" \";t+=g[A]+\": {\\n\"}for(let A=0;A<g.length+1;A++)t+=\" \";t+=A+\"\\n\";for(let A=0;A<g.length+1;A++){for(let C=0;C<g.length-A;C++)t+=\" \";t+=\"}\\n\"}return t+\"\\n\\n\"}static print(g){return Ha(g).replace(/(\")|(\\[)|(\\])|(,\"__type__\")/g,\"\").replace(/(,)/g,\", \")}static levenshteinDistance(g,A){if(0===g.length)return A.length;if(0===A.length)return g.length;const t=[];let C,I;for(C=0;C<=A.length;C++)t[C]=[C];for(I=0;I<=g.length;I++)t[0][I]=I;for(C=1;C<=A.length;C++)for(I=1;I<=g.length;I++)A.charAt(C-1)==g.charAt(I-1)?t[C][I]=t[C-1][I-1]:t[C][I]=Math.min(t[C-1][I-1]+1,Math.min(t[C][I-1]+1,t[C-1][I]+1));return t[A.length][g.length]}};function ic(g){return ac=g,function(){var g={};dc=0,void(hc=ac.charAt(0)),xc(),\"strict\"===lc&&(g.strict=!0,xc());\"graph\"!==lc&&\"digraph\"!==lc||(g.type=lc,xc());cc===sc.IDENTIFIER&&(g.id=lc,xc());if(\"{\"!=lc)throw Rc(\"Angle bracket { expected\");if(xc(),Ec(g),\"}\"!=lc)throw Rc(\"Angle bracket } expected\");if(xc(),\"\"!==lc)throw Rc(\"End of file expected\");return xc(),delete g.node,delete g.edge,delete g.graph,g}()}var oc={fontsize:\"font.size\",fontcolor:\"font.color\",labelfontcolor:\"font.color\",fontname:\"font.face\",color:[\"color.border\",\"color.background\"],fillcolor:\"color.background\",tooltip:\"title\",labeltooltip:\"title\"},nc=za(oc);nc.color=\"color.color\",nc.style=\"dashes\";var sc={NULL:0,DELIMITER:1,IDENTIFIER:2,UNKNOWN:3},rc={\"{\":!0,\"}\":!0,\"[\":!0,\"]\":!0,\";\":!0,\"=\":!0,\",\":!0,\"->\":!0,\"--\":!0},ac=\"\",dc=0,hc=\"\",lc=\"\",cc=sc.NULL;function uc(){dc++,hc=ac.charAt(dc)}function pc(){return ac.charAt(dc+1)}function fc(g){var A=g.charCodeAt(0);return A<47?35===A||46===A:A<59?A>47:A<91?A>64:A<96?95===A:A<123&&A>96}function vc(g,A){if(g||(g={}),A)for(var t in A)A.hasOwnProperty(t)&&(g[t]=A[t]);return g}function bc(g,A,t){for(var C=A.split(\".\"),I=g;C.length;){var e=C.shift();C.length?(I[e]||(I[e]={}),I=I[e]):I[e]=t}}function mc(g,A){for(var t,C,I=null,e=[g],i=g;i.parent;)e.push(i.parent),i=i.parent;if(i.nodes)for(t=0,C=i.nodes.length;t<C;t++)if(A.id===i.nodes[t].id){I=i.nodes[t];break}for(I||(I={id:A.id},g.node&&(I.attr=vc(I.attr,g.node))),t=e.length-1;t>=0;t--){var o,n=e[t];n.nodes||(n.nodes=[]),-1===fa(o=n.nodes).call(o,I)&&n.nodes.push(I)}A.attr&&(I.attr=vc(I.attr,A.attr))}function yc(g,A){if(g.edges||(g.edges=[]),g.edges.push(A),g.edge){var t=vc({},g.edge);A.attr=vc(t,A.attr)}}function wc(g,A,t,C,I){var e={from:A,to:t,type:C};return g.edge&&(e.attr=vc({},g.edge)),e.attr=vc(e.attr||{},I),null!=I&&I.hasOwnProperty(\"arrows\")&&null!=I.arrows&&(e.arrows={to:{enabled:!0,type:I.arrows.type}},I.arrows=null),e}function xc(){for(cc=sc.NULL,lc=\"\";\" \"===hc||\"\\t\"===hc||\"\\n\"===hc||\"\\r\"===hc;)uc();do{var g=!1;if(\"#\"===hc){for(var A=dc-1;\" \"===ac.charAt(A)||\"\\t\"===ac.charAt(A);)A--;if(\"\\n\"===ac.charAt(A)||\"\"===ac.charAt(A)){for(;\"\"!=hc&&\"\\n\"!=hc;)uc();g=!0}}if(\"/\"===hc&&\"/\"===pc()){for(;\"\"!=hc&&\"\\n\"!=hc;)uc();g=!0}if(\"/\"===hc&&\"*\"===pc()){for(;\"\"!=hc;){if(\"*\"===hc&&\"/\"===pc()){uc(),uc();break}uc()}g=!0}for(;\" \"===hc||\"\\t\"===hc||\"\\n\"===hc||\"\\r\"===hc;)uc()}while(g);if(\"\"!==hc){var t=hc+pc();if(rc[t])return cc=sc.DELIMITER,lc=t,uc(),void uc();if(rc[hc])return cc=sc.DELIMITER,lc=hc,void uc();if(fc(hc)||\"-\"===hc){for(lc+=hc,uc();fc(hc);)lc+=hc,uc();return\"false\"===lc?lc=!1:\"true\"===lc?lc=!0:isNaN(Number(lc))||(lc=Number(lc)),void(cc=sc.IDENTIFIER)}if('\"'===hc){for(uc();\"\"!=hc&&('\"'!=hc||'\"'===hc&&'\"'===pc());)'\"'===hc?(lc+=hc,uc()):\"\\\\\"===hc&&\"n\"===pc()?(lc+=\"\\n\",uc()):lc+=hc,uc();if('\"'!=hc)throw Rc('End of string \" expected');return uc(),void(cc=sc.IDENTIFIER)}for(cc=sc.UNKNOWN;\"\"!=hc;)lc+=hc,uc();throw new SyntaxError('Syntax error in part \"'+kc(lc,30)+'\"')}cc=sc.DELIMITER}function Ec(g){for(;\"\"!==lc&&\"}\"!=lc;)Oc(g),\";\"===lc&&xc()}function Oc(g){var A=Tc(g);if(A)Dc(g,A);else{var t=function(g){if(\"node\"===lc)return xc(),g.node=Nc(),\"node\";if(\"edge\"===lc)return xc(),g.edge=Nc(),\"edge\";if(\"graph\"===lc)return xc(),g.graph=Nc(),\"graph\";return null}(g);if(!t){if(cc!=sc.IDENTIFIER)throw Rc(\"Identifier expected\");var C=lc;if(xc(),\"=\"===lc){if(xc(),cc!=sc.IDENTIFIER)throw Rc(\"Identifier expected\");g[C]=lc,xc()}else!function(g,A){var t={id:A},C=Nc();C&&(t.attr=C);mc(g,t),Dc(g,A)}(g,C)}}}function Tc(g){var A=null;if(\"subgraph\"===lc&&((A={}).type=\"subgraph\",xc(),cc===sc.IDENTIFIER&&(A.id=lc,xc())),\"{\"===lc){if(xc(),A||(A={}),A.parent=g,A.node=g.node,A.edge=g.edge,A.graph=g.graph,Ec(A),\"}\"!=lc)throw Rc(\"Angle bracket } expected\");xc(),delete A.node,delete A.edge,delete A.graph,delete A.parent,g.subgraphs||(g.subgraphs=[]),g.subgraphs.push(A)}return A}function Dc(g,A){for(;\"->\"===lc||\"--\"===lc;){var t,C=lc;xc();var I=Tc(g);if(I)t=I;else{if(cc!=sc.IDENTIFIER)throw Rc(\"Identifier or subgraph expected\");mc(g,{id:t=lc}),xc()}yc(g,wc(g,A,t,C,Nc())),A=t}}function Nc(){for(var g,A,t=null,C={dashed:!0,solid:!1,dotted:[1,5]},I={dot:\"circle\",box:\"box\",crow:\"crow\",curve:\"curve\",icurve:\"inv_curve\",normal:\"triangle\",inv:\"inv_triangle\",diamond:\"diamond\",tee:\"bar\",vee:\"vee\"},e=new Array,i=new Array;\"[\"===lc;){for(xc(),t={};\"\"!==lc&&\"]\"!=lc;){if(cc!=sc.IDENTIFIER)throw Rc(\"Attribute name expected\");var o=lc;if(xc(),\"=\"!=lc)throw Rc(\"Equal sign = expected\");if(xc(),cc!=sc.IDENTIFIER)throw Rc(\"Attribute value expected\");var n=lc;\"style\"===o&&(n=C[n]),\"arrowhead\"===o&&(o=\"arrows\",n={to:{enabled:!0,type:I[n]}}),\"arrowtail\"===o&&(o=\"arrows\",n={from:{enabled:!0,type:I[n]}}),e.push({attr:t,name:o,value:n}),i.push(o),xc(),\",\"==lc&&xc()}if(\"]\"!=lc)throw Rc(\"Bracket ] expected\");xc()}if(js(i).call(i,\"dir\")){var s={arrows:{}};for(g=0;g<e.length;g++)if(\"arrows\"===e[g].name)if(null!=e[g].value.to)s.arrows.to=g;else{if(null==e[g].value.from)throw Rc(\"Invalid value of arrows\");s.arrows.from=g}else\"dir\"===e[g].name&&(s.dir=g);var r,a,d=e[s.dir].value;if(!js(i).call(i,\"arrows\"))if(\"both\"===d)e.push({attr:e[s.dir].attr,name:\"arrows\",value:{to:{enabled:!0}}}),s.arrows.to=e.length-1,e.push({attr:e[s.dir].attr,name:\"arrows\",value:{from:{enabled:!0}}}),s.arrows.from=e.length-1;else if(\"forward\"===d)e.push({attr:e[s.dir].attr,name:\"arrows\",value:{to:{enabled:!0}}}),s.arrows.to=e.length-1;else if(\"back\"===d)e.push({attr:e[s.dir].attr,name:\"arrows\",value:{from:{enabled:!0}}}),s.arrows.from=e.length-1;else{if(\"none\"!==d)throw Rc('Invalid dir type \"'+d+'\"');e.push({attr:e[s.dir].attr,name:\"arrows\",value:\"\"}),s.arrows.to=e.length-1}if(\"both\"===d)s.arrows.to&&s.arrows.from?(a=e[s.arrows.to].value.to.type,r=e[s.arrows.from].value.from.type,e[s.arrows.to]={attr:e[s.arrows.to].attr,name:e[s.arrows.to].name,value:{to:{enabled:!0,type:a},from:{enabled:!0,type:r}}},ss(e).call(e,s.arrows.from,1)):s.arrows.to?(a=e[s.arrows.to].value.to.type,r=\"arrow\",e[s.arrows.to]={attr:e[s.arrows.to].attr,name:e[s.arrows.to].name,value:{to:{enabled:!0,type:a},from:{enabled:!0,type:r}}}):s.arrows.from&&(a=\"arrow\",r=e[s.arrows.from].value.from.type,e[s.arrows.from]={attr:e[s.arrows.from].attr,name:e[s.arrows.from].name,value:{to:{enabled:!0,type:a},from:{enabled:!0,type:r}}});else if(\"back\"===d)s.arrows.to&&s.arrows.from?(a=\"\",r=e[s.arrows.from].value.from.type,e[s.arrows.from]={attr:e[s.arrows.from].attr,name:e[s.arrows.from].name,value:{to:{enabled:!0,type:a},from:{enabled:!0,type:r}}}):s.arrows.to?(a=\"\",r=\"arrow\",s.arrows.from=s.arrows.to,e[s.arrows.from]={attr:e[s.arrows.from].attr,name:e[s.arrows.from].name,value:{to:{enabled:!0,type:a},from:{enabled:!0,type:r}}}):s.arrows.from&&(a=\"\",r=e[s.arrows.from].value.from.type,e[s.arrows.to]={attr:e[s.arrows.from].attr,name:e[s.arrows.from].name,value:{to:{enabled:!0,type:a},from:{enabled:!0,type:r}}}),e[s.arrows.from]={attr:e[s.arrows.from].attr,name:e[s.arrows.from].name,value:{from:{enabled:!0,type:e[s.arrows.from].value.from.type}}};else if(\"none\"===d){var h;e[h=s.arrows.to?s.arrows.to:s.arrows.from]={attr:e[h].attr,name:e[h].name,value:\"\"}}else{if(\"forward\"!==d)throw Rc('Invalid dir type \"'+d+'\"');s.arrows.to&&s.arrows.from||s.arrows.to?(a=e[s.arrows.to].value.to.type,r=\"\",e[s.arrows.to]={attr:e[s.arrows.to].attr,name:e[s.arrows.to].name,value:{to:{enabled:!0,type:a},from:{enabled:!0,type:r}}}):s.arrows.from&&(a=\"arrow\",r=\"\",s.arrows.to=s.arrows.from,e[s.arrows.to]={attr:e[s.arrows.to].attr,name:e[s.arrows.to].name,value:{to:{enabled:!0,type:a},from:{enabled:!0,type:r}}}),e[s.arrows.to]={attr:e[s.arrows.to].attr,name:e[s.arrows.to].name,value:{to:{enabled:!0,type:e[s.arrows.to].value.to.type}}}}ss(e).call(e,s.dir,1)}if(js(i).call(i,\"penwidth\")){var l=[];for(A=e.length,g=0;g<A;g++)\"width\"!==e[g].name&&(\"penwidth\"===e[g].name&&(e[g].name=\"width\"),l.push(e[g]));e=l}for(A=e.length,g=0;g<A;g++)bc(e[g].attr,e[g].name,e[g].value);return t}function Rc(g){return new SyntaxError(g+', got \"'+kc(lc,30)+'\" (char '+dc+\")\")}function kc(g,A){return g.length<=A?g:g.substr(0,27)+\"...\"}function Pc(g,A,t){for(var C=A.split(\".\"),I=C.pop(),e=g,i=0;i<C.length;i++){var o=C[i];o in e||(e[o]={}),e=e[o]}return e[I]=t,g}function Mc(g,A){var t={};for(var C in g)if(g.hasOwnProperty(C)){var I=A[C];Po(I)?Bn(I).call(I,function(A){Pc(t,A,g[C])}):Pc(t,\"string\"==typeof I?I:C,g[C])}return t}function zc(g){var A,t=ic(g),C={nodes:[],edges:[],options:{}};t.nodes&&Bn(A=t.nodes).call(A,function(g){var A={id:g.id,label:String(g.label||g.id)};vc(A,Mc(g.attr,oc)),A.image&&(A.shape=\"image\"),C.nodes.push(A)});if(t.edges){var I,e=function(g){var A={from:g.from,to:g.to};return vc(A,Mc(g.attr,nc)),null==A.arrows&&\"->\"===g.type&&(A.arrows=\"to\"),A};Bn(I=t.edges).call(I,function(g){var A,t,I,i,o,n,s;(A=g.from instanceof Object?g.from.nodes:{id:g.from},t=g.to instanceof Object?g.to.nodes:{id:g.to},g.from instanceof Object&&g.from.edges)&&Bn(I=g.from.edges).call(I,function(g){var A=e(g);C.edges.push(A)});(o=t,n=function(A,t){var I=wc(C,A.id,t.id,g.type,g.attr),i=e(I);C.edges.push(i)},Po(i=A)?Bn(i).call(i,function(g){Po(o)?Bn(o).call(o,function(A){n(g,A)}):n(g,o)}):Po(o)?Bn(o).call(o,function(g){n(i,g)}):n(i,o),g.to instanceof Object&&g.to.edges)&&Bn(s=g.to.edges).call(s,function(g){var A=e(g);C.edges.push(A)})})}return t.attr&&(C.options=t.attr),C}var Bc=Object.freeze({__proto__:null,DOTToGraph:zc,parseDOT:ic});function Zc(g){var A;let{fixed:t=!1,inheritColor:C=!1,parseColor:I=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const e=g.edges,i=Wo(e).call(e,g=>{const A={from:g.source,id:g.id,to:g.target};return null!=g.attributes&&(A.attributes=g.attributes),null!=g.label&&(A.label=g.label),null!=g.attributes&&null!=g.attributes.title&&(A.title=g.attributes.title),\"Directed\"===g.type&&(A.arrows=\"to\"),g.color&&!1===C&&(A.color=g.color),A});return{nodes:Wo(A=g.nodes).call(A,g=>{const A={id:g.id,fixed:t&&null!=g.x&&null!=g.y};return null!=g.attributes&&(A.attributes=g.attributes),null!=g.label&&(A.label=g.label),null!=g.size&&(A.size=g.size),null!=g.attributes&&null!=g.attributes.title&&(A.title=g.attributes.title),null!=g.title&&(A.title=g.title),null!=g.x&&(A.x=g.x),null!=g.y&&(A.y=g.y),null!=g.color&&(A.color=!0===I?g.color:{background:g.color,border:g.color,highlight:{background:g.color,border:g.color},hover:{background:g.color,border:g.color}}),A}),edges:i}}var Sc=Object.freeze({__proto__:null,parseGephi:Zc});var Fc=Object.freeze({__proto__:null,cn:{addDescription:\"\u5355\u51FB\u7A7A\u767D\u5904\u653E\u7F6E\u65B0\u8282\u70B9\u3002\",addEdge:\"\u6DFB\u52A0\u8FDE\u63A5\u7EBF\",addNode:\"\u6DFB\u52A0\u8282\u70B9\",back:\"\u8FD4\u56DE\",close:\"\u95DC\u9589\",createEdgeError:\"\u65E0\u6CD5\u5C06\u8FDE\u63A5\u7EBF\u8FDE\u63A5\u5230\u7FA4\u96C6\u3002\",del:\"\u5220\u9664\u9009\u5B9A\",deleteClusterError:\"\u65E0\u6CD5\u5220\u9664\u7FA4\u96C6\u3002\",edgeDescription:\"\u5355\u51FB\u67D0\u4E2A\u8282\u70B9\u5E76\u5C06\u8BE5\u8FDE\u63A5\u7EBF\u62D6\u52A8\u5230\u53E6\u4E00\u4E2A\u8282\u70B9\u4EE5\u8FDE\u63A5\u5B83\u4EEC\u3002\",edit:\"\u7F16\u8F91\",editClusterError:\"\u65E0\u6CD5\u7F16\u8F91\u7FA4\u96C6\u3002\",editEdge:\"\u7F16\u8F91\u8FDE\u63A5\u7EBF\",editEdgeDescription:\"\u5355\u51FB\u63A7\u5236\u8282\u70B9\u5E76\u5C06\u5B83\u4EEC\u62D6\u5230\u8282\u70B9\u4E0A\u8FDE\u63A5\u3002\",editNode:\"\u7F16\u8F91\u8282\u70B9\"},cs:{addDescription:\"Kluknut\u00EDm do pr\u00E1zdn\u00E9ho prostoru m\u016F\u017Eete p\u0159idat nov\u00FD vrchol.\",addEdge:\"P\u0159idat hranu\",addNode:\"P\u0159idat vrchol\",back:\"Zp\u011Bt\",close:\"Zav\u0159\u00EDt\",createEdgeError:\"Nelze p\u0159ipojit hranu ke shluku.\",del:\"Smazat v\u00FDb\u011Br\",deleteClusterError:\"Nelze mazat shluky.\",edgeDescription:\"P\u0159eta\u017Een\u00EDm z jednoho vrcholu do druh\u00E9ho m\u016F\u017Eete spojit tyto vrcholy novou hranou.\",edit:\"Upravit\",editClusterError:\"Nelze upravovat shluky.\",editEdge:\"Upravit hranu\",editEdgeDescription:\"P\u0159eta\u017Een\u00EDm kontroln\u00EDho vrcholu hrany ji m\u016F\u017Eete p\u0159ipojit k jin\u00E9mu vrcholu.\",editNode:\"Upravit vrchol\"},de:{addDescription:\"Klicke auf eine freie Stelle, um einen neuen Knoten zu plazieren.\",addEdge:\"Kante hinzuf\u00FCgen\",addNode:\"Knoten hinzuf\u00FCgen\",back:\"Zur\u00FCck\",close:\"Schlie\u00DFen\",createEdgeError:\"Es ist nicht m\u00F6glich, Kanten mit Clustern zu verbinden.\",del:\"L\u00F6sche Auswahl\",deleteClusterError:\"Cluster k\u00F6nnen nicht gel\u00F6scht werden.\",edgeDescription:\"Klicke auf einen Knoten und ziehe die Kante zu einem anderen Knoten, um diese zu verbinden.\",edit:\"Editieren\",editClusterError:\"Cluster k\u00F6nnen nicht editiert werden.\",editEdge:\"Kante editieren\",editEdgeDescription:\"Klicke auf die Verbindungspunkte und ziehe diese auf einen Knoten, um sie zu verbinden.\",editNode:\"Knoten editieren\"},en:{addDescription:\"Click in an empty space to place a new node.\",addEdge:\"Add Edge\",addNode:\"Add Node\",back:\"Back\",close:\"Close\",createEdgeError:\"Cannot link edges to a cluster.\",del:\"Delete selected\",deleteClusterError:\"Clusters cannot be deleted.\",edgeDescription:\"Click on a node and drag the edge to another node to connect them.\",edit:\"Edit\",editClusterError:\"Clusters cannot be edited.\",editEdge:\"Edit Edge\",editEdgeDescription:\"Click on the control points and drag them to a node to connect to it.\",editNode:\"Edit Node\"},es:{addDescription:\"Haga clic en un lugar vac\u00EDo para colocar un nuevo nodo.\",addEdge:\"A\u00F1adir arista\",addNode:\"A\u00F1adir nodo\",back:\"Atr\u00E1s\",close:\"Cerrar\",createEdgeError:\"No se puede conectar una arista a un grupo.\",del:\"Eliminar selecci\u00F3n\",deleteClusterError:\"No es posible eliminar grupos.\",edgeDescription:\"Haga clic en un nodo y arrastre la arista hacia otro nodo para conectarlos.\",edit:\"Editar\",editClusterError:\"No es posible editar grupos.\",editEdge:\"Editar arista\",editEdgeDescription:\"Haga clic en un punto de control y arrastrelo a un nodo para conectarlo.\",editNode:\"Editar nodo\"},fr:{addDescription:\"Cliquez dans un endroit vide pour placer un n\u0153ud.\",addEdge:\"Ajouter un lien\",addNode:\"Ajouter un n\u0153ud\",back:\"Retour\",close:\"Fermer\",createEdgeError:\"Impossible de cr\u00E9er un lien vers un cluster.\",del:\"Effacer la s\u00E9lection\",deleteClusterError:\"Les clusters ne peuvent pas \u00EAtre effac\u00E9s.\",edgeDescription:\"Cliquez sur un n\u0153ud et glissez le lien vers un autre n\u0153ud pour les connecter.\",edit:\"\u00C9diter\",editClusterError:\"Les clusters ne peuvent pas \u00EAtre \u00E9dit\u00E9s.\",editEdge:\"\u00C9diter le lien\",editEdgeDescription:\"Cliquez sur les points de contr\u00F4le et glissez-les pour connecter un n\u0153ud.\",editNode:\"\u00C9diter le n\u0153ud\"},it:{addDescription:\"Clicca per aggiungere un nuovo nodo\",addEdge:\"Aggiungi un vertice\",addNode:\"Aggiungi un nodo\",back:\"Indietro\",close:\"Chiudere\",createEdgeError:\"Non si possono collegare vertici ad un cluster\",del:\"Cancella la selezione\",deleteClusterError:\"I cluster non possono essere cancellati\",edgeDescription:\"Clicca su un nodo e trascinalo ad un altro nodo per connetterli.\",edit:\"Modifica\",editClusterError:\"I clusters non possono essere modificati.\",editEdge:\"Modifica il vertice\",editEdgeDescription:\"Clicca sui Punti di controllo e trascinali ad un nodo per connetterli.\",editNode:\"Modifica il nodo\"},nl:{addDescription:\"Klik op een leeg gebied om een nieuwe node te maken.\",addEdge:\"Link toevoegen\",addNode:\"Node toevoegen\",back:\"Terug\",close:\"Sluiten\",createEdgeError:\"Kan geen link maken naar een cluster.\",del:\"Selectie verwijderen\",deleteClusterError:\"Clusters kunnen niet worden verwijderd.\",edgeDescription:\"Klik op een node en sleep de link naar een andere node om ze te verbinden.\",edit:\"Wijzigen\",editClusterError:\"Clusters kunnen niet worden aangepast.\",editEdge:\"Link wijzigen\",editEdgeDescription:\"Klik op de verbindingspunten en sleep ze naar een node om daarmee te verbinden.\",editNode:\"Node wijzigen\"},pt:{addDescription:\"Clique em um espa\u00E7o em branco para adicionar um novo n\u00F3\",addEdge:\"Adicionar aresta\",addNode:\"Adicionar n\u00F3\",back:\"Voltar\",close:\"Fechar\",createEdgeError:\"N\u00E3o foi poss\u00EDvel linkar arestas a um cluster.\",del:\"Remover selecionado\",deleteClusterError:\"Clusters n\u00E3o puderam ser removidos.\",edgeDescription:\"Clique em um n\u00F3 e arraste a aresta at\u00E9 outro n\u00F3 para conect\u00E1-los\",edit:\"Editar\",editClusterError:\"Clusters n\u00E3o puderam ser editados.\",editEdge:\"Editar aresta\",editEdgeDescription:\"Clique nos pontos de controle e os arraste para um n\u00F3 para conect\u00E1-los\",editNode:\"Editar n\u00F3\"},ru:{addDescription:\"\u041A\u043B\u0438\u043A\u043D\u0438\u0442\u0435 \u0432 \u0441\u0432\u043E\u0431\u043E\u0434\u043D\u043E\u0435 \u043C\u0435\u0441\u0442\u043E, \u0447\u0442\u043E\u0431\u044B \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u044B\u0439 \u0443\u0437\u0435\u043B.\",addEdge:\"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0440\u0435\u0431\u0440\u043E\",addNode:\"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0443\u0437\u0435\u043B\",back:\"\u041D\u0430\u0437\u0430\u0434\",close:\"\u0417\u0430\u043A\u0440\u044B\u0432\u0430\u0442\u044C\",createEdgeError:\"\u041D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0441\u043E\u0435\u0434\u0438\u043D\u0438\u0442\u044C \u0440\u0435\u0431\u0440\u0430 \u0432 \u043A\u043B\u0430\u0441\u0442\u0435\u0440.\",del:\"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0435\",deleteClusterError:\"\u041A\u043B\u0430\u0441\u0442\u0435\u0440\u044B \u043D\u0435 \u043C\u043E\u0433\u0443\u0442 \u0431\u044B\u0442\u044C \u0443\u0434\u0430\u043B\u0435\u043D\u044B\",edgeDescription:\"\u041A\u043B\u0438\u043A\u043D\u0438\u0442\u0435 \u043D\u0430 \u0443\u0437\u0435\u043B \u0438 \u043F\u0440\u043E\u0442\u044F\u043D\u0438\u0442\u0435 \u0440\u0435\u0431\u0440\u043E \u043A \u0434\u0440\u0443\u0433\u043E\u043C\u0443 \u0443\u0437\u043B\u0443, \u0447\u0442\u043E\u0431\u044B \u0441\u043E\u0435\u0434\u0438\u043D\u0438\u0442\u044C \u0438\u0445.\",edit:\"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C\",editClusterError:\"\u041A\u043B\u0430\u0441\u0442\u0435\u0440\u044B \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B \u0434\u043B\u044F \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F.\",editEdge:\"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0440\u0435\u0431\u0440\u043E\",editEdgeDescription:\"\u041A\u043B\u0438\u043A\u043D\u0438\u0442\u0435 \u043D\u0430 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044C\u043D\u044B\u0435 \u0442\u043E\u0447\u043A\u0438 \u0438 \u043F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0438\u0445 \u0432 \u0443\u0437\u0435\u043B, \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0441\u044F \u043A \u043D\u0435\u043C\u0443.\",editNode:\"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0443\u0437\u0435\u043B\"},uk:{addDescription:\"K\u043B\u0456\u043A\u043D\u0456\u0442\u044C \u043D\u0430 \u0432\u0456\u043B\u044C\u043D\u0435 \u043C\u0456\u0441\u0446\u0435, \u0449\u043E\u0431 \u0434\u043E\u0434\u0430\u0442\u0438 \u043D\u043E\u0432\u0438\u0439 \u0432\u0443\u0437\u043E\u043B.\",addEdge:\"\u0414\u043E\u0434\u0430\u0442\u0438 \u043A\u0440\u0430\u0439\",addNode:\"\u0414\u043E\u0434\u0430\u0442\u0438 \u0432\u0443\u0437\u043E\u043B\",back:\"\u041D\u0430\u0437\u0430\u0434\",close:\"\u0417\u0430\u043A\u0440\u0438\u0442\u0438\",createEdgeError:\"\u041D\u0435 \u043C\u043E\u0436\u043B\u0438\u0432\u043E \u043E\u0431'\u0454\u0434\u043D\u0430\u0442\u0438 \u043A\u0440\u0430\u0457 \u0432 \u0433\u0440\u0443\u043F\u0443.\",del:\"\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438 \u043E\u0431\u0440\u0430\u043D\u0435\",deleteClusterError:\"\u0413\u0440\u0443\u043F\u0438 \u043D\u0435 \u043C\u043E\u0436\u0443\u0442\u044C \u0431\u0443\u0442\u0438 \u0432\u0438\u0434\u0430\u043B\u0435\u043D\u0456.\",edgeDescription:\"\u041A\u043B\u0456\u043A\u043D\u0456\u0442\u044C \u043D\u0430 \u0432\u0443\u0437\u043E\u043B \u0456 \u043F\u0435\u0440\u0435\u0442\u044F\u0433\u043D\u0456\u0442\u044C \u043A\u0440\u0430\u0439 \u0434\u043E \u0456\u043D\u0448\u043E\u0433\u043E \u0432\u0443\u0437\u043B\u0430, \u0449\u043E\u0431 \u0457\u0445 \u0437'\u0454\u0434\u043D\u0430\u0442\u0438.\",edit:\"\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438\",editClusterError:\"\u0413\u0440\u0443\u043F\u0438 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0456 \u0434\u043B\u044F \u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u043D\u043D\u044F.\",editEdge:\"\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u043A\u0440\u0430\u0439\",editEdgeDescription:\"\u041A\u043B\u0456\u043A\u043D\u0456\u0442\u044C \u043D\u0430 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044C\u043D\u0456 \u0442\u043E\u0447\u043A\u0438 \u0456 \u043F\u0435\u0440\u0435\u0442\u044F\u0433\u043D\u0456\u0442\u044C \u0457\u0445 \u0443 \u0432\u0443\u0437\u043E\u043B, \u0449\u043E\u0431 \u043F\u0456\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u0438\u0441\u044F \u0434\u043E \u043D\u044C\u043E\u0433\u043E.\",editNode:\"\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u0432\u0443\u0437\u043E\u043B\"}});class Gc{constructor(){this.NUM_ITERATIONS=4,this.image=new Image,this.canvas=document.createElement(\"canvas\")}init(){if(this.initialized())return;this.src=this.image.src;const g=this.image.width,A=this.image.height;this.width=g,this.height=A;const t=Math.floor(A/2),C=Math.floor(A/4),I=Math.floor(A/8),e=Math.floor(A/16),i=Math.floor(g/2),o=Math.floor(g/4),n=Math.floor(g/8),s=Math.floor(g/16);this.canvas.width=3*o,this.canvas.height=t,this.coordinates=[[0,0,i,t],[i,0,o,C],[i,C,n,I],[5*n,C,s,e]],this._fillMipMap()}initialized(){return void 0!==this.coordinates}_fillMipMap(){const g=this.canvas.getContext(\"2d\"),A=this.coordinates[0];g.drawImage(this.image,A[0],A[1],A[2],A[3]);for(let A=1;A<this.NUM_ITERATIONS;A++){const t=this.coordinates[A-1],C=this.coordinates[A];g.drawImage(this.canvas,t[0],t[1],t[2],t[3],C[0],C[1],C[2],C[3])}}drawImageAtPosition(g,A,t,C,I,e){if(this.initialized())if(A>2){A*=.5;let i=0;for(;A>2&&i<this.NUM_ITERATIONS;)A*=.5,i+=1;i>=this.NUM_ITERATIONS&&(i=this.NUM_ITERATIONS-1);const o=this.coordinates[i];g.drawImage(this.canvas,o[0],o[1],o[2],o[3],t,C,I,e)}else g.drawImage(this.image,t,C,I,e)}}class Lc{constructor(g){this.images={},this.imageBroken={},this.callback=g}_tryloadBrokenUrl(g,A,t){void 0!==g&&void 0!==t&&(void 0!==A?(t.image.onerror=()=>{console.error(\"Could not load brokenImage:\",A)},t.image.src=A):console.warn(\"No broken url image defined\"))}_redrawWithImage(g){this.callback&&this.callback(g)}load(g,A){const t=this.images[g];if(t)return t;const C=new Gc;return this.images[g]=C,C.image.onload=()=>{this._fixImageCoordinates(C.image),C.init(),this._redrawWithImage(C)},C.image.onerror=()=>{console.error(\"Could not load image:\",g),this._tryloadBrokenUrl(g,A,C)},C.image.src=g,C}_fixImageCoordinates(g){0===g.width&&(document.body.appendChild(g),g.width=g.offsetWidth,g.height=g.offsetHeight,document.body.removeChild(g))}}var jc,Vc,Yc,Wc,Qc,Uc,Kc,Hc,Xc,_c,Jc,qc,$c,gu,Au,tu,Cu,Iu,eu,iu,ou,nu,su,ru,au,du,hu,lu,cu,uu={},pu={exports:{}};function fu(){return Vc?jc:(Vc=1,jc=y()(function(){if(\"function\"==typeof ArrayBuffer){var g=new ArrayBuffer(8);Object.isExtensible(g)&&Object.defineProperty(g,\"a\",{value:8})}}))}function vu(){if(Wc)return Yc;Wc=1;var g=y(),A=Og(),t=O(),C=fu(),I=Object.isExtensible,e=g(function(){});return Yc=e||C?function(g){return!!A(g)&&((!C||\"ArrayBuffer\"!==t(g))&&(!I||I(g)))}:I,Yc}function bu(){return Uc?Qc:(Uc=1,Qc=!y()(function(){return Object.isExtensible(Object.preventExtensions({}))}))}function mu(){if(Kc)return pu.exports;Kc=1;var g=st(),A=E(),t=ut(),C=Og(),I=vA(),e=ot().f,i=hI(),o=bI(),n=vu(),s=bA(),r=bu(),a=!1,d=s(\"meta\"),h=0,l=function(g){e(g,d,{value:{objectID:\"O\"+h++,weakData:{}}})},c=pu.exports={enable:function(){c.enable=function(){},a=!0;var t=i.f,C=A([].splice),I={};I[d]=1,t(I).length&&(i.f=function(g){for(var A=t(g),I=0,e=A.length;I<e;I++)if(A[I]===d){C(A,I,1);break}return A},g({target:\"Object\",stat:!0,forced:!0},{getOwnPropertyNames:o.f}))},fastKey:function(g,A){if(!C(g))return\"symbol\"==typeof g?g:(\"string\"==typeof g?\"S\":\"P\")+g;if(!I(g,d)){if(!n(g))return\"F\";if(!A)return\"E\";l(g)}return g[d].objectID},getWeakData:function(g,A){if(!I(g,d)){if(!n(g))return!0;if(!A)return!1;l(g)}return g[d].weakData},onFreeze:function(g){return r&&a&&n(g)&&!I(g,d)&&l(g),g}};return t[d]=!0,pu.exports}function yu(){if(Xc)return Hc;Xc=1;var g=mA(),A=wi(),t=g(\"iterator\"),C=Array.prototype;return Hc=function(g){return void 0!==g&&(A.Array===g||C[t]===g)},Hc}function wu(){if(Jc)return _c;Jc=1;var g=jC(),A=Sg(),t=wg(),C=wi(),I=mA()(\"iterator\");return _c=function(e){if(!t(e))return A(e,I)||A(e,\"@@iterator\")||C[g(e)]},_c}function xu(){if($c)return qc;$c=1;var g=B(),A=Zg(),t=it(),C=Bg(),I=wu(),e=TypeError;return qc=function(i,o){var n=arguments.length<2?I(i):o;if(A(n))return t(g(n,i));throw new e(C(i)+\" is not iterable\")},qc}function Eu(){if(Au)return gu;Au=1;var g=B(),A=it(),t=Sg();return gu=function(C,I,e){var i,o;A(C);try{if(!(i=t(C,\"return\"))){if(\"throw\"===I)throw e;return e}i=g(i,C)}catch(g){o=!0,i=g}if(\"throw\"===I)throw e;if(o)throw i;return A(i),e},gu}function Ou(){if(Cu)return tu;Cu=1;var g=DA(),A=B(),t=it(),C=Bg(),I=yu(),e=lt(),i=Ng(),o=xu(),n=wu(),s=Eu(),r=TypeError,a=function(g,A){this.stopped=g,this.result=A},d=a.prototype;return tu=function(h,l,c){var u,p,f,v,b,m,y,w=c&&c.that,x=!(!c||!c.AS_ENTRIES),E=!(!c||!c.IS_RECORD),O=!(!c||!c.IS_ITERATOR),T=!(!c||!c.INTERRUPTED),D=g(l,w),N=function(g){return u&&s(u,\"normal\"),new a(!0,g)},R=function(g){return x?(t(g),T?D(g[0],g[1],N):D(g[0],g[1])):T?D(g,N):D(g)};if(E)u=h.iterator;else if(O)u=h;else{if(!(p=n(h)))throw new r(C(h)+\" is not iterable\");if(I(p)){for(f=0,v=e(h);v>f;f++)if((b=R(h[f]))&&i(d,b))return b;return new a(!1)}u=o(h,p)}for(m=E?h.next:u.next;!(y=A(m,u)).done;){try{b=R(y.value)}catch(g){s(u,\"throw\",g)}if(\"object\"==typeof b&&b&&i(d,b))return b}return new a(!1)},tu}function Tu(){if(eu)return Iu;eu=1;var g=Ng(),A=TypeError;return Iu=function(t,C){if(g(C,t))return t;throw new A(\"Incorrect invocation\")},Iu}function Du(){if(ou)return iu;ou=1;var g=st(),A=m(),t=mu(),C=y(),I=nt(),e=Ou(),i=Tu(),o=D(),n=Og(),s=wg(),r=WI(),a=ot().f,d=KI().forEach,h=z(),l=UI(),c=l.set,u=l.getterFor;return iu=function(l,p,f){var v,b=-1!==l.indexOf(\"Map\"),m=-1!==l.indexOf(\"Weak\"),y=b?\"set\":\"add\",w=A[l],x=w&&w.prototype,E={};if(h&&o(w)&&(m||x.forEach&&!C(function(){(new w).entries().next()}))){var O=(v=p(function(g,A){c(i(g,O),{type:l,collection:new w}),s(A)||e(A,g[y],{that:g,AS_ENTRIES:b})})).prototype,T=u(l);d([\"add\",\"clear\",\"delete\",\"forEach\",\"get\",\"has\",\"set\",\"keys\",\"values\",\"entries\"],function(g){var A=\"add\"===g||\"set\"===g;!(g in x)||m&&\"clear\"===g||I(O,g,function(t,C){var I=T(this).collection;if(!A&&m&&!n(t))return\"get\"===g&&void 0;var e=I[g](0===t?0:t,C);return A?this:e})}),m||a(O,\"size\",{configurable:!0,get:function(){return T(this).collection.size}})}else v=f.getConstructor(p,l,b,y),t.enable();return r(v,l,!1,!0),E[l]=v,g({global:!0,forced:!0},E),m||f.setStrong(v,l,b),v}}function Nu(){if(su)return nu;su=1;var g=mI();return nu=function(A,t,C){for(var I in t)C&&C.unsafe&&A[I]?A[I]=t[I]:g(A,I,t[I],C);return A},nu}function Ru(){if(au)return ru;au=1;var g=Dg(),A=yI(),t=mA(),C=z(),I=t(\"species\");return ru=function(t){var e=g(t);C&&e&&!e[I]&&A(e,I,{configurable:!0,get:function(){return this}})}}function ku(){if(hu)return du;hu=1;var g=rI(),A=yI(),t=Nu(),C=DA(),I=Tu(),e=wg(),i=Ou(),o=Mi(),n=zi(),s=Ru(),r=z(),a=mu().fastKey,d=UI(),h=d.set,l=d.getterFor;return du={getConstructor:function(o,n,s,d){var c=o(function(A,t){I(A,u),h(A,{type:n,index:g(null),first:null,last:null,size:0}),r||(A.size=0),e(t)||i(t,A[d],{that:A,AS_ENTRIES:s})}),u=c.prototype,p=l(n),f=function(g,A,t){var C,I,e=p(g),i=v(g,A);return i?i.value=t:(e.last=i={index:I=a(A,!0),key:A,value:t,previous:C=e.last,next:null,removed:!1},e.first||(e.first=i),C&&(C.next=i),r?e.size++:g.size++,\"F\"!==I&&(e.index[I]=i)),g},v=function(g,A){var t,C=p(g),I=a(A);if(\"F\"!==I)return C.index[I];for(t=C.first;t;t=t.next)if(t.key===A)return t};return t(u,{clear:function(){for(var A=p(this),t=A.first;t;)t.removed=!0,t.previous&&(t.previous=t.previous.next=null),t=t.next;A.first=A.last=null,A.index=g(null),r?A.size=0:this.size=0},delete:function(g){var A=this,t=p(A),C=v(A,g);if(C){var I=C.next,e=C.previous;delete t.index[C.index],C.removed=!0,e&&(e.next=I),I&&(I.previous=e),t.first===C&&(t.first=I),t.last===C&&(t.last=e),r?t.size--:A.size--}return!!C},forEach:function(g){for(var A,t=p(this),I=C(g,arguments.length>1?arguments[1]:void 0);A=A?A.next:t.first;)for(I(A.value,A.key,this);A&&A.removed;)A=A.previous},has:function(g){return!!v(this,g)}}),t(u,s?{get:function(g){var A=v(this,g);return A&&A.value},set:function(g,A){return f(this,0===g?0:g,A)}}:{add:function(g){return f(this,g=0===g?0:g,g)}}),r&&A(u,\"size\",{configurable:!0,get:function(){return p(this).size}}),c},setStrong:function(g,A,t){var C=A+\" Iterator\",I=l(A),e=l(C);o(g,A,function(g,A){h(this,{type:C,target:g,state:I(g),kind:A,last:null})},function(){for(var g=e(this),A=g.kind,t=g.last;t&&t.removed;)t=t.previous;return g.target&&(g.last=t=t?t.next:g.state.first)?n(\"keys\"===A?t.key:\"values\"===A?t.value:[t.key,t.value],!1):(g.target=null,n(void 0,!0))},t?\"entries\":\"values\",!t,!0),s(A)}},du}function Pu(){return cu||(cu=1,lu||(lu=1,Du()(\"Map\",function(g){return function(){return g(this,arguments.length?arguments[0]:void 0)}},ku()))),uu}var Mu,zu,Bu,Zu,Su,Fu={};function Gu(){return zu||(zu=1,Mu=function(g,A){return 1===A?function(A,t){return A[g](t)}:function(A,t,C){return A[g](t,C)}}),Mu}function Lu(){if(Zu)return Bu;Zu=1;var g=Dg(),A=Gu(),t=g(\"Map\");return Bu={Map:t,set:A(\"set\",2),get:A(\"get\",1),has:A(\"has\",1),remove:A(\"delete\",1),proto:t.prototype}}var ju,Vu,Yu,Wu,Qu,Uu,Ku,Hu,Xu,_u={};function Ju(){if(Vu)return ju;Vu=1;var g=E(),A=at(),t=qC(),C=xg(),I=g(\"\".charAt),e=g(\"\".charCodeAt),i=g(\"\".slice),o=function(g){return function(o,n){var s,r,a=t(C(o)),d=A(n),h=a.length;return d<0||d>=h?g?\"\":void 0:(s=e(a,d))<55296||s>56319||d+1===h||(r=e(a,d+1))<56320||r>57343?g?I(a,d):s:g?i(a,d,d+2):r-56320+(s-55296<<10)+65536}};return ju={codeAt:o(!1),charAt:o(!0)}}function qu(){if(Yu)return _u;Yu=1;var g=Ju().charAt,A=qC(),t=UI(),C=Mi(),I=zi(),e=\"String Iterator\",i=t.set,o=t.getterFor(e);return C(String,\"String\",function(g){i(this,{type:e,string:A(g),index:0})},function(){var A,t=o(this),C=t.string,e=t.index;return e>=C.length?I(void 0,!0):(A=g(C,e),t.index+=A.length,I(A,!1))}),_u}function $u(){return Qu?Wu:(Qu=1,Bi(),Pu(),function(){if(Su)return Fu;Su=1;var g=st(),A=E(),t=Zg(),C=xg(),I=Ou(),e=Lu(),i=lA(),o=y(),n=e.Map,s=e.has,r=e.get,a=e.set,d=A([].push),h=i||o(function(){return 1!==n.groupBy(\"ab\",function(g){return g}).get(\"a\").length});g({target:\"Map\",stat:!0,forced:i||h},{groupBy:function(g,A){C(g),t(A);var e=new n,i=0;return I(g,function(g){var t=A(g,i++);s(e,t)?d(r(e,t),g):a(e,t,[g])}),e}})}(),qu(),Wu=Tg().Map)}function gp(){if(Ku)return Uu;Ku=1;var g=$u();return Si(),Uu=g}var Ap=C(Xu?Hu:(Xu=1,Hu=gp()));class tp{constructor(){this.clear(),this._defaultIndex=0,this._groupIndex=0,this._defaultGroups=[{border:\"#2B7CE9\",background:\"#97C2FC\",highlight:{border:\"#2B7CE9\",background:\"#D2E5FF\"},hover:{border:\"#2B7CE9\",background:\"#D2E5FF\"}},{border:\"#FFA500\",background:\"#FFFF00\",highlight:{border:\"#FFA500\",background:\"#FFFFA3\"},hover:{border:\"#FFA500\",background:\"#FFFFA3\"}},{border:\"#FA0A10\",background:\"#FB7E81\",highlight:{border:\"#FA0A10\",background:\"#FFAFB1\"},hover:{border:\"#FA0A10\",background:\"#FFAFB1\"}},{border:\"#41A906\",background:\"#7BE141\",highlight:{border:\"#41A906\",background:\"#A1EC76\"},hover:{border:\"#41A906\",background:\"#A1EC76\"}},{border:\"#E129F0\",background:\"#EB7DF4\",highlight:{border:\"#E129F0\",background:\"#F0B3F5\"},hover:{border:\"#E129F0\",background:\"#F0B3F5\"}},{border:\"#7C29F0\",background:\"#AD85E4\",highlight:{border:\"#7C29F0\",background:\"#D3BDF0\"},hover:{border:\"#7C29F0\",background:\"#D3BDF0\"}},{border:\"#C37F00\",background:\"#FFA807\",highlight:{border:\"#C37F00\",background:\"#FFCA66\"},hover:{border:\"#C37F00\",background:\"#FFCA66\"}},{border:\"#4220FB\",background:\"#6E6EFD\",highlight:{border:\"#4220FB\",background:\"#9B9BFD\"},hover:{border:\"#4220FB\",background:\"#9B9BFD\"}},{border:\"#FD5A77\",background:\"#FFC0CB\",highlight:{border:\"#FD5A77\",background:\"#FFD1D9\"},hover:{border:\"#FD5A77\",background:\"#FFD1D9\"}},{border:\"#4AD63A\",background:\"#C2FABC\",highlight:{border:\"#4AD63A\",background:\"#E6FFE3\"},hover:{border:\"#4AD63A\",background:\"#E6FFE3\"}},{border:\"#990000\",background:\"#EE0000\",highlight:{border:\"#BB0000\",background:\"#FF3333\"},hover:{border:\"#BB0000\",background:\"#FF3333\"}},{border:\"#FF6000\",background:\"#FF6000\",highlight:{border:\"#FF6000\",background:\"#FF6000\"},hover:{border:\"#FF6000\",background:\"#FF6000\"}},{border:\"#97C2FC\",background:\"#2B7CE9\",highlight:{border:\"#D2E5FF\",background:\"#2B7CE9\"},hover:{border:\"#D2E5FF\",background:\"#2B7CE9\"}},{border:\"#399605\",background:\"#255C03\",highlight:{border:\"#399605\",background:\"#255C03\"},hover:{border:\"#399605\",background:\"#255C03\"}},{border:\"#B70054\",background:\"#FF007E\",highlight:{border:\"#B70054\",background:\"#FF007E\"},hover:{border:\"#B70054\",background:\"#FF007E\"}},{border:\"#AD85E4\",background:\"#7C29F0\",highlight:{border:\"#D3BDF0\",background:\"#7C29F0\"},hover:{border:\"#D3BDF0\",background:\"#7C29F0\"}},{border:\"#4557FA\",background:\"#000EA1\",highlight:{border:\"#6E6EFD\",background:\"#000EA1\"},hover:{border:\"#6E6EFD\",background:\"#000EA1\"}},{border:\"#FFC0CB\",background:\"#FD5A77\",highlight:{border:\"#FFD1D9\",background:\"#FD5A77\"},hover:{border:\"#FFD1D9\",background:\"#FD5A77\"}},{border:\"#C2FABC\",background:\"#74D66A\",highlight:{border:\"#E6FFE3\",background:\"#74D66A\"},hover:{border:\"#E6FFE3\",background:\"#74D66A\"}},{border:\"#EE0000\",background:\"#990000\",highlight:{border:\"#FF3333\",background:\"#BB0000\"},hover:{border:\"#FF3333\",background:\"#BB0000\"}}],this.options={},this.defaultOptions={useDefaultGroups:!0},_t(this.options,this.defaultOptions)}setOptions(g){const A=[\"useDefaultGroups\"];if(void 0!==g)for(const t in g)if(Object.prototype.hasOwnProperty.call(g,t)&&-1===fa(A).call(A,t)){const A=g[t];this.add(t,A)}}clear(){this._groups=new Ap,this._groupNames=[]}get(g){let A=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],t=this._groups.get(g);if(void 0===t&&A)if(!1===this.options.useDefaultGroups&&this._groupNames.length>0){const A=this._groupIndex%this._groupNames.length;++this._groupIndex,t={},t.color=this._groups.get(this._groupNames[A]),this._groups.set(g,t)}else{const A=this._defaultIndex%this._defaultGroups.length;this._defaultIndex++,t={},t.color=this._defaultGroups[A],this._groups.set(g,t)}return t}add(g,A){return this._groups.has(g)||this._groupNames.push(g),this._groups.set(g,A),A}}var Cp,Ip,ep,ip,op,np,sp;function rp(){return ep?Ip:(ep=1,Cp||(Cp=1,st()({target:\"Number\",stat:!0},{isNaN:function(g){return g!=g}})),Ip=Tg().Number.isNaN)}function ap(){return op?ip:(op=1,ip=rp())}var dp,hp,lp,cp,up,pp,fp,vp,bp,mp=C(sp?np:(sp=1,np=ap()));function yp(){if(hp)return dp;hp=1;var g=m().isFinite;return dp=Number.isFinite||function(A){return\"number\"==typeof A&&g(A)},dp}function wp(){return up?cp:(up=1,lp||(lp=1,st()({target:\"Number\",stat:!0},{isFinite:yp()})),cp=Tg().Number.isFinite)}function xp(){return fp?pp:(fp=1,pp=wp())}var Ep,Op,Tp,Dp,Np,Rp,kp,Pp,Mp,zp=C(bp?vp:(bp=1,vp=xp())),Bp={};function Zp(){return Tp?Op:(Tp=1,function(){if(Ep)return Bp;Ep=1;var g=st(),A=KI().some;g({target:\"Array\",proto:!0,forced:!mn()(\"some\")},{some:function(g){return A(this,g,arguments.length>1?arguments[1]:void 0)}})}(),Op=gC()(\"Array\",\"some\"))}function Sp(){if(Np)return Dp;Np=1;var g=Ng(),A=Zp(),t=Array.prototype;return Dp=function(C){var I=C.some;return C===t||g(t,C)&&I===t.some?A:I},Dp}function Fp(){return kp?Rp:(kp=1,Rp=Sp())}var Gp,Lp,jp,Vp,Yp,Wp,Qp=C(Mp?Pp:(Mp=1,Pp=Fp()));function Up(){return Lp?Gp:(Lp=1,re(),Gp=Tg().Object.getOwnPropertySymbols)}function Kp(){return Vp?jp:(Vp=1,jp=Up())}var Hp,Xp,_p,Jp,qp,$p,gf=C(Wp?Yp:(Wp=1,Yp=Kp())),Af={exports:{}},tf={};function Cf(){if(Xp)return Af.exports;Xp=1,function(){if(Hp)return tf;Hp=1;var g=st(),A=y(),t=Eg(),C=OA().f,I=z();g({target:\"Object\",stat:!0,forced:!I||A(function(){C(1)}),sham:!I},{getOwnPropertyDescriptor:function(g,A){return C(t(g),A)}})}();var g=Tg().Object,A=Af.exports=function(A,t){return g.getOwnPropertyDescriptor(A,t)};return g.getOwnPropertyDescriptor.sham&&(A.sham=!0),Af.exports}function If(){return Jp?_p:(Jp=1,_p=Cf())}var ef,of,nf,sf,rf,af,df,hf=C($p?qp:($p=1,qp=If())),lf={};function cf(){return nf?of:(nf=1,function(){if(ef)return lf;ef=1;var g=st(),A=z(),t=so(),C=Eg(),I=OA(),e=GC();g({target:\"Object\",stat:!0,sham:!A},{getOwnPropertyDescriptors:function(g){for(var A,i,o=C(g),n=I.f,s=t(o),r={},a=0;s.length>a;)void 0!==(i=n(o,A=s[a++]))&&e(r,A,i);return r}})}(),of=Tg().Object.getOwnPropertyDescriptors)}function uf(){return rf?sf:(rf=1,sf=cf())}var pf,ff,vf,bf,mf,yf,wf=C(df?af:(df=1,af=uf())),xf={exports:{}},Ef={};function Of(){if(pf)return Ef;pf=1;var g=st(),A=z(),t=oI().f;return g({target:\"Object\",stat:!0,forced:Object.defineProperties!==t,sham:!A},{defineProperties:t}),Ef}function Tf(){if(ff)return xf.exports;ff=1,Of();var g=Tg().Object,A=xf.exports=function(A,t){return g.defineProperties(A,t)};return g.defineProperties.sham&&(A.sham=!0),xf.exports}function Df(){return bf?vf:(bf=1,vf=Tf())}var Nf,Rf,kf,Pf,Mf,zf,Bf,Zf,Sf,Ff,Gf=C(yf?mf:(yf=1,mf=Df())),Lf={exports:{}},jf={};function Vf(){if(Nf)return jf;Nf=1;var g=st(),A=z(),t=ot().f;return g({target:\"Object\",stat:!0,forced:Object.defineProperty!==t,sham:!A},{defineProperty:t}),jf}function Yf(){if(Rf)return Lf.exports;Rf=1,Vf();var g=Tg().Object,A=Lf.exports=function(A,t,C){return g.defineProperty(A,t,C)};return g.defineProperty.sham&&(A.sham=!0),Lf.exports}function Wf(){return Pf?kf:(Pf=1,kf=Yf())}function Qf(){return zf?Mf:(zf=1,Mf=Wf())}function Uf(){return Zf?Bf:(Zf=1,Bf=Qf())}function Kf(){return Ff?Sf:(Ff=1,Sf=Uf())}var Hf,Xf=C(Kf()),_f={};var Jf;var qf;var $f,gv,Av;function tv(){if(Av)return gv;Av=1;var g=Fi();return function(){if(Hf)return _f;Hf=1;var g=mA(),A=ot().f,t=g(\"metadata\"),C=Function.prototype;void 0===C[t]&&A(C,t,{value:null})}(),Jf||(Jf=1,he()),qf||(qf=1,pe()),$f||($f=1,jI()(\"metadata\")),gv=g}var Cv,Iv,ev;function iv(){if(Iv)return Cv;Iv=1;var g=Dg(),A=E(),t=g(\"Symbol\"),C=t.keyFor,I=A(t.prototype.valueOf);return Cv=t.isRegisteredSymbol||function(g){try{return void 0!==C(I(g))}catch(g){return!1}}}var ov,nv,sv;function rv(){if(nv)return ov;nv=1;for(var g=pA(),A=Dg(),t=E(),C=zg(),I=mA(),e=A(\"Symbol\"),i=e.isWellKnownSymbol,o=A(\"Object\",\"getOwnPropertyNames\"),n=t(e.prototype.valueOf),s=g(\"wks\"),r=0,a=o(e),d=a.length;r<d;r++)try{var h=a[r];C(e[h])&&I(h)}catch(g){}return ov=function(g){if(i&&i(g))return!0;try{for(var A=n(g),t=0,C=o(s),I=C.length;t<I;t++)if(s[C[t]]==A)return!0}catch(g){}return!1},ov}var av;var dv;var hv;var lv;var cv;var uv;var pv;var fv,vv,bv,mv,yv;function wv(){if(bv)return vv;bv=1;var g=tv();return ev||(ev=1,st()({target:\"Symbol\",stat:!0},{isRegisteredSymbol:iv()})),sv||(sv=1,st()({target:\"Symbol\",stat:!0,forced:!0},{isWellKnownSymbol:rv()})),av||(av=1,jI()(\"customMatcher\")),dv||(dv=1,jI()(\"observable\")),hv||(hv=1,st()({target:\"Symbol\",stat:!0,name:\"isRegisteredSymbol\"},{isRegistered:iv()})),lv||(lv=1,st()({target:\"Symbol\",stat:!0,name:\"isWellKnownSymbol\",forced:!0},{isWellKnown:rv()})),cv||(cv=1,jI()(\"matcher\")),uv||(uv=1,jI()(\"metadataKey\")),pv||(pv=1,jI()(\"patternMatch\")),fv||(fv=1,jI()(\"replaceAll\")),vv=g}function xv(){return yv?mv:(yv=1,mv=wv())}var Ev,Ov,Tv,Dv,Nv,Rv,kv,Pv,Mv,zv,Bv=C(xv());function Zv(){return Ov?Ev:(Ov=1,Bi(),qu(),ye(),Ev=LI().f(\"iterator\"))}function Sv(){if(Dv)return Tv;Dv=1;var g=Zv();return Si(),Tv=g}function Fv(){return Rv?Nv:(Rv=1,Nv=Sv())}function Gv(){return Pv?kv:(Pv=1,kv=Fv())}function Lv(){return zv?Mv:(zv=1,Mv=Gv())}var jv,Vv,Yv,Wv,Qv,Uv,Kv,Hv,Xv,_v,Jv=C(Lv());function qv(g){return qv=\"function\"==typeof Bv&&\"symbol\"==typeof Jv?function(g){return typeof g}:function(g){return g&&\"function\"==typeof Bv&&g.constructor===Bv&&g!==Bv.prototype?\"symbol\":typeof g},qv(g)}function $v(){return Vv?jv:(Vv=1,ke(),jv=LI().f(\"toPrimitive\"))}function gb(){return Wv?Yv:(Wv=1,Yv=$v())}function Ab(){return Uv?Qv:(Uv=1,Qv=gb())}function tb(){return Hv?Kv:(Hv=1,Kv=Ab())}function Cb(){return _v?Xv:(_v=1,Xv=tb())}var Ib=C(Cb());function eb(g){var A=function(g,A){if(\"object\"!=qv(g)||!g)return g;var t=g[Ib];if(void 0!==t){var C=t.call(g,A);if(\"object\"!=qv(C))return C;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===A?String:Number)(g)}(g,\"string\");return\"symbol\"==qv(A)?A:A+\"\"}function ib(g,A,t){return(A=eb(A))in g?Xf(g,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):g[A]=t,g}var ob,nb,sb,rb,ab,db,hb,lb,cb,ub,pb,fb,vb,bb={};function mb(){if(nb)return ob;nb=1;var g=Zg(),A=fA(),t=yg(),C=lt(),I=TypeError,e=\"Reduce of empty array with no initial value\",i=function(i){return function(o,n,s,r){var a=A(o),d=t(a),h=C(a);if(g(n),0===h&&s<2)throw new I(e);var l=i?h-1:0,c=i?-1:1;if(s<2)for(;;){if(l in d){r=d[l],l+=c;break}if(l+=c,i?l<0:h<=l)throw new I(e)}for(;i?l>=0:h>l;l+=c)l in d&&(r=n(r,d[l],l,a));return r}};return ob={left:i(!1),right:i(!0)}}function yb(){return rb?sb:(rb=1,sb=\"NODE\"===Ja())}function wb(){return hb?db:(hb=1,function(){if(ab)return bb;ab=1;var g=st(),A=mb().left,t=mn(),C=kg();g({target:\"Array\",proto:!0,forced:!yb()&&C>79&&C<83||!t(\"reduce\")},{reduce:function(g){var t=arguments.length;return A(this,g,t,t>1?arguments[1]:void 0)}})}(),db=gC()(\"Array\",\"reduce\"))}function xb(){if(cb)return lb;cb=1;var g=Ng(),A=wb(),t=Array.prototype;return lb=function(C){var I=C.reduce;return C===t||g(t,C)&&I===t.reduce?A:I},lb}function Eb(){return pb?ub:(pb=1,ub=xb())}var Ob,Tb,Db,Nb=C(vb?fb:(vb=1,fb=Eb())),Rb={};function kb(){if(Tb)return Ob;Tb=1;var g=SC(),A=lt(),t=FC(),C=DA(),I=function(e,i,o,n,s,r,a,d){for(var h,l,c=s,u=0,p=!!a&&C(a,d);u<n;)u in o&&(h=p?p(o[u],u,i):o[u],r>0&&g(h)?(l=A(h),c=I(e,i,h,l,c,r-1)-1):(t(c+1),e[c]=h),c++),u++;return c};return Ob=I}var Pb,Mb,zb,Bb,Zb,Sb,Fb,Gb,Lb;function jb(){return zb?Mb:(zb=1,function(){if(Db)return Rb;Db=1;var g=st(),A=kb(),t=Zg(),C=fA(),I=lt(),e=QC();g({target:\"Array\",proto:!0},{flatMap:function(g){var i,o=C(this),n=I(o);return t(g),(i=e(o,0)).length=A(i,o,o,n,0,1,g,arguments.length>1?arguments[1]:void 0),i}})}(),Pb||(Pb=1,yi()(\"flatMap\")),Mb=gC()(\"Array\",\"flatMap\"))}function Vb(){if(Zb)return Bb;Zb=1;var g=Ng(),A=jb(),t=Array.prototype;return Bb=function(C){var I=C.flatMap;return C===t||g(t,C)&&I===t.flatMap?A:I},Bb}function Yb(){return Fb?Sb:(Fb=1,Sb=Vb())}var Wb,Qb,Ub=C(Lb?Gb:(Lb=1,Gb=Yb()));var Kb,Hb,Xb=C(Qb?Wb:(Qb=1,Wb=Sv())),_b={};function Jb(){return Hb||(Hb=1,Kb||(Kb=1,Du()(\"Set\",function(g){return function(){return g(this,arguments.length?arguments[0]:void 0)}},ku()))),_b}var qb,$b,gm,Am,tm,Cm,Im,em,im,om,nm,sm,rm,am,dm,hm,lm,cm,um,pm,fm,vm={};function bm(){if($b)return qb;$b=1;var g=Bg(),A=TypeError;return qb=function(t){if(\"object\"==typeof t&&\"size\"in t&&\"has\"in t&&\"add\"in t&&\"delete\"in t&&\"keys\"in t)return t;throw new A(g(t)+\" is not a set\")},qb}function mm(){if(Am)return gm;Am=1;var g=Dg(),A=Gu(),t=g(\"Set\"),C=t.prototype;return gm={Set:t,add:A(\"add\",1),has:A(\"has\",1),remove:A(\"delete\",1),proto:C}}function ym(){if(Cm)return tm;Cm=1;var g=B();return tm=function(A,t,C){for(var I,e,i=C?A:A.iterator,o=A.next;!(I=g(o,i)).done;)if(void 0!==(e=t(I.value)))return e},tm}function wm(){if(em)return Im;em=1;var g=ym();return Im=function(A,t,C){return C?g(A.keys(),t,!0):A.forEach(t)},Im}function xm(){if(om)return im;om=1;var g=mm(),A=wm(),t=g.Set,C=g.add;return im=function(g){var I=new t;return A(g,function(g){C(I,g)}),I},im}function Em(){return sm||(sm=1,nm=function(g){return g.size}),nm}function Om(){return am?rm:(am=1,rm=function(g){return{iterator:g,next:g.next,done:!1}})}function Tm(){if(hm)return dm;hm=1;var g=Zg(),A=it(),t=B(),C=at(),I=Om(),e=\"Invalid size\",i=RangeError,o=TypeError,n=Math.max,s=function(A,t){this.set=A,this.size=n(t,0),this.has=g(A.has),this.keys=g(A.keys)};return s.prototype={getIterator:function(){return I(A(t(this.keys,this.set)))},includes:function(g){return t(this.has,this.set,g)}},dm=function(g){A(g);var t=+g.size;if(t!=t)throw new o(e);var I=C(t);if(I<0)throw new i(e);return new s(g,I)}}function Dm(){if(cm)return lm;cm=1;var g=bm(),A=mm(),t=xm(),C=Em(),I=Tm(),e=wm(),i=ym(),o=A.has,n=A.remove;return lm=function(A){var s=g(this),r=I(A),a=t(s);return C(s)<=r.size?e(s,function(g){r.includes(g)&&n(a,g)}):i(r.getIterator(),function(g){o(a,g)&&n(a,g)}),a}}function Nm(){return pm?um:(pm=1,um=function(){return!1})}var Rm,km,Pm,Mm={};function zm(){if(km)return Rm;km=1;var g=bm(),A=mm(),t=Em(),C=Tm(),I=wm(),e=ym(),i=A.Set,o=A.add,n=A.has;return Rm=function(A){var s=g(this),r=C(A),a=new i;return t(s)>r.size?e(r.getIterator(),function(g){n(s,g)&&o(a,g)}):I(s,function(g){r.includes(g)&&o(a,g)}),a}}var Bm,Zm,Sm,Fm={};function Gm(){if(Zm)return Bm;Zm=1;var g=bm(),A=mm().has,t=Em(),C=Tm(),I=wm(),e=ym(),i=Eu();return Bm=function(o){var n=g(this),s=C(o);if(t(n)<=s.size)return!1!==I(n,function(g){if(s.includes(g))return!1},!0);var r=s.getIterator();return!1!==e(r,function(g){if(A(n,g))return i(r,\"normal\",!1)})},Bm}var Lm,jm,Vm,Ym={};function Wm(){if(jm)return Lm;jm=1;var g=bm(),A=Em(),t=wm(),C=Tm();return Lm=function(I){var e=g(this),i=C(I);return!(A(e)>i.size)&&!1!==t(e,function(g){if(!i.includes(g))return!1},!0)}}var Qm,Um,Km,Hm={};function Xm(){if(Um)return Qm;Um=1;var g=bm(),A=mm().has,t=Em(),C=Tm(),I=ym(),e=Eu();return Qm=function(i){var o=g(this),n=C(i);if(t(o)<n.size)return!1;var s=n.getIterator();return!1!==I(s,function(g){if(!A(o,g))return e(s,\"normal\",!1)})},Qm}var _m,Jm,qm,$m,gy,Ay={};function ty(){if(Jm)return _m;Jm=1;var g=bm(),A=mm(),t=xm(),C=Tm(),I=ym(),e=A.add,i=A.has,o=A.remove;return _m=function(A){var n=g(this),s=C(A).getIterator(),r=t(n);return I(s,function(g){i(n,g)?o(r,g):e(r,g)}),r}}function Cy(){return $m?qm:($m=1,qm=function(g){try{var A=new Set,t={size:0,has:function(){return!0},keys:function(){return Object.defineProperty({},\"next\",{get:function(){return A.clear(),A.add(4),function(){return{done:!0}}}})}},C=A[g](t);return 1===C.size&&4===C.values().next().value}catch(g){return!1}})}var Iy,ey,iy,oy,ny,sy,ry,ay,dy,hy={};function ly(){if(ey)return Iy;ey=1;var g=bm(),A=mm().add,t=xm(),C=Tm(),I=ym();return Iy=function(e){var i=g(this),o=C(e).getIterator(),n=t(i);return I(o,function(g){A(n,g)}),n},Iy}function cy(){return ny?oy:(ny=1,Bi(),Jb(),function(){if(fm)return vm;fm=1;var g=st(),A=Dm(),t=y(),C=!Nm()(\"difference\",function(g){return 0===g.size})||t(function(){var g={size:1,has:function(){return!0},keys:function(){var g=0;return{next:function(){var t=g++>1;return A.has(1)&&A.clear(),{done:t,value:2}}}}},A=new Set([1,2,3,4]);return 3!==A.difference(g).size});g({target:\"Set\",proto:!0,real:!0,forced:C},{difference:A})}(),function(){if(Pm)return Mm;Pm=1;var g=st(),A=y(),t=zm();g({target:\"Set\",proto:!0,real:!0,forced:!Nm()(\"intersection\",function(g){return 2===g.size&&g.has(1)&&g.has(2)})||A(function(){return\"3,2\"!==String(Array.from(new Set([1,2,3]).intersection(new Set([3,2]))))})},{intersection:t})}(),function(){if(Sm)return Fm;Sm=1;var g=st(),A=Gm();g({target:\"Set\",proto:!0,real:!0,forced:!Nm()(\"isDisjointFrom\",function(g){return!g})},{isDisjointFrom:A})}(),function(){if(Vm)return Ym;Vm=1;var g=st(),A=Wm();g({target:\"Set\",proto:!0,real:!0,forced:!Nm()(\"isSubsetOf\",function(g){return g})},{isSubsetOf:A})}(),function(){if(Km)return Hm;Km=1;var g=st(),A=Xm();g({target:\"Set\",proto:!0,real:!0,forced:!Nm()(\"isSupersetOf\",function(g){return!g})},{isSupersetOf:A})}(),function(){if(gy)return Ay;gy=1;var g=st(),A=ty(),t=Cy();g({target:\"Set\",proto:!0,real:!0,forced:!Nm()(\"symmetricDifference\")||!t(\"symmetricDifference\")},{symmetricDifference:A})}(),function(){if(iy)return hy;iy=1;var g=st(),A=ly(),t=Cy();g({target:\"Set\",proto:!0,real:!0,forced:!Nm()(\"union\")||!t(\"union\")},{union:A})}(),qu(),oy=Tg().Set)}function uy(){if(ry)return sy;ry=1;var g=cy();return Si(),sy=g}var py,fy,vy,by,my,yy,wy,xy,Ey,Oy,Ty,Dy,Ny=C(dy?ay:(dy=1,ay=uy()));function Ry(){return fy?py:(fy=1,Bi(),qu(),py=xu())}function ky(){if(by)return vy;by=1;var g=Ry();return Si(),vy=g}function Py(){return yy?my:(yy=1,my=ky())}function My(){return xy?wy:(xy=1,wy=Py())}function zy(){return Oy?Ey:(Oy=1,Ey=My())}var By,Zy,Sy,Fy,Gy,Ly,jy,Vy,Yy,Wy,Qy,Uy,Ky,Hy,Xy,_y,Jy,qy=C(Dy?Ty:(Dy=1,Ty=zy())),$y={};function gw(){if(Zy)return By;Zy=1;var g=qt(),A=Math.floor,t=function(C,I){var e=C.length;if(e<8)for(var i,o,n=1;n<e;){for(o=n,i=C[n];o&&I(C[o-1],i)>0;)C[o]=C[--o];o!==n++&&(C[o]=i)}else for(var s=A(e/2),r=t(g(C,0,s),I),a=t(g(C,s),I),d=r.length,h=a.length,l=0,c=0;l<d||c<h;)C[l+c]=l<d&&c<h?I(r[l],a[c])<=0?r[l++]:a[c++]:l<d?r[l++]:a[c++];return C};return By=t}function Aw(){if(Fy)return Sy;Fy=1;var g=Rg().match(/firefox\\/(\\d+)/i);return Sy=!!g&&+g[1]}function tw(){return Ly?Gy:(Ly=1,Gy=/MSIE|Trident/.test(Rg()))}function Cw(){if(Vy)return jy;Vy=1;var g=Rg().match(/AppleWebKit\\/(\\d+)\\./);return jy=!!g&&+g[1]}function Iw(){if(Yy)return $y;Yy=1;var g=st(),A=E(),t=Zg(),C=fA(),I=lt(),e=ts(),i=qC(),o=y(),n=gw(),s=mn(),r=Aw(),a=tw(),d=kg(),h=Cw(),l=[],c=A(l.sort),u=A(l.push),p=o(function(){l.sort(void 0)}),f=o(function(){l.sort(null)}),v=s(\"sort\"),b=!o(function(){if(d)return d<70;if(!(r&&r>3)){if(a)return!0;if(h)return h<603;var g,A,t,C,I=\"\";for(g=65;g<76;g++){switch(A=String.fromCharCode(g),g){case 66:case 69:case 70:case 72:t=3;break;case 68:case 71:t=4;break;default:t=2}for(C=0;C<47;C++)l.push({k:A+C,v:t})}for(l.sort(function(g,A){return A.v-g.v}),C=0;C<l.length;C++)A=l[C].k.charAt(0),I.charAt(I.length-1)!==A&&(I+=A);return\"DGBEFHACIJK\"!==I}});return g({target:\"Array\",proto:!0,forced:p||!f||!v||!b},{sort:function(g){void 0!==g&&t(g);var A=C(this);if(b)return void 0===g?c(A):c(A,g);var o,s,r=[],a=I(A);for(s=0;s<a;s++)s in A&&u(r,A[s]);for(n(r,function(g){return function(A,t){return void 0===t?-1:void 0===A?1:void 0!==g?+g(A,t)||0:i(A)>i(t)?1:-1}}(g)),o=I(r),s=0;s<o;)A[s]=r[s++];for(;s<a;)e(A,s++);return A}}),$y}function ew(){return Qy?Wy:(Qy=1,Iw(),Wy=gC()(\"Array\",\"sort\"))}function iw(){if(Ky)return Uy;Ky=1;var g=Ng(),A=ew(),t=Array.prototype;return Uy=function(C){var I=C.sort;return C===t||g(t,C)&&I===t.sort?A:I},Uy}function ow(){return Xy?Hy:(Xy=1,Hy=iw())}var nw,sw,rw,aw,dw,hw,lw,cw,uw=C(Jy?_y:(Jy=1,_y=ow()));function pw(){return sw?nw:(sw=1,Bi(),nw=gC()(\"Array\",\"keys\"))}function fw(){return aw?rw:(aw=1,rw=pw())}function vw(){if(hw)return dw;hw=1,Si();var g=jC(),A=vA(),t=Ng(),C=fw(),I=Array.prototype,e={DOMTokenList:!0,NodeList:!0};return dw=function(i){var o=i.keys;return i===I||t(I,i)&&o===I.keys||A(e,g(i))?C:o},dw}var bw,mw,yw,ww,xw,Ew,Ow,Tw,Dw=C(cw?lw:(cw=1,lw=vw()));function Nw(){return mw?bw:(mw=1,Bi(),bw=gC()(\"Array\",\"values\"))}function Rw(){return ww?yw:(ww=1,yw=Nw())}function kw(){if(Ew)return xw;Ew=1,Si();var g=jC(),A=vA(),t=Ng(),C=Rw(),I=Array.prototype,e={DOMTokenList:!0,NodeList:!0};return xw=function(i){var o=i.values;return i===I||t(I,i)&&o===I.values||A(e,g(i))?C:o},xw}var Pw,Mw,zw,Bw,Zw,Sw,Fw,Gw,Lw=C(Tw?Ow:(Tw=1,Ow=kw()));function jw(){return Mw?Pw:(Mw=1,Bi(),Pw=gC()(\"Array\",\"entries\"))}function Vw(){return Bw?zw:(Bw=1,zw=jw())}function Yw(){if(Sw)return Zw;Sw=1,Si();var g=jC(),A=vA(),t=Ng(),C=Vw(),I=Array.prototype,e={DOMTokenList:!0,NodeList:!0};return Zw=function(i){var o=i.entries;return i===I||t(I,i)&&o===I.entries||A(e,g(i))?C:o},Zw}var Ww,Qw,Uw=C(Gw?Fw:(Gw=1,Fw=Yw()));var Kw=C(Qw?Ww:(Qw=1,Ww=Wf()));const Hw=[];for(let g=0;g<256;++g)Hw.push((g+256).toString(16).slice(1));const Xw=new Uint8Array(16);function _w(g,A,t){return crypto.randomUUID?crypto.randomUUID():function(g){g=g||{};const A=g.random??g.rng?.()??crypto.getRandomValues(Xw);if(A.length<16)throw new Error(\"Random bytes length must be >= 16\");return A[6]=15&A[6]|64,A[8]=63&A[8]|128,function(g,A=0){return(Hw[g[A+0]]+Hw[g[A+1]]+Hw[g[A+2]]+Hw[g[A+3]]+\"-\"+Hw[g[A+4]]+Hw[g[A+5]]+\"-\"+Hw[g[A+6]]+Hw[g[A+7]]+\"-\"+Hw[g[A+8]]+Hw[g[A+9]]+\"-\"+Hw[g[A+10]]+Hw[g[A+11]]+Hw[g[A+12]]+Hw[g[A+13]]+Hw[g[A+14]]+Hw[g[A+15]]).toLowerCase()}(A)}(g)}function Jw(g,A){var t=An(g);if(gf){var C=gf(g);A&&(C=Or(C).call(C,function(A){return hf(g,A).enumerable})),t.push.apply(t,C)}return t}function qw(g){for(var A=1;A<arguments.length;A++){var t,C,I=null!=arguments[A]?arguments[A]:{};A%2?Bn(t=Jw(Object(I),!0)).call(t,function(A){ib(g,A,I[A])}):wf?Gf(g,wf(I)):Bn(C=Jw(Object(I))).call(C,function(A){Kw(g,A,hf(I,A))})}return g}class $w{constructor(g,A,t){var C,I,e;ib(this,\"_source\",void 0),ib(this,\"_transformers\",void 0),ib(this,\"_target\",void 0),ib(this,\"_listeners\",{add:IC(C=this._add).call(C,this),remove:IC(I=this._remove).call(I,this),update:IC(e=this._update).call(e,this)}),this._source=g,this._transformers=A,this._target=t}all(){return this._target.update(this._transformItems(this._source.get())),this}start(){return this._source.on(\"add\",this._listeners.add),this._source.on(\"remove\",this._listeners.remove),this._source.on(\"update\",this._listeners.update),this}stop(){return this._source.off(\"add\",this._listeners.add),this._source.off(\"remove\",this._listeners.remove),this._source.off(\"update\",this._listeners.update),this}_transformItems(g){var A;return Nb(A=this._transformers).call(A,(g,A)=>A(g),g)}_add(g,A){null!=A&&this._target.add(this._transformItems(this._source.get(A.items)))}_update(g,A){null!=A&&this._target.update(this._transformItems(this._source.get(A.items)))}_remove(g,A){null!=A&&this._target.remove(this._transformItems(A.oldData))}}class gx{constructor(g){ib(this,\"_source\",void 0),ib(this,\"_transformers\",[]),this._source=g}filter(g){return this._transformers.push(A=>Or(A).call(A,g)),this}map(g){return this._transformers.push(A=>Wo(A).call(A,g)),this}flatMap(g){return this._transformers.push(A=>Ub(A).call(A,g)),this}to(g){return new $w(this._source,this._transformers,g)}}function Ax(g){return\"string\"==typeof g||\"number\"==typeof g}class tx{constructor(g){ib(this,\"delay\",void 0),ib(this,\"max\",void 0),ib(this,\"_queue\",[]),ib(this,\"_timeout\",null),ib(this,\"_extended\",null),this.delay=null,this.max=1/0,this.setOptions(g)}setOptions(g){g&&void 0!==g.delay&&(this.delay=g.delay),g&&void 0!==g.max&&(this.max=g.max),this._flushIfNeeded()}static extend(g,A){const t=new tx(A);if(void 0!==g.flush)throw new Error(\"Target object already has a property flush\");g.flush=()=>{t.flush()};const C=[{name:\"flush\",original:void 0}];if(A&&A.replace)for(let I=0;I<A.replace.length;I++){const e=A.replace[I];C.push({name:e,original:g[e]}),t.replace(g,e)}return t._extended={object:g,methods:C},t}destroy(){if(this.flush(),this._extended){const g=this._extended.object,A=this._extended.methods;for(let t=0;t<A.length;t++){const C=A[t];C.original?g[C.name]=C.original:delete g[C.name]}this._extended=null}}replace(g,A){const t=this,C=g[A];if(!C)throw new Error(\"Method \"+A+\" undefined\");g[A]=function(){for(var g=arguments.length,A=new Array(g),I=0;I<g;I++)A[I]=arguments[I];t.queue({args:A,fn:C,context:this})}}queue(g){\"function\"==typeof g?this._queue.push({fn:g}):this._queue.push(g),this._flushIfNeeded()}_flushIfNeeded(){this._queue.length>this.max&&this.flush(),null!=this._timeout&&(clearTimeout(this._timeout),this._timeout=null),this.queue.length>0&&\"number\"==typeof this.delay&&(this._timeout=bd(()=>{this.flush()},this.delay))}flush(){var g,A;Bn(g=ss(A=this._queue).call(A,0)).call(g,g=>{g.fn.apply(g.context||g.fn,g.args||[])})}}class Cx{constructor(){ib(this,\"_subscribers\",{\"*\":[],add:[],remove:[],update:[]}),ib(this,\"subscribe\",Cx.prototype.on),ib(this,\"unsubscribe\",Cx.prototype.off)}_trigger(g,A,t){var C;if(\"*\"===g)throw new Error(\"Cannot trigger event *\");Bn(C=[...this._subscribers[g],...this._subscribers[\"*\"]]).call(C,C=>{C(g,A,null!=t?t:null)})}on(g,A){\"function\"==typeof A&&this._subscribers[g].push(A)}off(g,A){var t;this._subscribers[g]=Or(t=this._subscribers[g]).call(t,g=>g!==A)}}class Ix{constructor(g){ib(this,\"_pairs\",void 0),this._pairs=g}*[Xb](){for(const[g,A]of this._pairs)yield[g,A]}*entries(){for(const[g,A]of this._pairs)yield[g,A]}*keys(){for(const[g]of this._pairs)yield g}*values(){for(const[,g]of this._pairs)yield g}toIdArray(){var g;return Wo(g=[...this._pairs]).call(g,g=>g[0])}toItemArray(){var g;return Wo(g=[...this._pairs]).call(g,g=>g[1])}toEntryArray(){return[...this._pairs]}toObjectMap(){const g=za(null);for(const[A,t]of this._pairs)g[A]=t;return g}toMap(){return new Ap(this._pairs)}toIdSet(){return new Ny(this.toIdArray())}toItemSet(){return new Ny(this.toItemArray())}cache(){return new Ix([...this._pairs])}distinct(g){const A=new Ny;for(const[t,C]of this._pairs)A.add(g(C,t));return A}filter(g){const A=this._pairs;return new Ix({*[Xb](){for(const[t,C]of A)g(C,t)&&(yield[t,C])}})}forEach(g){for(const[A,t]of this._pairs)g(t,A)}map(g){const A=this._pairs;return new Ix({*[Xb](){for(const[t,C]of A)yield[t,g(C,t)]}})}max(g){const A=qy(this._pairs);let t=A.next();if(t.done)return null;let C=t.value[1],I=g(t.value[1],t.value[0]);for(;!(t=A.next()).done;){const[A,e]=t.value,i=g(e,A);i>I&&(I=i,C=e)}return C}min(g){const A=qy(this._pairs);let t=A.next();if(t.done)return null;let C=t.value[1],I=g(t.value[1],t.value[0]);for(;!(t=A.next()).done;){const[A,e]=t.value,i=g(e,A);i<I&&(I=i,C=e)}return C}reduce(g,A){for(const[t,C]of this._pairs)A=g(A,C,t);return A}sort(g){return new Ix({[Xb]:()=>{var A;return qy(uw(A=[...this._pairs]).call(A,(A,t)=>{let[C,I]=A,[e,i]=t;return g(I,i,C,e)}))}})}}class ex extends Cx{get idProp(){return this._idProp}constructor(g,A){super(),ib(this,\"flush\",void 0),ib(this,\"length\",void 0),ib(this,\"_options\",void 0),ib(this,\"_data\",void 0),ib(this,\"_idProp\",void 0),ib(this,\"_queue\",null),g&&!Po(g)&&(A=g,g=[]),this._options=A||{},this._data=new Ap,this.length=0,this._idProp=this._options.fieldId||\"id\",g&&g.length&&this.add(g),this.setOptions(A)}setOptions(g){g&&void 0!==g.queue&&(!1===g.queue?this._queue&&(this._queue.destroy(),this._queue=null):(this._queue||(this._queue=tx.extend(this,{replace:[\"add\",\"update\",\"remove\"]})),g.queue&&\"object\"==typeof g.queue&&this._queue.setOptions(g.queue)))}add(g,A){const t=[];let C;if(Po(g)){const A=Wo(g).call(g,g=>g[this._idProp]);if(Qp(A).call(A,g=>this._data.has(g)))throw new Error(\"A duplicate id was found in the parameter array.\");for(let A=0,I=g.length;A<I;A++)C=this._addItem(g[A]),t.push(C)}else{if(!g||\"object\"!=typeof g)throw new Error(\"Unknown dataType\");C=this._addItem(g),t.push(C)}return t.length&&this._trigger(\"add\",{items:t},A),t}update(g,A){const t=[],C=[],I=[],e=[],i=this._idProp,o=g=>{const A=g[i];if(null!=A&&this._data.has(A)){const t=g,i=_t({},this._data.get(A)),o=this._updateItem(t);C.push(o),e.push(t),I.push(i)}else{const A=this._addItem(g);t.push(A)}};if(Po(g))for(let A=0,t=g.length;A<t;A++)g[A]&&\"object\"==typeof g[A]?o(g[A]):console.warn(\"Ignoring input item, which is not an object at index \"+A);else{if(!g||\"object\"!=typeof g)throw new Error(\"Unknown dataType\");o(g)}if(t.length&&this._trigger(\"add\",{items:t},A),C.length){const g={items:C,oldData:I,data:e};this._trigger(\"update\",g,A)}return dr(t).call(t,C)}updateOnly(g,A){var t;Po(g)||(g=[g]);const C=Wo(t=Wo(g).call(g,g=>{const A=this._data.get(g[this._idProp]);if(null==A)throw new Error(\"Updating non-existent items is not allowed.\");return{oldData:A,update:g}})).call(t,g=>{let{oldData:A,update:t}=g;const C=A[this._idProp],I=function(g){for(var A=arguments.length,t=new Array(A>1?A-1:0),C=1;C<A;C++)t[C-1]=arguments[C];return dl({},g,...t)}(A,t);return this._data.set(C,I),{id:C,oldData:A,updatedData:I}});if(C.length){const g={items:Wo(C).call(C,g=>g.id),oldData:Wo(C).call(C,g=>g.oldData),data:Wo(C).call(C,g=>g.updatedData)};return this._trigger(\"update\",g,A),g.items}return[]}get(g,A){let t,C,I;Ax(g)?(t=g,I=A):Po(g)?(C=g,I=A):I=g;const e=I&&\"Object\"===I.returnType?\"Object\":\"Array\",i=I&&Or(I),o=[];let n,s,r;if(null!=t)n=this._data.get(t),n&&i&&!i(n)&&(n=void 0);else if(null!=C)for(let g=0,A=C.length;g<A;g++)n=this._data.get(C[g]),null==n||i&&!i(n)||o.push(n);else{var a;s=[...Dw(a=this._data).call(a)];for(let g=0,A=s.length;g<A;g++)r=s[g],n=this._data.get(r),null==n||i&&!i(n)||o.push(n)}if(I&&I.order&&null==t&&this._sort(o,I.order),I&&I.fields){const g=I.fields;if(null!=t&&null!=n)n=this._filterFields(n,g);else for(let A=0,t=o.length;A<t;A++)o[A]=this._filterFields(o[A],g)}if(\"Object\"==e){const g={};for(let A=0,t=o.length;A<t;A++){const t=o[A];g[t[this._idProp]]=t}return g}return null!=t?null!=n?n:null:o}getIds(g){const A=this._data,t=g&&Or(g),C=g&&g.order,I=[...Dw(A).call(A)],e=[];if(t)if(C){const g=[];for(let A=0,C=I.length;A<C;A++){const C=I[A],e=this._data.get(C);null!=e&&t(e)&&g.push(e)}this._sort(g,C);for(let A=0,t=g.length;A<t;A++)e.push(g[A][this._idProp])}else for(let g=0,A=I.length;g<A;g++){const A=I[g],C=this._data.get(A);null!=C&&t(C)&&e.push(C[this._idProp])}else if(C){const g=[];for(let t=0,C=I.length;t<C;t++){const C=I[t];g.push(A.get(C))}this._sort(g,C);for(let A=0,t=g.length;A<t;A++)e.push(g[A][this._idProp])}else for(let g=0,t=I.length;g<t;g++){const t=I[g],C=A.get(t);null!=C&&e.push(C[this._idProp])}return e}getDataSet(){return this}forEach(g,A){const t=A&&Or(A),C=this._data,I=[...Dw(C).call(C)];if(A&&A.order){const t=this.get(A);for(let A=0,C=t.length;A<C;A++){const C=t[A];g(C,C[this._idProp])}}else for(let A=0,C=I.length;A<C;A++){const C=I[A],e=this._data.get(C);null==e||t&&!t(e)||g(e,C)}}map(g,A){const t=A&&Or(A),C=[],I=this._data,e=[...Dw(I).call(I)];for(let A=0,I=e.length;A<I;A++){const I=e[A],i=this._data.get(I);null==i||t&&!t(i)||C.push(g(i,I))}return A&&A.order&&this._sort(C,A.order),C}_filterFields(g,A){var t;return g?Nb(t=Po(A)?A:An(A)).call(t,(A,t)=>(A[t]=g[t],A),{}):g}_sort(g,A){if(\"string\"==typeof A){const t=A;uw(g).call(g,(g,A)=>{const C=g[t],I=A[t];return C>I?1:C<I?-1:0})}else{if(\"function\"!=typeof A)throw new TypeError(\"Order must be a function or a string\");uw(g).call(g,A)}}remove(g,A){const t=[],C=[],I=Po(g)?g:[g];for(let g=0,A=I.length;g<A;g++){const A=this._remove(I[g]);if(A){const g=A[this._idProp];null!=g&&(t.push(g),C.push(A))}}return t.length&&this._trigger(\"remove\",{items:t,oldData:C},A),t}_remove(g){let A;if(Ax(g)?A=g:g&&\"object\"==typeof g&&(A=g[this._idProp]),null!=A&&this._data.has(A)){const g=this._data.get(A)||null;return this._data.delete(A),--this.length,g}return null}clear(g){var A;const t=[...Dw(A=this._data).call(A)],C=[];for(let g=0,A=t.length;g<A;g++)C.push(this._data.get(t[g]));return this._data.clear(),this.length=0,this._trigger(\"remove\",{items:t,oldData:C},g),t}max(g){let A=null,t=null;for(const I of Lw(C=this._data).call(C)){var C;const e=I[g];\"number\"==typeof e&&(null==t||e>t)&&(A=I,t=e)}return A||null}min(g){let A=null,t=null;for(const I of Lw(C=this._data).call(C)){var C;const e=I[g];\"number\"==typeof e&&(null==t||e<t)&&(A=I,t=e)}return A||null}distinct(g){const A=this._data,t=[...Dw(A).call(A)],C=[];let I=0;for(let e=0,i=t.length;e<i;e++){const i=t[e],o=A.get(i)[g];let n=!1;for(let g=0;g<I;g++)if(C[g]==o){n=!0;break}n||void 0===o||(C[I]=o,I++)}return C}_addItem(g){const A=function(g,A){return null==g[A]&&(g[A]=_w()),g}(g,this._idProp),t=A[this._idProp];if(this._data.has(t))throw new Error(\"Cannot add item: item with id \"+t+\" already exists\");return this._data.set(t,A),++this.length,t}_updateItem(g){const A=g[this._idProp];if(null==A)throw new Error(\"Cannot update item: item has no id (item: \"+Ha(g)+\")\");const t=this._data.get(A);if(!t)throw new Error(\"Cannot update item: no item with id \"+A+\" found\");return this._data.set(A,qw(qw({},t),g)),A}stream(g){if(g){const A=this._data;return new Ix({*[Xb](){for(const t of g){const g=A.get(t);null!=g&&(yield[t,g])}}})}var A;return new Ix({[Xb]:IC(A=Uw(this._data)).call(A,this._data)})}}class ix extends Cx{get idProp(){return this.getDataSet().idProp}constructor(g,A){var t;super(),ib(this,\"length\",0),ib(this,\"_listener\",void 0),ib(this,\"_data\",void 0),ib(this,\"_ids\",new Ny),ib(this,\"_options\",void 0),this._options=A||{},this._listener=IC(t=this._onEvent).call(t,this),this.setData(g)}setData(g){if(this._data){this._data.off&&this._data.off(\"*\",this._listener);const g=this._data.getIds({filter:Or(this._options)}),A=this._data.get(g);this._ids.clear(),this.length=0,this._trigger(\"remove\",{items:g,oldData:A})}if(null!=g){this._data=g;const A=this._data.getIds({filter:Or(this._options)});for(let g=0,t=A.length;g<t;g++){const t=A[g];this._ids.add(t)}this.length=A.length,this._trigger(\"add\",{items:A})}else this._data=new ex;this._data.on&&this._data.on(\"*\",this._listener)}refresh(){const g=this._data.getIds({filter:Or(this._options)}),A=[...this._ids],t={},C=[],I=[],e=[];for(let A=0,I=g.length;A<I;A++){const I=g[A];t[I]=!0,this._ids.has(I)||(C.push(I),this._ids.add(I))}for(let g=0,C=A.length;g<C;g++){const C=A[g],i=this._data.get(C);null==i?console.error(\"If you see this, report it please.\"):t[C]||(I.push(C),e.push(i),this._ids.delete(C))}this.length+=C.length-I.length,C.length&&this._trigger(\"add\",{items:C}),I.length&&this._trigger(\"remove\",{items:I,oldData:e})}get(g,A){if(null==this._data)return null;let t,C=null;Ax(g)||Po(g)?(C=g,t=A):t=g;const I=_t({},this._options,t),e=Or(this._options),i=t&&Or(t);return e&&i&&(I.filter=g=>e(g)&&i(g)),null==C?this._data.get(I):this._data.get(C,I)}getIds(g){if(this._data.length){const A=Or(this._options),t=null!=g?Or(g):null;let C;return C=t?A?g=>A(g)&&t(g):t:A,this._data.getIds({filter:C,order:g&&g.order})}return[]}forEach(g,A){if(this._data){var t;const C=Or(this._options),I=A&&Or(A);let e;e=I?C?function(g){return C(g)&&I(g)}:I:C,Bn(t=this._data).call(t,g,{filter:e,order:A&&A.order})}}map(g,A){if(this._data){var t;const C=Or(this._options),I=A&&Or(A);let e;return e=I?C?g=>C(g)&&I(g):I:C,Wo(t=this._data).call(t,g,{filter:e,order:A&&A.order})}return[]}getDataSet(){return this._data.getDataSet()}stream(g){var A;return this._data.stream(g||{[Xb]:IC(A=Dw(this._ids)).call(A,this._ids)})}dispose(){var g;null!==(g=this._data)&&void 0!==g&&g.off&&this._data.off(\"*\",this._listener);const A=\"This data view has already been disposed of.\",t={get:()=>{throw new Error(A)},set:()=>{throw new Error(A)},configurable:!1};for(const g of bo(ix.prototype))Kw(this,g,t)}_onEvent(g,A,t){if(!A||!A.items||!this._data)return;const C=A.items,I=[],e=[],i=[],o=[],n=[],s=[];switch(g){case\"add\":for(let g=0,A=C.length;g<A;g++){const A=C[g];this.get(A)&&(this._ids.add(A),I.push(A))}break;case\"update\":for(let g=0,t=C.length;g<t;g++){const t=C[g];this.get(t)?this._ids.has(t)?(e.push(t),n.push(A.data[g]),o.push(A.oldData[g])):(this._ids.add(t),I.push(t)):this._ids.has(t)&&(this._ids.delete(t),i.push(t),s.push(A.oldData[g]))}break;case\"remove\":for(let g=0,t=C.length;g<t;g++){const t=C[g];this._ids.has(t)&&(this._ids.delete(t),i.push(t),s.push(A.oldData[g]))}}this.length+=I.length-i.length,I.length&&this._trigger(\"add\",{items:I},t),e.length&&this._trigger(\"update\",{items:e,oldData:o,data:n},t),i.length&&this._trigger(\"remove\",{items:i,oldData:s},t)}}function ox(g,A){return\"object\"==typeof A&&null!==A&&g===A.idProp&&\"function\"==typeof A.add&&\"function\"==typeof A.clear&&\"function\"==typeof A.distinct&&\"function\"==typeof Bn(A)&&\"function\"==typeof A.get&&\"function\"==typeof A.getDataSet&&\"function\"==typeof A.getIds&&\"number\"==typeof A.length&&\"function\"==typeof Wo(A)&&\"function\"==typeof A.max&&\"function\"==typeof A.min&&\"function\"==typeof A.off&&\"function\"==typeof A.on&&\"function\"==typeof A.remove&&\"function\"==typeof A.setOptions&&\"function\"==typeof A.stream&&\"function\"==typeof A.update&&\"function\"==typeof A.updateOnly}function nx(g,A){return\"object\"==typeof A&&null!==A&&g===A.idProp&&\"function\"==typeof Bn(A)&&\"function\"==typeof A.get&&\"function\"==typeof A.getDataSet&&\"function\"==typeof A.getIds&&\"number\"==typeof A.length&&\"function\"==typeof Wo(A)&&\"function\"==typeof A.off&&\"function\"==typeof A.on&&\"function\"==typeof A.stream&&ox(g,A.getDataSet())}var sx,rx,ax,dx,hx,lx,cx,ux,px,fx=Object.freeze({__proto__:null,DELETE:al,DataSet:ex,DataStream:Ix,DataView:ix,Queue:tx,createNewDataPipeFrom:function(g){return new gx(g)},isDataSetLike:ox,isDataViewLike:nx}),vx={};function bx(){if(rx)return sx;rx=1;var g=m(),A=y(),t=E(),C=qC(),I=Kr().trim,e=Ur(),i=t(\"\".charAt),o=g.parseFloat,n=g.Symbol,s=n&&n.iterator,r=1/o(e+\"-0\")!=-1/0||s&&!A(function(){o(Object(s))});return sx=r?function(g){var A=I(C(g)),t=o(A);return 0===t&&\"-\"===i(A,0)?-0:t}:o,sx}function mx(){return hx?dx:(hx=1,function(){if(ax)return vx;ax=1;var g=st(),A=bx();g({global:!0,forced:parseFloat!==A},{parseFloat:A})}(),dx=Tg().parseFloat)}function yx(){return cx?lx:(cx=1,lx=mx())}var wx,xx,Ex,Ox,Tx,Dx,Nx,Rx=C(px?ux:(px=1,ux=yx())),kx={};function Px(){if(wx)return kx;wx=1;var g=st(),A=y(),t=bI().f;return g({target:\"Object\",stat:!0,forced:A(function(){return!Object.getOwnPropertyNames(1)})},{getOwnPropertyNames:t}),kx}function Mx(){if(Ex)return xx;Ex=1,Px();var g=Tg().Object;return xx=function(A){return g.getOwnPropertyNames(A)},xx}function zx(){return Tx?Ox:(Tx=1,Ox=Mx())}var Bx=C(Nx?Dx:(Nx=1,Dx=zx()));function Zx(g,A){const t=[\"node\",\"edge\",\"label\"];let C=!0;const I=Kl(A,\"chosen\");if(\"boolean\"==typeof I)C=I;else if(\"object\"==typeof I){if(-1===fa(t).call(t,g))throw new Error(\"choosify: subOption '\"+g+\"' should be one of '\"+t.join(\"', '\")+\"'\");const I=Kl(A,[\"chosen\",g]);\"boolean\"!=typeof I&&\"function\"!=typeof I||(C=I)}return C}function Sx(g,A,t){if(g.width<=0||g.height<=0)return!1;if(void 0!==t){const g={x:A.x-t.x,y:A.y-t.y};if(0!==t.angle){const C=-t.angle;A={x:Math.cos(C)*g.x-Math.sin(C)*g.y,y:Math.sin(C)*g.x+Math.cos(C)*g.y}}else A=g}const C=g.x+g.width,I=g.y+g.width;return g.left<A.x&&C>A.x&&g.top<A.y&&I>A.y}function Fx(g){return\"string\"==typeof g&&\"\"!==g}function Gx(g,A,t,C){let I=C.x,e=C.y;if(\"function\"==typeof C.distanceToBorder){const t=C.distanceToBorder(g,A),i=Math.sin(A)*t,o=Math.cos(A)*t;o===t?(I+=t,e=C.y):i===t?(I=C.x,e-=t):(I+=o,e-=i)}else C.shape.width>C.shape.height?(I=C.x+.5*C.shape.width,e=C.y-t):(I=C.x+t,e=C.y-.5*C.shape.height);return{x:I,y:e}}class Lx{constructor(g){this.measureText=g,this.current=0,this.width=0,this.height=0,this.lines=[]}_add(g,A){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"normal\";void 0===this.lines[g]&&(this.lines[g]={width:0,height:0,blocks:[]});let C=A;void 0!==A&&\"\"!==A||(C=\" \");const I=this.measureText(C,t),e=_t({},Lw(I));e.text=A,e.width=I.width,e.mod=t,void 0!==A&&\"\"!==A||(e.width=0),this.lines[g].blocks.push(e),this.lines[g].width+=e.width}curWidth(){const g=this.lines[this.current];return void 0===g?0:g.width}append(g){let A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"normal\";this._add(this.current,g,A)}newLine(g){let A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"normal\";this._add(this.current,g,A),this.current++}determineLineHeights(){for(let g=0;g<this.lines.length;g++){const A=this.lines[g];let t=0;if(void 0!==A.blocks)for(let g=0;g<A.blocks.length;g++){const C=A.blocks[g];t<C.height&&(t=C.height)}A.height=t}}determineLabelSize(){let g=0,A=0;for(let t=0;t<this.lines.length;t++){const C=this.lines[t];C.width>g&&(g=C.width),A+=C.height}this.width=g,this.height=A}removeEmptyBlocks(){const g=[];for(let A=0;A<this.lines.length;A++){const t=this.lines[A];if(0===t.blocks.length)continue;if(A===this.lines.length-1&&0===t.width)continue;const C={};let I;_t(C,t),C.blocks=[];const e=[];for(let g=0;g<t.blocks.length;g++){const A=t.blocks[g];0!==A.width?e.push(A):void 0===I&&(I=A)}0===e.length&&void 0!==I&&e.push(I),C.blocks=e,g.push(C)}return g}finalize(){this.determineLineHeights(),this.determineLabelSize();const g=this.removeEmptyBlocks();return{width:this.width,height:this.height,lines:g}}}const jx={\"<b>\":/<b>/,\"<i>\":/<i>/,\"<code>\":/<code>/,\"</b>\":/<\\/b>/,\"</i>\":/<\\/i>/,\"</code>\":/<\\/code>/,\"*\":/\\*/,_:/_/,\"`\":/`/,afterBold:/[^*]/,afterItal:/[^_]/,afterMono:/[^`]/};class Vx{constructor(g){this.text=g,this.bold=!1,this.ital=!1,this.mono=!1,this.spacing=!1,this.position=0,this.buffer=\"\",this.modStack=[],this.blocks=[]}mod(){return 0===this.modStack.length?\"normal\":this.modStack[0]}modName(){return 0===this.modStack.length?\"normal\":\"mono\"===this.modStack[0]?\"mono\":this.bold&&this.ital?\"boldital\":this.bold?\"bold\":this.ital?\"ital\":void 0}emitBlock(){this.spacing&&(this.add(\" \"),this.spacing=!1),this.buffer.length>0&&(this.blocks.push({text:this.buffer,mod:this.modName()}),this.buffer=\"\")}add(g){\" \"===g&&(this.spacing=!0),this.spacing&&(this.buffer+=\" \",this.spacing=!1),\" \"!=g&&(this.buffer+=g)}parseWS(g){return!!/[ \\t]/.test(g)&&(this.mono?this.add(g):this.spacing=!0,!0)}setTag(g){this.emitBlock(),this[g]=!0,this.modStack.unshift(g)}unsetTag(g){this.emitBlock(),this[g]=!1,this.modStack.shift()}parseStartTag(g,A){return!(this.mono||this[g]||!this.match(A))&&(this.setTag(g),!0)}match(g){let A=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const[t,C]=this.prepareRegExp(g),I=t.test(this.text.substr(this.position,C));return I&&A&&(this.position+=C-1),I}parseEndTag(g,A,t){let C=this.mod()===g;return C=\"mono\"===g?C&&this.mono:C&&!this.mono,!(!C||!this.match(A))&&(void 0!==t?(this.position===this.text.length-1||this.match(t,!1))&&this.unsetTag(g):this.unsetTag(g),!0)}replace(g,A){return!!this.match(g)&&(this.add(A),this.position+=length-1,!0)}prepareRegExp(g){let A,t;if(g instanceof RegExp)t=g,A=1;else{const C=jx[g];t=void 0!==C?C:new RegExp(g),A=g.length}return[t,A]}}class Yx{constructor(g,A,t,C){this.ctx=g,this.parent=A,this.selected=t,this.hover=C;this.lines=new Lx((A,I)=>{if(void 0===A)return 0;const e=this.parent.getFormattingValues(g,t,C,I);let i=0;if(\"\"!==A){i=this.ctx.measureText(A).width}return{width:i,values:e}})}process(g){if(!Fx(g))return this.lines.finalize();const A=this.parent.fontOptions;g=(g=g.replace(/\\r\\n/g,\"\\n\")).replace(/\\r/g,\"\\n\");const t=String(g).split(\"\\n\"),C=t.length;if(A.multi)for(let g=0;g<C;g++){const C=this.splitBlocks(t[g],A.multi);if(void 0!==C)if(0!==C.length){if(A.maxWdt>0)for(let g=0;g<C.length;g++){const A=C[g].mod,t=C[g].text;this.splitStringIntoLines(t,A,!0)}else for(let g=0;g<C.length;g++){const A=C[g].mod,t=C[g].text;this.lines.append(t,A)}this.lines.newLine()}else this.lines.newLine(\"\")}else if(A.maxWdt>0)for(let g=0;g<C;g++)this.splitStringIntoLines(t[g]);else for(let g=0;g<C;g++)this.lines.newLine(t[g]);return this.lines.finalize()}decodeMarkupSystem(g){let A=\"none\";return\"markdown\"===g||\"md\"===g?A=\"markdown\":!0!==g&&\"html\"!==g||(A=\"html\"),A}splitHtmlBlocks(g){const A=new Vx(g),t=g=>{if(/&/.test(g)){return A.replace(A.text,\"<\",\"<\")||A.replace(A.text,\"&\",\"&\")||A.add(\"&\"),!0}return!1};for(;A.position<A.text.length;){const g=A.text.charAt(A.position);A.parseWS(g)||/</.test(g)&&(A.parseStartTag(\"bold\",\"<b>\")||A.parseStartTag(\"ital\",\"<i>\")||A.parseStartTag(\"mono\",\"<code>\")||A.parseEndTag(\"bold\",\"</b>\")||A.parseEndTag(\"ital\",\"</i>\")||A.parseEndTag(\"mono\",\"</code>\"))||t(g)||A.add(g),A.position++}return A.emitBlock(),A.blocks}splitMarkdownBlocks(g){const A=new Vx(g);let t=!0;const C=g=>!!/\\\\/.test(g)&&(A.position<this.text.length+1&&(A.position++,g=this.text.charAt(A.position),/ \\t/.test(g)?A.spacing=!0:(A.add(g),t=!1)),!0);for(;A.position<A.text.length;){const g=A.text.charAt(A.position);A.parseWS(g)||C(g)||(t||A.spacing)&&(A.parseStartTag(\"bold\",\"*\")||A.parseStartTag(\"ital\",\"_\")||A.parseStartTag(\"mono\",\"`\"))||A.parseEndTag(\"bold\",\"*\",\"afterBold\")||A.parseEndTag(\"ital\",\"_\",\"afterItal\")||A.parseEndTag(\"mono\",\"`\",\"afterMono\")||(A.add(g),t=!1),A.position++}return A.emitBlock(),A.blocks}splitBlocks(g,A){const t=this.decodeMarkupSystem(A);return\"none\"===t?[{text:g,mod:\"normal\"}]:\"markdown\"===t?this.splitMarkdownBlocks(g):\"html\"===t?this.splitHtmlBlocks(g):void 0}overMaxWidth(g){const A=this.ctx.measureText(g).width;return this.lines.curWidth()+A>this.parent.fontOptions.maxWdt}getLongestFit(g){let A=\"\",t=0;for(;t<g.length;){const C=A+(\"\"===A?\"\":\" \")+g[t];if(this.overMaxWidth(C))break;A=C,t++}return t}getLongestFitWord(g){let A=0;for(;A<g.length&&!this.overMaxWidth(no(g).call(g,0,A));)A++;return A}splitStringIntoLines(g){let A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"normal\",t=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this.parent.getFormattingValues(this.ctx,this.selected,this.hover,A);let C=(g=(g=g.replace(/^( +)/g,\"$1\\r\")).replace(/([^\\r][^ ]*)( +)/g,\"$1\\r$2\\r\")).split(\"\\r\");for(;C.length>0;){let g=this.getLongestFit(C);if(0===g){const g=C[0],t=this.getLongestFitWord(g);this.lines.newLine(no(g).call(g,0,t),A),C[0]=no(g).call(g,t)}else{let I=g;\" \"===C[g-1]?g--:\" \"===C[I]&&I++;const e=no(C).call(C,0,g).join(\"\");g==C.length&&t?this.lines.append(e,A):this.lines.newLine(e,A),C=no(C).call(C,I)}}}}const Wx=[\"bold\",\"ital\",\"boldital\",\"mono\"];class Qx{constructor(g,A){let t=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this.body=g,this.pointToSelf=!1,this.baseSize=void 0,this.fontOptions={},this.setOptions(A),this.size={top:0,left:0,width:0,height:0,yLine:0},this.isEdgeLabel=t}setOptions(g){if(this.elementOptions=g,this.initFontOptions(g.font),Fx(g.label)?this.labelDirty=!0:g.label=void 0,void 0!==g.font&&null!==g.font)if(\"string\"==typeof g.font)this.baseSize=this.fontOptions.size;else if(\"object\"==typeof g.font){const A=g.font.size;void 0!==A&&(this.baseSize=A)}}initFontOptions(g){zl(Wx,g=>{this.fontOptions[g]={}}),Qx.parseFontString(this.fontOptions,g)?this.fontOptions.vadjust=0:zl(g,(g,A)=>{null!=g&&\"object\"!=typeof g&&(this.fontOptions[A]=g)})}static parseFontString(g,A){if(!A||\"string\"!=typeof A)return!1;const t=A.split(\" \");return g.size=+t[0].replace(\"px\",\"\"),g.face=t[1],g.color=t[2],!0}constrain(g){const A={constrainWidth:!1,maxWdt:-1,minWdt:-1,constrainHeight:!1,minHgt:-1,valign:\"middle\"},t=Kl(g,\"widthConstraint\");if(\"number\"==typeof t)A.maxWdt=Number(t),A.minWdt=Number(t);else if(\"object\"==typeof t){const t=Kl(g,[\"widthConstraint\",\"maximum\"]);\"number\"==typeof t&&(A.maxWdt=Number(t));const C=Kl(g,[\"widthConstraint\",\"minimum\"]);\"number\"==typeof C&&(A.minWdt=Number(C))}const C=Kl(g,\"heightConstraint\");if(\"number\"==typeof C)A.minHgt=Number(C);else if(\"object\"==typeof C){const t=Kl(g,[\"heightConstraint\",\"minimum\"]);\"number\"==typeof t&&(A.minHgt=Number(t));const C=Kl(g,[\"heightConstraint\",\"valign\"]);\"string\"==typeof C&&(\"top\"!==C&&\"bottom\"!==C||(A.valign=C))}return A}update(g,A){this.setOptions(g,!0),this.propagateFonts(A),Rl(this.fontOptions,this.constrain(A)),this.fontOptions.chooser=Zx(\"label\",A)}adjustSizes(g){const A=g?g.right+g.left:0;this.fontOptions.constrainWidth&&(this.fontOptions.maxWdt-=A,this.fontOptions.minWdt-=A);const t=g?g.top+g.bottom:0;this.fontOptions.constrainHeight&&(this.fontOptions.minHgt-=t)}addFontOptionsToPile(g,A){for(let t=0;t<A.length;++t)this.addFontToPile(g,A[t])}addFontToPile(g,A){if(void 0===A)return;if(void 0===A.font||null===A.font)return;const t=A.font;g.push(t)}getBasicOptions(g){const A={};for(let t=0;t<g.length;++t){let C=g[t];const I={};Qx.parseFontString(I,C)&&(C=I),zl(C,(g,t)=>{void 0!==g&&(Object.prototype.hasOwnProperty.call(A,t)||(-1!==fa(Wx).call(Wx,t)?A[t]={}:A[t]=g))})}return A}getFontOption(g,A,t){let C;for(let I=0;I<g.length;++I){const e=g[I];if(Object.prototype.hasOwnProperty.call(e,A)){if(C=e[A],null==C)continue;const g={};if(Qx.parseFontString(g,C)&&(C=g),Object.prototype.hasOwnProperty.call(C,t))return C[t]}}if(Object.prototype.hasOwnProperty.call(this.fontOptions,t))return this.fontOptions[t];throw new Error(\"Did not find value for multi-font for property: '\"+t+\"'\")}getFontOptions(g,A){const t={},C=[\"color\",\"size\",\"face\",\"mod\",\"vadjust\"];for(let I=0;I<C.length;++I){const e=C[I];t[e]=this.getFontOption(g,A,e)}return t}propagateFonts(g){const A=[];this.addFontOptionsToPile(A,g),this.fontOptions=this.getBasicOptions(A);for(let g=0;g<Wx.length;++g){const t=Wx[g],C=this.fontOptions[t];zl(this.getFontOptions(A,t),(g,A)=>{C[A]=g}),C.size=Number(C.size),C.vadjust=Number(C.vadjust)}}draw(g,A,t,C,I){let e=arguments.length>5&&void 0!==arguments[5]?arguments[5]:\"middle\";if(void 0===this.elementOptions.label)return;let i=this.fontOptions.size*this.body.view.scale;this.elementOptions.label&&i<this.elementOptions.scaling.label.drawThreshold-1||(i>=this.elementOptions.scaling.label.maxVisible&&(i=Number(this.elementOptions.scaling.label.maxVisible)/this.body.view.scale),this.calculateLabelSize(g,C,I,A,t,e),this._drawBackground(g),this._drawText(g,A,this.size.yLine,e,i))}_drawBackground(g){if(void 0!==this.fontOptions.background&&\"none\"!==this.fontOptions.background){g.fillStyle=this.fontOptions.background;const A=this.getSize();g.fillRect(A.left,A.top,A.width,A.height)}}_drawText(g,A,t){let C=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"middle\",I=arguments.length>4?arguments[4]:void 0;[A,t]=this._setAlignment(g,A,t,C),g.textAlign=\"left\",A-=this.size.width/2,this.fontOptions.valign&&this.size.height>this.size.labelHeight&&(\"top\"===this.fontOptions.valign&&(t-=(this.size.height-this.size.labelHeight)/2),\"bottom\"===this.fontOptions.valign&&(t+=(this.size.height-this.size.labelHeight)/2));for(let C=0;C<this.lineCount;C++){const e=this.lines[C];if(e&&e.blocks){let C=0;this.isEdgeLabel||\"center\"===this.fontOptions.align?C+=(this.size.width-e.width)/2:\"right\"===this.fontOptions.align&&(C+=this.size.width-e.width);for(let i=0;i<e.blocks.length;i++){const o=e.blocks[i];g.font=o.font;const[n,s]=this._getColor(o.color,I,o.strokeColor);o.strokeWidth>0&&(g.lineWidth=o.strokeWidth,g.strokeStyle=s,g.lineJoin=\"round\"),g.fillStyle=n,o.strokeWidth>0&&g.strokeText(o.text,A+C,t+o.vadjust),g.fillText(o.text,A+C,t+o.vadjust),C+=o.width}t+=e.height}}}_setAlignment(g,A,t,C){if(this.isEdgeLabel&&\"horizontal\"!==this.fontOptions.align&&!1===this.pointToSelf){A=0,t=0;const C=2;\"top\"===this.fontOptions.align?(g.textBaseline=\"alphabetic\",t-=2*C):\"bottom\"===this.fontOptions.align?(g.textBaseline=\"hanging\",t+=2*C):g.textBaseline=\"middle\"}else g.textBaseline=C;return[A,t]}_getColor(g,A,t){let C=g||\"#000000\",I=t||\"#ffffff\";if(A<=this.elementOptions.scaling.label.drawThreshold){const g=Math.max(0,Math.min(1,1-(this.elementOptions.scaling.label.drawThreshold-A)));C=Zl(C,g),I=Zl(I,g)}return[C,I]}getTextSize(g){let A=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return this._processLabel(g,A,t),{width:this.size.width,height:this.size.height,lineCount:this.lineCount}}getSize(){let g=this.size.left,A=this.size.top-1;if(this.isEdgeLabel){const t=.5*-this.size.width;switch(this.fontOptions.align){case\"middle\":g=t,A=.5*-this.size.height;break;case\"top\":g=t,A=-(this.size.height+2);break;case\"bottom\":g=t,A=2}}return{left:g,top:A,width:this.size.width,height:this.size.height}}calculateLabelSize(g,A,t){let C=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,I=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,e=arguments.length>5&&void 0!==arguments[5]?arguments[5]:\"middle\";this._processLabel(g,A,t),this.size.left=C-.5*this.size.width,this.size.top=I-.5*this.size.height,this.size.yLine=I+.5*(1-this.lineCount)*this.fontOptions.size,\"hanging\"===e&&(this.size.top+=.5*this.fontOptions.size,this.size.top+=4,this.size.yLine+=4)}getFormattingValues(g,A,t,C){const I=function(g,A,t){return\"normal\"===A?\"mod\"===t?\"\":g[t]:void 0!==g[A][t]?g[A][t]:g[t]},e={color:I(this.fontOptions,C,\"color\"),size:I(this.fontOptions,C,\"size\"),face:I(this.fontOptions,C,\"face\"),mod:I(this.fontOptions,C,\"mod\"),vadjust:I(this.fontOptions,C,\"vadjust\"),strokeWidth:this.fontOptions.strokeWidth,strokeColor:this.fontOptions.strokeColor};(A||t)&&(\"normal\"===C&&!0===this.fontOptions.chooser&&this.elementOptions.labelHighlightBold?e.mod=\"bold\":\"function\"==typeof this.fontOptions.chooser&&this.fontOptions.chooser(e,this.elementOptions.id,A,t));let i=\"\";return void 0!==e.mod&&\"\"!==e.mod&&(i+=e.mod+\" \"),i+=e.size+\"px \"+e.face,g.font=i.replace(/\"/g,\"\"),e.font=g.font,e.height=e.size,e}differentState(g,A){return g!==this.selectedState||A!==this.hoverState}_processLabelText(g,A,t,C){return new Yx(g,this,A,t).process(C)}_processLabel(g,A,t){if(!1===this.labelDirty&&!this.differentState(A,t))return;const C=this._processLabelText(g,A,t,this.elementOptions.label);this.fontOptions.minWdt>0&&C.width<this.fontOptions.minWdt&&(C.width=this.fontOptions.minWdt),this.size.labelHeight=C.height,this.fontOptions.minHgt>0&&C.height<this.fontOptions.minHgt&&(C.height=this.fontOptions.minHgt),this.lines=C.lines,this.lineCount=C.lines.length,this.size.width=C.width,this.size.height=C.height,this.selectedState=A,this.hoverState=t,this.labelDirty=!1}visible(){if(0===this.size.width||0===this.size.height||void 0===this.elementOptions.label)return!1;return!(this.fontOptions.size*this.body.view.scale<this.elementOptions.scaling.label.drawThreshold-1)}}class Ux{constructor(g,A,t){this.body=A,this.labelModule=t,this.setOptions(g),this.top=void 0,this.left=void 0,this.height=void 0,this.width=void 0,this.radius=void 0,this.margin=void 0,this.refreshNeeded=!0,this.boundingBox={top:0,left:0,right:0,bottom:0}}setOptions(g){this.options=g}_setMargins(g){this.margin={},this.options.margin&&(\"object\"==typeof this.options.margin?(this.margin.top=this.options.margin.top,this.margin.right=this.options.margin.right,this.margin.bottom=this.options.margin.bottom,this.margin.left=this.options.margin.left):(this.margin.top=this.options.margin,this.margin.right=this.options.margin,this.margin.bottom=this.options.margin,this.margin.left=this.options.margin)),g.adjustSizes(this.margin)}_distanceToBorder(g,A){const t=this.options.borderWidth;return g&&this.resize(g),Math.min(Math.abs(this.width/2/Math.cos(A)),Math.abs(this.height/2/Math.sin(A)))+t}enableShadow(g,A){A.shadow&&(g.shadowColor=A.shadowColor,g.shadowBlur=A.shadowSize,g.shadowOffsetX=A.shadowX,g.shadowOffsetY=A.shadowY)}disableShadow(g,A){A.shadow&&(g.shadowColor=\"rgba(0,0,0,0)\",g.shadowBlur=0,g.shadowOffsetX=0,g.shadowOffsetY=0)}enableBorderDashes(g,A){if(!1!==A.borderDashes)if(void 0!==g.setLineDash){let t=A.borderDashes;!0===t&&(t=[5,15]),g.setLineDash(t)}else console.warn(\"setLineDash is not supported in this browser. The dashed borders cannot be used.\"),this.options.shapeProperties.borderDashes=!1,A.borderDashes=!1}disableBorderDashes(g,A){!1!==A.borderDashes&&(void 0!==g.setLineDash?g.setLineDash([0]):(console.warn(\"setLineDash is not supported in this browser. The dashed borders cannot be used.\"),this.options.shapeProperties.borderDashes=!1,A.borderDashes=!1))}needsRefresh(g,A){return!0===this.refreshNeeded?(this.refreshNeeded=!1,!0):void 0===this.width||this.labelModule.differentState(g,A)}initContextForDraw(g,A){const t=A.borderWidth/this.body.view.scale;g.lineWidth=Math.min(this.width,t),g.strokeStyle=A.borderColor,g.fillStyle=A.color}performStroke(g,A){const t=A.borderWidth/this.body.view.scale;g.save(),t>0&&(this.enableBorderDashes(g,A),g.stroke(),this.disableBorderDashes(g,A)),g.restore()}performFill(g,A){g.save(),g.fillStyle=A.color,this.enableShadow(g,A),Td(g).call(g),this.disableShadow(g,A),g.restore(),this.performStroke(g,A)}_addBoundingBoxMargin(g){this.boundingBox.left-=g,this.boundingBox.top-=g,this.boundingBox.bottom+=g,this.boundingBox.right+=g}_updateBoundingBox(g,A,t,C,I){void 0!==t&&this.resize(t,C,I),this.left=g-this.width/2,this.top=A-this.height/2,this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width}updateBoundingBox(g,A,t,C,I){this._updateBoundingBox(g,A,t,C,I)}getDimensionsFromLabel(g,A,t){this.textSize=this.labelModule.getTextSize(g,A,t);let C=this.textSize.width,I=this.textSize.height;return 0===C&&(C=14,I=14),{width:C,height:I}}}let Kx=class extends Ux{constructor(g,A,t){super(g,A,t),this._setMargins(t)}resize(g){let A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(A,t)){const C=this.getDimensionsFromLabel(g,A,t);this.width=C.width+this.margin.right+this.margin.left,this.height=C.height+this.margin.top+this.margin.bottom,this.radius=this.width/2}}draw(g,A,t,C,I,e){this.resize(g,C,I),this.left=A-this.width/2,this.top=t-this.height/2,this.initContextForDraw(g,e),iC(g,this.left,this.top,this.width,this.height,e.borderRadius),this.performFill(g,e),this.updateBoundingBox(A,t,g,C,I),this.labelModule.draw(g,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,C,I)}updateBoundingBox(g,A,t,C,I){this._updateBoundingBox(g,A,t,C,I);const e=this.options.shapeProperties.borderRadius;this._addBoundingBoxMargin(e)}distanceToBorder(g,A){g&&this.resize(g);const t=this.options.borderWidth;return Math.min(Math.abs(this.width/2/Math.cos(A)),Math.abs(this.height/2/Math.sin(A)))+t}};class Hx extends Ux{constructor(g,A,t){super(g,A,t),this.labelOffset=0,this.selected=!1}setOptions(g,A,t){this.options=g,void 0===A&&void 0===t||this.setImages(A,t)}setImages(g,A){A&&this.selected?(this.imageObj=A,this.imageObjAlt=g):(this.imageObj=g,this.imageObjAlt=A)}switchImages(g){const A=g&&!this.selected||!g&&this.selected;if(this.selected=g,void 0!==this.imageObjAlt&&A){const g=this.imageObj;this.imageObj=this.imageObjAlt,this.imageObjAlt=g}}_getImagePadding(){const g={top:0,right:0,bottom:0,left:0};if(this.options.imagePadding){const A=this.options.imagePadding;\"object\"==typeof A?(g.top=A.top,g.right=A.right,g.bottom=A.bottom,g.left=A.left):(g.top=A,g.right=A,g.bottom=A,g.left=A)}return g}_resizeImage(){let g,A;if(!1===this.options.shapeProperties.useImageSize){let t=1,C=1;this.imageObj.width&&this.imageObj.height&&(this.imageObj.width>this.imageObj.height?t=this.imageObj.width/this.imageObj.height:C=this.imageObj.height/this.imageObj.width),g=2*this.options.size*t,A=2*this.options.size*C}else{const t=this._getImagePadding();g=this.imageObj.width+t.left+t.right,A=this.imageObj.height+t.top+t.bottom}this.width=g,this.height=A,this.radius=.5*this.width}_drawRawCircle(g,A,t,C){this.initContextForDraw(g,C),eC(g,A,t,C.size),this.performFill(g,C)}_drawImageAtPosition(g,A){if(0!=this.imageObj.width){g.globalAlpha=void 0!==A.opacity?A.opacity:1,this.enableShadow(g,A);let t=1;!0===this.options.shapeProperties.interpolation&&(t=this.imageObj.width/this.width/this.body.view.scale);const C=this._getImagePadding(),I=this.left+C.left,e=this.top+C.top,i=this.width-C.left-C.right,o=this.height-C.top-C.bottom;this.imageObj.drawImageAtPosition(g,t,I,e,i,o),this.disableShadow(g,A)}}_drawImageLabel(g,A,t,C,I){let e=0;if(void 0!==this.height){e=.5*this.height;const A=this.labelModule.getTextSize(g,C,I);A.lineCount>=1&&(e+=A.height/2)}const i=t+e;this.options.label&&(this.labelOffset=e),this.labelModule.draw(g,A,i,C,I,\"hanging\")}}let Xx=class extends Hx{constructor(g,A,t){super(g,A,t),this._setMargins(t)}resize(g){let A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(A,t)){const C=this.getDimensionsFromLabel(g,A,t),I=Math.max(C.width+this.margin.right+this.margin.left,C.height+this.margin.top+this.margin.bottom);this.options.size=I/2,this.width=I,this.height=I,this.radius=this.width/2}}draw(g,A,t,C,I,e){this.resize(g,C,I),this.left=A-this.width/2,this.top=t-this.height/2,this._drawRawCircle(g,A,t,e),this.updateBoundingBox(A,t),this.labelModule.draw(g,this.left+this.textSize.width/2+this.margin.left,t,C,I)}updateBoundingBox(g,A){this.boundingBox.top=A-this.options.size,this.boundingBox.left=g-this.options.size,this.boundingBox.right=g+this.options.size,this.boundingBox.bottom=A+this.options.size}distanceToBorder(g){return g&&this.resize(g),.5*this.width}};class _x extends Hx{constructor(g,A,t,C,I){super(g,A,t),this.setImages(C,I)}resize(g){let A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(void 0===this.imageObj.src||void 0===this.imageObj.width||void 0===this.imageObj.height){const g=2*this.options.size;return this.width=g,this.height=g,void(this.radius=.5*this.width)}this.needsRefresh(A,t)&&this._resizeImage()}draw(g,A,t,C,I,e){this.switchImages(C),this.resize();let i=A,o=t;\"top-left\"===this.options.shapeProperties.coordinateOrigin?(this.left=A,this.top=t,i+=this.width/2,o+=this.height/2):(this.left=A-this.width/2,this.top=t-this.height/2),this._drawRawCircle(g,i,o,e),g.save(),g.clip(),this._drawImageAtPosition(g,e),g.restore(),this._drawImageLabel(g,i,o,C,I),this.updateBoundingBox(A,t)}updateBoundingBox(g,A){\"top-left\"===this.options.shapeProperties.coordinateOrigin?(this.boundingBox.top=A,this.boundingBox.left=g,this.boundingBox.right=g+2*this.options.size,this.boundingBox.bottom=A+2*this.options.size):(this.boundingBox.top=A-this.options.size,this.boundingBox.left=g-this.options.size,this.boundingBox.right=g+this.options.size,this.boundingBox.bottom=A+this.options.size),this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset)}distanceToBorder(g){return g&&this.resize(g),.5*this.width}}class Jx extends Ux{resize(g){let A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover,C=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{size:this.options.size};if(this.needsRefresh(A,t)){var I,e;this.labelModule.getTextSize(g,A,t);const i=2*C.size;this.width=null!==(I=this.customSizeWidth)&&void 0!==I?I:i,this.height=null!==(e=this.customSizeHeight)&&void 0!==e?e:i,this.radius=.5*this.width}}_drawShape(g,A,t,C,I,e,i,o){var n;return this.resize(g,e,i,o),this.left=C-this.width/2,this.top=I-this.height/2,this.initContextForDraw(g,o),(n=A,Object.prototype.hasOwnProperty.call(rC,n)?rC[n]:function(g){for(var A=arguments.length,t=new Array(A>1?A-1:0),C=1;C<A;C++)t[C-1]=arguments[C];CanvasRenderingContext2D.prototype[n].call(g,t)})(g,C,I,o.size),this.performFill(g,o),void 0!==this.options.icon&&void 0!==this.options.icon.code&&(g.font=(e?\"bold \":\"\")+this.height/2+\"px \"+(this.options.icon.face||\"FontAwesome\"),g.fillStyle=this.options.icon.color||\"black\",g.textAlign=\"center\",g.textBaseline=\"middle\",g.fillText(this.options.icon.code,C,I)),{drawExternalLabel:()=>{if(void 0!==this.options.label){this.labelModule.calculateLabelSize(g,e,i,C,I,\"hanging\");const A=I+.5*this.height+.5*this.labelModule.size.height;this.labelModule.draw(g,C,A,e,i,\"hanging\")}this.updateBoundingBox(C,I)}}}updateBoundingBox(g,A){this.boundingBox.top=A-this.options.size,this.boundingBox.left=g-this.options.size,this.boundingBox.right=g+this.options.size,this.boundingBox.bottom=A+this.options.size,void 0!==this.options.label&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height))}}function qx(g,A){var t=An(g);if(gf){var C=gf(g);A&&(C=Or(C).call(C,function(A){return hf(g,A).enumerable})),t.push.apply(t,C)}return t}function $x(g){for(var A=1;A<arguments.length;A++){var t,C,I=null!=arguments[A]?arguments[A]:{};A%2?Bn(t=qx(Object(I),!0)).call(t,function(A){ib(g,A,I[A])}):wf?Gf(g,wf(I)):Bn(C=qx(Object(I))).call(C,function(A){Kw(g,A,hf(I,A))})}return g}class gE extends Jx{constructor(g,A,t,C){super(g,A,t,C),this.ctxRenderer=C}draw(g,A,t,C,I,e){this.resize(g,C,I,e),this.left=A-this.width/2,this.top=t-this.height/2,g.save();const i=this.ctxRenderer({ctx:g,id:this.options.id,x:A,y:t,state:{selected:C,hover:I},style:$x({},e),label:this.options.label});if(null!=i.drawNode&&i.drawNode(),g.restore(),i.drawExternalLabel){const A=i.drawExternalLabel;i.drawExternalLabel=()=>{g.save(),A(),g.restore()}}return i.nodeDimensions&&(this.customSizeWidth=i.nodeDimensions.width,this.customSizeHeight=i.nodeDimensions.height),i}distanceToBorder(g,A){return this._distanceToBorder(g,A)}}class AE extends Ux{constructor(g,A,t){super(g,A,t),this._setMargins(t)}resize(g,A,t){if(this.needsRefresh(A,t)){const C=this.getDimensionsFromLabel(g,A,t).width+this.margin.right+this.margin.left;this.width=C,this.height=C,this.radius=this.width/2}}draw(g,A,t,C,I,e){this.resize(g,C,I),this.left=A-this.width/2,this.top=t-this.height/2,this.initContextForDraw(g,e),nC(g,A-this.width/2,t-this.height/2,this.width,this.height),this.performFill(g,e),this.updateBoundingBox(A,t,g,C,I),this.labelModule.draw(g,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,C,I)}distanceToBorder(g,A){return this._distanceToBorder(g,A)}}let tE=class extends Jx{draw(g,A,t,C,I,e){return this._drawShape(g,\"diamond\",4,A,t,C,I,e)}distanceToBorder(g,A){return this._distanceToBorder(g,A)}};class CE extends Jx{draw(g,A,t,C,I,e){return this._drawShape(g,\"circle\",2,A,t,C,I,e)}distanceToBorder(g){return g&&this.resize(g),this.options.size}}class IE extends Ux{resize(g){let A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(A,t)){const C=this.getDimensionsFromLabel(g,A,t);this.height=2*C.height,this.width=C.width+C.height,this.radius=.5*this.width}}draw(g,A,t,C,I,e){this.resize(g,C,I),this.left=A-.5*this.width,this.top=t-.5*this.height,this.initContextForDraw(g,e),oC(g,this.left,this.top,this.width,this.height),this.performFill(g,e),this.updateBoundingBox(A,t,g,C,I),this.labelModule.draw(g,A,t,C,I)}distanceToBorder(g,A){g&&this.resize(g);const t=.5*this.width,C=.5*this.height,I=Math.sin(A)*t,e=Math.cos(A)*C;return t*C/Math.sqrt(I*I+e*e)}}class eE extends Ux{constructor(g,A,t){super(g,A,t),this._setMargins(t)}resize(g,A,t){this.needsRefresh(A,t)&&(this.iconSize={width:Number(this.options.icon.size),height:Number(this.options.icon.size)},this.width=this.iconSize.width+this.margin.right+this.margin.left,this.height=this.iconSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}draw(g,A,t,C,I,e){return this.resize(g,C,I),this.options.icon.size=this.options.icon.size||50,this.left=A-this.width/2,this.top=t-this.height/2,this._icon(g,A,t,C,I,e),{drawExternalLabel:()=>{if(void 0!==this.options.label){const A=5;this.labelModule.draw(g,this.left+this.iconSize.width/2+this.margin.left,t+this.height/2+A,C)}this.updateBoundingBox(A,t)}}}updateBoundingBox(g,A){if(this.boundingBox.top=A-.5*this.options.icon.size,this.boundingBox.left=g-.5*this.options.icon.size,this.boundingBox.right=g+.5*this.options.icon.size,this.boundingBox.bottom=A+.5*this.options.icon.size,void 0!==this.options.label&&this.labelModule.size.width>0){const g=5;this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+g)}}_icon(g,A,t,C,I,e){const i=Number(this.options.icon.size);void 0!==this.options.icon.code?(g.font=[null!=this.options.icon.weight?this.options.icon.weight:C?\"bold\":\"\",(null!=this.options.icon.weight&&C?5:0)+i+\"px\",this.options.icon.face].join(\" \"),g.fillStyle=this.options.icon.color||\"black\",g.textAlign=\"center\",g.textBaseline=\"middle\",this.enableShadow(g,e),g.fillText(this.options.icon.code,A,t),this.disableShadow(g,e)):console.error(\"When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.\")}distanceToBorder(g,A){return this._distanceToBorder(g,A)}}let iE=class extends Hx{constructor(g,A,t,C,I){super(g,A,t),this.setImages(C,I)}resize(g){let A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(void 0===this.imageObj.src||void 0===this.imageObj.width||void 0===this.imageObj.height){const g=2*this.options.size;return this.width=g,void(this.height=g)}this.needsRefresh(A,t)&&this._resizeImage()}draw(g,A,t,C,I,e){g.save(),this.switchImages(C),this.resize();let i=A,o=t;if(\"top-left\"===this.options.shapeProperties.coordinateOrigin?(this.left=A,this.top=t,i+=this.width/2,o+=this.height/2):(this.left=A-this.width/2,this.top=t-this.height/2),!0===this.options.shapeProperties.useBorderWithImage){const A=this.options.borderWidth,t=this.options.borderWidthSelected||2*this.options.borderWidth,i=(C?t:A)/this.body.view.scale;g.lineWidth=Math.min(this.width,i),g.beginPath();let o=C?this.options.color.highlight.border:I?this.options.color.hover.border:this.options.color.border,n=C?this.options.color.highlight.background:I?this.options.color.hover.background:this.options.color.background;void 0!==e.opacity&&(o=Zl(o,e.opacity),n=Zl(n,e.opacity)),g.strokeStyle=o,g.fillStyle=n,g.rect(this.left-.5*g.lineWidth,this.top-.5*g.lineWidth,this.width+g.lineWidth,this.height+g.lineWidth),Td(g).call(g),this.performStroke(g,e),g.closePath()}this._drawImageAtPosition(g,e),this._drawImageLabel(g,i,o,C,I),this.updateBoundingBox(A,t),g.restore()}updateBoundingBox(g,A){this.resize(),\"top-left\"===this.options.shapeProperties.coordinateOrigin?(this.left=g,this.top=A):(this.left=g-this.width/2,this.top=A-this.height/2),this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width,void 0!==this.options.label&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset))}distanceToBorder(g,A){return this._distanceToBorder(g,A)}};class oE extends Jx{draw(g,A,t,C,I,e){return this._drawShape(g,\"square\",2,A,t,C,I,e)}distanceToBorder(g,A){return this._distanceToBorder(g,A)}}class nE extends Jx{draw(g,A,t,C,I,e){return this._drawShape(g,\"hexagon\",4,A,t,C,I,e)}distanceToBorder(g,A){return this._distanceToBorder(g,A)}}class sE extends Jx{draw(g,A,t,C,I,e){return this._drawShape(g,\"star\",4,A,t,C,I,e)}distanceToBorder(g,A){return this._distanceToBorder(g,A)}}class rE extends Ux{constructor(g,A,t){super(g,A,t),this._setMargins(t)}resize(g,A,t){this.needsRefresh(A,t)&&(this.textSize=this.labelModule.getTextSize(g,A,t),this.width=this.textSize.width+this.margin.right+this.margin.left,this.height=this.textSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}draw(g,A,t,C,I,e){this.resize(g,C,I),this.left=A-this.width/2,this.top=t-this.height/2,this.enableShadow(g,e),this.labelModule.draw(g,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,C,I),this.disableShadow(g,e),this.updateBoundingBox(A,t,g,C,I)}distanceToBorder(g,A){return this._distanceToBorder(g,A)}}let aE=class extends Jx{draw(g,A,t,C,I,e){return this._drawShape(g,\"triangle\",3,A,t,C,I,e)}distanceToBorder(g,A){return this._distanceToBorder(g,A)}};class dE extends Jx{draw(g,A,t,C,I,e){return this._drawShape(g,\"triangleDown\",3,A,t,C,I,e)}distanceToBorder(g,A){return this._distanceToBorder(g,A)}}function hE(g,A){var t=An(g);if(gf){var C=gf(g);A&&(C=Or(C).call(C,function(A){return hf(g,A).enumerable})),t.push.apply(t,C)}return t}function lE(g){for(var A=1;A<arguments.length;A++){var t,C,I=null!=arguments[A]?arguments[A]:{};A%2?Bn(t=hE(Object(I),!0)).call(t,function(A){ib(g,A,I[A])}):wf?Gf(g,wf(I)):Bn(C=hE(Object(I))).call(C,function(A){Kw(g,A,hf(I,A))})}return g}class cE{constructor(g,A,t,C,I,e){this.options=Wl(I),this.globalOptions=I,this.defaultOptions=e,this.body=A,this.edges=[],this.id=void 0,this.imagelist=t,this.grouplist=C,this.x=void 0,this.y=void 0,this.baseSize=this.options.size,this.baseFontSize=this.options.font.size,this.predefinedPosition=!1,this.selected=!1,this.hover=!1,this.labelModule=new Qx(this.body,this.options,!1),this.setOptions(g)}attachEdge(g){var A;-1===fa(A=this.edges).call(A,g)&&this.edges.push(g)}detachEdge(g){var A;const t=fa(A=this.edges).call(A,g);var C;-1!=t&&ss(C=this.edges).call(C,t,1)}setOptions(g){const A=this.options.shape;if(!g)return;if(void 0!==g.color&&(this._localColor=g.color),void 0!==g.id&&(this.id=g.id),void 0===this.id)throw new Error(\"Node must have an id\");cE.checkMass(g,this.id),void 0!==g.x&&(null===g.x?(this.x=void 0,this.predefinedPosition=!1):(this.x=ia(g.x),this.predefinedPosition=!0)),void 0!==g.y&&(null===g.y?(this.y=void 0,this.predefinedPosition=!1):(this.y=ia(g.y),this.predefinedPosition=!0)),void 0!==g.size&&(this.baseSize=g.size),void 0!==g.value&&(g.value=Rx(g.value)),cE.parseOptions(this.options,g,!0,this.globalOptions,this.grouplist);const t=[g,this.options,this.defaultOptions];return this.chooser=Zx(\"node\",t),this._load_images(),this.updateLabelModule(g),void 0!==g.opacity&&cE.checkOpacity(g.opacity)&&(this.options.opacity=g.opacity),this.updateShape(A),void 0!==g.hidden||void 0!==g.physics}_load_images(){if((\"circularImage\"===this.options.shape||\"image\"===this.options.shape)&&void 0===this.options.image)throw new Error(\"Option image must be defined for node type '\"+this.options.shape+\"'\");if(void 0!==this.options.image){if(void 0===this.imagelist)throw new Error(\"Internal Error: No images provided\");if(\"string\"==typeof this.options.image)this.imageObj=this.imagelist.load(this.options.image,this.options.brokenImage,this.id);else{if(void 0===this.options.image.unselected)throw new Error(\"No unselected image provided\");this.imageObj=this.imagelist.load(this.options.image.unselected,this.options.brokenImage,this.id),void 0!==this.options.image.selected?this.imageObjAlt=this.imagelist.load(this.options.image.selected,this.options.brokenImage,this.id):this.imageObjAlt=void 0}}}static checkOpacity(g){return 0<=g&&g<=1}static checkCoordinateOrigin(g){return void 0===g||\"center\"===g||\"top-left\"===g}static updateGroupOptions(g,A,t){var C;if(void 0===t)return;const I=g.group;if(void 0!==A&&void 0!==A.group&&I!==A.group)throw new Error(\"updateGroupOptions: group values in options don't match.\");if(!(\"number\"==typeof I||\"string\"==typeof I&&\"\"!=I))return;const e=t.get(I);void 0!==e.opacity&&void 0===A.opacity&&(cE.checkOpacity(e.opacity)||(console.error(\"Invalid option for node opacity. Value must be between 0 and 1, found: \"+e.opacity),e.opacity=void 0));const i=Or(C=Bx(A)).call(C,g=>null!=A[g]);i.push(\"font\"),Nl(i,g,e),g.color=Fl(g.color)}static parseOptions(g,A){let t=arguments.length>2&&void 0!==arguments[2]&&arguments[2],C=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},I=arguments.length>4?arguments[4]:void 0;if(Nl([\"color\",\"fixed\",\"shadow\"],g,A,t),cE.checkMass(A),void 0!==g.opacity&&(cE.checkOpacity(g.opacity)||(console.error(\"Invalid option for node opacity. Value must be between 0 and 1, found: \"+g.opacity),g.opacity=void 0)),void 0!==A.opacity&&(cE.checkOpacity(A.opacity)||(console.error(\"Invalid option for node opacity. Value must be between 0 and 1, found: \"+A.opacity),A.opacity=void 0)),A.shapeProperties&&!cE.checkCoordinateOrigin(A.shapeProperties.coordinateOrigin)&&console.error(\"Invalid option for node coordinateOrigin, found: \"+A.shapeProperties.coordinateOrigin),Ql(g,A,\"shadow\",C),void 0!==A.color&&null!==A.color){const t=Fl(A.color);Tl(g.color,t)}else!0===t&&null===A.color&&(g.color=Wl(C.color));void 0!==A.fixed&&null!==A.fixed&&(\"boolean\"==typeof A.fixed?(g.fixed.x=A.fixed,g.fixed.y=A.fixed):(void 0!==A.fixed.x&&\"boolean\"==typeof A.fixed.x&&(g.fixed.x=A.fixed.x),void 0!==A.fixed.y&&\"boolean\"==typeof A.fixed.y&&(g.fixed.y=A.fixed.y))),!0===t&&null===A.font&&(g.font=Wl(C.font)),cE.updateGroupOptions(g,A,I),void 0!==A.scaling&&Ql(g.scaling,A.scaling,\"label\",C.scaling)}getFormattingValues(){const g={color:this.options.color.background,opacity:this.options.opacity,borderWidth:this.options.borderWidth,borderColor:this.options.color.border,size:this.options.size,borderDashes:this.options.shapeProperties.borderDashes,borderRadius:this.options.shapeProperties.borderRadius,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y};if(this.selected||this.hover?!0===this.chooser?this.selected?(null!=this.options.borderWidthSelected?g.borderWidth=this.options.borderWidthSelected:g.borderWidth*=2,g.color=this.options.color.highlight.background,g.borderColor=this.options.color.highlight.border,g.shadow=this.options.shadow.enabled):this.hover&&(g.color=this.options.color.hover.background,g.borderColor=this.options.color.hover.border,g.shadow=this.options.shadow.enabled):\"function\"==typeof this.chooser&&(this.chooser(g,this.options.id,this.selected,this.hover),!1===g.shadow&&(g.shadowColor===this.options.shadow.color&&g.shadowSize===this.options.shadow.size&&g.shadowX===this.options.shadow.x&&g.shadowY===this.options.shadow.y||(g.shadow=!0))):g.shadow=this.options.shadow.enabled,void 0!==this.options.opacity){const A=this.options.opacity;g.borderColor=Zl(g.borderColor,A),g.color=Zl(g.color,A),g.shadowColor=Zl(g.shadowColor,A)}return g}updateLabelModule(g){void 0!==this.options.label&&null!==this.options.label||(this.options.label=\"\"),cE.updateGroupOptions(this.options,lE(lE({},g),{},{color:g&&g.color||this._localColor||void 0}),this.grouplist);const A=this.grouplist.get(this.options.group,!1),t=[g,this.options,A,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,t),void 0!==this.labelModule.baseSize&&(this.baseFontSize=this.labelModule.baseSize)}updateShape(g){if(g===this.options.shape&&this.shape)this.shape.setOptions(this.options,this.imageObj,this.imageObjAlt);else switch(this.options.shape){case\"box\":this.shape=new Kx(this.options,this.body,this.labelModule);break;case\"circle\":this.shape=new Xx(this.options,this.body,this.labelModule);break;case\"circularImage\":this.shape=new _x(this.options,this.body,this.labelModule,this.imageObj,this.imageObjAlt);break;case\"custom\":this.shape=new gE(this.options,this.body,this.labelModule,this.options.ctxRenderer);break;case\"database\":this.shape=new AE(this.options,this.body,this.labelModule);break;case\"diamond\":this.shape=new tE(this.options,this.body,this.labelModule);break;case\"dot\":this.shape=new CE(this.options,this.body,this.labelModule);break;case\"ellipse\":default:this.shape=new IE(this.options,this.body,this.labelModule);break;case\"icon\":this.shape=new eE(this.options,this.body,this.labelModule);break;case\"image\":this.shape=new iE(this.options,this.body,this.labelModule,this.imageObj,this.imageObjAlt);break;case\"square\":this.shape=new oE(this.options,this.body,this.labelModule);break;case\"hexagon\":this.shape=new nE(this.options,this.body,this.labelModule);break;case\"star\":this.shape=new sE(this.options,this.body,this.labelModule);break;case\"text\":this.shape=new rE(this.options,this.body,this.labelModule);break;case\"triangle\":this.shape=new aE(this.options,this.body,this.labelModule);break;case\"triangleDown\":this.shape=new dE(this.options,this.body,this.labelModule)}this.needsRefresh()}select(){this.selected=!0,this.needsRefresh()}unselect(){this.selected=!1,this.needsRefresh()}needsRefresh(){this.shape.refreshNeeded=!0}getTitle(){return this.options.title}distanceToBorder(g,A){return this.shape.distanceToBorder(g,A)}isFixed(){return this.options.fixed.x&&this.options.fixed.y}isSelected(){return this.selected}getValue(){return this.options.value}getLabelSize(){return this.labelModule.size()}setValueRange(g,A,t){if(void 0!==this.options.value){const C=this.options.scaling.customScalingFunction(g,A,t,this.options.value),I=this.options.scaling.max-this.options.scaling.min;if(!0===this.options.scaling.label.enabled){const g=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+C*g}this.options.size=this.options.scaling.min+C*I}else this.options.size=this.baseSize,this.options.font.size=this.baseFontSize;this.updateLabelModule()}draw(g){const A=this.getFormattingValues();return this.shape.draw(g,this.x,this.y,this.selected,this.hover,A)||{}}updateBoundingBox(g){this.shape.updateBoundingBox(this.x,this.y,g)}resize(g){const A=this.getFormattingValues();this.shape.resize(g,this.selected,this.hover,A)}getItemsOnPoint(g){const A=[];return this.labelModule.visible()&&Sx(this.labelModule.getSize(),g)&&A.push({nodeId:this.id,labelId:0}),Sx(this.shape.boundingBox,g)&&A.push({nodeId:this.id}),A}isOverlappingWith(g){return this.shape.left<g.right&&this.shape.left+this.shape.width>g.left&&this.shape.top<g.bottom&&this.shape.top+this.shape.height>g.top}isBoundingBoxOverlappingWith(g){return this.shape.boundingBox.left<g.right&&this.shape.boundingBox.right>g.left&&this.shape.boundingBox.top<g.bottom&&this.shape.boundingBox.bottom>g.top}static checkMass(g,A){if(void 0!==g.mass&&g.mass<=0){let t=\"\";void 0!==A&&(t=\" in node id: \"+A),console.error(\"%cNegative or zero mass disallowed\"+t+\", setting mass to 1.\",Ic),g.mass=1}}}class uE{constructor(g,A,t,C){var I;if(this.body=g,this.images=A,this.groups=t,this.layoutEngine=C,this.body.functions.createNode=IC(I=this.create).call(I,this),this.nodesListeners={add:(g,A)=>{this.add(A.items)},update:(g,A)=>{this.update(A.items,A.data,A.oldData)},remove:(g,A)=>{this.remove(A.items)}},this.defaultOptions={borderWidth:1,borderWidthSelected:void 0,brokenImage:void 0,color:{border:\"#2B7CE9\",background:\"#97C2FC\",highlight:{border:\"#2B7CE9\",background:\"#D2E5FF\"},hover:{border:\"#2B7CE9\",background:\"#D2E5FF\"}},opacity:void 0,fixed:{x:!1,y:!1},font:{color:\"#343434\",size:14,face:\"arial\",background:\"none\",strokeWidth:0,strokeColor:\"#ffffff\",align:\"center\",vadjust:0,multi:!1,bold:{mod:\"bold\"},boldital:{mod:\"bold italic\"},ital:{mod:\"italic\"},mono:{mod:\"\",size:15,face:\"monospace\",vadjust:2}},group:void 0,hidden:!1,icon:{face:\"FontAwesome\",code:void 0,size:50,color:\"#2B7CE9\"},image:void 0,imagePadding:{top:0,right:0,bottom:0,left:0},label:void 0,labelHighlightBold:!0,level:void 0,margin:{top:5,right:5,bottom:5,left:5},mass:1,physics:!0,scaling:{min:10,max:30,label:{enabled:!1,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(g,A,t,C){if(A===g)return.5;{const t=1/(A-g);return Math.max(0,(C-g)*t)}}},shadow:{enabled:!1,color:\"rgba(0,0,0,0.5)\",size:10,x:5,y:5},shape:\"ellipse\",shapeProperties:{borderDashes:!1,borderRadius:6,interpolation:!0,useImageSize:!1,useBorderWithImage:!1,coordinateOrigin:\"center\"},size:25,title:void 0,value:void 0,x:void 0,y:void 0},this.defaultOptions.mass<=0)throw\"Internal error: mass in defaultOptions of NodesHandler may not be zero or negative\";this.options=Wl(this.defaultOptions),this.bindEventListeners()}bindEventListeners(){var g,A;this.body.emitter.on(\"refreshNodes\",IC(g=this.refresh).call(g,this)),this.body.emitter.on(\"refresh\",IC(A=this.refresh).call(A,this)),this.body.emitter.on(\"destroy\",()=>{zl(this.nodesListeners,(g,A)=>{this.body.data.nodes&&this.body.data.nodes.off(A,g)}),delete this.body.functions.createNode,delete this.nodesListeners.add,delete this.nodesListeners.update,delete this.nodesListeners.remove,delete this.nodesListeners})}setOptions(g){if(void 0!==g){if(cE.parseOptions(this.options,g),void 0!==g.opacity&&(mp(g.opacity)||!zp(g.opacity)||g.opacity<0||g.opacity>1?console.error(\"Invalid option for node opacity. Value must be between 0 and 1, found: \"+g.opacity):this.options.opacity=g.opacity),void 0!==g.shape)for(const g in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,g)&&this.body.nodes[g].updateShape();if(void 0!==g.font||void 0!==g.widthConstraint||void 0!==g.heightConstraint)for(const g of An(this.body.nodes))this.body.nodes[g].updateLabelModule(),this.body.nodes[g].needsRefresh();if(void 0!==g.size)for(const g in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,g)&&this.body.nodes[g].needsRefresh();void 0===g.hidden&&void 0===g.physics||this.body.emitter.emit(\"_dataChanged\")}}setData(g){let A=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const t=this.body.data.nodes;if(nx(\"id\",g))this.body.data.nodes=g;else if(Po(g))this.body.data.nodes=new ex,this.body.data.nodes.add(g);else{if(g)throw new TypeError(\"Array or DataSet expected\");this.body.data.nodes=new ex}if(t&&zl(this.nodesListeners,function(g,A){t.off(A,g)}),this.body.nodes={},this.body.data.nodes){const g=this;zl(this.nodesListeners,function(A,t){g.body.data.nodes.on(t,A)});const A=this.body.data.nodes.getIds();this.add(A,!0)}!1===A&&this.body.emitter.emit(\"_dataChanged\")}add(g){let A,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const C=[];for(let t=0;t<g.length;t++){A=g[t];const I=this.body.data.nodes.get(A),e=this.create(I);C.push(e),this.body.nodes[A]=e}this.layoutEngine.positionInitially(C),!1===t&&this.body.emitter.emit(\"_dataChanged\")}update(g,A,t){const C=this.body.nodes;let I=!1;for(let t=0;t<g.length;t++){const e=g[t];let i=C[e];const o=A[t];void 0!==i?i.setOptions(o)&&(I=!0):(I=!0,i=this.create(o),C[e]=i)}I||void 0===t||(I=Qp(A).call(A,function(g,A){const C=t[A];return C&&C.level!==g.level})),!0===I?this.body.emitter.emit(\"_dataChanged\"):this.body.emitter.emit(\"_dataUpdated\")}remove(g){const A=this.body.nodes;for(let t=0;t<g.length;t++){delete A[g[t]]}this.body.emitter.emit(\"_dataChanged\")}create(g){return new(arguments.length>1&&void 0!==arguments[1]?arguments[1]:cE)(g,this.body,this.images,this.groups,this.options,this.defaultOptions)}refresh(){let g=arguments.length>0&&void 0!==arguments[0]&&arguments[0];zl(this.body.nodes,(A,t)=>{const C=this.body.data.nodes.get(t);void 0!==C&&(!0===g&&A.setOptions({x:null,y:null}),A.setOptions({fixed:!1}),A.setOptions(C))})}getPositions(g){const A={};if(void 0!==g){if(!0===Po(g)){for(let t=0;t<g.length;t++)if(void 0!==this.body.nodes[g[t]]){const C=this.body.nodes[g[t]];A[g[t]]={x:Math.round(C.x),y:Math.round(C.y)}}}else if(void 0!==this.body.nodes[g]){const t=this.body.nodes[g];A[g]={x:Math.round(t.x),y:Math.round(t.y)}}}else for(let g=0;g<this.body.nodeIndices.length;g++){const t=this.body.nodes[this.body.nodeIndices[g]];A[this.body.nodeIndices[g]]={x:Math.round(t.x),y:Math.round(t.y)}}return A}getPosition(g){if(null==g)throw new TypeError(\"No id was specified for getPosition method.\");if(null==this.body.nodes[g])throw new ReferenceError(\"NodeId provided for getPosition does not exist. Provided: \".concat(g));return{x:Math.round(this.body.nodes[g].x),y:Math.round(this.body.nodes[g].y)}}storePositions(){const g=[],A=this.body.data.nodes.getDataSet();for(const t of A.get()){const A=t.id,C=this.body.nodes[A],I=Math.round(C.x),e=Math.round(C.y);t.x===I&&t.y===e||g.push({id:A,x:I,y:e})}A.update(g)}getBoundingBox(g){if(void 0!==this.body.nodes[g])return this.body.nodes[g].shape.boundingBox}getConnectedNodes(g,A){const t=[];if(void 0!==this.body.nodes[g]){const C=this.body.nodes[g],I={};for(let g=0;g<C.edges.length;g++){const e=C.edges[g];\"to\"!==A&&e.toId==C.id?void 0===I[e.fromId]&&(t.push(e.fromId),I[e.fromId]=!0):\"from\"!==A&&e.fromId==C.id&&void 0===I[e.toId]&&(t.push(e.toId),I[e.toId]=!0)}}return t}getConnectedEdges(g){const A=[];if(void 0!==this.body.nodes[g]){const t=this.body.nodes[g];for(let g=0;g<t.edges.length;g++)A.push(t.edges[g].id)}else console.error(\"NodeId provided for getConnectedEdges does not exist. Provided: \",g);return A}moveNode(g,A,t){void 0!==this.body.nodes[g]?(this.body.nodes[g].x=Number(A),this.body.nodes[g].y=Number(t),bd(()=>{this.body.emitter.emit(\"startSimulation\")},0)):console.error(\"Node id supplied to moveNode does not exist. Provided: \",g)}}var pE,fE,vE,bE,mE,yE,wE,xE={};function EE(){return vE?fE:(vE=1,function(){if(pE)return xE;pE=1;var g=st(),A=Math.hypot,t=Math.abs,C=Math.sqrt;g({target:\"Math\",stat:!0,arity:2,forced:!!A&&A(1/0,NaN)!==1/0},{hypot:function(g,A){for(var I,e,i=0,o=0,n=arguments.length,s=0;o<n;)s<(I=t(arguments[o++]))?(i=i*(e=s/I)*e+1,s=I):i+=I>0?(e=I/s)*e:I;return s===1/0?1/0:s*C(i)}})}(),fE=Tg().Math.hypot)}function OE(){return mE?bE:(mE=1,bE=EE())}var TE=C(wE?yE:(wE=1,yE=OE()));class DE{static transform(g,A){Po(g)||(g=[g]);const t=A.point.x,C=A.point.y,I=A.angle,e=A.length;for(let A=0;A<g.length;++A){const i=g[A],o=i.x*Math.cos(I)-i.y*Math.sin(I),n=i.x*Math.sin(I)+i.y*Math.cos(I);i.x=t+e*o,i.y=C+e*n}}static drawPath(g,A){g.beginPath(),g.moveTo(A[0].x,A[0].y);for(let t=1;t<A.length;++t)g.lineTo(A[t].x,A[t].y);g.closePath()}}let NE=class extends DE{static draw(g,A){if(A.image){g.save(),g.translate(A.point.x,A.point.y),g.rotate(Math.PI/2+A.angle);const t=null!=A.imageWidth?A.imageWidth:A.image.width,C=null!=A.imageHeight?A.imageHeight:A.image.height;A.image.drawImageAtPosition(g,1,-t/2,0,t,C),g.restore()}return!1}};class RE extends DE{static draw(g,A){const t=[{x:0,y:0},{x:-1,y:.3},{x:-.9,y:0},{x:-1,y:-.3}];return DE.transform(t,A),DE.drawPath(g,t),!0}}class kE{static draw(g,A){const t=[{x:-1,y:0},{x:0,y:.3},{x:-.4,y:0},{x:0,y:-.3}];return DE.transform(t,A),DE.drawPath(g,t),!0}}class PE{static draw(g,A){const t={x:-.4,y:0};DE.transform(t,A),g.strokeStyle=g.fillStyle,g.fillStyle=\"rgba(0, 0, 0, 0)\";const C=Math.PI,I=A.angle-C/2,e=A.angle+C/2;return g.beginPath(),g.arc(t.x,t.y,.4*A.length,I,e,!1),g.stroke(),!0}}class ME{static draw(g,A){const t={x:-.3,y:0};DE.transform(t,A),g.strokeStyle=g.fillStyle,g.fillStyle=\"rgba(0, 0, 0, 0)\";const C=Math.PI,I=A.angle+C/2,e=A.angle+3*C/2;return g.beginPath(),g.arc(t.x,t.y,.4*A.length,I,e,!1),g.stroke(),!0}}class zE{static draw(g,A){const t=[{x:.02,y:0},{x:-1,y:.3},{x:-1,y:-.3}];return DE.transform(t,A),DE.drawPath(g,t),!0}}class BE{static draw(g,A){const t=[{x:0,y:.3},{x:0,y:-.3},{x:-1,y:0}];return DE.transform(t,A),DE.drawPath(g,t),!0}}class ZE{static draw(g,A){const t={x:-.4,y:0};return DE.transform(t,A),eC(g,t.x,t.y,.4*A.length),!0}}class SE{static draw(g,A){const t=[{x:0,y:.5},{x:0,y:-.5},{x:-.15,y:-.5},{x:-.15,y:.5}];return DE.transform(t,A),DE.drawPath(g,t),!0}}class FE{static draw(g,A){const t=[{x:0,y:.3},{x:0,y:-.3},{x:-.6,y:-.3},{x:-.6,y:.3}];return DE.transform(t,A),DE.drawPath(g,t),!0}}class GE{static draw(g,A){const t=[{x:0,y:0},{x:-.5,y:-.3},{x:-1,y:0},{x:-.5,y:.3}];return DE.transform(t,A),DE.drawPath(g,t),!0}}class LE{static draw(g,A){const t=[{x:-1,y:.3},{x:-.5,y:0},{x:-1,y:-.3},{x:0,y:0}];return DE.transform(t,A),DE.drawPath(g,t),!0}}class jE{static draw(g,A){let t;switch(A.type&&(t=A.type.toLowerCase()),t){case\"image\":return NE.draw(g,A);case\"circle\":return ZE.draw(g,A);case\"box\":return FE.draw(g,A);case\"crow\":return kE.draw(g,A);case\"curve\":return PE.draw(g,A);case\"diamond\":return GE.draw(g,A);case\"inv_curve\":return ME.draw(g,A);case\"triangle\":return zE.draw(g,A);case\"inv_triangle\":return BE.draw(g,A);case\"bar\":return SE.draw(g,A);case\"vee\":return LE.draw(g,A);default:return RE.draw(g,A)}}}function VE(g,A){var t=An(g);if(gf){var C=gf(g);A&&(C=Or(C).call(C,function(A){return hf(g,A).enumerable})),t.push.apply(t,C)}return t}function YE(g){for(var A=1;A<arguments.length;A++){var t,C,I=null!=arguments[A]?arguments[A]:{};A%2?Bn(t=VE(Object(I),!0)).call(t,function(A){ib(g,A,I[A])}):wf?Gf(g,wf(I)):Bn(C=VE(Object(I))).call(C,function(A){Kw(g,A,hf(I,A))})}return g}class WE{constructor(g,A,t){ib(this,\"color\",{}),ib(this,\"colorDirty\",!0),ib(this,\"hoverWidth\",1.5),ib(this,\"selectionWidth\",2),this._body=A,this._labelModule=t,this.setOptions(g),this.fromPoint=this.from,this.toPoint=this.to}connect(){this.from=this._body.nodes[this.options.from],this.to=this._body.nodes[this.options.to]}cleanup(){return!1}setOptions(g){this.options=g,this.from=this._body.nodes[this.options.from],this.to=this._body.nodes[this.options.to],this.id=this.options.id}drawLine(g,A,t,C){let I=arguments.length>4&&void 0!==arguments[4]?arguments[4]:this.getViaNode();g.strokeStyle=this.getColor(g,A),g.lineWidth=A.width,!1!==A.dashes?this._drawDashedLine(g,A,I):this._drawLine(g,A,I)}_drawLine(g,A,t,C,I){if(this.from!=this.to)this._line(g,A,t,C,I);else{const[t,C,I]=this._getCircleData(g);this._circle(g,A,t,C,I)}}_drawDashedLine(g,A,t,C,I){g.lineCap=\"round\";const e=Po(A.dashes)?A.dashes:[5,5];if(void 0!==g.setLineDash){if(g.save(),g.setLineDash(e),g.lineDashOffset=0,this.from!=this.to)this._line(g,A,t);else{const[t,C,I]=this._getCircleData(g);this._circle(g,A,t,C,I)}g.setLineDash([0]),g.lineDashOffset=0,g.restore()}else{if(this.from!=this.to)sC(g,this.from.x,this.from.y,this.to.x,this.to.y,e);else{const[t,C,I]=this._getCircleData(g);this._circle(g,A,t,C,I)}this.enableShadow(g,A),g.stroke(),this.disableShadow(g,A)}}findBorderPosition(g,A,t){return this.from!=this.to?this._findBorderPosition(g,A,t):this._findBorderPositionCircle(g,A,t)}findBorderPositions(g){if(this.from!=this.to)return{from:this._findBorderPosition(this.from,g),to:this._findBorderPosition(this.to,g)};{var A;const[t,C]=no(A=this._getCircleData(g)).call(A,0,2);return{from:this._findBorderPositionCircle(this.from,g,{x:t,y:C,low:.25,high:.6,direction:-1}),to:this._findBorderPositionCircle(this.from,g,{x:t,y:C,low:.6,high:.8,direction:1})}}}_getCircleData(g){const A=this.options.selfReference.size;void 0!==g&&void 0===this.from.shape.width&&this.from.shape.resize(g);const t=Gx(g,this.options.selfReference.angle,A,this.from);return[t.x,t.y,A]}_pointOnCircle(g,A,t,C){const I=2*C*Math.PI;return{x:g+t*Math.cos(I),y:A-t*Math.sin(I)}}_findBorderPositionCircle(g,A,t){const C=t.x,I=t.y;let e=t.low,i=t.high;const o=t.direction,n=this.options.selfReference.size;let s,r=.5*(e+i),a=0;!0===this.options.arrowStrikethrough&&(-1===o?a=this.options.endPointOffset.from:1===o&&(a=this.options.endPointOffset.to));let d=0;do{r=.5*(e+i),s=this._pointOnCircle(C,I,n,r);const t=Math.atan2(g.y-s.y,g.x-s.x),h=g.distanceToBorder(A,t)+a-Math.sqrt(Math.pow(s.x-g.x,2)+Math.pow(s.y-g.y,2));if(Math.abs(h)<.05)break;h>0?o>0?e=r:i=r:o>0?i=r:e=r,++d}while(e<=i&&d<10);return YE(YE({},s),{},{t:r})}getLineWidth(g,A){return!0===g?Math.max(this.selectionWidth,.3/this._body.view.scale):!0===A?Math.max(this.hoverWidth,.3/this._body.view.scale):Math.max(this.options.width,.3/this._body.view.scale)}getColor(g,A){if(!1!==A.inheritsColor){if(\"both\"===A.inheritsColor&&this.from.id!==this.to.id){const t=g.createLinearGradient(this.from.x,this.from.y,this.to.x,this.to.y);let C=this.from.options.color.highlight.border,I=this.to.options.color.highlight.border;return!1===this.from.selected&&!1===this.to.selected?(C=Zl(this.from.options.color.border,A.opacity),I=Zl(this.to.options.color.border,A.opacity)):!0===this.from.selected&&!1===this.to.selected?I=this.to.options.color.border:!1===this.from.selected&&!0===this.to.selected&&(C=this.from.options.color.border),t.addColorStop(0,C),t.addColorStop(1,I),t}return\"to\"===A.inheritsColor?Zl(this.to.options.color.border,A.opacity):Zl(this.from.options.color.border,A.opacity)}return Zl(A.color,A.opacity)}_circle(g,A,t,C,I){this.enableShadow(g,A);let e=0,i=2*Math.PI;if(!this.options.selfReference.renderBehindTheNode){const A=this.options.selfReference.angle,I=this.options.selfReference.angle+Math.PI,o=this._findBorderPositionCircle(this.from,g,{x:t,y:C,low:A,high:I,direction:-1}),n=this._findBorderPositionCircle(this.from,g,{x:t,y:C,low:A,high:I,direction:1});e=Math.atan2(o.y-C,o.x-t),i=Math.atan2(n.y-C,n.x-t)}g.beginPath(),g.arc(t,C,I,e,i,!1),g.stroke(),this.disableShadow(g,A)}getDistanceToEdge(g,A,t,C,I,e){if(this.from!=this.to)return this._getDistanceToEdge(g,A,t,C,I,e);{const[g,A,t]=this._getCircleData(void 0),C=g-I,i=A-e;return Math.abs(Math.sqrt(C*C+i*i)-t)}}_getDistanceToLine(g,A,t,C,I,e){const i=t-g,o=C-A;let n=((I-g)*i+(e-A)*o)/(i*i+o*o);n>1?n=1:n<0&&(n=0);const s=g+n*i-I,r=A+n*o-e;return Math.sqrt(s*s+r*r)}getArrowData(g,A,t,C,I,e){let i,o,n,s,r,a,d;const h=e.width;\"from\"===A?(n=this.from,s=this.to,r=e.fromArrowScale<0,a=Math.abs(e.fromArrowScale),d=e.fromArrowType):\"to\"===A?(n=this.to,s=this.from,r=e.toArrowScale<0,a=Math.abs(e.toArrowScale),d=e.toArrowType):(n=this.to,s=this.from,r=e.middleArrowScale<0,a=Math.abs(e.middleArrowScale),d=e.middleArrowType);const l=15*a+3*h;if(n!=s){const C=l/TE(n.x-s.x,n.y-s.y);if(\"middle\"!==A)if(!0===this.options.smooth.enabled){const I=this._findBorderPosition(n,g,{via:t}),e=this.getPoint(I.t+C*(\"from\"===A?1:-1),t);i=Math.atan2(I.y-e.y,I.x-e.x),o=I}else i=Math.atan2(n.y-s.y,n.x-s.x),o=this._findBorderPosition(n,g);else{const g=(r?-C:C)/2,A=this.getPoint(.5+g,t),I=this.getPoint(.5-g,t);i=Math.atan2(A.y-I.y,A.x-I.x),o=this.getPoint(.5,t)}}else{const[t,C,I]=this._getCircleData(g);if(\"from\"===A){const A=this.options.selfReference.angle,I=this.options.selfReference.angle+Math.PI,e=this._findBorderPositionCircle(this.from,g,{x:t,y:C,low:A,high:I,direction:-1});i=-2*e.t*Math.PI+1.5*Math.PI+.1*Math.PI,o=e}else if(\"to\"===A){const A=this.options.selfReference.angle,I=this.options.selfReference.angle+Math.PI,e=this._findBorderPositionCircle(this.from,g,{x:t,y:C,low:A,high:I,direction:1});i=-2*e.t*Math.PI+1.5*Math.PI-1.1*Math.PI,o=e}else{const g=this.options.selfReference.angle/(2*Math.PI);o=this._pointOnCircle(t,C,I,g),i=-2*g*Math.PI+1.5*Math.PI+.1*Math.PI}}return{point:o,core:{x:o.x-.9*l*Math.cos(i),y:o.y-.9*l*Math.sin(i)},angle:i,length:l,type:d}}drawArrowHead(g,A,t,C,I){g.strokeStyle=this.getColor(g,A),g.fillStyle=g.strokeStyle,g.lineWidth=A.width;jE.draw(g,I)&&(this.enableShadow(g,A),Td(g).call(g),this.disableShadow(g,A))}enableShadow(g,A){!0===A.shadow&&(g.shadowColor=A.shadowColor,g.shadowBlur=A.shadowSize,g.shadowOffsetX=A.shadowX,g.shadowOffsetY=A.shadowY)}disableShadow(g,A){!0===A.shadow&&(g.shadowColor=\"rgba(0,0,0,0)\",g.shadowBlur=0,g.shadowOffsetX=0,g.shadowOffsetY=0)}drawBackground(g,A){if(!1!==A.background){const t={strokeStyle:g.strokeStyle,lineWidth:g.lineWidth,dashes:g.dashes};g.strokeStyle=A.backgroundColor,g.lineWidth=A.backgroundSize,this.setStrokeDashed(g,A.backgroundDashes),g.stroke(),g.strokeStyle=t.strokeStyle,g.lineWidth=t.lineWidth,g.dashes=t.dashes,this.setStrokeDashed(g,A.dashes)}}setStrokeDashed(g,A){if(!1!==A)if(void 0!==g.setLineDash){const t=Po(A)?A:[5,5];g.setLineDash(t)}else console.warn(\"setLineDash is not supported in this browser. The dashed stroke cannot be used.\");else void 0!==g.setLineDash?g.setLineDash([]):console.warn(\"setLineDash is not supported in this browser. The dashed stroke cannot be used.\")}}function QE(g,A){var t=An(g);if(gf){var C=gf(g);A&&(C=Or(C).call(C,function(A){return hf(g,A).enumerable})),t.push.apply(t,C)}return t}function UE(g){for(var A=1;A<arguments.length;A++){var t,C,I=null!=arguments[A]?arguments[A]:{};A%2?Bn(t=QE(Object(I),!0)).call(t,function(A){ib(g,A,I[A])}):wf?Gf(g,wf(I)):Bn(C=QE(Object(I))).call(C,function(A){Kw(g,A,hf(I,A))})}return g}class KE extends WE{_findBorderPositionBezier(g,A){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this._getViaCoordinates();let C,I,e=!1,i=1,o=0,n=this.to,s=this.options.endPointOffset?this.options.endPointOffset.to:0;g.id===this.from.id&&(n=this.from,e=!0,s=this.options.endPointOffset?this.options.endPointOffset.from:0),!1===this.options.arrowStrikethrough&&(s=0);let r=0;do{I=.5*(o+i),C=this.getPoint(I,t);const g=Math.atan2(n.y-C.y,n.x-C.x),a=n.distanceToBorder(A,g)+s-Math.sqrt(Math.pow(C.x-n.x,2)+Math.pow(C.y-n.y,2));if(Math.abs(a)<.2)break;a<0?!1===e?o=I:i=I:!1===e?i=I:o=I,++r}while(o<=i&&r<10);return UE(UE({},C),{},{t:I})}_getDistanceToBezierEdge(g,A,t,C,I,e,i){let o,n,s,r,a,d=1e9,h=g,l=A;for(n=1;n<10;n++)s=.1*n,r=Math.pow(1-s,2)*g+2*s*(1-s)*i.x+Math.pow(s,2)*t,a=Math.pow(1-s,2)*A+2*s*(1-s)*i.y+Math.pow(s,2)*C,n>0&&(o=this._getDistanceToLine(h,l,r,a,I,e),d=o<d?o:d),h=r,l=a;return d}_bezierCurve(g,A,t,C){g.beginPath(),g.moveTo(this.fromPoint.x,this.fromPoint.y),null!=t&&null!=t.x?null!=C&&null!=C.x?g.bezierCurveTo(t.x,t.y,C.x,C.y,this.toPoint.x,this.toPoint.y):g.quadraticCurveTo(t.x,t.y,this.toPoint.x,this.toPoint.y):g.lineTo(this.toPoint.x,this.toPoint.y),this.drawBackground(g,A),this.enableShadow(g,A),g.stroke(),this.disableShadow(g,A)}getViaNode(){return this._getViaCoordinates()}}class HE extends KE{constructor(g,A,t){super(g,A,t),ib(this,\"via\",this.via),this._boundFunction=()=>{this.positionBezierNode()},this._body.emitter.on(\"_repositionBezierNodes\",this._boundFunction)}setOptions(g){super.setOptions(g);let A=!1;this.options.physics!==g.physics&&(A=!0),this.options=g,this.id=this.options.id,this.from=this._body.nodes[this.options.from],this.to=this._body.nodes[this.options.to],this.setupSupportNode(),this.connect(),!0===A&&(this.via.setOptions({physics:this.options.physics}),this.positionBezierNode())}connect(){this.from=this._body.nodes[this.options.from],this.to=this._body.nodes[this.options.to],void 0===this.from||void 0===this.to||!1===this.options.physics||this.from.id===this.to.id?this.via.setOptions({physics:!1}):this.via.setOptions({physics:!0})}cleanup(){return this._body.emitter.off(\"_repositionBezierNodes\",this._boundFunction),void 0!==this.via&&(delete this._body.nodes[this.via.id],this.via=void 0,!0)}setupSupportNode(){if(void 0===this.via){const g=\"edgeId:\"+this.id,A=this._body.functions.createNode({id:g,shape:\"circle\",physics:!0,hidden:!0});this._body.nodes[g]=A,this.via=A,this.via.parentEdgeId=this.id,this.positionBezierNode()}}positionBezierNode(){void 0!==this.via&&void 0!==this.from&&void 0!==this.to?(this.via.x=.5*(this.from.x+this.to.x),this.via.y=.5*(this.from.y+this.to.y)):void 0!==this.via&&(this.via.x=0,this.via.y=0)}_line(g,A,t){this._bezierCurve(g,A,t)}_getViaCoordinates(){return this.via}getViaNode(){return this.via}getPoint(g){let A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.via;if(this.from===this.to){const[A,t,C]=this._getCircleData(),I=2*Math.PI*(1-g);return{x:A+C*Math.sin(I),y:t+C-C*(1-Math.cos(I))}}return{x:Math.pow(1-g,2)*this.fromPoint.x+2*g*(1-g)*A.x+Math.pow(g,2)*this.toPoint.x,y:Math.pow(1-g,2)*this.fromPoint.y+2*g*(1-g)*A.y+Math.pow(g,2)*this.toPoint.y}}_findBorderPosition(g,A){return this._findBorderPositionBezier(g,A,this.via)}_getDistanceToEdge(g,A,t,C,I,e){return this._getDistanceToBezierEdge(g,A,t,C,I,e,this.via)}}class XE extends KE{_line(g,A,t){this._bezierCurve(g,A,t)}getViaNode(){return this._getViaCoordinates()}_getViaCoordinates(){const g=this.options.smooth.roundness,A=this.options.smooth.type;let t=Math.abs(this.from.x-this.to.x),C=Math.abs(this.from.y-this.to.y);if(\"discrete\"===A||\"diagonalCross\"===A){let I,e;I=e=t<=C?g*C:g*t,this.from.x>this.to.x&&(I=-I),this.from.y>=this.to.y&&(e=-e);let i=this.from.x+I,o=this.from.y+e;return\"discrete\"===A&&(t<=C?i=t<g*C?this.from.x:i:o=C<g*t?this.from.y:o),{x:i,y:o}}if(\"straightCross\"===A){let A=(1-g)*t,I=(1-g)*C;return t<=C?(A=0,this.from.y<this.to.y&&(I=-I)):(this.from.x<this.to.x&&(A=-A),I=0),{x:this.to.x+A,y:this.to.y+I}}if(\"horizontal\"===A){let A=(1-g)*t;return this.from.x<this.to.x&&(A=-A),{x:this.to.x+A,y:this.from.y}}if(\"vertical\"===A){let A=(1-g)*C;return this.from.y<this.to.y&&(A=-A),{x:this.from.x,y:this.to.y+A}}if(\"curvedCW\"===A){t=this.to.x-this.from.x,C=this.from.y-this.to.y;const A=Math.sqrt(t*t+C*C),I=Math.PI,e=(Math.atan2(C,t)+(.5*g+.5)*I)%(2*I);return{x:this.from.x+(.5*g+.5)*A*Math.sin(e),y:this.from.y+(.5*g+.5)*A*Math.cos(e)}}if(\"curvedCCW\"===A){t=this.to.x-this.from.x,C=this.from.y-this.to.y;const A=Math.sqrt(t*t+C*C),I=Math.PI,e=(Math.atan2(C,t)+(.5*-g+.5)*I)%(2*I);return{x:this.from.x+(.5*g+.5)*A*Math.sin(e),y:this.from.y+(.5*g+.5)*A*Math.cos(e)}}{let A,I;A=I=t<=C?g*C:g*t,this.from.x>this.to.x&&(A=-A),this.from.y>=this.to.y&&(I=-I);let e=this.from.x+A,i=this.from.y+I;return t<=C?e=this.from.x<=this.to.x?this.to.x<e?this.to.x:e:this.to.x>e?this.to.x:e:i=this.from.y>=this.to.y?this.to.y>i?this.to.y:i:this.to.y<i?this.to.y:i,{x:e,y:i}}}_findBorderPosition(g,A){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._findBorderPositionBezier(g,A,t.via)}_getDistanceToEdge(g,A,t,C,I,e){let i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge(g,A,t,C,I,e,i)}getPoint(g){let A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._getViaCoordinates();const t=g;return{x:Math.pow(1-t,2)*this.fromPoint.x+2*t*(1-t)*A.x+Math.pow(t,2)*this.toPoint.x,y:Math.pow(1-t,2)*this.fromPoint.y+2*t*(1-t)*A.y+Math.pow(t,2)*this.toPoint.y}}}class _E extends KE{_getDistanceToBezierEdge2(g,A,t,C,I,e,i,o){let n=1e9,s=g,r=A;const a=[0,0,0,0];for(let d=1;d<10;d++){const h=.1*d;a[0]=Math.pow(1-h,3),a[1]=3*h*Math.pow(1-h,2),a[2]=3*Math.pow(h,2)*(1-h),a[3]=Math.pow(h,3);const l=a[0]*g+a[1]*i.x+a[2]*o.x+a[3]*t,c=a[0]*A+a[1]*i.y+a[2]*o.y+a[3]*C;if(d>0){const g=this._getDistanceToLine(s,r,l,c,I,e);n=g<n?g:n}s=l,r=c}return n}}class JE extends _E{_line(g,A,t){const C=t[0],I=t[1];this._bezierCurve(g,A,C,I)}_getViaCoordinates(){const g=this.from.x-this.to.x,A=this.from.y-this.to.y;let t,C,I,e;const i=this.options.smooth.roundness;return(Math.abs(g)>Math.abs(A)||!0===this.options.smooth.forceDirection||\"horizontal\"===this.options.smooth.forceDirection)&&\"vertical\"!==this.options.smooth.forceDirection?(C=this.from.y,e=this.to.y,t=this.from.x-i*g,I=this.to.x+i*g):(C=this.from.y-i*A,e=this.to.y+i*A,t=this.from.x,I=this.to.x),[{x:t,y:C},{x:I,y:e}]}getViaNode(){return this._getViaCoordinates()}_findBorderPosition(g,A){return this._findBorderPositionBezier(g,A)}_getDistanceToEdge(g,A,t,C,I,e){let[i,o]=arguments.length>6&&void 0!==arguments[6]?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge2(g,A,t,C,I,e,i,o)}getPoint(g){let[A,t]=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._getViaCoordinates();const C=g,I=[Math.pow(1-C,3),3*C*Math.pow(1-C,2),3*Math.pow(C,2)*(1-C),Math.pow(C,3)];return{x:I[0]*this.fromPoint.x+I[1]*A.x+I[2]*t.x+I[3]*this.toPoint.x,y:I[0]*this.fromPoint.y+I[1]*A.y+I[2]*t.y+I[3]*this.toPoint.y}}}class qE extends WE{_line(g,A){g.beginPath(),g.moveTo(this.fromPoint.x,this.fromPoint.y),g.lineTo(this.toPoint.x,this.toPoint.y),this.enableShadow(g,A),g.stroke(),this.disableShadow(g,A)}getViaNode(){}getPoint(g){return{x:(1-g)*this.fromPoint.x+g*this.toPoint.x,y:(1-g)*this.fromPoint.y+g*this.toPoint.y}}_findBorderPosition(g,A){let t=this.to,C=this.from;g.id===this.from.id&&(t=this.from,C=this.to);const I=Math.atan2(t.y-C.y,t.x-C.x),e=t.x-C.x,i=t.y-C.y,o=Math.sqrt(e*e+i*i),n=(o-g.distanceToBorder(A,I))/o;return{x:(1-n)*C.x+n*t.x,y:(1-n)*C.y+n*t.y,t:0}}_getDistanceToEdge(g,A,t,C,I,e){return this._getDistanceToLine(g,A,t,C,I,e)}}class $E{constructor(g,A,t,C,I){if(void 0===A)throw new Error(\"No body provided\");this.options=Wl(C),this.globalOptions=C,this.defaultOptions=I,this.body=A,this.imagelist=t,this.id=void 0,this.fromId=void 0,this.toId=void 0,this.selected=!1,this.hover=!1,this.labelDirty=!0,this.baseWidth=this.options.width,this.baseFontSize=this.options.font.size,this.from=void 0,this.to=void 0,this.edgeType=void 0,this.connected=!1,this.labelModule=new Qx(this.body,this.options,!0),this.setOptions(g)}setOptions(g){if(!g)return;let A=void 0!==g.physics&&this.options.physics!==g.physics||void 0!==g.hidden&&(this.options.hidden||!1)!==(g.hidden||!1)||void 0!==g.from&&this.options.from!==g.from||void 0!==g.to&&this.options.to!==g.to;$E.parseOptions(this.options,g,!0,this.globalOptions),void 0!==g.id&&(this.id=g.id),void 0!==g.from&&(this.fromId=g.from),void 0!==g.to&&(this.toId=g.to),void 0!==g.title&&(this.title=g.title),void 0!==g.value&&(g.value=Rx(g.value));const t=[g,this.options,this.defaultOptions];return this.chooser=Zx(\"edge\",t),this.updateLabelModule(g),A=this.updateEdgeType()||A,this._setInteractionWidths(),this.connect(),A}static parseOptions(g,A){let t=arguments.length>2&&void 0!==arguments[2]&&arguments[2],C=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},I=arguments.length>4&&void 0!==arguments[4]&&arguments[4];if(Dl([\"endPointOffset\",\"arrowStrikethrough\",\"id\",\"from\",\"hidden\",\"hoverWidth\",\"labelHighlightBold\",\"length\",\"line\",\"opacity\",\"physics\",\"scaling\",\"selectionWidth\",\"selfReferenceSize\",\"selfReference\",\"to\",\"title\",\"value\",\"width\",\"font\",\"chosen\",\"widthConstraint\"],g,A,t),void 0!==A.endPointOffset&&void 0!==A.endPointOffset.from&&(zp(A.endPointOffset.from)?g.endPointOffset.from=A.endPointOffset.from:(g.endPointOffset.from=void 0!==C.endPointOffset.from?C.endPointOffset.from:0,console.error(\"endPointOffset.from is not a valid number\"))),void 0!==A.endPointOffset&&void 0!==A.endPointOffset.to&&(zp(A.endPointOffset.to)?g.endPointOffset.to=A.endPointOffset.to:(g.endPointOffset.to=void 0!==C.endPointOffset.to?C.endPointOffset.to:0,console.error(\"endPointOffset.to is not a valid number\"))),Fx(A.label)?g.label=A.label:Fx(g.label)||(g.label=void 0),Ql(g,A,\"smooth\",C),Ql(g,A,\"shadow\",C),Ql(g,A,\"background\",C),void 0!==A.dashes&&null!==A.dashes?g.dashes=A.dashes:!0===t&&null===A.dashes&&(g.dashes=za(C.dashes)),void 0!==A.scaling&&null!==A.scaling?(void 0!==A.scaling.min&&(g.scaling.min=A.scaling.min),void 0!==A.scaling.max&&(g.scaling.max=A.scaling.max),Ql(g.scaling,A.scaling,\"label\",C.scaling)):!0===t&&null===A.scaling&&(g.scaling=za(C.scaling)),void 0!==A.arrows&&null!==A.arrows)if(\"string\"==typeof A.arrows){const t=A.arrows.toLowerCase();g.arrows.to.enabled=-1!=fa(t).call(t,\"to\"),g.arrows.middle.enabled=-1!=fa(t).call(t,\"middle\"),g.arrows.from.enabled=-1!=fa(t).call(t,\"from\")}else{if(\"object\"!=typeof A.arrows)throw new Error(\"The arrow newOptions can only be an object or a string. Refer to the documentation. You used:\"+Ha(A.arrows));Ql(g.arrows,A.arrows,\"to\",C.arrows),Ql(g.arrows,A.arrows,\"middle\",C.arrows),Ql(g.arrows,A.arrows,\"from\",C.arrows)}else!0===t&&null===A.arrows&&(g.arrows=za(C.arrows));if(void 0!==A.color&&null!==A.color){const e=xl(A.color)?{color:A.color,highlight:A.color,hover:A.color,inherit:!1,opacity:1}:A.color,i=g.color;if(I)Rl(i,C.color,!1,t);else for(const g in i)Object.prototype.hasOwnProperty.call(i,g)&&delete i[g];if(xl(i))i.color=i,i.highlight=i,i.hover=i,i.inherit=!1,void 0===e.opacity&&(i.opacity=1);else{let g=!1;void 0!==e.color&&(i.color=e.color,g=!0),void 0!==e.highlight&&(i.highlight=e.highlight,g=!0),void 0!==e.hover&&(i.hover=e.hover,g=!0),void 0!==e.inherit&&(i.inherit=e.inherit),void 0!==e.opacity&&(i.opacity=Math.min(1,Math.max(0,e.opacity))),!0===g?i.inherit=!1:void 0===i.inherit&&(i.inherit=\"from\")}}else!0===t&&null===A.color&&(g.color=Wl(C.color));!0===t&&null===A.font&&(g.font=Wl(C.font)),Object.prototype.hasOwnProperty.call(A,\"selfReferenceSize\")&&(console.warn(\"The selfReferenceSize property has been deprecated. Please use selfReference property instead. The selfReference can be set like thise selfReference:{size:30, angle:Math.PI / 4}\"),g.selfReference.size=A.selfReferenceSize)}getFormattingValues(){const g=!0===this.options.arrows.to||!0===this.options.arrows.to.enabled,A=!0===this.options.arrows.from||!0===this.options.arrows.from.enabled,t=!0===this.options.arrows.middle||!0===this.options.arrows.middle.enabled,C=this.options.color.inherit,I={toArrow:g,toArrowScale:this.options.arrows.to.scaleFactor,toArrowType:this.options.arrows.to.type,toArrowSrc:this.options.arrows.to.src,toArrowImageWidth:this.options.arrows.to.imageWidth,toArrowImageHeight:this.options.arrows.to.imageHeight,middleArrow:t,middleArrowScale:this.options.arrows.middle.scaleFactor,middleArrowType:this.options.arrows.middle.type,middleArrowSrc:this.options.arrows.middle.src,middleArrowImageWidth:this.options.arrows.middle.imageWidth,middleArrowImageHeight:this.options.arrows.middle.imageHeight,fromArrow:A,fromArrowScale:this.options.arrows.from.scaleFactor,fromArrowType:this.options.arrows.from.type,fromArrowSrc:this.options.arrows.from.src,fromArrowImageWidth:this.options.arrows.from.imageWidth,fromArrowImageHeight:this.options.arrows.from.imageHeight,arrowStrikethrough:this.options.arrowStrikethrough,color:C?void 0:this.options.color.color,inheritsColor:C,opacity:this.options.color.opacity,hidden:this.options.hidden,length:this.options.length,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y,dashes:this.options.dashes,width:this.options.width,background:this.options.background.enabled,backgroundColor:this.options.background.color,backgroundSize:this.options.background.size,backgroundDashes:this.options.background.dashes};if(this.selected||this.hover)if(!0===this.chooser){if(this.selected){const g=this.options.selectionWidth;\"function\"==typeof g?I.width=g(I.width):\"number\"==typeof g&&(I.width+=g),I.width=Math.max(I.width,.3/this.body.view.scale),I.color=this.options.color.highlight,I.shadow=this.options.shadow.enabled}else if(this.hover){const g=this.options.hoverWidth;\"function\"==typeof g?I.width=g(I.width):\"number\"==typeof g&&(I.width+=g),I.width=Math.max(I.width,.3/this.body.view.scale),I.color=this.options.color.hover,I.shadow=this.options.shadow.enabled}}else\"function\"==typeof this.chooser&&(this.chooser(I,this.options.id,this.selected,this.hover),void 0!==I.color&&(I.inheritsColor=!1),!1===I.shadow&&(I.shadowColor===this.options.shadow.color&&I.shadowSize===this.options.shadow.size&&I.shadowX===this.options.shadow.x&&I.shadowY===this.options.shadow.y||(I.shadow=!0)));else I.shadow=this.options.shadow.enabled,I.width=Math.max(I.width,.3/this.body.view.scale);return I}updateLabelModule(g){const A=[g,this.options,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,A),void 0!==this.labelModule.baseSize&&(this.baseFontSize=this.labelModule.baseSize)}updateEdgeType(){const g=this.options.smooth;let A=!1,t=!0;return void 0!==this.edgeType&&((this.edgeType instanceof HE&&!0===g.enabled&&\"dynamic\"===g.type||this.edgeType instanceof JE&&!0===g.enabled&&\"cubicBezier\"===g.type||this.edgeType instanceof XE&&!0===g.enabled&&\"dynamic\"!==g.type&&\"cubicBezier\"!==g.type||this.edgeType instanceof qE&&!1===g.type.enabled)&&(t=!1),!0===t&&(A=this.cleanup())),!0===t?!0===g.enabled?\"dynamic\"===g.type?(A=!0,this.edgeType=new HE(this.options,this.body,this.labelModule)):\"cubicBezier\"===g.type?this.edgeType=new JE(this.options,this.body,this.labelModule):this.edgeType=new XE(this.options,this.body,this.labelModule):this.edgeType=new qE(this.options,this.body,this.labelModule):this.edgeType.setOptions(this.options),A}connect(){this.disconnect(),this.from=this.body.nodes[this.fromId]||void 0,this.to=this.body.nodes[this.toId]||void 0,this.connected=void 0!==this.from&&void 0!==this.to,!0===this.connected?(this.from.attachEdge(this),this.to.attachEdge(this)):(this.from&&this.from.detachEdge(this),this.to&&this.to.detachEdge(this)),this.edgeType.connect()}disconnect(){this.from&&(this.from.detachEdge(this),this.from=void 0),this.to&&(this.to.detachEdge(this),this.to=void 0),this.connected=!1}getTitle(){return this.title}isSelected(){return this.selected}getValue(){return this.options.value}setValueRange(g,A,t){if(void 0!==this.options.value){const C=this.options.scaling.customScalingFunction(g,A,t,this.options.value),I=this.options.scaling.max-this.options.scaling.min;if(!0===this.options.scaling.label.enabled){const g=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+C*g}this.options.width=this.options.scaling.min+C*I}else this.options.width=this.baseWidth,this.options.font.size=this.baseFontSize;this._setInteractionWidths(),this.updateLabelModule()}_setInteractionWidths(){\"function\"==typeof this.options.hoverWidth?this.edgeType.hoverWidth=this.options.hoverWidth(this.options.width):this.edgeType.hoverWidth=this.options.hoverWidth+this.options.width,\"function\"==typeof this.options.selectionWidth?this.edgeType.selectionWidth=this.options.selectionWidth(this.options.width):this.edgeType.selectionWidth=this.options.selectionWidth+this.options.width}draw(g){const A=this.getFormattingValues();if(A.hidden)return;const t=this.edgeType.getViaNode();this.edgeType.drawLine(g,A,this.selected,this.hover,t),this.drawLabel(g,t)}drawArrows(g){const A=this.getFormattingValues();if(A.hidden)return;const t=this.edgeType.getViaNode(),C={};this.edgeType.fromPoint=this.edgeType.from,this.edgeType.toPoint=this.edgeType.to,A.fromArrow&&(C.from=this.edgeType.getArrowData(g,\"from\",t,this.selected,this.hover,A),!1===A.arrowStrikethrough&&(this.edgeType.fromPoint=C.from.core),A.fromArrowSrc&&(C.from.image=this.imagelist.load(A.fromArrowSrc)),A.fromArrowImageWidth&&(C.from.imageWidth=A.fromArrowImageWidth),A.fromArrowImageHeight&&(C.from.imageHeight=A.fromArrowImageHeight)),A.toArrow&&(C.to=this.edgeType.getArrowData(g,\"to\",t,this.selected,this.hover,A),!1===A.arrowStrikethrough&&(this.edgeType.toPoint=C.to.core),A.toArrowSrc&&(C.to.image=this.imagelist.load(A.toArrowSrc)),A.toArrowImageWidth&&(C.to.imageWidth=A.toArrowImageWidth),A.toArrowImageHeight&&(C.to.imageHeight=A.toArrowImageHeight)),A.middleArrow&&(C.middle=this.edgeType.getArrowData(g,\"middle\",t,this.selected,this.hover,A),A.middleArrowSrc&&(C.middle.image=this.imagelist.load(A.middleArrowSrc)),A.middleArrowImageWidth&&(C.middle.imageWidth=A.middleArrowImageWidth),A.middleArrowImageHeight&&(C.middle.imageHeight=A.middleArrowImageHeight)),A.fromArrow&&this.edgeType.drawArrowHead(g,A,this.selected,this.hover,C.from),A.middleArrow&&this.edgeType.drawArrowHead(g,A,this.selected,this.hover,C.middle),A.toArrow&&this.edgeType.drawArrowHead(g,A,this.selected,this.hover,C.to)}drawLabel(g,A){if(void 0!==this.options.label){const t=this.from,C=this.to;let I;if(this.labelModule.differentState(this.selected,this.hover)&&this.labelModule.getTextSize(g,this.selected,this.hover),t.id!=C.id){this.labelModule.pointToSelf=!1,I=this.edgeType.getPoint(.5,A),g.save();const t=this._getRotation(g);0!=t.angle&&(g.translate(t.x,t.y),g.rotate(t.angle)),this.labelModule.draw(g,I.x,I.y,this.selected,this.hover),g.restore()}else{this.labelModule.pointToSelf=!0;const A=Gx(g,this.options.selfReference.angle,this.options.selfReference.size,t);I=this._pointOnCircle(A.x,A.y,this.options.selfReference.size,this.options.selfReference.angle),this.labelModule.draw(g,I.x,I.y,this.selected,this.hover)}}}getItemsOnPoint(g){const A=[];if(this.labelModule.visible()){const t=this._getRotation();Sx(this.labelModule.getSize(),g,t)&&A.push({edgeId:this.id,labelId:0})}const t={left:g.x,top:g.y};return this.isOverlappingWith(t)&&A.push({edgeId:this.id}),A}isOverlappingWith(g){if(this.connected){const A=10,t=this.from.x,C=this.from.y,I=this.to.x,e=this.to.y,i=g.left,o=g.top;return this.edgeType.getDistanceToEdge(t,C,I,e,i,o)<A}return!1}_getRotation(g){const A=this.edgeType.getViaNode(),t=this.edgeType.getPoint(.5,A);void 0!==g&&this.labelModule.calculateLabelSize(g,this.selected,this.hover,t.x,t.y);const C={x:t.x,y:this.labelModule.size.yLine,angle:0};if(!this.labelModule.visible())return C;if(\"horizontal\"===this.options.font.align)return C;const I=this.from.y-this.to.y,e=this.from.x-this.to.x;let i=Math.atan2(I,e);return(i<-1&&e<0||i>0&&e<0)&&(i+=Math.PI),C.angle=i,C}_pointOnCircle(g,A,t,C){return{x:g+t*Math.cos(C),y:A-t*Math.sin(C)}}select(){this.selected=!0}unselect(){this.selected=!1}cleanup(){return this.edgeType.cleanup()}remove(){this.cleanup(),this.disconnect(),delete this.body.edges[this.id]}endPointsValid(){return void 0!==this.body.nodes[this.fromId]&&void 0!==this.body.nodes[this.toId]}}class gO{constructor(g,A,t){var C;this.body=g,this.images=A,this.groups=t,this.body.functions.createEdge=IC(C=this.create).call(C,this),this.edgesListeners={add:(g,A)=>{this.add(A.items)},update:(g,A)=>{this.update(A.items)},remove:(g,A)=>{this.remove(A.items)}},this.options={},this.defaultOptions={arrows:{to:{enabled:!1,scaleFactor:1,type:\"arrow\"},middle:{enabled:!1,scaleFactor:1,type:\"arrow\"},from:{enabled:!1,scaleFactor:1,type:\"arrow\"}},endPointOffset:{from:0,to:0},arrowStrikethrough:!0,color:{color:\"#848484\",highlight:\"#848484\",hover:\"#848484\",inherit:\"from\",opacity:1},dashes:!1,font:{color:\"#343434\",size:14,face:\"arial\",background:\"none\",strokeWidth:2,strokeColor:\"#ffffff\",align:\"horizontal\",multi:!1,vadjust:0,bold:{mod:\"bold\"},boldital:{mod:\"bold italic\"},ital:{mod:\"italic\"},mono:{mod:\"\",size:15,face:\"courier new\",vadjust:2}},hidden:!1,hoverWidth:1.5,label:void 0,labelHighlightBold:!0,length:void 0,physics:!0,scaling:{min:1,max:15,label:{enabled:!0,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(g,A,t,C){if(A===g)return.5;{const t=1/(A-g);return Math.max(0,(C-g)*t)}}},selectionWidth:1.5,selfReference:{size:20,angle:Math.PI/4,renderBehindTheNode:!0},shadow:{enabled:!1,color:\"rgba(0,0,0,0.5)\",size:10,x:5,y:5},background:{enabled:!1,color:\"rgba(111,111,111,1)\",size:10,dashes:!1},smooth:{enabled:!0,type:\"dynamic\",forceDirection:\"none\",roundness:.5},title:void 0,width:1,value:void 0},Rl(this.options,this.defaultOptions),this.bindEventListeners()}bindEventListeners(){var g,A,t=this;this.body.emitter.on(\"_forceDisableDynamicCurves\",function(g){let A=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];\"dynamic\"===g&&(g=\"continuous\");let C=!1;for(const A in t.body.edges)if(Object.prototype.hasOwnProperty.call(t.body.edges,A)){const I=t.body.edges[A],e=t.body.data.edges.get(A);if(null!=e){const A=e.smooth;void 0!==A&&!0===A.enabled&&\"dynamic\"===A.type&&(void 0===g?I.setOptions({smooth:!1}):I.setOptions({smooth:{type:g}}),C=!0)}}!0===A&&!0===C&&t.body.emitter.emit(\"_dataChanged\")}),this.body.emitter.on(\"_dataUpdated\",()=>{this.reconnectEdges()}),this.body.emitter.on(\"refreshEdges\",IC(g=this.refresh).call(g,this)),this.body.emitter.on(\"refresh\",IC(A=this.refresh).call(A,this)),this.body.emitter.on(\"destroy\",()=>{zl(this.edgesListeners,(g,A)=>{this.body.data.edges&&this.body.data.edges.off(A,g)}),delete this.body.functions.createEdge,delete this.edgesListeners.add,delete this.edgesListeners.update,delete this.edgesListeners.remove,delete this.edgesListeners})}setOptions(g){if(void 0!==g){$E.parseOptions(this.options,g,!0,this.defaultOptions,!0);let A=!1;if(void 0!==g.smooth)for(const g in this.body.edges)Object.prototype.hasOwnProperty.call(this.body.edges,g)&&(A=this.body.edges[g].updateEdgeType()||A);if(void 0!==g.font)for(const g in this.body.edges)Object.prototype.hasOwnProperty.call(this.body.edges,g)&&this.body.edges[g].updateLabelModule();void 0===g.hidden&&void 0===g.physics&&!0!==A||this.body.emitter.emit(\"_dataChanged\")}}setData(g){let A=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const t=this.body.data.edges;if(nx(\"id\",g))this.body.data.edges=g;else if(Po(g))this.body.data.edges=new ex,this.body.data.edges.add(g);else{if(g)throw new TypeError(\"Array or DataSet expected\");this.body.data.edges=new ex}if(t&&zl(this.edgesListeners,(g,A)=>{t.off(A,g)}),this.body.edges={},this.body.data.edges){zl(this.edgesListeners,(g,A)=>{this.body.data.edges.on(A,g)});const g=this.body.data.edges.getIds();this.add(g,!0)}this.body.emitter.emit(\"_adjustEdgesForHierarchicalLayout\"),!1===A&&this.body.emitter.emit(\"_dataChanged\")}add(g){let A=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const t=this.body.edges,C=this.body.data.edges;for(let A=0;A<g.length;A++){const I=g[A],e=t[I];e&&e.disconnect();const i=C.get(I,{showInternalIds:!0});t[I]=this.create(i)}this.body.emitter.emit(\"_adjustEdgesForHierarchicalLayout\"),!1===A&&this.body.emitter.emit(\"_dataChanged\")}update(g){const A=this.body.edges,t=this.body.data.edges;let C=!1;for(let I=0;I<g.length;I++){const e=g[I],i=t.get(e),o=A[e];void 0!==o?(o.disconnect(),C=o.setOptions(i)||C,o.connect()):(this.body.edges[e]=this.create(i),C=!0)}!0===C?(this.body.emitter.emit(\"_adjustEdgesForHierarchicalLayout\"),this.body.emitter.emit(\"_dataChanged\")):this.body.emitter.emit(\"_dataUpdated\")}remove(g){let A=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(0===g.length)return;const t=this.body.edges;zl(g,g=>{const A=t[g];void 0!==A&&A.remove()}),A&&this.body.emitter.emit(\"_dataChanged\")}refresh(){zl(this.body.edges,(g,A)=>{const t=this.body.data.edges.get(A);void 0!==t&&g.setOptions(t)})}create(g){return new $E(g,this.body,this.images,this.options,this.defaultOptions)}reconnectEdges(){let g;const A=this.body.nodes,t=this.body.edges;for(g in A)Object.prototype.hasOwnProperty.call(A,g)&&(A[g].edges=[]);for(g in t)if(Object.prototype.hasOwnProperty.call(t,g)){const A=t[g];A.from=null,A.to=null,A.connect()}}getConnectedNodes(g){const A=[];if(void 0!==this.body.edges[g]){const t=this.body.edges[g];void 0!==t.fromId&&A.push(t.fromId),void 0!==t.toId&&A.push(t.toId)}return A}_updateState(){this._addMissingEdges(),this._removeInvalidEdges()}_removeInvalidEdges(){const g=[];zl(this.body.edges,(A,t)=>{const C=this.body.nodes[A.toId],I=this.body.nodes[A.fromId];void 0!==C&&!0===C.isCluster||void 0!==I&&!0===I.isCluster||void 0!==C&&void 0!==I||g.push(t)}),this.remove(g,!1)}_addMissingEdges(){const g=this.body.data.edges;if(null==g)return;const A=this.body.edges,t=[];Bn(g).call(g,(g,C)=>{void 0===A[C]&&t.push(C)}),this.add(t,!0)}}class AO{constructor(g,A,t){this.body=g,this.physicsBody=A,this.setOptions(t),this._rng=ul(\"BARNES HUT SOLVER\")}setOptions(g){this.options=g,this.thetaInversed=1/this.options.theta,this.overlapAvoidanceFactor=1-Math.max(0,Math.min(1,this.options.avoidOverlap))}solve(){if(0!==this.options.gravitationalConstant&&this.physicsBody.physicsNodeIndices.length>0){let g;const A=this.body.nodes,t=this.physicsBody.physicsNodeIndices,C=t.length,I=this._formBarnesHutTree(A,t);this.barnesHutTree=I;for(let e=0;e<C;e++)g=A[t[e]],g.options.mass>0&&this._getForceContributions(I.root,g)}}_getForceContributions(g,A){this._getForceContribution(g.children.NW,A),this._getForceContribution(g.children.NE,A),this._getForceContribution(g.children.SW,A),this._getForceContribution(g.children.SE,A)}_getForceContribution(g,A){if(g.childrenCount>0){const t=g.centerOfMass.x-A.x,C=g.centerOfMass.y-A.y,I=Math.sqrt(t*t+C*C);I*g.calcSize>this.thetaInversed?this._calculateForces(I,t,C,A,g):4===g.childrenCount?this._getForceContributions(g,A):g.children.data.id!=A.id&&this._calculateForces(I,t,C,A,g)}}_calculateForces(g,A,t,C,I){0===g&&(A=g=.1),this.overlapAvoidanceFactor<1&&C.shape.radius&&(g=Math.max(.1+this.overlapAvoidanceFactor*C.shape.radius,g-C.shape.radius));const e=this.options.gravitationalConstant*I.mass*C.options.mass/Math.pow(g,3),i=A*e,o=t*e;this.physicsBody.forces[C.id].x+=i,this.physicsBody.forces[C.id].y+=o}_formBarnesHutTree(g,A){let t;const C=A.length;let I=g[A[0]].x,e=g[A[0]].y,i=g[A[0]].x,o=g[A[0]].y;for(let t=1;t<C;t++){const C=g[A[t]],n=C.x,s=C.y;C.options.mass>0&&(n<I&&(I=n),n>i&&(i=n),s<e&&(e=s),s>o&&(o=s))}const n=Math.abs(i-I)-Math.abs(o-e);n>0?(e-=.5*n,o+=.5*n):(I+=.5*n,i-=.5*n);const s=Math.max(1e-5,Math.abs(i-I)),r=.5*s,a=.5*(I+i),d=.5*(e+o),h={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:a-r,maxX:a+r,minY:d-r,maxY:d+r},size:s,calcSize:1/s,children:{data:null},maxWidth:0,level:0,childrenCount:4}};this._splitBranch(h.root);for(let I=0;I<C;I++)t=g[A[I]],t.options.mass>0&&this._placeInTree(h.root,t);return h}_updateBranchMass(g,A){const t=g.centerOfMass,C=g.mass+A.options.mass,I=1/C;t.x=t.x*g.mass+A.x*A.options.mass,t.x*=I,t.y=t.y*g.mass+A.y*A.options.mass,t.y*=I,g.mass=C;const e=Math.max(Math.max(A.height,A.radius),A.width);g.maxWidth=g.maxWidth<e?e:g.maxWidth}_placeInTree(g,A,t){1==t&&void 0!==t||this._updateBranchMass(g,A);const C=g.children.NW.range;let I;I=C.maxX>A.x?C.maxY>A.y?\"NW\":\"SW\":C.maxY>A.y?\"NE\":\"SE\",this._placeInRegion(g,A,I)}_placeInRegion(g,A,t){const C=g.children[t];switch(C.childrenCount){case 0:C.children.data=A,C.childrenCount=1,this._updateBranchMass(C,A);break;case 1:C.children.data.x===A.x&&C.children.data.y===A.y?(A.x+=this._rng(),A.y+=this._rng()):(this._splitBranch(C),this._placeInTree(C,A));break;case 4:this._placeInTree(C,A)}}_splitBranch(g){let A=null;1===g.childrenCount&&(A=g.children.data,g.mass=0,g.centerOfMass.x=0,g.centerOfMass.y=0),g.childrenCount=4,g.children.data=null,this._insertRegion(g,\"NW\"),this._insertRegion(g,\"NE\"),this._insertRegion(g,\"SW\"),this._insertRegion(g,\"SE\"),null!=A&&this._placeInTree(g,A)}_insertRegion(g,A){let t,C,I,e;const i=.5*g.size;switch(A){case\"NW\":t=g.range.minX,C=g.range.minX+i,I=g.range.minY,e=g.range.minY+i;break;case\"NE\":t=g.range.minX+i,C=g.range.maxX,I=g.range.minY,e=g.range.minY+i;break;case\"SW\":t=g.range.minX,C=g.range.minX+i,I=g.range.minY+i,e=g.range.maxY;break;case\"SE\":t=g.range.minX+i,C=g.range.maxX,I=g.range.minY+i,e=g.range.maxY}g.children[A]={centerOfMass:{x:0,y:0},mass:0,range:{minX:t,maxX:C,minY:I,maxY:e},size:.5*g.size,calcSize:2*g.calcSize,children:{data:null},maxWidth:0,level:g.level+1,childrenCount:0}}_debug(g,A){void 0!==this.barnesHutTree&&(g.lineWidth=1,this._drawBranch(this.barnesHutTree.root,g,A))}_drawBranch(g,A,t){void 0===t&&(t=\"#FF0000\"),4===g.childrenCount&&(this._drawBranch(g.children.NW,A),this._drawBranch(g.children.NE,A),this._drawBranch(g.children.SE,A),this._drawBranch(g.children.SW,A)),A.strokeStyle=t,A.beginPath(),A.moveTo(g.range.minX,g.range.minY),A.lineTo(g.range.maxX,g.range.minY),A.stroke(),A.beginPath(),A.moveTo(g.range.maxX,g.range.minY),A.lineTo(g.range.maxX,g.range.maxY),A.stroke(),A.beginPath(),A.moveTo(g.range.maxX,g.range.maxY),A.lineTo(g.range.minX,g.range.maxY),A.stroke(),A.beginPath(),A.moveTo(g.range.minX,g.range.maxY),A.lineTo(g.range.minX,g.range.minY),A.stroke()}}class tO{constructor(g,A,t){this._rng=ul(\"REPULSION SOLVER\"),this.body=g,this.physicsBody=A,this.setOptions(t)}setOptions(g){this.options=g}solve(){let g,A,t,C,I,e,i,o;const n=this.body.nodes,s=this.physicsBody.physicsNodeIndices,r=this.physicsBody.forces,a=this.options.nodeDistance,d=-2/3/a,h=4/3;for(let l=0;l<s.length-1;l++){i=n[s[l]];for(let c=l+1;c<s.length;c++)o=n[s[c]],g=o.x-i.x,A=o.y-i.y,t=Math.sqrt(g*g+A*A),0===t&&(t=.1*this._rng(),g=t),t<2*a&&(e=t<.5*a?1:d*t+h,e/=t,C=g*e,I=A*e,r[i.id].x-=C,r[i.id].y-=I,r[o.id].x+=C,r[o.id].y+=I)}}}class CO{constructor(g,A,t){this.body=g,this.physicsBody=A,this.setOptions(t)}setOptions(g){this.options=g,this.overlapAvoidanceFactor=Math.max(0,Math.min(1,this.options.avoidOverlap||0))}solve(){const g=this.body.nodes,A=this.physicsBody.physicsNodeIndices,t=this.physicsBody.forces,C=this.options.nodeDistance;for(let I=0;I<A.length-1;I++){const e=g[A[I]];for(let i=I+1;i<A.length;i++){const I=g[A[i]];if(e.level===I.level){const g=C+this.overlapAvoidanceFactor*((e.shape.radius||0)/2+(I.shape.radius||0)/2),A=I.x-e.x,i=I.y-e.y,o=Math.sqrt(A*A+i*i),n=.05;let s;s=o<g?-Math.pow(n*o,2)+Math.pow(n*g,2):0,0!==o&&(s/=o);const r=A*s,a=i*s;t[e.id].x-=r,t[e.id].y-=a,t[I.id].x+=r,t[I.id].y+=a}}}}}class IO{constructor(g,A,t){this.body=g,this.physicsBody=A,this.setOptions(t)}setOptions(g){this.options=g}solve(){let g,A;const t=this.physicsBody.physicsEdgeIndices,C=this.body.edges;let I,e,i;for(let o=0;o<t.length;o++)A=C[t[o]],!0===A.connected&&A.toId!==A.fromId&&void 0!==this.body.nodes[A.toId]&&void 0!==this.body.nodes[A.fromId]&&(void 0!==A.edgeType.via?(g=void 0===A.options.length?this.options.springLength:A.options.length,I=A.to,e=A.edgeType.via,i=A.from,this._calculateSpringForce(I,e,.5*g),this._calculateSpringForce(e,i,.5*g)):(g=void 0===A.options.length?1.5*this.options.springLength:A.options.length,this._calculateSpringForce(A.from,A.to,g)))}_calculateSpringForce(g,A,t){const C=g.x-A.x,I=g.y-A.y,e=Math.max(Math.sqrt(C*C+I*I),.01),i=this.options.springConstant*(t-e)/e,o=C*i,n=I*i;void 0!==this.physicsBody.forces[g.id]&&(this.physicsBody.forces[g.id].x+=o,this.physicsBody.forces[g.id].y+=n),void 0!==this.physicsBody.forces[A.id]&&(this.physicsBody.forces[A.id].x-=o,this.physicsBody.forces[A.id].y-=n)}}class eO{constructor(g,A,t){this.body=g,this.physicsBody=A,this.setOptions(t)}setOptions(g){this.options=g}solve(){let g,A,t,C,I,e,i,o;const n=this.body.edges,s=.5,r=this.physicsBody.physicsEdgeIndices,a=this.physicsBody.physicsNodeIndices,d=this.physicsBody.forces;for(let g=0;g<a.length;g++){const A=a[g];d[A].springFx=0,d[A].springFy=0}for(let a=0;a<r.length;a++)A=n[r[a]],!0===A.connected&&(g=void 0===A.options.length?this.options.springLength:A.options.length,t=A.from.x-A.to.x,C=A.from.y-A.to.y,o=Math.sqrt(t*t+C*C),o=0===o?.01:o,i=this.options.springConstant*(g-o)/o,I=t*i,e=C*i,A.to.level!=A.from.level?(void 0!==d[A.toId]&&(d[A.toId].springFx-=I,d[A.toId].springFy-=e),void 0!==d[A.fromId]&&(d[A.fromId].springFx+=I,d[A.fromId].springFy+=e)):(void 0!==d[A.toId]&&(d[A.toId].x-=s*I,d[A.toId].y-=s*e),void 0!==d[A.fromId]&&(d[A.fromId].x+=s*I,d[A.fromId].y+=s*e)));let h,l;i=1;for(let g=0;g<a.length;g++){const A=a[g];h=Math.min(i,Math.max(-i,d[A].springFx)),l=Math.min(i,Math.max(-i,d[A].springFy)),d[A].x+=h,d[A].y+=l}let c=0,u=0;for(let g=0;g<a.length;g++){const A=a[g];c+=d[A].x,u+=d[A].y}const p=c/a.length,f=u/a.length;for(let g=0;g<a.length;g++){const A=a[g];d[A].x-=p,d[A].y-=f}}}class iO{constructor(g,A,t){this.body=g,this.physicsBody=A,this.setOptions(t)}setOptions(g){this.options=g}solve(){let g,A,t,C;const I=this.body.nodes,e=this.physicsBody.physicsNodeIndices,i=this.physicsBody.forces;for(let o=0;o<e.length;o++){C=I[e[o]],g=-C.x,A=-C.y,t=Math.sqrt(g*g+A*A),this._calculateForces(t,g,A,i,C)}}_calculateForces(g,A,t,C,I){const e=0===g?0:this.options.centralGravity/g;C[I.id].x=A*e,C[I.id].y=t*e}}class oO extends AO{constructor(g,A,t){super(g,A,t),this._rng=ul(\"FORCE ATLAS 2 BASED REPULSION SOLVER\")}_calculateForces(g,A,t,C,I){0===g&&(A=g=.1*this._rng()),this.overlapAvoidanceFactor<1&&C.shape.radius&&(g=Math.max(.1+this.overlapAvoidanceFactor*C.shape.radius,g-C.shape.radius));const e=C.edges.length+1,i=this.options.gravitationalConstant*I.mass*C.options.mass*e/Math.pow(g,2),o=A*i,n=t*i;this.physicsBody.forces[C.id].x+=o,this.physicsBody.forces[C.id].y+=n}}class nO extends iO{_calculateForces(g,A,t,C,I){if(g>0){const g=I.edges.length+1,e=this.options.centralGravity*g*I.options.mass;C[I.id].x=A*e,C[I.id].y=t*e}}}class sO{constructor(g){this.body=g,this.physicsBody={physicsNodeIndices:[],physicsEdgeIndices:[],forces:{},velocities:{}},this.physicsEnabled=!0,this.simulationInterval=1e3/60,this.requiresTimeout=!0,this.previousStates={},this.referenceState={},this.freezeCache={},this.renderTimer=void 0,this.adaptiveTimestep=!1,this.adaptiveTimestepEnabled=!1,this.adaptiveCounter=0,this.adaptiveInterval=3,this.stabilized=!1,this.startedStabilization=!1,this.stabilizationIterations=0,this.ready=!1,this.options={},this.defaultOptions={enabled:!0,barnesHut:{theta:.5,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09,avoidOverlap:0},forceAtlas2Based:{theta:.5,gravitationalConstant:-50,centralGravity:.01,springConstant:.08,springLength:100,damping:.4,avoidOverlap:0},repulsion:{centralGravity:.2,springLength:200,springConstant:.05,nodeDistance:100,damping:.09,avoidOverlap:0},hierarchicalRepulsion:{centralGravity:0,springLength:100,springConstant:.01,nodeDistance:120,damping:.09},maxVelocity:50,minVelocity:.75,solver:\"barnesHut\",stabilization:{enabled:!0,iterations:1e3,updateInterval:50,onlyDynamicEdges:!1,fit:!0},timestep:.5,adaptiveTimestep:!0,wind:{x:0,y:0}},_t(this.options,this.defaultOptions),this.timestep=.5,this.layoutFailed=!1,this.bindEventListeners()}bindEventListeners(){this.body.emitter.on(\"initPhysics\",()=>{this.initPhysics()}),this.body.emitter.on(\"_layoutFailed\",()=>{this.layoutFailed=!0}),this.body.emitter.on(\"resetPhysics\",()=>{this.stopSimulation(),this.ready=!1}),this.body.emitter.on(\"disablePhysics\",()=>{this.physicsEnabled=!1,this.stopSimulation()}),this.body.emitter.on(\"restorePhysics\",()=>{this.setOptions(this.options),!0===this.ready&&this.startSimulation()}),this.body.emitter.on(\"startSimulation\",()=>{!0===this.ready&&this.startSimulation()}),this.body.emitter.on(\"stopSimulation\",()=>{this.stopSimulation()}),this.body.emitter.on(\"destroy\",()=>{this.stopSimulation(!1),this.body.emitter.off()}),this.body.emitter.on(\"_dataChanged\",()=>{this.updatePhysicsData()})}setOptions(g){if(void 0!==g)if(!1===g)this.options.enabled=!1,this.physicsEnabled=!1,this.stopSimulation();else if(!0===g)this.options.enabled=!0,this.physicsEnabled=!0,this.startSimulation();else{this.physicsEnabled=!0,Nl([\"stabilization\"],this.options,g),Ql(this.options,g,\"stabilization\"),void 0===g.enabled&&(this.options.enabled=!0),!1===this.options.enabled&&(this.physicsEnabled=!1,this.stopSimulation());const A=this.options.wind;A&&\"function\"!=typeof A&&((\"number\"!=typeof A.x||mp(A.x))&&(A.x=0),(\"number\"!=typeof A.y||mp(A.y))&&(A.y=0)),this.timestep=this.options.timestep}this.init()}init(){let g;\"forceAtlas2Based\"===this.options.solver?(g=this.options.forceAtlas2Based,this.nodesSolver=new oO(this.body,this.physicsBody,g),this.edgesSolver=new IO(this.body,this.physicsBody,g),this.gravitySolver=new nO(this.body,this.physicsBody,g)):\"repulsion\"===this.options.solver?(g=this.options.repulsion,this.nodesSolver=new tO(this.body,this.physicsBody,g),this.edgesSolver=new IO(this.body,this.physicsBody,g),this.gravitySolver=new iO(this.body,this.physicsBody,g)):\"hierarchicalRepulsion\"===this.options.solver?(g=this.options.hierarchicalRepulsion,this.nodesSolver=new CO(this.body,this.physicsBody,g),this.edgesSolver=new eO(this.body,this.physicsBody,g),this.gravitySolver=new iO(this.body,this.physicsBody,g)):(g=this.options.barnesHut,this.nodesSolver=new AO(this.body,this.physicsBody,g),this.edgesSolver=new IO(this.body,this.physicsBody,g),this.gravitySolver=new iO(this.body,this.physicsBody,g)),this.modelOptions=g}initPhysics(){!0===this.physicsEnabled&&!0===this.options.enabled?!0===this.options.stabilization.enabled?this.stabilize():(this.stabilized=!1,this.ready=!0,this.body.emitter.emit(\"fit\",{},this.layoutFailed),this.startSimulation()):(this.ready=!0,this.body.emitter.emit(\"fit\"))}startSimulation(){var g;!0===this.physicsEnabled&&!0===this.options.enabled?(this.stabilized=!1,this.adaptiveTimestep=!1,this.body.emitter.emit(\"_resizeNodes\"),void 0===this.viewFunction&&(this.viewFunction=IC(g=this.simulationStep).call(g,this),this.body.emitter.on(\"initRedraw\",this.viewFunction),this.body.emitter.emit(\"_startRendering\"))):this.body.emitter.emit(\"_redraw\")}stopSimulation(){let g=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.stabilized=!0,!0===g&&this._emitStabilized(),void 0!==this.viewFunction&&(this.body.emitter.off(\"initRedraw\",this.viewFunction),this.viewFunction=void 0,!0===g&&this.body.emitter.emit(\"_stopRendering\"))}simulationStep(){const g=vn();this.physicsTick();(vn()-g<.4*this.simulationInterval||!0===this.runDoubleSpeed)&&!1===this.stabilized&&(this.physicsTick(),this.runDoubleSpeed=!0),!0===this.stabilized&&this.stopSimulation()}_emitStabilized(){let g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.stabilizationIterations;(this.stabilizationIterations>1||!0===this.startedStabilization)&&bd(()=>{this.body.emitter.emit(\"stabilized\",{iterations:g}),this.startedStabilization=!1,this.stabilizationIterations=0},0)}physicsStep(){this.gravitySolver.solve(),this.nodesSolver.solve(),this.edgesSolver.solve(),this.moveNodes()}adjustTimeStep(){!0===this._evaluateStepQuality()?this.timestep=1.2*this.timestep:this.timestep/1.2<this.options.timestep?this.timestep=this.options.timestep:(this.adaptiveCounter=-1,this.timestep=Math.max(this.options.timestep,this.timestep/1.2))}physicsTick(){if(this._startStabilizing(),!0!==this.stabilized){if(!0===this.adaptiveTimestep&&!0===this.adaptiveTimestepEnabled){this.adaptiveCounter%this.adaptiveInterval===0?(this.timestep=2*this.timestep,this.physicsStep(),this.revert(),this.timestep=.5*this.timestep,this.physicsStep(),this.physicsStep(),this.adjustTimeStep()):this.physicsStep(),this.adaptiveCounter+=1}else this.timestep=this.options.timestep,this.physicsStep();!0===this.stabilized&&this.revert(),this.stabilizationIterations++}}updatePhysicsData(){this.physicsBody.forces={},this.physicsBody.physicsNodeIndices=[],this.physicsBody.physicsEdgeIndices=[];const g=this.body.nodes,A=this.body.edges;for(const A in g)Object.prototype.hasOwnProperty.call(g,A)&&!0===g[A].options.physics&&this.physicsBody.physicsNodeIndices.push(g[A].id);for(const g in A)Object.prototype.hasOwnProperty.call(A,g)&&!0===A[g].options.physics&&this.physicsBody.physicsEdgeIndices.push(A[g].id);for(let g=0;g<this.physicsBody.physicsNodeIndices.length;g++){const A=this.physicsBody.physicsNodeIndices[g];this.physicsBody.forces[A]={x:0,y:0},void 0===this.physicsBody.velocities[A]&&(this.physicsBody.velocities[A]={x:0,y:0})}for(const A in this.physicsBody.velocities)void 0===g[A]&&delete this.physicsBody.velocities[A]}revert(){const g=An(this.previousStates),A=this.body.nodes,t=this.physicsBody.velocities;this.referenceState={};for(let C=0;C<g.length;C++){const I=g[C];void 0!==A[I]?!0===A[I].options.physics&&(this.referenceState[I]={positions:{x:A[I].x,y:A[I].y}},t[I].x=this.previousStates[I].vx,t[I].y=this.previousStates[I].vy,A[I].x=this.previousStates[I].x,A[I].y=this.previousStates[I].y):delete this.previousStates[I]}}_evaluateStepQuality(){let g,A,t;const C=this.body.nodes,I=this.referenceState;for(const e in this.referenceState)if(Object.prototype.hasOwnProperty.call(this.referenceState,e)&&void 0!==C[e]&&(g=C[e].x-I[e].positions.x,A=C[e].y-I[e].positions.y,t=Math.sqrt(Math.pow(g,2)+Math.pow(A,2)),t>.3))return!1;return!0}moveNodes(){const g=this.physicsBody.physicsNodeIndices;let A=0,t=0;for(let C=0;C<g.length;C++){const I=g[C],e=this._performStep(I);A=Math.max(A,e),t+=e}this.adaptiveTimestepEnabled=t/g.length<5,this.stabilized=A<this.options.minVelocity}calculateComponentVelocity(g,A,t){g+=(A-this.modelOptions.damping*g)/t*this.timestep;const C=this.options.maxVelocity||1e9;return Math.abs(g)>C&&(g=g>0?C:-C),g}_performStep(g){const A=this.body.nodes[g],t=this.physicsBody.forces[g];if(this.options.wind)if(\"function\"==typeof this.options.wind){const A=this.options.wind(g);A&&\"object\"==typeof A&&(\"number\"!=typeof A.x||mp(A.x)||(t.x+=A.x),\"number\"!=typeof A.y||mp(A.y)||(t.y+=A.y))}else t.x+=this.options.wind.x,t.y+=this.options.wind.y;const C=this.physicsBody.velocities[g];this.previousStates[g]={x:A.x,y:A.y,vx:C.x,vy:C.y},!1===A.options.fixed.x?(C.x=this.calculateComponentVelocity(C.x,t.x,A.options.mass),A.x+=C.x*this.timestep):(t.x=0,C.x=0),!1===A.options.fixed.y?(C.y=this.calculateComponentVelocity(C.y,t.y,A.options.mass),A.y+=C.y*this.timestep):(t.y=0,C.y=0);return Math.sqrt(Math.pow(C.x,2)+Math.pow(C.y,2))}_freezeNodes(){const g=this.body.nodes;for(const A in g)if(Object.prototype.hasOwnProperty.call(g,A)&&g[A].x&&g[A].y){const t=g[A].options.fixed;this.freezeCache[A]={x:t.x,y:t.y},t.x=!0,t.y=!0}}_restoreFrozenNodes(){const g=this.body.nodes;for(const A in g)Object.prototype.hasOwnProperty.call(g,A)&&void 0!==this.freezeCache[A]&&(g[A].options.fixed.x=this.freezeCache[A].x,g[A].options.fixed.y=this.freezeCache[A].y);this.freezeCache={}}stabilize(){let g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.stabilization.iterations;\"number\"!=typeof g&&(g=this.options.stabilization.iterations,console.error(\"The stabilize method needs a numeric amount of iterations. Switching to default: \",g)),0!==this.physicsBody.physicsNodeIndices.length?(this.adaptiveTimestep=this.options.adaptiveTimestep,this.body.emitter.emit(\"_resizeNodes\"),this.stopSimulation(),this.stabilized=!1,this.body.emitter.emit(\"_blockRedraw\"),this.targetIterations=g,!0===this.options.stabilization.onlyDynamicEdges&&this._freezeNodes(),this.stabilizationIterations=0,bd(()=>this._stabilizationBatch(),0)):this.ready=!0}_startStabilizing(){return!0!==this.startedStabilization&&(this.body.emitter.emit(\"startStabilizing\"),this.startedStabilization=!0,!0)}_stabilizationBatch(){const g=()=>!1===this.stabilized&&this.stabilizationIterations<this.targetIterations,A=()=>{this.body.emitter.emit(\"stabilizationProgress\",{iterations:this.stabilizationIterations,total:this.targetIterations})};this._startStabilizing()&&A();let t=0;for(;g()&&t<this.options.stabilization.updateInterval;)this.physicsTick(),t++;var C;(A(),g())?bd(IC(C=this._stabilizationBatch).call(C,this),0):this._finalizeStabilization()}_finalizeStabilization(){this.body.emitter.emit(\"_allowRedraw\"),!0===this.options.stabilization.fit&&this.body.emitter.emit(\"fit\"),!0===this.options.stabilization.onlyDynamicEdges&&this._restoreFrozenNodes(),this.body.emitter.emit(\"stabilizationIterationsDone\"),this.body.emitter.emit(\"_requestRedraw\"),!0===this.stabilized?this._emitStabilized():this.startSimulation(),this.ready=!0}_drawForces(g){for(let A=0;A<this.physicsBody.physicsNodeIndices.length;A++){const t=this.physicsBody.physicsNodeIndices[A],C=this.body.nodes[t],I=this.physicsBody.forces[t],e=20,i=.03,o=Math.sqrt(Math.pow(I.x,2)+Math.pow(I.x,2)),n=Math.min(Math.max(5,o),15),s=3*n,r=jl((180-180*Math.min(1,Math.max(0,i*o)))/360,1,1),a={x:C.x+e*I.x,y:C.y+e*I.y};g.lineWidth=n,g.strokeStyle=r,g.beginPath(),g.moveTo(C.x,C.y),g.lineTo(a.x,a.y),g.stroke();const d=Math.atan2(I.y,I.x);g.fillStyle=r,jE.draw(g,{type:\"arrow\",point:a,angle:d,length:s}),Td(g).call(g)}}}class rO{static getRange(g){let A,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],C=1e9,I=-1e9,e=1e9,i=-1e9;if(t.length>0)for(let o=0;o<t.length;o++)A=g[t[o]],e>A.shape.boundingBox.left&&(e=A.shape.boundingBox.left),i<A.shape.boundingBox.right&&(i=A.shape.boundingBox.right),C>A.shape.boundingBox.top&&(C=A.shape.boundingBox.top),I<A.shape.boundingBox.bottom&&(I=A.shape.boundingBox.bottom);return 1e9===e&&-1e9===i&&1e9===C&&-1e9===I&&(C=0,I=0,e=0,i=0),{minX:e,maxX:i,minY:C,maxY:I}}static getRangeCore(g){let A,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],C=1e9,I=-1e9,e=1e9,i=-1e9;if(t.length>0)for(let o=0;o<t.length;o++)A=g[t[o]],e>A.x&&(e=A.x),i<A.x&&(i=A.x),C>A.y&&(C=A.y),I<A.y&&(I=A.y);return 1e9===e&&-1e9===i&&1e9===C&&-1e9===I&&(C=0,I=0,e=0,i=0),{minX:e,maxX:i,minY:C,maxY:I}}static findCenter(g){return{x:.5*(g.maxX+g.minX),y:.5*(g.maxY+g.minY)}}static cloneOptions(g,A){const t={};return void 0===A||\"node\"===A?(Rl(t,g.options,!0),t.x=g.x,t.y=g.y,t.amountOfConnections=g.edges.length):Rl(t,g.options,!0),t}}class aO extends cE{constructor(g,A,t,C,I,e){super(g,A,t,C,I,e),this.isCluster=!0,this.containedNodes={},this.containedEdges={}}_openChildCluster(g){const A=this.body.nodes[g];if(void 0===this.containedNodes[g])throw new Error(\"node with id: \"+g+\" not in current cluster\");if(!A.isCluster)throw new Error(\"node with id: \"+g+\" is not a cluster\");delete this.containedNodes[g],zl(A.edges,g=>{delete this.containedEdges[g.id]}),zl(A.containedNodes,(g,A)=>{this.containedNodes[A]=g}),A.containedNodes={},zl(A.containedEdges,(g,A)=>{this.containedEdges[A]=g}),A.containedEdges={},zl(A.edges,g=>{zl(this.edges,A=>{var t,C;const I=fa(t=A.clusteringEdgeReplacingIds).call(t,g.id);-1!==I&&(zl(g.clusteringEdgeReplacingIds,g=>{A.clusteringEdgeReplacingIds.push(g),this.body.edges[g].edgeReplacedById=A.id}),ss(C=A.clusteringEdgeReplacingIds).call(C,I,1))})}),A.edges=[]}}class dO{constructor(g){this.body=g,this.clusteredNodes={},this.clusteredEdges={},this.options={},this.defaultOptions={},_t(this.options,this.defaultOptions),this.body.emitter.on(\"_resetData\",()=>{this.clusteredNodes={},this.clusteredEdges={}})}clusterByHubsize(g,A){void 0===g?g=this._getHubSize():\"object\"==typeof g&&(A=this._checkOptions(g),g=this._getHubSize());const t=[];for(let A=0;A<this.body.nodeIndices.length;A++){const C=this.body.nodes[this.body.nodeIndices[A]];C.edges.length>=g&&t.push(C.id)}for(let g=0;g<t.length;g++)this.clusterByConnection(t[g],A,!0);this.body.emitter.emit(\"_dataChanged\")}cluster(){let g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},A=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(void 0===g.joinCondition)throw new Error(\"Cannot call clusterByNodeData without a joinCondition function in the options.\");g=this._checkOptions(g);const t={},C={};zl(this.body.nodes,(A,I)=>{A.options&&!0===g.joinCondition(A.options)&&(t[I]=A,zl(A.edges,g=>{void 0===this.clusteredEdges[g.id]&&(C[g.id]=g)}))}),this._cluster(t,C,g,A)}clusterByEdgeCount(g,A){let t=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];A=this._checkOptions(A);const C=[],I={};let e,i,o;for(let t=0;t<this.body.nodeIndices.length;t++){const n={},s={},r=this.body.nodeIndices[t],a=this.body.nodes[r];if(void 0===I[r]){o=0,i=[];for(let g=0;g<a.edges.length;g++)e=a.edges[g],void 0===this.clusteredEdges[e.id]&&(e.toId!==e.fromId&&o++,i.push(e));if(o===g){const g=function(g){if(void 0===A.joinCondition||null===A.joinCondition)return!0;const t=rO.cloneOptions(g);return A.joinCondition(t)};let t=!0;for(let A=0;A<i.length;A++){e=i[A];const C=this._getConnectedId(e,r);if(!g(a)){t=!1;break}s[e.id]=e,n[r]=a,n[C]=this.body.nodes[C],I[r]=!0}if(An(n).length>0&&An(s).length>0&&!0===t){const g=function(){for(let g=0;g<C.length;++g)for(const A in n)if(void 0!==C[g].nodes[A])return C[g]}();if(void 0!==g){for(const A in n)void 0===g.nodes[A]&&(g.nodes[A]=n[A]);for(const A in s)void 0===g.edges[A]&&(g.edges[A]=s[A])}else C.push({nodes:n,edges:s})}}}}for(let g=0;g<C.length;g++)this._cluster(C[g].nodes,C[g].edges,A,!1);!0===t&&this.body.emitter.emit(\"_dataChanged\")}clusterOutliers(g){let A=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.clusterByEdgeCount(1,g,A)}clusterBridges(g){let A=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.clusterByEdgeCount(2,g,A)}clusterByConnection(g,A){var t;let C=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0===g)throw new Error(\"No nodeId supplied to clusterByConnection!\");if(void 0===this.body.nodes[g])throw new Error(\"The nodeId given to clusterByConnection does not exist!\");const I=this.body.nodes[g];void 0===(A=this._checkOptions(A,I)).clusterNodeProperties.x&&(A.clusterNodeProperties.x=I.x),void 0===A.clusterNodeProperties.y&&(A.clusterNodeProperties.y=I.y),void 0===A.clusterNodeProperties.fixed&&(A.clusterNodeProperties.fixed={},A.clusterNodeProperties.fixed.x=I.options.fixed.x,A.clusterNodeProperties.fixed.y=I.options.fixed.y);const e={},i={},o=I.id,n=rO.cloneOptions(I);e[o]=I;for(let g=0;g<I.edges.length;g++){const t=I.edges[g];if(void 0===this.clusteredEdges[t.id]){const g=this._getConnectedId(t,o);if(void 0===this.clusteredNodes[g])if(g!==o)if(void 0===A.joinCondition)i[t.id]=t,e[g]=this.body.nodes[g];else{const C=rO.cloneOptions(this.body.nodes[g]);!0===A.joinCondition(n,C)&&(i[t.id]=t,e[g]=this.body.nodes[g])}else i[t.id]=t}}const s=Wo(t=An(e)).call(t,function(g){return e[g].id});for(const g in e){if(!Object.prototype.hasOwnProperty.call(e,g))continue;const A=e[g];for(let g=0;g<A.edges.length;g++){const t=A.edges[g];fa(s).call(s,this._getConnectedId(t,A.id))>-1&&(i[t.id]=t)}}this._cluster(e,i,A,C)}_createClusterEdges(g,A,t,C){let I,e,i,o,n,s;const r=An(g),a=[];for(let C=0;C<r.length;C++){e=r[C],i=g[e];for(let C=0;C<i.edges.length;C++)I=i.edges[C],void 0===this.clusteredEdges[I.id]&&(I.toId==I.fromId?A[I.id]=I:I.toId==e?(o=t.id,n=I.fromId,s=n):(o=I.toId,n=t.id,s=o),void 0===g[s]&&a.push({edge:I,fromId:n,toId:o}))}const d=[],h=function(g){for(let A=0;A<d.length;A++){const t=d[A],C=g.fromId===t.fromId&&g.toId===t.toId,I=g.fromId===t.toId&&g.toId===t.fromId;if(C||I)return t}return null};for(let g=0;g<a.length;g++){const A=a[g],t=A.edge;let I=h(A);null===I?(I=this._createClusteredEdge(A.fromId,A.toId,t,C),d.push(I)):I.clusteringEdgeReplacingIds.push(t.id),this.body.edges[t.id].edgeReplacedById=I.id,this._backupEdgeOptions(t),t.setOptions({physics:!1})}}_checkOptions(){let g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return void 0===g.clusterEdgeProperties&&(g.clusterEdgeProperties={}),void 0===g.clusterNodeProperties&&(g.clusterNodeProperties={}),g}_cluster(g,A,t){let C=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];const I=[];for(const A in g)Object.prototype.hasOwnProperty.call(g,A)&&void 0!==this.clusteredNodes[A]&&I.push(A);for(let A=0;A<I.length;++A)delete g[I[A]];if(0==An(g).length)return;if(1==An(g).length&&1!=t.clusterNodeProperties.allowSingleNodeCluster)return;let e=Rl({},t.clusterNodeProperties);if(void 0!==t.processProperties){const C=[];for(const A in g)if(Object.prototype.hasOwnProperty.call(g,A)){const t=rO.cloneOptions(g[A]);C.push(t)}const I=[];for(const g in A)if(Object.prototype.hasOwnProperty.call(A,g)&&\"clusterEdge:\"!==g.substr(0,12)){const t=rO.cloneOptions(A[g],\"edge\");I.push(t)}if(e=t.processProperties(e,C,I),!e)throw new Error(\"The processProperties function does not return properties!\")}void 0===e.id&&(e.id=\"cluster:\"+_w());const i=e.id;let o;void 0===e.label&&(e.label=\"cluster\"),void 0===e.x&&(o=this._getClusterPosition(g),e.x=o.x),void 0===e.y&&(void 0===o&&(o=this._getClusterPosition(g)),e.y=o.y),e.id=i;const n=this.body.functions.createNode(e,aO);n.containedNodes=g,n.containedEdges=A,n.clusterEdgeProperties=t.clusterEdgeProperties,this.body.nodes[e.id]=n,this._clusterEdges(g,A,e,t.clusterEdgeProperties),e.id=void 0,!0===C&&this.body.emitter.emit(\"_dataChanged\")}_backupEdgeOptions(g){void 0===this.clusteredEdges[g.id]&&(this.clusteredEdges[g.id]={physics:g.options.physics})}_restoreEdge(g){const A=this.clusteredEdges[g.id];void 0!==A&&(g.setOptions({physics:A.physics}),delete this.clusteredEdges[g.id])}isCluster(g){return void 0!==this.body.nodes[g]?!0===this.body.nodes[g].isCluster:(console.error(\"Node does not exist.\"),!1)}_getClusterPosition(g){const A=An(g);let t,C=g[A[0]].x,I=g[A[0]].x,e=g[A[0]].y,i=g[A[0]].y;for(let o=1;o<A.length;o++)t=g[A[o]],C=t.x<C?t.x:C,I=t.x>I?t.x:I,e=t.y<e?t.y:e,i=t.y>i?t.y:i;return{x:.5*(C+I),y:.5*(e+i)}}openCluster(g,A){let t=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0===g)throw new Error(\"No clusterNodeId supplied to openCluster.\");const C=this.body.nodes[g];if(void 0===C)throw new Error(\"The clusterNodeId supplied to openCluster does not exist.\");if(!0!==C.isCluster||void 0===C.containedNodes||void 0===C.containedEdges)throw new Error(\"The node:\"+g+\" is not a valid cluster.\");const I=this.findNode(g),e=fa(I).call(I,g)-1;if(e>=0){const A=I[e];return this.body.nodes[A]._openChildCluster(g),delete this.body.nodes[g],void(!0===t&&this.body.emitter.emit(\"_dataChanged\"))}const i=C.containedNodes,o=C.containedEdges;if(void 0!==A&&void 0!==A.releaseFunction&&\"function\"==typeof A.releaseFunction){const g={},t={x:C.x,y:C.y};for(const A in i)if(Object.prototype.hasOwnProperty.call(i,A)){const t=this.body.nodes[A];g[A]={x:t.x,y:t.y}}const I=A.releaseFunction(t,g);for(const g in i)if(Object.prototype.hasOwnProperty.call(i,g)){const A=this.body.nodes[g];void 0!==I[g]&&(A.x=void 0===I[g].x?C.x:I[g].x,A.y=void 0===I[g].y?C.y:I[g].y)}}else zl(i,function(g){!1===g.options.fixed.x&&(g.x=C.x),!1===g.options.fixed.y&&(g.y=C.y)});for(const g in i)if(Object.prototype.hasOwnProperty.call(i,g)){const A=this.body.nodes[g];A.vx=C.vx,A.vy=C.vy,A.setOptions({physics:!0}),delete this.clusteredNodes[g]}const n=[];for(let g=0;g<C.edges.length;g++)n.push(C.edges[g]);for(let A=0;A<n.length;A++){const t=n[A],C=this._getConnectedId(t,g),I=this.clusteredNodes[C];for(let g=0;g<t.clusteringEdgeReplacingIds.length;g++){const A=t.clusteringEdgeReplacingIds[g],e=this.body.edges[A];if(void 0!==e)if(void 0!==I){const g=this.body.nodes[I.clusterId];g.containedEdges[e.id]=e,delete o[e.id];let A=e.fromId,t=e.toId;e.toId==C?t=I.clusterId:A=I.clusterId,this._createClusteredEdge(A,t,e,g.clusterEdgeProperties,{hidden:!1,physics:!0})}else this._restoreEdge(e)}t.remove()}for(const g in o)Object.prototype.hasOwnProperty.call(o,g)&&this._restoreEdge(o[g]);delete this.body.nodes[g],!0===t&&this.body.emitter.emit(\"_dataChanged\")}getNodesInCluster(g){const A=[];if(!0===this.isCluster(g)){const t=this.body.nodes[g].containedNodes;for(const g in t)Object.prototype.hasOwnProperty.call(t,g)&&A.push(this.body.nodes[g].id)}return A}findNode(g){const A=[];let t,C=0;for(;void 0!==this.clusteredNodes[g]&&C<100;){if(t=this.body.nodes[g],void 0===t)return[];A.push(t.id),g=this.clusteredNodes[g].clusterId,C++}return t=this.body.nodes[g],void 0===t?[]:(A.push(t.id),$n(A).call(A),A)}updateClusteredNode(g,A){if(void 0===g)throw new Error(\"No clusteredNodeId supplied to updateClusteredNode.\");if(void 0===A)throw new Error(\"No newOptions supplied to updateClusteredNode.\");if(void 0===this.body.nodes[g])throw new Error(\"The clusteredNodeId supplied to updateClusteredNode does not exist.\");this.body.nodes[g].setOptions(A),this.body.emitter.emit(\"_dataChanged\")}updateEdge(g,A){if(void 0===g)throw new Error(\"No startEdgeId supplied to updateEdge.\");if(void 0===A)throw new Error(\"No newOptions supplied to updateEdge.\");if(void 0===this.body.edges[g])throw new Error(\"The startEdgeId supplied to updateEdge does not exist.\");const t=this.getClusteredEdges(g);for(let g=0;g<t.length;g++){this.body.edges[t[g]].setOptions(A)}this.body.emitter.emit(\"_dataChanged\")}getClusteredEdges(g){const A=[];let t=0;for(;void 0!==g&&void 0!==this.body.edges[g]&&t<100;)A.push(this.body.edges[g].id),g=this.body.edges[g].edgeReplacedById,t++;return $n(A).call(A),A}getBaseEdge(g){return this.getBaseEdges(g)[0]}getBaseEdges(g){const A=[g],t=[],C=[];let I=0;for(;A.length>0&&I<100;){const g=A.pop();if(void 0===g)continue;const e=this.body.edges[g];if(void 0===e)continue;I++;const i=e.clusteringEdgeReplacingIds;if(void 0===i)C.push(g);else for(let g=0;g<i.length;++g){const C=i[g];-1===fa(A).call(A,i)&&-1===fa(t).call(t,i)&&A.push(C)}t.push(g)}return C}_getConnectedId(g,A){return g.toId!=A?g.toId:(g.fromId,g.fromId)}_getHubSize(){let g=0,A=0,t=0,C=0;for(let I=0;I<this.body.nodeIndices.length;I++){const e=this.body.nodes[this.body.nodeIndices[I]];e.edges.length>C&&(C=e.edges.length),g+=e.edges.length,A+=Math.pow(e.edges.length,2),t+=1}g/=t,A/=t;const I=A-Math.pow(g,2),e=Math.sqrt(I);let i=Math.floor(g+2*e);return i>C&&(i=C),i}_createClusteredEdge(g,A,t,C,I){const e=rO.cloneOptions(t,\"edge\");Rl(e,C),e.from=g,e.to=A,e.id=\"clusterEdge:\"+_w(),void 0!==I&&Rl(e,I);const i=this.body.functions.createEdge(e);return i.clusteringEdgeReplacingIds=[t.id],i.connect(),this.body.edges[i.id]=i,i}_clusterEdges(g,A,t,C){if(A instanceof $E){const g=A,t={};t[g.id]=g,A=t}if(g instanceof cE){const A=g,t={};t[A.id]=A,g=t}if(null==t)throw new Error(\"_clusterEdges: parameter clusterNode required\");void 0===C&&(C=t.clusterEdgeProperties),this._createClusterEdges(g,A,t,C);for(const g in A)if(Object.prototype.hasOwnProperty.call(A,g)&&void 0!==this.body.edges[g]){const A=this.body.edges[g];this._backupEdgeOptions(A),A.setOptions({physics:!1})}for(const A in g)Object.prototype.hasOwnProperty.call(g,A)&&(this.clusteredNodes[A]={clusterId:t.id,node:this.body.nodes[A]},this.body.nodes[A].setOptions({physics:!1}))}_getClusterNodeForNode(g){if(void 0===g)return;const A=this.clusteredNodes[g];if(void 0===A)return;const t=A.clusterId;return void 0!==t?this.body.nodes[t]:void 0}_filter(g,A){const t=[];return zl(g,g=>{A(g)&&t.push(g)}),t}_updateState(){let g;const A=[],t={},C=g=>{zl(this.body.nodes,A=>{!0===A.isCluster&&g(A)})};for(g in this.clusteredNodes){if(!Object.prototype.hasOwnProperty.call(this.clusteredNodes,g))continue;void 0===this.body.nodes[g]&&A.push(g)}C(function(g){for(let t=0;t<A.length;t++)delete g.containedNodes[A[t]]});for(let g=0;g<A.length;g++)delete this.clusteredNodes[A[g]];zl(this.clusteredEdges,g=>{const A=this.body.edges[g];void 0!==A&&A.endPointsValid()||(t[g]=g)}),C(function(g){zl(g.containedEdges,(g,A)=>{g.endPointsValid()||t[A]||(t[A]=A)})}),zl(this.body.edges,(g,A)=>{let C=!0;const I=g.clusteringEdgeReplacingIds;if(void 0!==I){let g=0;zl(I,A=>{const t=this.body.edges[A];void 0!==t&&t.endPointsValid()&&(g+=1)}),C=g>0}g.endPointsValid()&&C||(t[A]=A)}),C(g=>{zl(t,A=>{delete g.containedEdges[A],zl(g.edges,(C,I)=>{C.id!==A?C.clusteringEdgeReplacingIds=this._filter(C.clusteringEdgeReplacingIds,function(g){return!t[g]}):g.edges[I]=null}),g.edges=this._filter(g.edges,function(g){return null!==g})})}),zl(t,g=>{delete this.clusteredEdges[g]}),zl(t,g=>{delete this.body.edges[g]});zl(An(this.body.edges),g=>{const A=this.body.edges[g],t=this._isClusteredNode(A.fromId)||this._isClusteredNode(A.toId);if(t!==this._isClusteredEdge(A.id))if(t){const g=this._getClusterNodeForNode(A.fromId);void 0!==g&&this._clusterEdges(this.body.nodes[A.fromId],A,g);const t=this._getClusterNodeForNode(A.toId);void 0!==t&&this._clusterEdges(this.body.nodes[A.toId],A,t)}else delete this._clusterEdges[g],this._restoreEdge(A)});let I=!1,e=!0;for(;e;){const g=[];C(function(A){const t=An(A.containedNodes).length,C=!0===A.options.allowSingleNodeCluster;(C&&t<1||!C&&t<2)&&g.push(A.id)});for(let A=0;A<g.length;++A)this.openCluster(g[A],{},!1);e=g.length>0,I=I||e}I&&this._updateState()}_isClusteredNode(g){return void 0!==this.clusteredNodes[g]}_isClusteredEdge(g){return void 0!==this.clusteredEdges[g]}}class hO{constructor(g,A){this.body=g,this.canvas=A,this.redrawRequested=!1,this.requestAnimationFrameRequestId=void 0,this.renderingActive=!1,this.renderRequests=0,this.allowRedraw=!0,this.dragging=!1,this.zooming=!1,this.options={},this.defaultOptions={hideEdgesOnDrag:!1,hideEdgesOnZoom:!1,hideNodesOnDrag:!1},_t(this.options,this.defaultOptions),this.bindEventListeners()}bindEventListeners(){var g;this.body.emitter.on(\"dragStart\",()=>{this.dragging=!0}),this.body.emitter.on(\"dragEnd\",()=>{this.dragging=!1}),this.body.emitter.on(\"zoom\",()=>{this.zooming=!0,window.clearTimeout(this.zoomTimeoutId),this.zoomTimeoutId=bd(()=>{var g;this.zooming=!1,IC(g=this._requestRedraw).call(g,this)()},250)}),this.body.emitter.on(\"_resizeNodes\",()=>{this._resizeNodes()}),this.body.emitter.on(\"_redraw\",()=>{!1===this.renderingActive&&this._redraw()}),this.body.emitter.on(\"_blockRedraw\",()=>{this.allowRedraw=!1}),this.body.emitter.on(\"_allowRedraw\",()=>{this.allowRedraw=!0,this.redrawRequested=!1}),this.body.emitter.on(\"_requestRedraw\",IC(g=this._requestRedraw).call(g,this)),this.body.emitter.on(\"_startRendering\",()=>{this.renderRequests+=1,this.renderingActive=!0,this._startRendering()}),this.body.emitter.on(\"_stopRendering\",()=>{this.renderRequests-=1,this.renderingActive=this.renderRequests>0,this.requestAnimationFrameRequestId=void 0}),this.body.emitter.on(\"destroy\",()=>{this.renderRequests=0,this.allowRedraw=!1,this.renderingActive=!1,window.cancelAnimationFrame(this.requestAnimationFrameRequestId),this.body.emitter.off()})}setOptions(g){if(void 0!==g){Dl([\"hideEdgesOnDrag\",\"hideEdgesOnZoom\",\"hideNodesOnDrag\"],this.options,g)}}_startRendering(){var g;!0===this.renderingActive&&(void 0===this.requestAnimationFrameRequestId&&(this.requestAnimationFrameRequestId=window.requestAnimationFrame(IC(g=this._renderStep).call(g,this),this.simulationInterval)))}_renderStep(){!0===this.renderingActive&&(this.requestAnimationFrameRequestId=void 0,this._startRendering(),this._redraw())}redraw(){this.body.emitter.emit(\"setSize\"),this._redraw()}_requestRedraw(){!0!==this.redrawRequested&&!1===this.renderingActive&&!0===this.allowRedraw&&(this.redrawRequested=!0,window.requestAnimationFrame(()=>{this._redraw(!1)}))}_redraw(){let g=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!0===this.allowRedraw){this.body.emitter.emit(\"initRedraw\"),this.redrawRequested=!1;const A={drawExternalLabels:null};0!==this.canvas.frame.canvas.width&&0!==this.canvas.frame.canvas.height||this.canvas.setSize(),this.canvas.setTransform();const t=this.canvas.getContext(),C=this.canvas.frame.canvas.clientWidth,I=this.canvas.frame.canvas.clientHeight;if(t.clearRect(0,0,C,I),0===this.canvas.frame.clientWidth)return;if(t.save(),t.translate(this.body.view.translation.x,this.body.view.translation.y),t.scale(this.body.view.scale,this.body.view.scale),t.beginPath(),this.body.emitter.emit(\"beforeDrawing\",t),t.closePath(),!1===g&&(!1===this.dragging||!0===this.dragging&&!1===this.options.hideEdgesOnDrag)&&(!1===this.zooming||!0===this.zooming&&!1===this.options.hideEdgesOnZoom)&&this._drawEdges(t),!1===this.dragging||!0===this.dragging&&!1===this.options.hideNodesOnDrag){const{drawExternalLabels:C}=this._drawNodes(t,g);A.drawExternalLabels=C}!1===g&&(!1===this.dragging||!0===this.dragging&&!1===this.options.hideEdgesOnDrag)&&(!1===this.zooming||!0===this.zooming&&!1===this.options.hideEdgesOnZoom)&&this._drawArrows(t),null!=A.drawExternalLabels&&A.drawExternalLabels(),!1===g&&this._drawSelectionBox(t),t.beginPath(),this.body.emitter.emit(\"afterDrawing\",t),t.closePath(),t.restore(),!0===g&&t.clearRect(0,0,C,I)}}_resizeNodes(){this.canvas.setTransform();const g=this.canvas.getContext();g.save(),g.translate(this.body.view.translation.x,this.body.view.translation.y),g.scale(this.body.view.scale,this.body.view.scale);const A=this.body.nodes;let t;for(const C in A)Object.prototype.hasOwnProperty.call(A,C)&&(t=A[C],t.resize(g),t.updateBoundingBox(g,t.selected));g.restore()}_drawNodes(g){let A=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const t=this.body.nodes,C=this.body.nodeIndices;let I;const e=[],i=[],o=this.canvas.DOMtoCanvas({x:-20,y:-20}),n=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+20,y:this.canvas.frame.canvas.clientHeight+20}),s={top:o.y,left:o.x,bottom:n.y,right:n.x},r=[];for(let o=0;o<C.length;o++)if(I=t[C[o]],I.hover)i.push(C[o]);else if(I.isSelected())e.push(C[o]);else if(!0===A){const A=I.draw(g);null!=A.drawExternalLabel&&r.push(A.drawExternalLabel)}else if(!0===I.isBoundingBoxOverlappingWith(s)){const A=I.draw(g);null!=A.drawExternalLabel&&r.push(A.drawExternalLabel)}else I.updateBoundingBox(g,I.selected);let a;const d=e.length,h=i.length;for(a=0;a<d;a++){I=t[e[a]];const A=I.draw(g);null!=A.drawExternalLabel&&r.push(A.drawExternalLabel)}for(a=0;a<h;a++){I=t[i[a]];const A=I.draw(g);null!=A.drawExternalLabel&&r.push(A.drawExternalLabel)}return{drawExternalLabels:()=>{for(const g of r)g()}}}_drawEdges(g){const A=this.body.edges,t=this.body.edgeIndices;for(let C=0;C<t.length;C++){const I=A[t[C]];!0===I.connected&&I.draw(g)}}_drawArrows(g){const A=this.body.edges,t=this.body.edgeIndices;for(let C=0;C<t.length;C++){const I=A[t[C]];!0===I.connected&&I.drawArrows(g)}}_drawSelectionBox(g){if(this.body.selectionBox.show){g.beginPath();const A=this.body.selectionBox.position.end.x-this.body.selectionBox.position.start.x,t=this.body.selectionBox.position.end.y-this.body.selectionBox.position.start.y;g.rect(this.body.selectionBox.position.start.x,this.body.selectionBox.position.start.y,A,t),g.fillStyle=\"rgba(151, 194, 252, 0.2)\",g.fillRect(this.body.selectionBox.position.start.x,this.body.selectionBox.position.start.y,A,t),g.strokeStyle=\"rgba(151, 194, 252, 1)\",g.stroke()}else g.closePath()}}var lO,cO,uO,pO;function fO(){return cO?lO:(cO=1,od(),lO=Tg().setInterval)}var vO=C(pO?uO:(pO=1,uO=fO()));function bO(g,A){A.inputHandler=function(g){g.isFirst&&A(g)},g.on(\"hammer.input\",A.inputHandler)}function mO(g,A){return A.inputHandler=function(g){g.isFinal&&A(g)},g.on(\"hammer.input\",A.inputHandler)}class yO{constructor(g){this.body=g,this.pixelRatio=1,this.cameraState={},this.initialized=!1,this.canvasViewCenter={},this._cleanupCallbacks=[],this.options={},this.defaultOptions={autoResize:!0,height:\"100%\",width:\"100%\"},_t(this.options,this.defaultOptions),this.bindEventListeners()}bindEventListeners(){var g;this.body.emitter.once(\"resize\",g=>{0!==g.width&&(this.body.view.translation.x=.5*g.width),0!==g.height&&(this.body.view.translation.y=.5*g.height)}),this.body.emitter.on(\"setSize\",IC(g=this.setSize).call(g,this)),this.body.emitter.on(\"destroy\",()=>{this.hammerFrame.destroy(),this.hammer.destroy(),this._cleanUp()})}setOptions(g){if(void 0!==g){Dl([\"width\",\"height\",\"autoResize\"],this.options,g)}if(this._cleanUp(),!0===this.options.autoResize){var A;if(window.ResizeObserver){const g=new ResizeObserver(()=>{!0===this.setSize()&&this.body.emitter.emit(\"_requestRedraw\")}),{frame:A}=this;g.observe(A),this._cleanupCallbacks.push(()=>{g.unobserve(A)})}else{const g=vO(()=>{!0===this.setSize()&&this.body.emitter.emit(\"_requestRedraw\")},1e3);this._cleanupCallbacks.push(()=>{clearInterval(g)})}const g=IC(A=this._onResize).call(A,this);window.addEventListener(\"resize\",g),this._cleanupCallbacks.push(()=>{window.removeEventListener(\"resize\",g)})}}_cleanUp(){var g,A,t;Bn(g=$n(A=ss(t=this._cleanupCallbacks).call(t,0)).call(A)).call(g,g=>{try{g()}catch(g){console.error(g)}})}_onResize(){this.setSize(),this.body.emitter.emit(\"_redraw\")}_getCameraState(){let g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.pixelRatio;!0===this.initialized&&(this.cameraState.previousWidth=this.frame.canvas.width/g,this.cameraState.previousHeight=this.frame.canvas.height/g,this.cameraState.scale=this.body.view.scale,this.cameraState.position=this.DOMtoCanvas({x:.5*this.frame.canvas.width/g,y:.5*this.frame.canvas.height/g}))}_setCameraState(){if(void 0!==this.cameraState.scale&&0!==this.frame.canvas.clientWidth&&0!==this.frame.canvas.clientHeight&&0!==this.pixelRatio&&this.cameraState.previousWidth>0&&this.cameraState.previousHeight>0){const g=this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth,A=this.frame.canvas.height/this.pixelRatio/this.cameraState.previousHeight;let t=this.cameraState.scale;1!=g&&1!=A?t=.5*this.cameraState.scale*(g+A):1!=g?t=this.cameraState.scale*g:1!=A&&(t=this.cameraState.scale*A),this.body.view.scale=t;const C=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight}),I={x:C.x-this.cameraState.position.x,y:C.y-this.cameraState.position.y};this.body.view.translation.x+=I.x*this.body.view.scale,this.body.view.translation.y+=I.y*this.body.view.scale}}_prepareValue(g){if(\"number\"==typeof g)return g+\"px\";if(\"string\"==typeof g){if(-1!==fa(g).call(g,\"%\")||-1!==fa(g).call(g,\"px\"))return g;if(-1===fa(g).call(g,\"%\"))return g+\"px\"}throw new Error(\"Could not use the value supplied for width or height:\"+g)}_create(){for(;this.body.container.hasChildNodes();)this.body.container.removeChild(this.body.container.firstChild);if(this.frame=document.createElement(\"div\"),this.frame.className=\"vis-network\",this.frame.style.position=\"relative\",this.frame.style.overflow=\"hidden\",this.frame.tabIndex=0,this.frame.canvas=document.createElement(\"canvas\"),this.frame.canvas.style.position=\"relative\",this.frame.appendChild(this.frame.canvas),this.frame.canvas.getContext)this._setPixelRatio(),this.setTransform();else{const g=document.createElement(\"DIV\");g.style.color=\"red\",g.style.fontWeight=\"bold\",g.style.padding=\"10px\",g.innerText=\"Error: your browser does not support HTML canvas\",this.frame.canvas.appendChild(g)}this.body.container.appendChild(this.frame),this.body.view.scale=1,this.body.view.translation={x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight},this._bindHammer()}_bindHammer(){void 0!==this.hammer&&this.hammer.destroy(),this.drag={},this.pinch={},this.hammer=new tc(this.frame.canvas),this.hammer.get(\"pinch\").set({enable:!0}),this.hammer.get(\"pan\").set({threshold:5,direction:tc.DIRECTION_ALL}),bO(this.hammer,g=>{this.body.eventListeners.onTouch(g)}),this.hammer.on(\"tap\",g=>{this.body.eventListeners.onTap(g)}),this.hammer.on(\"doubletap\",g=>{this.body.eventListeners.onDoubleTap(g)}),this.hammer.on(\"press\",g=>{this.body.eventListeners.onHold(g)}),this.hammer.on(\"panstart\",g=>{this.body.eventListeners.onDragStart(g)}),this.hammer.on(\"panmove\",g=>{this.body.eventListeners.onDrag(g)}),this.hammer.on(\"panend\",g=>{this.body.eventListeners.onDragEnd(g)}),this.hammer.on(\"pinch\",g=>{this.body.eventListeners.onPinch(g)}),this.frame.canvas.addEventListener(\"wheel\",g=>{this.body.eventListeners.onMouseWheel(g)}),this.frame.canvas.addEventListener(\"mousemove\",g=>{this.body.eventListeners.onMouseMove(g)}),this.frame.canvas.addEventListener(\"contextmenu\",g=>{this.body.eventListeners.onContext(g)}),this.hammerFrame=new tc(this.frame),mO(this.hammerFrame,g=>{this.body.eventListeners.onRelease(g)})}setSize(){let g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.width,A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.height;g=this._prepareValue(g),A=this._prepareValue(A);let t=!1;const C=this.frame.canvas.width,I=this.frame.canvas.height,e=this.pixelRatio;if(this._setPixelRatio(),g!=this.options.width||A!=this.options.height||this.frame.style.width!=g||this.frame.style.height!=A)this._getCameraState(e),this.frame.style.width=g,this.frame.style.height=A,this.frame.canvas.style.width=\"100%\",this.frame.canvas.style.height=\"100%\",this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),this.options.width=g,this.options.height=A,this.canvasViewCenter={x:.5*this.frame.clientWidth,y:.5*this.frame.clientHeight},t=!0;else{const g=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),A=Math.round(this.frame.canvas.clientHeight*this.pixelRatio);this.frame.canvas.width===g&&this.frame.canvas.height===A||this._getCameraState(e),this.frame.canvas.width!==g&&(this.frame.canvas.width=g,t=!0),this.frame.canvas.height!==A&&(this.frame.canvas.height=A,t=!0)}return!0===t&&(this.body.emitter.emit(\"resize\",{width:Math.round(this.frame.canvas.width/this.pixelRatio),height:Math.round(this.frame.canvas.height/this.pixelRatio),oldWidth:Math.round(C/this.pixelRatio),oldHeight:Math.round(I/this.pixelRatio)}),this._setCameraState()),this.initialized=!0,t}getContext(){return this.frame.canvas.getContext(\"2d\")}_determinePixelRatio(){const g=this.getContext();if(void 0===g)throw new Error(\"Could not get canvax context\");let A=1;\"undefined\"!=typeof window&&(A=window.devicePixelRatio||1);return A/(g.webkitBackingStorePixelRatio||g.mozBackingStorePixelRatio||g.msBackingStorePixelRatio||g.oBackingStorePixelRatio||g.backingStorePixelRatio||1)}_setPixelRatio(){this.pixelRatio=this._determinePixelRatio()}setTransform(){const g=this.getContext();if(void 0===g)throw new Error(\"Could not get canvax context\");g.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}_XconvertDOMtoCanvas(g){return(g-this.body.view.translation.x)/this.body.view.scale}_XconvertCanvasToDOM(g){return g*this.body.view.scale+this.body.view.translation.x}_YconvertDOMtoCanvas(g){return(g-this.body.view.translation.y)/this.body.view.scale}_YconvertCanvasToDOM(g){return g*this.body.view.scale+this.body.view.translation.y}canvasToDOM(g){return{x:this._XconvertCanvasToDOM(g.x),y:this._YconvertCanvasToDOM(g.y)}}DOMtoCanvas(g){return{x:this._XconvertDOMtoCanvas(g.x),y:this._YconvertDOMtoCanvas(g.y)}}}class wO{constructor(g,A){var t,C;this.body=g,this.canvas=A,this.animationSpeed=1/this.renderRefreshRate,this.animationEasingFunction=\"easeInOutQuint\",this.easingTime=0,this.sourceScale=0,this.targetScale=0,this.sourceTranslation=0,this.targetTranslation=0,this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0,this.touchTime=0,this.viewFunction=void 0,this.body.emitter.on(\"fit\",IC(t=this.fit).call(t,this)),this.body.emitter.on(\"animationFinished\",()=>{this.body.emitter.emit(\"_stopRendering\")}),this.body.emitter.on(\"unlockNode\",IC(C=this.releaseNode).call(C,this))}setOptions(){let g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.options=g}fit(g){let A=arguments.length>1&&void 0!==arguments[1]&&arguments[1];g=function(g,A){const t=_t({nodes:A,minZoomLevel:Number.MIN_VALUE,maxZoomLevel:1},null!=g?g:{});if(!Po(t.nodes))throw new TypeError(\"Nodes has to be an array of ids.\");if(0===t.nodes.length&&(t.nodes=A),!(\"number\"==typeof t.minZoomLevel&&t.minZoomLevel>0))throw new TypeError(\"Min zoom level has to be a number higher than zero.\");if(!(\"number\"==typeof t.maxZoomLevel&&t.minZoomLevel<=t.maxZoomLevel))throw new TypeError(\"Max zoom level has to be a number higher than min zoom level.\");return t}(g,this.body.nodeIndices);const t=this.canvas.frame.canvas.clientWidth,C=this.canvas.frame.canvas.clientHeight;let I,e;if(0===t||0===C)e=1,I=rO.getRange(this.body.nodes,g.nodes);else if(!0===A){let A=0;for(const g in this.body.nodes)if(Object.prototype.hasOwnProperty.call(this.body.nodes,g)){!0===this.body.nodes[g].predefinedPosition&&(A+=1)}if(A>.5*this.body.nodeIndices.length)return void this.fit(g,!1);I=rO.getRange(this.body.nodes,g.nodes);e=12.662/(this.body.nodeIndices.length+7.4147)+.0964822;e*=Math.min(t/600,C/600)}else{this.body.emitter.emit(\"_resizeNodes\"),I=rO.getRange(this.body.nodes,g.nodes);const A=t/(1.1*Math.abs(I.maxX-I.minX)),i=C/(1.1*Math.abs(I.maxY-I.minY));e=A<=i?A:i}e>g.maxZoomLevel?e=g.maxZoomLevel:e<g.minZoomLevel&&(e=g.minZoomLevel);const i={position:rO.findCenter(I),scale:e,animation:g.animation};this.moveTo(i)}focus(g){let A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(void 0!==this.body.nodes[g]){const t={x:this.body.nodes[g].x,y:this.body.nodes[g].y};A.position=t,A.lockedOnNode=g,this.moveTo(A)}else console.error(\"Node: \"+g+\" cannot be found.\")}moveTo(g){if(void 0!==g){if(null!=g.offset){if(null!=g.offset.x){if(g.offset.x=+g.offset.x,!zp(g.offset.x))throw new TypeError('The option \"offset.x\" has to be a finite number.')}else g.offset.x=0;if(null!=g.offset.y){if(g.offset.y=+g.offset.y,!zp(g.offset.y))throw new TypeError('The option \"offset.y\" has to be a finite number.')}else g.offset.x=0}else g.offset={x:0,y:0};if(null!=g.position){if(null!=g.position.x){if(g.position.x=+g.position.x,!zp(g.position.x))throw new TypeError('The option \"position.x\" has to be a finite number.')}else g.position.x=0;if(null!=g.position.y){if(g.position.y=+g.position.y,!zp(g.position.y))throw new TypeError('The option \"position.y\" has to be a finite number.')}else g.position.x=0}else g.position=this.getViewPosition();if(null!=g.scale){if(g.scale=+g.scale,!(g.scale>0))throw new TypeError('The option \"scale\" has to be a number greater than zero.')}else g.scale=this.body.view.scale;void 0===g.animation&&(g.animation={duration:0}),!1===g.animation&&(g.animation={duration:0}),!0===g.animation&&(g.animation={}),void 0===g.animation.duration&&(g.animation.duration=1e3),void 0===g.animation.easingFunction&&(g.animation.easingFunction=\"easeInOutQuad\"),this.animateView(g)}else g={}}animateView(g){if(void 0===g)return;this.animationEasingFunction=g.animation.easingFunction,this.releaseNode(),!0===g.locked&&(this.lockedOnNodeId=g.lockedOnNode,this.lockedOnNodeOffset=g.offset),0!=this.easingTime&&this._transitionRedraw(!0),this.sourceScale=this.body.view.scale,this.sourceTranslation=this.body.view.translation,this.targetScale=g.scale,this.body.view.scale=this.targetScale;const A=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),t=A.x-g.position.x,C=A.y-g.position.y;var I,e;(this.targetTranslation={x:this.sourceTranslation.x+t*this.targetScale+g.offset.x,y:this.sourceTranslation.y+C*this.targetScale+g.offset.y},0===g.animation.duration)?null!=this.lockedOnNodeId?(this.viewFunction=IC(I=this._lockedRedraw).call(I,this),this.body.emitter.on(\"initRedraw\",this.viewFunction)):(this.body.view.scale=this.targetScale,this.body.view.translation=this.targetTranslation,this.body.emitter.emit(\"_requestRedraw\")):(this.animationSpeed=1/(60*g.animation.duration*.001)||1/60,this.animationEasingFunction=g.animation.easingFunction,this.viewFunction=IC(e=this._transitionRedraw).call(e,this),this.body.emitter.on(\"initRedraw\",this.viewFunction),this.body.emitter.emit(\"_startRendering\"))}_lockedRedraw(){const g=this.body.nodes[this.lockedOnNodeId].x,A=this.body.nodes[this.lockedOnNodeId].y,t=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),C=t.x-g,I=t.y-A,e=this.body.view.translation,i={x:e.x+C*this.body.view.scale+this.lockedOnNodeOffset.x,y:e.y+I*this.body.view.scale+this.lockedOnNodeOffset.y};this.body.view.translation=i}releaseNode(){void 0!==this.lockedOnNodeId&&void 0!==this.viewFunction&&(this.body.emitter.off(\"initRedraw\",this.viewFunction),this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0)}_transitionRedraw(){let g=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.easingTime+=this.animationSpeed,this.easingTime=!0===g?1:this.easingTime;const A=Ul[this.animationEasingFunction](this.easingTime);if(this.body.view.scale=this.sourceScale+(this.targetScale-this.sourceScale)*A,this.body.view.translation={x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*A,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*A},this.easingTime>=1){var t;if(this.body.emitter.off(\"initRedraw\",this.viewFunction),this.easingTime=0,null!=this.lockedOnNodeId)this.viewFunction=IC(t=this._lockedRedraw).call(t,this),this.body.emitter.on(\"initRedraw\",this.viewFunction);this.body.emitter.emit(\"animationFinished\")}}getScale(){return this.body.view.scale}getViewPosition(){return this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight})}}function xO(g){var A,t=g&&g.preventDefault||!1,C=g&&g.container||window,I={},e={keydown:{},keyup:{}},i={};for(A=97;A<=122;A++)i[String.fromCharCode(A)]={code:A-97+65,shift:!1};for(A=65;A<=90;A++)i[String.fromCharCode(A)]={code:A,shift:!0};for(A=0;A<=9;A++)i[\"\"+A]={code:48+A,shift:!1};for(A=1;A<=12;A++)i[\"F\"+A]={code:111+A,shift:!1};for(A=0;A<=9;A++)i[\"num\"+A]={code:96+A,shift:!1};i[\"num*\"]={code:106,shift:!1},i[\"num+\"]={code:107,shift:!1},i[\"num-\"]={code:109,shift:!1},i[\"num/\"]={code:111,shift:!1},i[\"num.\"]={code:110,shift:!1},i.left={code:37,shift:!1},i.up={code:38,shift:!1},i.right={code:39,shift:!1},i.down={code:40,shift:!1},i.space={code:32,shift:!1},i.enter={code:13,shift:!1},i.shift={code:16,shift:void 0},i.esc={code:27,shift:!1},i.backspace={code:8,shift:!1},i.tab={code:9,shift:!1},i.ctrl={code:17,shift:!1},i.alt={code:18,shift:!1},i.delete={code:46,shift:!1},i.pageup={code:33,shift:!1},i.pagedown={code:34,shift:!1},i[\"=\"]={code:187,shift:!1},i[\"-\"]={code:189,shift:!1},i[\"]\"]={code:221,shift:!1},i[\"[\"]={code:219,shift:!1};var o=function(g){s(g,\"keydown\")},n=function(g){s(g,\"keyup\")},s=function(g,A){if(void 0!==e[A][g.keyCode]){for(var C=e[A][g.keyCode],I=0;I<C.length;I++)(void 0===C[I].shift||1==C[I].shift&&1==g.shiftKey||0==C[I].shift&&0==g.shiftKey)&&C[I].fn(g);1==t&&g.preventDefault()}};return I.bind=function(g,A,t){if(void 0===t&&(t=\"keydown\"),void 0===i[g])throw new Error(\"unsupported key: \"+g);void 0===e[t][i[g].code]&&(e[t][i[g].code]=[]),e[t][i[g].code].push({fn:A,shift:i[g].shift})},I.bindAll=function(g,A){for(var t in void 0===A&&(A=\"keydown\"),i)i.hasOwnProperty(t)&&I.bind(t,g,A)},I.getKey=function(g){for(var A in i)if(i.hasOwnProperty(A)){if(1==g.shiftKey&&1==i[A].shift&&g.keyCode==i[A].code)return A;if(0==g.shiftKey&&0==i[A].shift&&g.keyCode==i[A].code)return A;if(g.keyCode==i[A].code&&\"shift\"==A)return A}return\"unknown key, currently not supported\"},I.unbind=function(g,A,t){if(void 0===t&&(t=\"keydown\"),void 0===i[g])throw new Error(\"unsupported key: \"+g);if(void 0!==A){var C=[],I=e[t][i[g].code];if(void 0!==I)for(var o=0;o<I.length;o++)I[o].fn==A&&I[o].shift==i[g].shift||C.push(e[t][i[g].code][o]);e[t][i[g].code]=C}else e[t][i[g].code]=[]},I.reset=function(){e={keydown:{},keyup:{}}},I.destroy=function(){e={keydown:{},keyup:{}},C.removeEventListener(\"keydown\",o,!0),C.removeEventListener(\"keyup\",n,!0)},C.addEventListener(\"keydown\",o,!0),C.addEventListener(\"keyup\",n,!0),I}class EO{constructor(g,A){this.body=g,this.canvas=A,this.iconsCreated=!1,this.navigationHammers=[],this.boundFunctions={},this.touchTime=0,this.activated=!1,this.body.emitter.on(\"activate\",()=>{this.activated=!0,this.configureKeyboardBindings()}),this.body.emitter.on(\"deactivate\",()=>{this.activated=!1,this.configureKeyboardBindings()}),this.body.emitter.on(\"destroy\",()=>{void 0!==this.keycharm&&this.keycharm.destroy()}),this.options={}}setOptions(g){void 0!==g&&(this.options=g,this.create())}create(){!0===this.options.navigationButtons?!1===this.iconsCreated&&this.loadNavigationElements():!0===this.iconsCreated&&this.cleanNavigation(),this.configureKeyboardBindings()}cleanNavigation(){if(0!=this.navigationHammers.length){for(let g=0;g<this.navigationHammers.length;g++)this.navigationHammers[g].destroy();this.navigationHammers=[]}this.navigationDOM&&this.navigationDOM.wrapper&&this.navigationDOM.wrapper.parentNode&&this.navigationDOM.wrapper.parentNode.removeChild(this.navigationDOM.wrapper),this.iconsCreated=!1}loadNavigationElements(){this.cleanNavigation(),this.navigationDOM={};const g=[\"up\",\"down\",\"left\",\"right\",\"zoomIn\",\"zoomOut\",\"zoomExtends\"],A=[\"_moveUp\",\"_moveDown\",\"_moveLeft\",\"_moveRight\",\"_zoomIn\",\"_zoomOut\",\"_fit\"];this.navigationDOM.wrapper=document.createElement(\"div\"),this.navigationDOM.wrapper.className=\"vis-navigation\",this.canvas.frame.appendChild(this.navigationDOM.wrapper);for(let I=0;I<g.length;I++){this.navigationDOM[g[I]]=document.createElement(\"div\"),this.navigationDOM[g[I]].className=\"vis-button vis-\"+g[I],this.navigationDOM.wrapper.appendChild(this.navigationDOM[g[I]]);const e=new tc(this.navigationDOM[g[I]]);var t,C;if(\"_fit\"===A[I])bO(e,IC(t=this._fit).call(t,this));else bO(e,IC(C=this.bindToRedraw).call(C,this,A[I]));this.navigationHammers.push(e)}const I=new tc(this.canvas.frame);mO(I,()=>{this._stopMovement()}),this.navigationHammers.push(I),this.iconsCreated=!0}bindToRedraw(g){var A;void 0===this.boundFunctions[g]&&(this.boundFunctions[g]=IC(A=this[g]).call(A,this),this.body.emitter.on(\"initRedraw\",this.boundFunctions[g]),this.body.emitter.emit(\"_startRendering\"))}unbindFromRedraw(g){void 0!==this.boundFunctions[g]&&(this.body.emitter.off(\"initRedraw\",this.boundFunctions[g]),this.body.emitter.emit(\"_stopRendering\"),delete this.boundFunctions[g])}_fit(){(new Date).valueOf()-this.touchTime>700&&(this.body.emitter.emit(\"fit\",{duration:700}),this.touchTime=(new Date).valueOf())}_stopMovement(){for(const g in this.boundFunctions)Object.prototype.hasOwnProperty.call(this.boundFunctions,g)&&(this.body.emitter.off(\"initRedraw\",this.boundFunctions[g]),this.body.emitter.emit(\"_stopRendering\"));this.boundFunctions={}}_moveUp(){this.body.view.translation.y+=this.options.keyboard.speed.y}_moveDown(){this.body.view.translation.y-=this.options.keyboard.speed.y}_moveLeft(){this.body.view.translation.x+=this.options.keyboard.speed.x}_moveRight(){this.body.view.translation.x-=this.options.keyboard.speed.x}_zoomIn(){const g=this.body.view.scale,A=this.body.view.scale*(1+this.options.keyboard.speed.zoom),t=this.body.view.translation,C=A/g,I=(1-C)*this.canvas.canvasViewCenter.x+t.x*C,e=(1-C)*this.canvas.canvasViewCenter.y+t.y*C;this.body.view.scale=A,this.body.view.translation={x:I,y:e},this.body.emitter.emit(\"zoom\",{direction:\"+\",scale:this.body.view.scale,pointer:null})}_zoomOut(){const g=this.body.view.scale,A=this.body.view.scale/(1+this.options.keyboard.speed.zoom),t=this.body.view.translation,C=A/g,I=(1-C)*this.canvas.canvasViewCenter.x+t.x*C,e=(1-C)*this.canvas.canvasViewCenter.y+t.y*C;this.body.view.scale=A,this.body.view.translation={x:I,y:e},this.body.emitter.emit(\"zoom\",{direction:\"-\",scale:this.body.view.scale,pointer:null})}configureKeyboardBindings(){var g,A,t,C,I,e,i,o,n,s,r,a,d,h,l,c,u,p,f,v,b,m,y,w;(void 0!==this.keycharm&&this.keycharm.destroy(),!0===this.options.keyboard.enabled)&&(!0===this.options.keyboard.bindToWindow?this.keycharm=xO({container:window,preventDefault:!0}):this.keycharm=xO({container:this.canvas.frame,preventDefault:!0}),this.keycharm.reset(),!0===this.activated&&(IC(g=this.keycharm).call(g,\"up\",()=>{this.bindToRedraw(\"_moveUp\")},\"keydown\"),IC(A=this.keycharm).call(A,\"down\",()=>{this.bindToRedraw(\"_moveDown\")},\"keydown\"),IC(t=this.keycharm).call(t,\"left\",()=>{this.bindToRedraw(\"_moveLeft\")},\"keydown\"),IC(C=this.keycharm).call(C,\"right\",()=>{this.bindToRedraw(\"_moveRight\")},\"keydown\"),IC(I=this.keycharm).call(I,\"=\",()=>{this.bindToRedraw(\"_zoomIn\")},\"keydown\"),IC(e=this.keycharm).call(e,\"num+\",()=>{this.bindToRedraw(\"_zoomIn\")},\"keydown\"),IC(i=this.keycharm).call(i,\"num-\",()=>{this.bindToRedraw(\"_zoomOut\")},\"keydown\"),IC(o=this.keycharm).call(o,\"-\",()=>{this.bindToRedraw(\"_zoomOut\")},\"keydown\"),IC(n=this.keycharm).call(n,\"[\",()=>{this.bindToRedraw(\"_zoomOut\")},\"keydown\"),IC(s=this.keycharm).call(s,\"]\",()=>{this.bindToRedraw(\"_zoomIn\")},\"keydown\"),IC(r=this.keycharm).call(r,\"pageup\",()=>{this.bindToRedraw(\"_zoomIn\")},\"keydown\"),IC(a=this.keycharm).call(a,\"pagedown\",()=>{this.bindToRedraw(\"_zoomOut\")},\"keydown\"),IC(d=this.keycharm).call(d,\"up\",()=>{this.unbindFromRedraw(\"_moveUp\")},\"keyup\"),IC(h=this.keycharm).call(h,\"down\",()=>{this.unbindFromRedraw(\"_moveDown\")},\"keyup\"),IC(l=this.keycharm).call(l,\"left\",()=>{this.unbindFromRedraw(\"_moveLeft\")},\"keyup\"),IC(c=this.keycharm).call(c,\"right\",()=>{this.unbindFromRedraw(\"_moveRight\")},\"keyup\"),IC(u=this.keycharm).call(u,\"=\",()=>{this.unbindFromRedraw(\"_zoomIn\")},\"keyup\"),IC(p=this.keycharm).call(p,\"num+\",()=>{this.unbindFromRedraw(\"_zoomIn\")},\"keyup\"),IC(f=this.keycharm).call(f,\"num-\",()=>{this.unbindFromRedraw(\"_zoomOut\")},\"keyup\"),IC(v=this.keycharm).call(v,\"-\",()=>{this.unbindFromRedraw(\"_zoomOut\")},\"keyup\"),IC(b=this.keycharm).call(b,\"[\",()=>{this.unbindFromRedraw(\"_zoomOut\")},\"keyup\"),IC(m=this.keycharm).call(m,\"]\",()=>{this.unbindFromRedraw(\"_zoomIn\")},\"keyup\"),IC(y=this.keycharm).call(y,\"pageup\",()=>{this.unbindFromRedraw(\"_zoomIn\")},\"keyup\"),IC(w=this.keycharm).call(w,\"pagedown\",()=>{this.unbindFromRedraw(\"_zoomOut\")},\"keyup\")))}}class OO{constructor(g,A,t){var C,I,e,i,o,n,s,r,a,d,h,l,c;this.body=g,this.canvas=A,this.selectionHandler=t,this.navigationHandler=new EO(g,A),this.body.eventListeners.onTap=IC(C=this.onTap).call(C,this),this.body.eventListeners.onTouch=IC(I=this.onTouch).call(I,this),this.body.eventListeners.onDoubleTap=IC(e=this.onDoubleTap).call(e,this),this.body.eventListeners.onHold=IC(i=this.onHold).call(i,this),this.body.eventListeners.onDragStart=IC(o=this.onDragStart).call(o,this),this.body.eventListeners.onDrag=IC(n=this.onDrag).call(n,this),this.body.eventListeners.onDragEnd=IC(s=this.onDragEnd).call(s,this),this.body.eventListeners.onMouseWheel=IC(r=this.onMouseWheel).call(r,this),this.body.eventListeners.onPinch=IC(a=this.onPinch).call(a,this),this.body.eventListeners.onMouseMove=IC(d=this.onMouseMove).call(d,this),this.body.eventListeners.onRelease=IC(h=this.onRelease).call(h,this),this.body.eventListeners.onContext=IC(l=this.onContext).call(l,this),this.touchTime=0,this.drag={},this.pinch={},this.popup=void 0,this.popupObj=void 0,this.popupTimer=void 0,this.body.functions.getPointer=IC(c=this.getPointer).call(c,this),this.options={},this.defaultOptions={dragNodes:!0,dragView:!0,hover:!1,keyboard:{enabled:!1,speed:{x:10,y:10,zoom:.02},bindToWindow:!0,autoFocus:!0},navigationButtons:!1,tooltipDelay:300,zoomView:!0,zoomSpeed:1},_t(this.options,this.defaultOptions),this.bindEventListeners()}bindEventListeners(){this.body.emitter.on(\"destroy\",()=>{clearTimeout(this.popupTimer),delete this.body.functions.getPointer})}setOptions(g){if(void 0!==g){Nl([\"hideEdgesOnDrag\",\"hideEdgesOnZoom\",\"hideNodesOnDrag\",\"keyboard\",\"multiselect\",\"selectable\",\"selectConnectedEdges\"],this.options,g),Ql(this.options,g,\"keyboard\"),g.tooltip&&(_t(this.options.tooltip,g.tooltip),g.tooltip.color&&(this.options.tooltip.color=Fl(g.tooltip.color)))}this.navigationHandler.setOptions(this.options)}getPointer(g){return{x:g.x-(A=this.canvas.frame.canvas,A.getBoundingClientRect().left),y:g.y-Ml(this.canvas.frame.canvas)};var A}onTouch(g){(new Date).valueOf()-this.touchTime>50&&(this.drag.pointer=this.getPointer(g.center),this.drag.pinched=!1,this.pinch.scale=this.body.view.scale,this.touchTime=(new Date).valueOf())}onTap(g){const A=this.getPointer(g.center),t=this.selectionHandler.options.multiselect&&(g.changedPointers[0].ctrlKey||g.changedPointers[0].metaKey);this.checkSelectionChanges(A,t),this.selectionHandler.commitAndEmit(A,g),this.selectionHandler.generateClickEvent(\"click\",g,A)}onDoubleTap(g){const A=this.getPointer(g.center);this.selectionHandler.generateClickEvent(\"doubleClick\",g,A)}onHold(g){const A=this.getPointer(g.center),t=this.selectionHandler.options.multiselect;this.checkSelectionChanges(A,t),this.selectionHandler.commitAndEmit(A,g),this.selectionHandler.generateClickEvent(\"click\",g,A),this.selectionHandler.generateClickEvent(\"hold\",g,A)}onRelease(g){if((new Date).valueOf()-this.touchTime>10){const A=this.getPointer(g.center);this.selectionHandler.generateClickEvent(\"release\",g,A),this.touchTime=(new Date).valueOf()}}onContext(g){const A=this.getPointer({x:g.clientX,y:g.clientY});this.selectionHandler.generateClickEvent(\"oncontext\",g,A)}checkSelectionChanges(g){!0===(arguments.length>1&&void 0!==arguments[1]&&arguments[1])?this.selectionHandler.selectAdditionalOnPoint(g):this.selectionHandler.selectOnPoint(g)}_determineDifference(g,A){const t=function(g,A){const t=[];for(let C=0;C<g.length;C++){const I=g[C];-1===fa(A).call(A,I)&&t.push(I)}return t};return{nodes:t(g.nodes,A.nodes),edges:t(g.edges,A.edges)}}onDragStart(g){if(this.drag.dragging)return;void 0===this.drag.pointer&&this.onTouch(g);const A=this.selectionHandler.getNodeAt(this.drag.pointer);if(this.drag.dragging=!0,this.drag.selection=[],this.drag.translation=_t({},this.body.view.translation),this.drag.nodeId=void 0,g.srcEvent.shiftKey){this.body.selectionBox.show=!0;const A=this.getPointer(g.center);this.body.selectionBox.position.start={x:this.canvas._XconvertDOMtoCanvas(A.x),y:this.canvas._YconvertDOMtoCanvas(A.y)},this.body.selectionBox.position.end={x:this.canvas._XconvertDOMtoCanvas(A.x),y:this.canvas._YconvertDOMtoCanvas(A.y)}}else if(void 0!==A&&!0===this.options.dragNodes){this.drag.nodeId=A.id,!1===A.isSelected()&&this.selectionHandler.setSelection({nodes:[A.id]}),this.selectionHandler.generateClickEvent(\"dragStart\",g,this.drag.pointer);for(const g of this.selectionHandler.getSelectedNodes()){const A={id:g.id,node:g,x:g.x,y:g.y,xFixed:g.options.fixed.x,yFixed:g.options.fixed.y};g.options.fixed.x=!0,g.options.fixed.y=!0,this.drag.selection.push(A)}}else this.selectionHandler.generateClickEvent(\"dragStart\",g,this.drag.pointer,void 0,!0)}onDrag(g){if(!0===this.drag.pinched)return;this.body.emitter.emit(\"unlockNode\");const A=this.getPointer(g.center),t=this.drag.selection;if(t&&t.length&&!0===this.options.dragNodes){this.selectionHandler.generateClickEvent(\"dragging\",g,A);const C=A.x-this.drag.pointer.x,I=A.y-this.drag.pointer.y;Bn(t).call(t,g=>{const A=g.node;!1===g.xFixed&&(A.x=this.canvas._XconvertDOMtoCanvas(this.canvas._XconvertCanvasToDOM(g.x)+C)),!1===g.yFixed&&(A.y=this.canvas._YconvertDOMtoCanvas(this.canvas._YconvertCanvasToDOM(g.y)+I))}),this.body.emitter.emit(\"startSimulation\")}else{if(g.srcEvent.shiftKey){if(this.selectionHandler.generateClickEvent(\"dragging\",g,A,void 0,!0),void 0===this.drag.pointer)return void this.onDragStart(g);this.body.selectionBox.position.end={x:this.canvas._XconvertDOMtoCanvas(A.x),y:this.canvas._YconvertDOMtoCanvas(A.y)},this.body.emitter.emit(\"_requestRedraw\")}if(!0===this.options.dragView&&!g.srcEvent.shiftKey){if(this.selectionHandler.generateClickEvent(\"dragging\",g,A,void 0,!0),void 0===this.drag.pointer)return void this.onDragStart(g);const t=A.x-this.drag.pointer.x,C=A.y-this.drag.pointer.y;this.body.view.translation={x:this.drag.translation.x+t,y:this.drag.translation.y+C},this.body.emitter.emit(\"_requestRedraw\")}}}onDragEnd(g){if(this.drag.dragging=!1,this.body.selectionBox.show){var A;this.body.selectionBox.show=!1;const t=this.body.selectionBox.position,C={minX:Math.min(t.start.x,t.end.x),minY:Math.min(t.start.y,t.end.y),maxX:Math.max(t.start.x,t.end.x),maxY:Math.max(t.start.y,t.end.y)},I=Or(A=this.body.nodeIndices).call(A,g=>{const A=this.body.nodes[g];return A.x>=C.minX&&A.x<=C.maxX&&A.y>=C.minY&&A.y<=C.maxY});Bn(I).call(I,g=>this.selectionHandler.selectObject(this.body.nodes[g]));const e=this.getPointer(g.center);this.selectionHandler.commitAndEmit(e,g),this.selectionHandler.generateClickEvent(\"dragEnd\",g,this.getPointer(g.center),void 0,!0),this.body.emitter.emit(\"_requestRedraw\")}else{const A=this.drag.selection;A&&A.length?(Bn(A).call(A,function(g){g.node.options.fixed.x=g.xFixed,g.node.options.fixed.y=g.yFixed}),this.selectionHandler.generateClickEvent(\"dragEnd\",g,this.getPointer(g.center)),this.body.emitter.emit(\"startSimulation\")):(this.selectionHandler.generateClickEvent(\"dragEnd\",g,this.getPointer(g.center),void 0,!0),this.body.emitter.emit(\"_requestRedraw\"))}}onPinch(g){const A=this.getPointer(g.center);this.drag.pinched=!0,void 0===this.pinch.scale&&(this.pinch.scale=1);const t=this.pinch.scale*g.scale;this.zoom(t,A)}zoom(g,A){if(!0===this.options.zoomView){const t=this.body.view.scale;let C;g<1e-5&&(g=1e-5),g>10&&(g=10),void 0!==this.drag&&!0===this.drag.dragging&&(C=this.canvas.DOMtoCanvas(this.drag.pointer));const I=this.body.view.translation,e=g/t,i=(1-e)*A.x+I.x*e,o=(1-e)*A.y+I.y*e;if(this.body.view.scale=g,this.body.view.translation={x:i,y:o},null!=C){const g=this.canvas.canvasToDOM(C);this.drag.pointer.x=g.x,this.drag.pointer.y=g.y}this.body.emitter.emit(\"_requestRedraw\"),t<g?this.body.emitter.emit(\"zoom\",{direction:\"+\",scale:this.body.view.scale,pointer:A}):this.body.emitter.emit(\"zoom\",{direction:\"-\",scale:this.body.view.scale,pointer:A})}}onMouseWheel(g){if(!0===this.options.zoomView){if(0!==g.deltaY){let A=this.body.view.scale;A*=1+(g.deltaY<0?1:-1)*(.1*this.options.zoomSpeed);const t=this.getPointer({x:g.clientX,y:g.clientY});this.zoom(A,t)}g.preventDefault()}}onMouseMove(g){const A=this.getPointer({x:g.clientX,y:g.clientY});let t=!1;void 0!==this.popup&&(!1===this.popup.hidden&&this._checkHidePopup(A),!1===this.popup.hidden&&(t=!0,this.popup.setPosition(A.x+3,A.y-5),this.popup.show())),this.options.keyboard.autoFocus&&!1===this.options.keyboard.bindToWindow&&!0===this.options.keyboard.enabled&&this.canvas.frame.focus(),!1===t&&(void 0!==this.popupTimer&&(clearInterval(this.popupTimer),this.popupTimer=void 0),this.drag.dragging||(this.popupTimer=bd(()=>this._checkShowPopup(A),this.options.tooltipDelay))),!0===this.options.hover&&this.selectionHandler.hoverObject(g,A)}_checkShowPopup(g){const A=this.canvas._XconvertDOMtoCanvas(g.x),t=this.canvas._YconvertDOMtoCanvas(g.y),C={left:A,top:t,right:A,bottom:t},I=void 0===this.popupObj?void 0:this.popupObj.id;let e=!1,i=\"node\";if(void 0===this.popupObj){const g=this.body.nodeIndices,A=this.body.nodes;let t;const I=[];for(let i=0;i<g.length;i++)t=A[g[i]],!0===t.isOverlappingWith(C)&&(e=!0,void 0!==t.getTitle()&&I.push(g[i]));I.length>0&&(this.popupObj=A[I[I.length-1]],e=!0)}if(void 0===this.popupObj&&!1===e){const g=this.body.edgeIndices,A=this.body.edges;let t;const I=[];for(let e=0;e<g.length;e++)t=A[g[e]],!0===t.isOverlappingWith(C)&&!0===t.connected&&void 0!==t.getTitle()&&I.push(g[e]);I.length>0&&(this.popupObj=A[I[I.length-1]],i=\"edge\")}void 0!==this.popupObj?this.popupObj.id!==I&&(void 0===this.popup&&(this.popup=new Cc(this.canvas.frame)),this.popup.popupTargetType=i,this.popup.popupTargetId=this.popupObj.id,this.popup.setPosition(g.x+3,g.y-5),this.popup.setText(this.popupObj.getTitle()),this.popup.show(),this.body.emitter.emit(\"showPopup\",this.popupObj.id)):void 0!==this.popup&&(this.popup.hide(),this.body.emitter.emit(\"hidePopup\"))}_checkHidePopup(g){const A=this.selectionHandler._pointerToPositionObject(g);let t=!1;if(\"node\"===this.popup.popupTargetType){if(void 0!==this.body.nodes[this.popup.popupTargetId]&&(t=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(A),!0===t)){const A=this.selectionHandler.getNodeAt(g);t=void 0!==A&&A.id===this.popup.popupTargetId}}else void 0===this.selectionHandler.getNodeAt(g)&&void 0!==this.body.edges[this.popup.popupTargetId]&&(t=this.body.edges[this.popup.popupTargetId].isOverlappingWith(A));!1===t&&(this.popupObj=void 0,this.popup.hide(),this.body.emitter.emit(\"hidePopup\"))}}var TO,DO,NO,RO,kO,PO,MO,zO,BO,ZO,SO={},FO={};function GO(){if(DO)return TO;DO=1;var g=E(),A=Nu(),t=mu().getWeakData,C=Tu(),I=it(),e=wg(),i=Og(),o=Ou(),n=KI(),s=vA(),r=UI(),a=r.set,d=r.getterFor,h=n.find,l=n.findIndex,c=g([].splice),u=0,p=function(g){return g.frozen||(g.frozen=new f)},f=function(){this.entries=[]},v=function(g,A){return h(g.entries,function(g){return g[0]===A})};return f.prototype={get:function(g){var A=v(this,g);if(A)return A[1]},has:function(g){return!!v(this,g)},set:function(g,A){var t=v(this,g);t?t[1]=A:this.entries.push([g,A])},delete:function(g){var A=l(this.entries,function(A){return A[0]===g});return~A&&c(this.entries,A,1),!!~A}},TO={getConstructor:function(g,n,r,h){var l=g(function(g,A){C(g,c),a(g,{type:n,id:u++,frozen:null}),e(A)||o(A,g[h],{that:g,AS_ENTRIES:r})}),c=l.prototype,f=d(n),v=function(g,A,C){var e=f(g),i=t(I(A),!0);return!0===i?p(e).set(A,C):i[e.id]=C,g};return A(c,{delete:function(g){var A=f(this);if(!i(g))return!1;var C=t(g);return!0===C?p(A).delete(g):C&&s(C,A.id)&&delete C[A.id]},has:function(g){var A=f(this);if(!i(g))return!1;var C=t(g);return!0===C?p(A).has(g):C&&s(C,A.id)}}),A(c,r?{get:function(g){var A=f(this);if(i(g)){var C=t(g);if(!0===C)return p(A).get(g);if(C)return C[A.id]}},set:function(g,A){return v(this,g,A)}}:{add:function(g){return v(this,g,!0)}}),l}}}function LO(){return RO||(RO=1,function(){if(NO)return FO;NO=1;var g,A=bu(),t=m(),C=E(),I=Nu(),e=mu(),i=Du(),o=GO(),n=Og(),s=UI().enforce,r=y(),a=QI(),d=Object,h=Array.isArray,l=d.isExtensible,c=d.isFrozen,u=d.isSealed,p=d.freeze,f=d.seal,v=!t.ActiveXObject&&\"ActiveXObject\"in t,b=function(g){return function(){return g(this,arguments.length?arguments[0]:void 0)}},w=i(\"WeakMap\",b,o),x=w.prototype,O=C(x.set);if(a)if(v){g=o.getConstructor(b,\"WeakMap\",!0),e.enable();var T=C(x.delete),D=C(x.has),N=C(x.get);I(x,{delete:function(A){if(n(A)&&!l(A)){var t=s(this);return t.frozen||(t.frozen=new g),T(this,A)||t.frozen.delete(A)}return T(this,A)},has:function(A){if(n(A)&&!l(A)){var t=s(this);return t.frozen||(t.frozen=new g),D(this,A)||t.frozen.has(A)}return D(this,A)},get:function(A){if(n(A)&&!l(A)){var t=s(this);return t.frozen||(t.frozen=new g),D(this,A)?N(this,A):t.frozen.get(A)}return N(this,A)},set:function(A,t){if(n(A)&&!l(A)){var C=s(this);C.frozen||(C.frozen=new g),D(this,A)?O(this,A,t):C.frozen.set(A,t)}else O(this,A,t);return this}})}else A&&r(function(){var g=p([]);return O(new w,g,1),!c(g)})&&I(x,{set:function(g,A){var t;return h(g)&&(c(g)?t=p:u(g)&&(t=f)),O(this,g,A),t&&t(g),this}})}()),SO}function jO(){return PO?kO:(PO=1,Bi(),LO(),kO=Tg().WeakMap)}function VO(){if(zO)return MO;zO=1;var g=jO();return Si(),MO=g}var YO=C(ZO?BO:(ZO=1,BO=VO()));function WO(g,A,t){(function(g,A){if(A.has(g))throw new TypeError(\"Cannot initialize the same private elements twice on an object\")})(g,A),A.set(g,t)}function QO(g,A,t){return g.set(KO(g,A),t),t}function UO(g,A){return g.get(KO(g,A))}function KO(g,A,t){if(\"function\"==typeof g?g===A:g.has(A))return arguments.length<3?A:t;throw new TypeError(\"Private element is not present on this object\")}function HO(g,A){const t=new Ny;for(const C of A)g.has(C)||t.add(C);return t}var XO=new YO,_O=new YO;class JO{constructor(){WO(this,XO,new Ny),WO(this,_O,new Ny)}get size(){return UO(_O,this).size}add(){for(var g=arguments.length,A=new Array(g),t=0;t<g;t++)A[t]=arguments[t];for(const g of A)UO(_O,this).add(g)}delete(){for(var g=arguments.length,A=new Array(g),t=0;t<g;t++)A[t]=arguments[t];for(const g of A)UO(_O,this).delete(g)}clear(){UO(_O,this).clear()}getSelection(){return[...UO(_O,this)]}getChanges(){return{added:[...HO(UO(XO,this),UO(_O,this))],deleted:[...HO(UO(_O,this),UO(XO,this))],previous:[...new Ny(UO(XO,this))],current:[...new Ny(UO(_O,this))]}}commit(){const g=this.getChanges();QO(XO,this,UO(_O,this)),QO(_O,this,new Ny(UO(XO,this)));for(const A of g.added)A.select();for(const A of g.deleted)A.unselect();return g}}var qO=new YO,$O=new YO,gT=new YO;class AT{constructor(){let g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:()=>{};WO(this,qO,new JO),WO(this,$O,new JO),WO(this,gT,void 0),QO(gT,this,g)}get sizeNodes(){return UO(qO,this).size}get sizeEdges(){return UO($O,this).size}getNodes(){return UO(qO,this).getSelection()}getEdges(){return UO($O,this).getSelection()}addNodes(){UO(qO,this).add(...arguments)}addEdges(){UO($O,this).add(...arguments)}deleteNodes(g){UO(qO,this).delete(g)}deleteEdges(g){UO($O,this).delete(g)}clear(){UO(qO,this).clear(),UO($O,this).clear()}commit(){const g={nodes:UO(qO,this).commit(),edges:UO($O,this).commit()};for(var A=arguments.length,t=new Array(A),C=0;C<A;C++)t[C]=arguments[C];return UO(gT,this).call(this,g,...t),g}}class tT{constructor(g,A){this.body=g,this.canvas=A,this._selectionAccumulator=new AT,this.hoverObj={nodes:{},edges:{}},this.options={},this.defaultOptions={multiselect:!1,selectable:!0,selectConnectedEdges:!0,hoverConnectedEdges:!0},_t(this.options,this.defaultOptions),this.body.emitter.on(\"_dataChanged\",()=>{this.updateSelection()})}setOptions(g){if(void 0!==g){Dl([\"multiselect\",\"hoverConnectedEdges\",\"selectable\",\"selectConnectedEdges\"],this.options,g)}}selectOnPoint(g){let A=!1;if(!0===this.options.selectable){const t=this.getNodeAt(g)||this.getEdgeAt(g);this.unselectAll(),void 0!==t&&(A=this.selectObject(t)),this.body.emitter.emit(\"_requestRedraw\")}return A}selectAdditionalOnPoint(g){let A=!1;if(!0===this.options.selectable){const t=this.getNodeAt(g)||this.getEdgeAt(g);void 0!==t&&(A=!0,!0===t.isSelected()?this.deselectObject(t):this.selectObject(t),this.body.emitter.emit(\"_requestRedraw\"))}return A}_initBaseEvent(g,A){const t={};return t.pointer={DOM:{x:A.x,y:A.y},canvas:this.canvas.DOMtoCanvas(A)},t.event=g,t}generateClickEvent(g,A,t,C){let I=arguments.length>4&&void 0!==arguments[4]&&arguments[4];const e=this._initBaseEvent(A,t);if(!0===I)e.nodes=[],e.edges=[];else{const g=this.getSelection();e.nodes=g.nodes,e.edges=g.edges}void 0!==C&&(e.previousSelection=C),\"click\"==g&&(e.items=this.getClickedItems(t)),void 0!==A.controlEdge&&(e.controlEdge=A.controlEdge),this.body.emitter.emit(g,e)}selectObject(g){let A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.selectConnectedEdges;return void 0!==g&&(g instanceof cE?(!0===A&&this._selectionAccumulator.addEdges(...g.edges),this._selectionAccumulator.addNodes(g)):this._selectionAccumulator.addEdges(g),!0)}deselectObject(g){!0===g.isSelected()&&(g.selected=!1,this._removeFromSelection(g))}_getAllNodesOverlappingWith(g){const A=[],t=this.body.nodes;for(let C=0;C<this.body.nodeIndices.length;C++){const I=this.body.nodeIndices[C];t[I].isOverlappingWith(g)&&A.push(I)}return A}_pointerToPositionObject(g){const A=this.canvas.DOMtoCanvas(g);return{left:A.x-1,top:A.y+1,right:A.x+1,bottom:A.y-1}}getNodeAt(g){let A=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const t=this._pointerToPositionObject(g),C=this._getAllNodesOverlappingWith(t);return C.length>0?!0===A?this.body.nodes[C[C.length-1]]:C[C.length-1]:void 0}_getEdgesOverlappingWith(g,A){const t=this.body.edges;for(let C=0;C<this.body.edgeIndices.length;C++){const I=this.body.edgeIndices[C];t[I].isOverlappingWith(g)&&A.push(I)}}_getAllEdgesOverlappingWith(g){const A=[];return this._getEdgesOverlappingWith(g,A),A}getEdgeAt(g){let A=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const t=this.canvas.DOMtoCanvas(g);let C=10,I=null;const e=this.body.edges;for(let g=0;g<this.body.edgeIndices.length;g++){const A=this.body.edgeIndices[g],i=e[A];if(i.connected){const g=i.from.x,e=i.from.y,o=i.to.x,n=i.to.y,s=i.edgeType.getDistanceToEdge(g,e,o,n,t.x,t.y);s<C&&(I=A,C=s)}}return null!==I?!0===A?this.body.edges[I]:I:void 0}_addToHover(g){g instanceof cE?this.hoverObj.nodes[g.id]=g:this.hoverObj.edges[g.id]=g}_removeFromSelection(g){g instanceof cE?(this._selectionAccumulator.deleteNodes(g),this._selectionAccumulator.deleteEdges(...g.edges)):this._selectionAccumulator.deleteEdges(g)}unselectAll(){this._selectionAccumulator.clear()}getSelectedNodeCount(){return this._selectionAccumulator.sizeNodes}getSelectedEdgeCount(){return this._selectionAccumulator.sizeEdges}_hoverConnectedEdges(g){for(let A=0;A<g.edges.length;A++){const t=g.edges[A];t.hover=!0,this._addToHover(t)}}emitBlurEvent(g,A,t){const C=this._initBaseEvent(g,A);!0===t.hover&&(t.hover=!1,t instanceof cE?(C.node=t.id,this.body.emitter.emit(\"blurNode\",C)):(C.edge=t.id,this.body.emitter.emit(\"blurEdge\",C)))}emitHoverEvent(g,A,t){const C=this._initBaseEvent(g,A);let I=!1;return!1===t.hover&&(t.hover=!0,this._addToHover(t),I=!0,t instanceof cE?(C.node=t.id,this.body.emitter.emit(\"hoverNode\",C)):(C.edge=t.id,this.body.emitter.emit(\"hoverEdge\",C))),I}hoverObject(g,A){let t=this.getNodeAt(A);void 0===t&&(t=this.getEdgeAt(A));let C=!1;for(const I in this.hoverObj.nodes)Object.prototype.hasOwnProperty.call(this.hoverObj.nodes,I)&&(void 0===t||t instanceof cE&&t.id!=I||t instanceof $E)&&(this.emitBlurEvent(g,A,this.hoverObj.nodes[I]),delete this.hoverObj.nodes[I],C=!0);for(const I in this.hoverObj.edges)Object.prototype.hasOwnProperty.call(this.hoverObj.edges,I)&&(!0===C?(this.hoverObj.edges[I].hover=!1,delete this.hoverObj.edges[I]):(void 0===t||t instanceof $E&&t.id!=I||t instanceof cE&&!t.hover)&&(this.emitBlurEvent(g,A,this.hoverObj.edges[I]),delete this.hoverObj.edges[I],C=!0));if(void 0!==t){const I=An(this.hoverObj.edges).length,e=An(this.hoverObj.nodes).length;(C||t instanceof $E&&0===I&&0===e||t instanceof cE&&0===I&&0===e)&&(C=this.emitHoverEvent(g,A,t)),t instanceof cE&&!0===this.options.hoverConnectedEdges&&this._hoverConnectedEdges(t)}!0===C&&this.body.emitter.emit(\"_requestRedraw\")}commitWithoutEmitting(){this._selectionAccumulator.commit()}commitAndEmit(g,A){let t=!1;const C=this._selectionAccumulator.commit(),I={nodes:C.nodes.previous,edges:C.edges.previous};C.edges.deleted.length>0&&(this.generateClickEvent(\"deselectEdge\",A,g,I),t=!0),C.nodes.deleted.length>0&&(this.generateClickEvent(\"deselectNode\",A,g,I),t=!0),C.nodes.added.length>0&&(this.generateClickEvent(\"selectNode\",A,g),t=!0),C.edges.added.length>0&&(this.generateClickEvent(\"selectEdge\",A,g),t=!0),!0===t&&this.generateClickEvent(\"select\",A,g)}getSelection(){return{nodes:this.getSelectedNodeIds(),edges:this.getSelectedEdgeIds()}}getSelectedNodes(){return this._selectionAccumulator.getNodes()}getSelectedEdges(){return this._selectionAccumulator.getEdges()}getSelectedNodeIds(){var g;return Wo(g=this._selectionAccumulator.getNodes()).call(g,g=>g.id)}getSelectedEdgeIds(){var g;return Wo(g=this._selectionAccumulator.getEdges()).call(g,g=>g.id)}setSelection(g){let A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!g||!g.nodes&&!g.edges)throw new TypeError(\"Selection must be an object with nodes and/or edges properties\");if((A.unselectAll||void 0===A.unselectAll)&&this.unselectAll(),g.nodes)for(const t of g.nodes){const g=this.body.nodes[t];if(!g)throw new RangeError('Node with id \"'+t+'\" not found');this.selectObject(g,A.highlightEdges)}if(g.edges)for(const A of g.edges){const g=this.body.edges[A];if(!g)throw new RangeError('Edge with id \"'+A+'\" not found');this.selectObject(g)}this.body.emitter.emit(\"_requestRedraw\"),this._selectionAccumulator.commit()}selectNodes(g){let A=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!g||void 0===g.length)throw\"Selection must be an array with ids\";this.setSelection({nodes:g},{highlightEdges:A})}selectEdges(g){if(!g||void 0===g.length)throw\"Selection must be an array with ids\";this.setSelection({edges:g})}updateSelection(){for(const g in this._selectionAccumulator.getNodes())Object.prototype.hasOwnProperty.call(this.body.nodes,g.id)||this._selectionAccumulator.deleteNodes(g);for(const g in this._selectionAccumulator.getEdges())Object.prototype.hasOwnProperty.call(this.body.edges,g.id)||this._selectionAccumulator.deleteEdges(g)}getClickedItems(g){const A=this.canvas.DOMtoCanvas(g),t=[],C=this.body.nodeIndices,I=this.body.nodes;for(let g=C.length-1;g>=0;g--){const e=I[C[g]].getItemsOnPoint(A);t.push.apply(t,e)}const e=this.body.edgeIndices,i=this.body.edges;for(let g=e.length-1;g>=0;g--){const C=i[e[g]].getItemsOnPoint(A);t.push.apply(t,C)}return t}}class CT{abstract(){throw new Error(\"Can't instantiate abstract class!\")}fake_use(){}curveType(){return this.abstract()}getPosition(g){return this.fake_use(g),this.abstract()}setPosition(g,A){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;this.fake_use(g,A,t),this.abstract()}getTreeSize(g){return this.fake_use(g),this.abstract()}sort(g){this.fake_use(g),this.abstract()}fix(g,A){this.fake_use(g,A),this.abstract()}shift(g,A){this.fake_use(g,A),this.abstract()}}class IT extends CT{constructor(g){super(),this.layout=g}curveType(){return\"horizontal\"}getPosition(g){return g.x}setPosition(g,A){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==t&&this.layout.hierarchical.addToOrdering(g,t),g.x=A}getTreeSize(g){const A=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,g);return{min:A.min_x,max:A.max_x}}sort(g){uw(g).call(g,function(g,A){return g.x-A.x})}fix(g,A){g.y=this.layout.options.hierarchical.levelSeparation*A,g.options.fixed.y=!0}shift(g,A){this.layout.body.nodes[g].x+=A}}class eT extends CT{constructor(g){super(),this.layout=g}curveType(){return\"vertical\"}getPosition(g){return g.y}setPosition(g,A){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==t&&this.layout.hierarchical.addToOrdering(g,t),g.y=A}getTreeSize(g){const A=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,g);return{min:A.min_y,max:A.max_y}}sort(g){uw(g).call(g,function(g,A){return g.y-A.y})}fix(g,A){g.x=this.layout.options.hierarchical.levelSeparation*A,g.options.fixed.x=!0}shift(g,A){this.layout.body.nodes[g].y+=A}}var iT,oT,nT,sT,rT,aT,dT,hT,lT,cT={};function uT(){return nT?oT:(nT=1,function(){if(iT)return cT;iT=1;var g=st(),A=KI().every;g({target:\"Array\",proto:!0,forced:!mn()(\"every\")},{every:function(g){return A(this,g,arguments.length>1?arguments[1]:void 0)}})}(),oT=gC()(\"Array\",\"every\"))}function pT(){if(rT)return sT;rT=1;var g=Ng(),A=uT(),t=Array.prototype;return sT=function(C){var I=C.every;return C===t||g(t,C)&&I===t.every?A:I},sT}function fT(){return dT?aT:(dT=1,aT=pT())}var vT=C(lT?hT:(lT=1,hT=fT()));function bT(g,A){const t=new Ny;return Bn(g).call(g,g=>{var A;Bn(A=g.edges).call(A,g=>{g.connected&&t.add(g)})}),Bn(t).call(t,g=>{const t=g.from.id,C=g.to.id;null==A[t]&&(A[t]=0),(null==A[C]||A[t]>=A[C])&&(A[C]=A[t]+1)}),A}function mT(g,A,t,C){var I;const e=za(null),i=Nb(I=[...Lw(C).call(C)]).call(I,(g,A)=>g+1+A.edges.length,0),o=t+\"Id\",n=\"to\"===t?1:-1;for(const[I,a]of C){if(!C.has(I)||!g(a))continue;e[I]=0;const d=[a];let h,l=0;for(;h=d.pop();){var s,r;if(!C.has(I))continue;const g=e[h.id]+n;if(Bn(s=Or(r=h.edges).call(r,g=>g.connected&&g.to!==g.from&&g[t]!==h&&C.has(g.toId)&&C.has(g.fromId))).call(s,C=>{const I=C[o],i=e[I];(null==i||A(g,i))&&(e[I]=g,d.push(C[t]))}),l>i)return bT(C,e);++l}}return e}class yT{constructor(){this.childrenReference={},this.parentReference={},this.trees={},this.distributionOrdering={},this.levels={},this.distributionIndex={},this.isTree=!1,this.treeIndex=-1}addRelation(g,A){void 0===this.childrenReference[g]&&(this.childrenReference[g]=[]),this.childrenReference[g].push(A),void 0===this.parentReference[A]&&(this.parentReference[A]=[]),this.parentReference[A].push(g)}checkIfTree(){for(const g in this.parentReference)if(this.parentReference[g].length>1)return void(this.isTree=!1);this.isTree=!0}numTrees(){return this.treeIndex+1}setTreeIndex(g,A){void 0!==A&&void 0===this.trees[g.id]&&(this.trees[g.id]=A,this.treeIndex=Math.max(A,this.treeIndex))}ensureLevel(g){void 0===this.levels[g]&&(this.levels[g]=0)}getMaxLevel(g){const A={},t=g=>{if(void 0!==A[g])return A[g];let C=this.levels[g];if(this.childrenReference[g]){const A=this.childrenReference[g];if(A.length>0)for(let g=0;g<A.length;g++)C=Math.max(C,t(A[g]))}return A[g]=C,C};return t(g)}levelDownstream(g,A){void 0===this.levels[A.id]&&(void 0===this.levels[g.id]&&(this.levels[g.id]=0),this.levels[A.id]=this.levels[g.id]+1)}setMinLevelToZero(){var g;const A=new Ap;let t=0;const C=uw(g=[...new Ny(Wr(this.levels))]).call(g,(g,A)=>g-A);for(const g of C)A.set(g,t++);for(const g in this.levels)Object.prototype.hasOwnProperty.call(this.levels,g)&&(this.levels[g]=A.get(this.levels[g]))}getTreeSize(g,A){let t=1e9,C=-1e9,I=1e9,e=-1e9;for(const i in this.trees)if(Object.prototype.hasOwnProperty.call(this.trees,i)&&this.trees[i]===A){const A=g[i];t=Math.min(A.x,t),C=Math.max(A.x,C),I=Math.min(A.y,I),e=Math.max(A.y,e)}return{min_x:t,max_x:C,min_y:I,max_y:e}}hasSameParent(g,A){const t=this.parentReference[g.id],C=this.parentReference[A.id];if(void 0===t||void 0===C)return!1;for(let g=0;g<t.length;g++)for(let A=0;A<C.length;A++)if(t[g]==C[A])return!0;return!1}inSameSubNetwork(g,A){return this.trees[g.id]===this.trees[A.id]}getLevels(){return An(this.distributionOrdering)}addToOrdering(g,A){void 0===this.distributionOrdering[A]&&(this.distributionOrdering[A]=[]);let t=!1;const C=this.distributionOrdering[A];for(const A in C)if(C[A]===g){t=!0;break}t||(this.distributionOrdering[A].push(g),this.distributionIndex[g.id]=this.distributionOrdering[A].length-1)}}class wT{constructor(g){this.body=g,this._resetRNG(Math.random()+\":\"+vn()),this.setPhysics=!1,this.options={},this.optionsBackup={physics:{}},this.defaultOptions={randomSeed:void 0,improvedLayout:!0,clusterThreshold:150,hierarchical:{enabled:!1,levelSeparation:150,nodeSpacing:100,treeSpacing:200,blockShifting:!0,edgeMinimization:!0,parentCentralization:!0,direction:\"UD\",sortMethod:\"hubsize\"}},_t(this.options,this.defaultOptions),this.bindEventListeners()}bindEventListeners(){this.body.emitter.on(\"_dataChanged\",()=>{this.setupHierarchicalLayout()}),this.body.emitter.on(\"_dataLoaded\",()=>{this.layoutNetwork()}),this.body.emitter.on(\"_resetHierarchicalLayout\",()=>{this.setupHierarchicalLayout()}),this.body.emitter.on(\"_adjustEdgesForHierarchicalLayout\",()=>{if(!0!==this.options.hierarchical.enabled)return;const g=this.direction.curveType();this.body.emitter.emit(\"_forceDisableDynamicCurves\",g,!1)})}setOptions(g,A){if(void 0!==g){const t=this.options.hierarchical,C=t.enabled;if(Dl([\"randomSeed\",\"improvedLayout\",\"clusterThreshold\"],this.options,g),Ql(this.options,g,\"hierarchical\"),void 0!==g.randomSeed&&this._resetRNG(g.randomSeed),!0===t.enabled)return!0===C&&this.body.emitter.emit(\"refresh\",!0),\"RL\"===t.direction||\"DU\"===t.direction?t.levelSeparation>0&&(t.levelSeparation*=-1):t.levelSeparation<0&&(t.levelSeparation*=-1),this.setDirectionStrategy(),this.body.emitter.emit(\"_resetHierarchicalLayout\"),this.adaptAllOptionsForHierarchicalLayout(A);if(!0===C)return this.body.emitter.emit(\"refresh\"),Rl(A,this.optionsBackup)}return A}_resetRNG(g){this.initialRandomSeed=g,this._rng=ul(this.initialRandomSeed)}adaptAllOptionsForHierarchicalLayout(g){if(!0===this.options.hierarchical.enabled){const A=this.optionsBackup.physics;void 0===g.physics||!0===g.physics?(g.physics={enabled:void 0===A.enabled||A.enabled,solver:\"hierarchicalRepulsion\"},A.enabled=void 0===A.enabled||A.enabled,A.solver=A.solver||\"barnesHut\"):\"object\"==typeof g.physics?(A.enabled=void 0===g.physics.enabled||g.physics.enabled,A.solver=g.physics.solver||\"barnesHut\",g.physics.solver=\"hierarchicalRepulsion\"):!1!==g.physics&&(A.solver=\"barnesHut\",g.physics={solver:\"hierarchicalRepulsion\"});let t=this.direction.curveType();if(void 0===g.edges)this.optionsBackup.edges={smooth:{enabled:!0,type:\"dynamic\"}},g.edges={smooth:!1};else if(void 0===g.edges.smooth)this.optionsBackup.edges={smooth:{enabled:!0,type:\"dynamic\"}},g.edges.smooth=!1;else if(\"boolean\"==typeof g.edges.smooth)this.optionsBackup.edges={smooth:g.edges.smooth},g.edges.smooth={enabled:g.edges.smooth,type:t};else{const A=g.edges.smooth;void 0!==A.type&&\"dynamic\"!==A.type&&(t=A.type),this.optionsBackup.edges={smooth:{enabled:void 0===A.enabled||A.enabled,type:void 0===A.type?\"dynamic\":A.type,roundness:void 0===A.roundness?.5:A.roundness,forceDirection:void 0!==A.forceDirection&&A.forceDirection}},g.edges.smooth={enabled:void 0===A.enabled||A.enabled,type:t,roundness:void 0===A.roundness?.5:A.roundness,forceDirection:void 0!==A.forceDirection&&A.forceDirection}}this.body.emitter.emit(\"_forceDisableDynamicCurves\",t)}return g}positionInitially(g){if(!0!==this.options.hierarchical.enabled){this._resetRNG(this.initialRandomSeed);const A=g.length+50;for(let t=0;t<g.length;t++){const C=g[t],I=2*Math.PI*this._rng();void 0===C.x&&(C.x=A*Math.cos(I)),void 0===C.y&&(C.y=A*Math.sin(I))}}}layoutNetwork(){if(!0!==this.options.hierarchical.enabled&&!0===this.options.improvedLayout){const g=this.body.nodeIndices;let A=0;for(let t=0;t<g.length;t++){!0===this.body.nodes[g[t]].predefinedPosition&&(A+=1)}if(A<.5*g.length){const A=10;let t=0;const C=this.options.clusterThreshold,I={clusterNodeProperties:{shape:\"ellipse\",label:\"\",group:\"\",font:{multi:!1}},clusterEdgeProperties:{label:\"\",font:{multi:!1},smooth:{enabled:!1}}};if(g.length>C){const e=g.length;for(;g.length>C&&t<=A;){t+=1;const A=g.length;t%3==0?this.body.modules.clustering.clusterBridges(I):this.body.modules.clustering.clusterOutliers(I);if(A==g.length&&t%3!=0)return this._declusterAll(),this.body.emitter.emit(\"_layoutFailed\"),void console.info(\"This network could not be positioned by this version of the improved layout algorithm. Please disable improvedLayout for better performance.\")}this.body.modules.kamadaKawai.setOptions({springLength:Math.max(150,2*e)})}t>A&&console.info(\"The clustering didn't succeed within the amount of interations allowed, progressing with partial result.\"),this.body.modules.kamadaKawai.solve(g,this.body.edgeIndices,!0),this._shiftToCenter();const e=70;for(let A=0;A<g.length;A++){const t=this.body.nodes[g[A]];!1===t.predefinedPosition&&(t.x+=(.5-this._rng())*e,t.y+=(.5-this._rng())*e)}this._declusterAll(),this.body.emitter.emit(\"_repositionBezierNodes\")}}}_shiftToCenter(){const g=rO.getRangeCore(this.body.nodes,this.body.nodeIndices),A=rO.findCenter(g);for(let g=0;g<this.body.nodeIndices.length;g++){const t=this.body.nodes[this.body.nodeIndices[g]];t.x-=A.x,t.y-=A.y}}_declusterAll(){let g=!0;for(;!0===g;){g=!1;for(let A=0;A<this.body.nodeIndices.length;A++)!0===this.body.nodes[this.body.nodeIndices[A]].isCluster&&(g=!0,this.body.modules.clustering.openCluster(this.body.nodeIndices[A],{},!1));!0===g&&this.body.emitter.emit(\"_dataChanged\")}}getSeed(){return this.initialRandomSeed}setupHierarchicalLayout(){if(!0===this.options.hierarchical.enabled&&this.body.nodeIndices.length>0){let g,A,t=!1,C=!1;for(A in this.lastNodeOnLevel={},this.hierarchical=new yT,this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,A)&&(g=this.body.nodes[A],void 0!==g.options.level?(t=!0,this.hierarchical.levels[A]=g.options.level):C=!0);if(!0===C&&!0===t)throw new Error(\"To use the hierarchical layout, nodes require either no predefined levels or levels have to be defined for all nodes.\");{if(!0===C){const g=this.options.hierarchical.sortMethod;\"hubsize\"===g?this._determineLevelsByHubsize():\"directed\"===g?this._determineLevelsDirected():\"custom\"===g&&this._determineLevelsCustomCallback()}for(const g in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,g)&&this.hierarchical.ensureLevel(g);const g=this._getDistribution();this._generateMap(),this._placeNodesByHierarchy(g),this._condenseHierarchy(),this._shiftToCenter()}}}_condenseHierarchy(){var g=this;let A=!1;const t={},C=(g,A)=>{const t=this.hierarchical.trees;for(const C in t)Object.prototype.hasOwnProperty.call(t,C)&&t[C]===g&&this.direction.shift(C,A)},I=()=>{const g=[];for(let A=0;A<this.hierarchical.numTrees();A++)g.push(this.direction.getTreeSize(A));return g},e=(g,A)=>{if(!A[g.id]&&(A[g.id]=!0,this.hierarchical.childrenReference[g.id])){const t=this.hierarchical.childrenReference[g.id];if(t.length>0)for(let g=0;g<t.length;g++)e(this.body.nodes[t[g]],A)}},i=function(A){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e9,C=1e9,I=1e9,e=1e9,i=-1e9;for(const o in A)if(Object.prototype.hasOwnProperty.call(A,o)){const n=g.body.nodes[o],s=g.hierarchical.levels[n.id],r=g.direction.getPosition(n),[a,d]=g._getSpaceAroundNode(n,A);C=Math.min(a,C),I=Math.min(d,I),s<=t&&(e=Math.min(r,e),i=Math.max(r,i))}return[e,i,C,I]},o=(g,A)=>{const t=this.hierarchical.getMaxLevel(g.id),C=this.hierarchical.getMaxLevel(A.id);return Math.min(t,C)},n=(g,A,t)=>{const C=this.hierarchical;for(let I=0;I<A.length;I++){const e=A[I],i=C.distributionOrdering[e];if(i.length>1)for(let A=0;A<i.length-1;A++){const I=i[A],e=i[A+1];C.hasSameParent(I,e)&&C.inSameSubNetwork(I,e)&&g(I,e,t)}}},s=function(t,C){let I=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const n=g.direction.getPosition(t),s=g.direction.getPosition(C),r=Math.abs(s-n),a=g.options.hierarchical.nodeSpacing;if(r>a){const n={},s={};e(t,n),e(C,s);const r=o(t,C),d=i(n,r),h=i(s,r),l=d[1],c=h[0],u=h[2];if(Math.abs(l-c)>a){let t=l-c+a;t<-u+a&&(t=-u+a),t<0&&(g._shiftBlock(C.id,t),A=!0,!0===I&&g._centerParent(C))}}},r=(g,C)=>{const I=C.id,o=C.edges,n=this.hierarchical.levels[C.id],s=this.options.hierarchical.levelSeparation*this.options.hierarchical.levelSeparation,r={},a=[];for(let g=0;g<o.length;g++){const A=o[g];if(A.toId!=A.fromId){const t=A.toId==I?A.from:A.to;r[o[g].id]=t,this.hierarchical.levels[t.id]<n&&a.push(A)}}const d=(g,A)=>{let t=0;for(let C=0;C<A.length;C++)if(void 0!==r[A[C].id]){const I=this.direction.getPosition(r[A[C].id])-g;t+=I/Math.sqrt(I*I+s)}return t},h=(g,A)=>{let t=0;for(let C=0;C<A.length;C++)if(void 0!==r[A[C].id]){const I=this.direction.getPosition(r[A[C].id])-g;t-=s*Math.pow(I*I+s,-1.5)}return t},l=(g,A)=>{let t=this.direction.getPosition(C);const I={};for(let C=0;C<g;C++){const g=d(t,A),e=h(t,A),i=40;if(t-=Math.max(-i,Math.min(i,Math.round(g/e))),void 0!==I[t])break;I[t]=C}return t};let c=l(g,a);(g=>{const I=this.direction.getPosition(C);if(void 0===t[C.id]){const g={};e(C,g),t[C.id]=g}const o=i(t[C.id]),n=o[2],s=o[3],r=g-I;let a=0;r>0?a=Math.min(r,s-this.options.hierarchical.nodeSpacing):r<0&&(a=-Math.min(-r,n-this.options.hierarchical.nodeSpacing)),0!=a&&(this._shiftBlock(C.id,a),A=!0)})(c),c=l(g,o),(g=>{const t=this.direction.getPosition(C),[I,e]=this._getSpaceAroundNode(C),i=g-t;let o=t;i>0?o=Math.min(t+(e-this.options.hierarchical.nodeSpacing),g):i<0&&(o=Math.max(t-(I-this.options.hierarchical.nodeSpacing),g)),o!==t&&(this.direction.setPosition(C,o),A=!0)})(c)},a=g=>{let t=this.hierarchical.getLevels();t=$n(t).call(t);for(let C=0;C<g;C++){A=!1;for(let g=0;g<t.length;g++){const A=t[g],C=this.hierarchical.distributionOrdering[A];for(let g=0;g<C.length;g++)r(1e3,C[g])}if(!0!==A)break}},d=g=>{let t=this.hierarchical.getLevels();t=$n(t).call(t);for(let C=0;C<g&&(A=!1,n(s,t,!0),!0===A);C++);},h=()=>{for(const g in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,g)&&this._centerParent(this.body.nodes[g])},l=()=>{let g=this.hierarchical.getLevels();g=$n(g).call(g);for(let A=0;A<g.length;A++){const t=g[A],C=this.hierarchical.distributionOrdering[t];for(let g=0;g<C.length;g++)this._centerParent(C[g])}};!0===this.options.hierarchical.blockShifting&&(d(5),h()),!0===this.options.hierarchical.edgeMinimization&&a(20),!0===this.options.hierarchical.parentCentralization&&l(),(()=>{const g=I();let A=0;for(let t=0;t<g.length-1;t++){A+=g[t].max-g[t+1].min+this.options.hierarchical.treeSpacing,C(t+1,A)}})()}_getSpaceAroundNode(g,A){let t=!0;void 0===A&&(t=!1);const C=this.hierarchical.levels[g.id];if(void 0!==C){const I=this.hierarchical.distributionIndex[g.id],e=this.direction.getPosition(g),i=this.hierarchical.distributionOrdering[C];let o=1e9,n=1e9;if(0!==I){const g=i[I-1];if(!0===t&&void 0===A[g.id]||!1===t){o=e-this.direction.getPosition(g)}}if(I!=i.length-1){const g=i[I+1];if(!0===t&&void 0===A[g.id]||!1===t){const A=this.direction.getPosition(g);n=Math.min(n,A-e)}}return[o,n]}return[0,0]}_centerParent(g){if(this.hierarchical.parentReference[g.id]){const A=this.hierarchical.parentReference[g.id];for(let g=0;g<A.length;g++){const t=A[g],C=this.body.nodes[t],I=this.hierarchical.childrenReference[t];if(void 0!==I){const g=this._getCenterPosition(I),A=this.direction.getPosition(C),[t,e]=this._getSpaceAroundNode(C),i=A-g;(i<0&&Math.abs(i)<e-this.options.hierarchical.nodeSpacing||i>0&&Math.abs(i)<t-this.options.hierarchical.nodeSpacing)&&this.direction.setPosition(C,g)}}}}_placeNodesByHierarchy(g){this.positionedNodes={};for(const t in g)if(Object.prototype.hasOwnProperty.call(g,t)){var A;let C=An(g[t]);C=this._indexArrayToNodes(C),uw(A=this.direction).call(A,C);let I=0;for(let g=0;g<C.length;g++){const A=C[g];if(void 0===this.positionedNodes[A.id]){const e=this.options.hierarchical.nodeSpacing;let i=e*I;I>0&&(i=this.direction.getPosition(C[g-1])+e),this.direction.setPosition(A,i,t),this._validatePositionAndContinue(A,t,i),I++}}}}_placeBranchNodes(g,A){var t;const C=this.hierarchical.childrenReference[g];if(void 0===C)return;const I=[];for(let g=0;g<C.length;g++)I.push(this.body.nodes[C[g]]);uw(t=this.direction).call(t,I);for(let t=0;t<I.length;t++){const C=I[t],e=this.hierarchical.levels[C.id];if(!(e>A&&void 0===this.positionedNodes[C.id]))return;{const A=this.options.hierarchical.nodeSpacing;let i;i=0===t?this.direction.getPosition(this.body.nodes[g]):this.direction.getPosition(I[t-1])+A,this.direction.setPosition(C,i,e),this._validatePositionAndContinue(C,e,i)}}const e=this._getCenterPosition(I);this.direction.setPosition(this.body.nodes[g],e,A)}_validatePositionAndContinue(g,A,t){if(this.hierarchical.isTree){if(void 0!==this.lastNodeOnLevel[A]){const C=this.direction.getPosition(this.body.nodes[this.lastNodeOnLevel[A]]);if(t-C<this.options.hierarchical.nodeSpacing){const I=C+this.options.hierarchical.nodeSpacing-t,e=this._findCommonParent(this.lastNodeOnLevel[A],g.id);this._shiftBlock(e.withChild,I)}}this.lastNodeOnLevel[A]=g.id,this.positionedNodes[g.id]=!0,this._placeBranchNodes(g.id,A)}}_indexArrayToNodes(g){const A=[];for(let t=0;t<g.length;t++)A.push(this.body.nodes[g[t]]);return A}_getDistribution(){const g={};let A,t;for(A in this.body.nodes)if(Object.prototype.hasOwnProperty.call(this.body.nodes,A)){t=this.body.nodes[A];const C=void 0===this.hierarchical.levels[A]?0:this.hierarchical.levels[A];this.direction.fix(t,C),void 0===g[C]&&(g[C]={}),g[C][A]=t}return g}_getActiveEdges(g){const A=[];return zl(g.edges,g=>{var t;-1!==fa(t=this.body.edgeIndices).call(t,g.id)&&A.push(g)}),A}_getHubSizes(){const g={};zl(this.body.nodeIndices,A=>{const t=this.body.nodes[A],C=this._getActiveEdges(t).length;g[C]=!0});const A=[];return zl(g,g=>{A.push(Number(g))}),uw(A).call(A,function(g,A){return A-g}),A}_determineLevelsByHubsize(){const g=(g,A)=>{this.hierarchical.levelDownstream(g,A)},A=this._getHubSizes();for(let t=0;t<A.length;++t){const C=A[t];if(0===C)break;zl(this.body.nodeIndices,A=>{const t=this.body.nodes[A];C===this._getActiveEdges(t).length&&this._crawlNetwork(g,A)})}}_determineLevelsCustomCallback(){this._crawlNetwork((g,A,t)=>{let C=this.hierarchical.levels[g.id];void 0===C&&(C=this.hierarchical.levels[g.id]=1e5);const I=(rO.cloneOptions(g,\"node\"),rO.cloneOptions(A,\"node\"),void rO.cloneOptions(t,\"edge\"));this.hierarchical.levels[A.id]=C+I}),this.hierarchical.setMinLevelToZero()}_determineLevelsDirected(){var g;const A=Nb(g=this.body.nodeIndices).call(g,(g,A)=>(g.set(A,this.body.nodes[A]),g),new Ap);\"roots\"===this.options.hierarchical.shakeTowards?this.hierarchical.levels=function(g){return mT(A=>{var t,C;return vT(t=Or(C=A.edges).call(C,A=>g.has(A.toId))).call(t,g=>g.from===A)},(g,A)=>A<g,\"to\",g)}(A):this.hierarchical.levels=function(g){return mT(A=>{var t,C;return vT(t=Or(C=A.edges).call(C,A=>g.has(A.toId))).call(t,g=>g.to===A)},(g,A)=>A>g,\"from\",g)}(A),this.hierarchical.setMinLevelToZero()}_generateMap(){this._crawlNetwork((g,A)=>{this.hierarchical.levels[A.id]>this.hierarchical.levels[g.id]&&this.hierarchical.addRelation(g.id,A.id)}),this.hierarchical.checkIfTree()}_crawlNetwork(){let g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},A=arguments.length>1?arguments[1]:void 0;const t={},C=(A,I)=>{if(void 0===t[A.id]){let e;this.hierarchical.setTreeIndex(A,I),t[A.id]=!0;const i=this._getActiveEdges(A);for(let t=0;t<i.length;t++){const o=i[t];!0===o.connected&&(e=o.toId==A.id?o.from:o.to,A.id!=e.id&&(g(A,e,o),C(e,I)))}}};if(void 0===A){let g=0;for(let A=0;A<this.body.nodeIndices.length;A++){const I=this.body.nodeIndices[A];if(void 0===t[I]){const A=this.body.nodes[I];C(A,g),g+=1}}}else{const g=this.body.nodes[A];if(void 0===g)return void console.error(\"Node not found:\",A);C(g)}}_shiftBlock(g,A){const t={},C=g=>{if(t[g])return;t[g]=!0,this.direction.shift(g,A);const I=this.hierarchical.childrenReference[g];if(void 0!==I)for(let g=0;g<I.length;g++)C(I[g])};C(g)}_findCommonParent(g,A){const t={},C=(g,A)=>{const t=this.hierarchical.parentReference[A];if(void 0!==t)for(let A=0;A<t.length;A++){const I=t[A];g[I]=!0,C(g,I)}},I=(g,A)=>{const t=this.hierarchical.parentReference[A];if(void 0!==t)for(let C=0;C<t.length;C++){const e=t[C];if(void 0!==g[e])return{foundParent:e,withChild:A};const i=I(g,e);if(null!==i.foundParent)return i}return{foundParent:null,withChild:A}};return C(t,g),I(t,A)}setDirectionStrategy(){const g=\"UD\"===this.options.hierarchical.direction||\"DU\"===this.options.hierarchical.direction;this.direction=g?new IT(this):new eT(this)}_getCenterPosition(g){let A=1e9,t=-1e9;for(let C=0;C<g.length;C++){let I;if(void 0!==g[C].id)I=g[C];else{const A=g[C];I=this.body.nodes[A]}const e=this.direction.getPosition(I);A=Math.min(A,e),t=Math.max(t,e)}return.5*(A+t)}}class xT{constructor(g,A,t,C){var I,e;this.body=g,this.canvas=A,this.selectionHandler=t,this.interactionHandler=C,this.editMode=!1,this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0,this._domEventListenerCleanupQueue=[],this.temporaryUIFunctions={},this.temporaryEventFunctions=[],this.touchTime=0,this.temporaryIds={nodes:[],edges:[]},this.guiEnabled=!1,this.inMode=!1,this.selectedControlNode=void 0,this.options={},this.defaultOptions={enabled:!1,initiallyActive:!1,addNode:!0,addEdge:!0,editNode:void 0,editEdge:!0,deleteNode:!0,deleteEdge:!0,controlNodeStyle:{shape:\"dot\",size:6,color:{background:\"#ff0000\",border:\"#3c3c3c\",highlight:{background:\"#07f968\",border:\"#3c3c3c\"}},borderWidth:2,borderWidthSelected:2}},_t(this.options,this.defaultOptions),this.body.emitter.on(\"destroy\",()=>{this._clean()}),this.body.emitter.on(\"_dataChanged\",IC(I=this._restore).call(I,this)),this.body.emitter.on(\"_resetData\",IC(e=this._restore).call(e,this))}_restore(){!1!==this.inMode&&(!0===this.options.initiallyActive?this.enableEditMode():this.disableEditMode())}setOptions(g,A,t){void 0!==A&&(void 0!==A.locale?this.options.locale=A.locale:this.options.locale=t.locale,void 0!==A.locales?this.options.locales=A.locales:this.options.locales=t.locales),void 0!==g&&(\"boolean\"==typeof g?this.options.enabled=g:(this.options.enabled=!0,Rl(this.options,g)),!0===this.options.initiallyActive&&(this.editMode=!0),this._setup())}toggleEditMode(){!0===this.editMode?this.disableEditMode():this.enableEditMode()}enableEditMode(){this.editMode=!0,this._clean(),!0===this.guiEnabled&&(this.manipulationDiv.style.display=\"block\",this.closeDiv.style.display=\"block\",this.editModeDiv.style.display=\"none\",this.showManipulatorToolbar())}disableEditMode(){this.editMode=!1,this._clean(),!0===this.guiEnabled&&(this.manipulationDiv.style.display=\"none\",this.closeDiv.style.display=\"none\",this.editModeDiv.style.display=\"block\",this._createEditButton())}showManipulatorToolbar(){if(this._clean(),this.manipulationDOM={},!0===this.guiEnabled){var g,A;this.editMode=!0,this.manipulationDiv.style.display=\"block\",this.closeDiv.style.display=\"block\";const t=this.selectionHandler.getSelectedNodeCount(),C=this.selectionHandler.getSelectedEdgeCount(),I=t+C,e=this.options.locales[this.options.locale];let i=!1;!1!==this.options.addNode&&(this._createAddNodeButton(e),i=!0),!1!==this.options.addEdge&&(!0===i?this._createSeperator(1):i=!0,this._createAddEdgeButton(e)),1===t&&\"function\"==typeof this.options.editNode?(!0===i?this._createSeperator(2):i=!0,this._createEditNodeButton(e)):1===C&&0===t&&!1!==this.options.editEdge&&(!0===i?this._createSeperator(3):i=!0,this._createEditEdgeButton(e)),0!==I&&(t>0&&!1!==this.options.deleteNode||0===t&&!1!==this.options.deleteEdge)&&(!0===i&&this._createSeperator(4),this._createDeleteButton(e)),this._bindElementEvents(this.closeDiv,IC(g=this.toggleEditMode).call(g,this)),this._temporaryBindEvent(\"select\",IC(A=this.showManipulatorToolbar).call(A,this))}this.body.emitter.emit(\"_redraw\")}addNodeMode(){var g;if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode=\"addNode\",!0===this.guiEnabled){var A;const g=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(g),this._createSeperator(),this._createDescription(g.addDescription||this.options.locales.en.addDescription),this._bindElementEvents(this.closeDiv,IC(A=this.toggleEditMode).call(A,this))}this._temporaryBindEvent(\"click\",IC(g=this._performAddNode).call(g,this))}editNode(){!0!==this.editMode&&this.enableEditMode(),this._clean();const g=this.selectionHandler.getSelectedNodes()[0];if(void 0!==g){if(this.inMode=\"editNode\",\"function\"!=typeof this.options.editNode)throw new Error(\"No function has been configured to handle the editing of nodes.\");if(!0!==g.isCluster){const A=Rl({},g.options,!1);if(A.x=g.x,A.y=g.y,2!==this.options.editNode.length)throw new Error(\"The function for edit does not support two arguments (data, callback)\");this.options.editNode(A,g=>{null!=g&&\"editNode\"===this.inMode&&this.body.data.nodes.getDataSet().update(g),this.showManipulatorToolbar()})}else alert(this.options.locales[this.options.locale].editClusterError||this.options.locales.en.editClusterError)}else this.showManipulatorToolbar()}addEdgeMode(){var g,A,t,C,I;if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode=\"addEdge\",!0===this.guiEnabled){var e;const g=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(g),this._createSeperator(),this._createDescription(g.edgeDescription||this.options.locales.en.edgeDescription),this._bindElementEvents(this.closeDiv,IC(e=this.toggleEditMode).call(e,this))}this._temporaryBindUI(\"onTouch\",IC(g=this._handleConnect).call(g,this)),this._temporaryBindUI(\"onDragEnd\",IC(A=this._finishConnect).call(A,this)),this._temporaryBindUI(\"onDrag\",IC(t=this._dragControlNode).call(t,this)),this._temporaryBindUI(\"onRelease\",IC(C=this._finishConnect).call(C,this)),this._temporaryBindUI(\"onDragStart\",IC(I=this._dragStartEdge).call(I,this)),this._temporaryBindUI(\"onHold\",()=>{})}editEdgeMode(){if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode=\"editEdge\",\"object\"==typeof this.options.editEdge&&\"function\"==typeof this.options.editEdge.editWithoutDrag&&(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdgeIds()[0],void 0!==this.edgeBeingEditedId)){const g=this.body.edges[this.edgeBeingEditedId];return void this._performEditEdge(g.from.id,g.to.id)}if(!0===this.guiEnabled){var g;const A=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(A),this._createSeperator(),this._createDescription(A.editEdgeDescription||this.options.locales.en.editEdgeDescription),this._bindElementEvents(this.closeDiv,IC(g=this.toggleEditMode).call(g,this))}if(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdgeIds()[0],void 0!==this.edgeBeingEditedId){var A,t,C,I;const g=this.body.edges[this.edgeBeingEditedId],e=this._getNewTargetNode(g.from.x,g.from.y),i=this._getNewTargetNode(g.to.x,g.to.y);this.temporaryIds.nodes.push(e.id),this.temporaryIds.nodes.push(i.id),this.body.nodes[e.id]=e,this.body.nodeIndices.push(e.id),this.body.nodes[i.id]=i,this.body.nodeIndices.push(i.id),this._temporaryBindUI(\"onTouch\",IC(A=this._controlNodeTouch).call(A,this)),this._temporaryBindUI(\"onTap\",()=>{}),this._temporaryBindUI(\"onHold\",()=>{}),this._temporaryBindUI(\"onDragStart\",IC(t=this._controlNodeDragStart).call(t,this)),this._temporaryBindUI(\"onDrag\",IC(C=this._controlNodeDrag).call(C,this)),this._temporaryBindUI(\"onDragEnd\",IC(I=this._controlNodeDragEnd).call(I,this)),this._temporaryBindUI(\"onMouseMove\",()=>{}),this._temporaryBindEvent(\"beforeDrawing\",A=>{const t=g.edgeType.findBorderPositions(A);!1===e.selected&&(e.x=t.from.x,e.y=t.from.y),!1===i.selected&&(i.x=t.to.x,i.y=t.to.y)}),this.body.emitter.emit(\"_redraw\")}else this.showManipulatorToolbar()}deleteSelected(){!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode=\"delete\";const g=this.selectionHandler.getSelectedNodeIds(),A=this.selectionHandler.getSelectedEdgeIds();let t;if(g.length>0){for(let A=0;A<g.length;A++)if(!0===this.body.nodes[g[A]].isCluster)return void alert(this.options.locales[this.options.locale].deleteClusterError||this.options.locales.en.deleteClusterError);\"function\"==typeof this.options.deleteNode&&(t=this.options.deleteNode)}else A.length>0&&\"function\"==typeof this.options.deleteEdge&&(t=this.options.deleteEdge);if(\"function\"==typeof t){const C={nodes:g,edges:A};if(2!==t.length)throw new Error(\"The function for delete does not support two arguments (data, callback)\");t(C,g=>{null!=g&&\"delete\"===this.inMode?(this.body.data.edges.getDataSet().remove(g.edges),this.body.data.nodes.getDataSet().remove(g.nodes),this.body.emitter.emit(\"startSimulation\"),this.showManipulatorToolbar()):(this.body.emitter.emit(\"startSimulation\"),this.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().remove(A),this.body.data.nodes.getDataSet().remove(g),this.body.emitter.emit(\"startSimulation\"),this.showManipulatorToolbar()}_setup(){!0===this.options.enabled?(this.guiEnabled=!0,this._createWrappers(),!1===this.editMode?this._createEditButton():this.showManipulatorToolbar()):(this._removeManipulationDOM(),this.guiEnabled=!1)}_createWrappers(){var g,A;(void 0===this.manipulationDiv&&(this.manipulationDiv=document.createElement(\"div\"),this.manipulationDiv.className=\"vis-manipulation\",!0===this.editMode?this.manipulationDiv.style.display=\"block\":this.manipulationDiv.style.display=\"none\",this.canvas.frame.appendChild(this.manipulationDiv)),void 0===this.editModeDiv&&(this.editModeDiv=document.createElement(\"div\"),this.editModeDiv.className=\"vis-edit-mode\",!0===this.editMode?this.editModeDiv.style.display=\"none\":this.editModeDiv.style.display=\"block\",this.canvas.frame.appendChild(this.editModeDiv)),void 0===this.closeDiv)&&(this.closeDiv=document.createElement(\"button\"),this.closeDiv.className=\"vis-close\",this.closeDiv.setAttribute(\"aria-label\",null!==(g=null===(A=this.options.locales[this.options.locale])||void 0===A?void 0:A.close)&&void 0!==g?g:this.options.locales.en.close),this.closeDiv.style.display=this.manipulationDiv.style.display,this.canvas.frame.appendChild(this.closeDiv))}_getNewTargetNode(g,A){const t=Rl({},this.options.controlNodeStyle);t.id=\"targetNode\"+_w(),t.hidden=!1,t.physics=!1,t.x=g,t.y=A;const C=this.body.functions.createNode(t);return C.shape.boundingBox={left:g,right:g,top:A,bottom:A},C}_createEditButton(){var g;this._clean(),this.manipulationDOM={},wl(this.editModeDiv);const A=this.options.locales[this.options.locale],t=this._createButton(\"editMode\",\"vis-edit vis-edit-mode\",A.edit||this.options.locales.en.edit);this.editModeDiv.appendChild(t),this._bindElementEvents(t,IC(g=this.toggleEditMode).call(g,this))}_clean(){this.inMode=!1,!0===this.guiEnabled&&(wl(this.editModeDiv),wl(this.manipulationDiv),this._cleanupDOMEventListeners()),this._cleanupTemporaryNodesAndEdges(),this._unbindTemporaryUIs(),this._unbindTemporaryEvents(),this.body.emitter.emit(\"restorePhysics\")}_cleanupDOMEventListeners(){for(const A of ss(g=this._domEventListenerCleanupQueue).call(g,0)){var g;A()}}_removeManipulationDOM(){this._clean(),wl(this.manipulationDiv),wl(this.editModeDiv),wl(this.closeDiv),this.manipulationDiv&&this.canvas.frame.removeChild(this.manipulationDiv),this.editModeDiv&&this.canvas.frame.removeChild(this.editModeDiv),this.closeDiv&&this.canvas.frame.removeChild(this.closeDiv),this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0}_createSeperator(){let g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;this.manipulationDOM[\"seperatorLineDiv\"+g]=document.createElement(\"div\"),this.manipulationDOM[\"seperatorLineDiv\"+g].className=\"vis-separator-line\",this.manipulationDiv.appendChild(this.manipulationDOM[\"seperatorLineDiv\"+g])}_createAddNodeButton(g){var A;const t=this._createButton(\"addNode\",\"vis-add\",g.addNode||this.options.locales.en.addNode);this.manipulationDiv.appendChild(t),this._bindElementEvents(t,IC(A=this.addNodeMode).call(A,this))}_createAddEdgeButton(g){var A;const t=this._createButton(\"addEdge\",\"vis-connect\",g.addEdge||this.options.locales.en.addEdge);this.manipulationDiv.appendChild(t),this._bindElementEvents(t,IC(A=this.addEdgeMode).call(A,this))}_createEditNodeButton(g){var A;const t=this._createButton(\"editNode\",\"vis-edit\",g.editNode||this.options.locales.en.editNode);this.manipulationDiv.appendChild(t),this._bindElementEvents(t,IC(A=this.editNode).call(A,this))}_createEditEdgeButton(g){var A;const t=this._createButton(\"editEdge\",\"vis-edit\",g.editEdge||this.options.locales.en.editEdge);this.manipulationDiv.appendChild(t),this._bindElementEvents(t,IC(A=this.editEdgeMode).call(A,this))}_createDeleteButton(g){var A;let t;t=this.options.rtl?\"vis-delete-rtl\":\"vis-delete\";const C=this._createButton(\"delete\",t,g.del||this.options.locales.en.del);this.manipulationDiv.appendChild(C),this._bindElementEvents(C,IC(A=this.deleteSelected).call(A,this))}_createBackButton(g){var A;const t=this._createButton(\"back\",\"vis-back\",g.back||this.options.locales.en.back);this.manipulationDiv.appendChild(t),this._bindElementEvents(t,IC(A=this.showManipulatorToolbar).call(A,this))}_createButton(g,A,t){let C=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"vis-label\";return this.manipulationDOM[g+\"Div\"]=document.createElement(\"button\"),this.manipulationDOM[g+\"Div\"].className=\"vis-button \"+A,this.manipulationDOM[g+\"Label\"]=document.createElement(\"div\"),this.manipulationDOM[g+\"Label\"].className=C,this.manipulationDOM[g+\"Label\"].innerText=t,this.manipulationDOM[g+\"Div\"].appendChild(this.manipulationDOM[g+\"Label\"]),this.manipulationDOM[g+\"Div\"]}_createDescription(g){this.manipulationDOM.descriptionLabel=document.createElement(\"div\"),this.manipulationDOM.descriptionLabel.className=\"vis-none\",this.manipulationDOM.descriptionLabel.innerText=g,this.manipulationDiv.appendChild(this.manipulationDOM.descriptionLabel)}_temporaryBindEvent(g,A){this.temporaryEventFunctions.push({event:g,boundFunction:A}),this.body.emitter.on(g,A)}_temporaryBindUI(g,A){if(void 0===this.body.eventListeners[g])throw new Error(\"This UI function does not exist. Typo? You tried: \"+g+\" possible are: \"+Ha(An(this.body.eventListeners)));this.temporaryUIFunctions[g]=this.body.eventListeners[g],this.body.eventListeners[g]=A}_unbindTemporaryUIs(){for(const g in this.temporaryUIFunctions)Object.prototype.hasOwnProperty.call(this.temporaryUIFunctions,g)&&(this.body.eventListeners[g]=this.temporaryUIFunctions[g],delete this.temporaryUIFunctions[g]);this.temporaryUIFunctions={}}_unbindTemporaryEvents(){for(let g=0;g<this.temporaryEventFunctions.length;g++){const A=this.temporaryEventFunctions[g].event,t=this.temporaryEventFunctions[g].boundFunction;this.body.emitter.off(A,t)}this.temporaryEventFunctions=[]}_bindElementEvents(g,A){const t=new tc(g,{});bO(t,A),this._domEventListenerCleanupQueue.push(()=>{t.destroy()});const C=g=>{let{keyCode:t,key:C}=g;\"Enter\"!==C&&\" \"!==C&&13!==t&&32!==t||A()};g.addEventListener(\"keyup\",C,!1),this._domEventListenerCleanupQueue.push(()=>{g.removeEventListener(\"keyup\",C,!1)})}_cleanupTemporaryNodesAndEdges(){for(let t=0;t<this.temporaryIds.edges.length;t++){var g;this.body.edges[this.temporaryIds.edges[t]].disconnect(),delete this.body.edges[this.temporaryIds.edges[t]];const C=fa(g=this.body.edgeIndices).call(g,this.temporaryIds.edges[t]);var A;if(-1!==C)ss(A=this.body.edgeIndices).call(A,C,1)}for(let g=0;g<this.temporaryIds.nodes.length;g++){var t;delete this.body.nodes[this.temporaryIds.nodes[g]];const A=fa(t=this.body.nodeIndices).call(t,this.temporaryIds.nodes[g]);var C;if(-1!==A)ss(C=this.body.nodeIndices).call(C,A,1)}this.temporaryIds={nodes:[],edges:[]}}_controlNodeTouch(g){this.selectionHandler.unselectAll(),this.lastTouch=this.body.functions.getPointer(g.center),this.lastTouch.translation=_t({},this.body.view.translation)}_controlNodeDragStart(){const g=this.lastTouch,A=this.selectionHandler._pointerToPositionObject(g),t=this.body.nodes[this.temporaryIds.nodes[0]],C=this.body.nodes[this.temporaryIds.nodes[1]],I=this.body.edges[this.edgeBeingEditedId];this.selectedControlNode=void 0;const e=t.isOverlappingWith(A),i=C.isOverlappingWith(A);!0===e?(this.selectedControlNode=t,I.edgeType.from=t):!0===i&&(this.selectedControlNode=C,I.edgeType.to=C),void 0!==this.selectedControlNode&&this.selectionHandler.selectObject(this.selectedControlNode),this.body.emitter.emit(\"_redraw\")}_controlNodeDrag(g){this.body.emitter.emit(\"disablePhysics\");const A=this.body.functions.getPointer(g.center),t=this.canvas.DOMtoCanvas(A);void 0!==this.selectedControlNode?(this.selectedControlNode.x=t.x,this.selectedControlNode.y=t.y):this.interactionHandler.onDrag(g),this.body.emitter.emit(\"_redraw\")}_controlNodeDragEnd(g){const A=this.body.functions.getPointer(g.center),t=this.selectionHandler._pointerToPositionObject(A),C=this.body.edges[this.edgeBeingEditedId];if(void 0===this.selectedControlNode)return;this.selectionHandler.unselectAll();const I=this.selectionHandler._getAllNodesOverlappingWith(t);let e;for(let g=I.length-1;g>=0;g--)if(I[g]!==this.selectedControlNode.id){e=this.body.nodes[I[g]];break}if(void 0!==e&&void 0!==this.selectedControlNode)if(!0===e.isCluster)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{const g=this.body.nodes[this.temporaryIds.nodes[0]];this.selectedControlNode.id===g.id?this._performEditEdge(e.id,C.to.id):this._performEditEdge(C.from.id,e.id)}else C.updateEdgeType(),this.body.emitter.emit(\"restorePhysics\");this.body.emitter.emit(\"_redraw\")}_handleConnect(g){if((new Date).valueOf()-this.touchTime>100){this.lastTouch=this.body.functions.getPointer(g.center),this.lastTouch.translation=_t({},this.body.view.translation),this.interactionHandler.drag.pointer=this.lastTouch,this.interactionHandler.drag.translation=this.lastTouch.translation;const A=this.lastTouch,t=this.selectionHandler.getNodeAt(A);if(void 0!==t)if(!0===t.isCluster)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{const g=this._getNewTargetNode(t.x,t.y);this.body.nodes[g.id]=g,this.body.nodeIndices.push(g.id);const A=this.body.functions.createEdge({id:\"connectionEdge\"+_w(),from:t.id,to:g.id,physics:!1,smooth:{enabled:!0,type:\"continuous\",roundness:.5}});this.body.edges[A.id]=A,this.body.edgeIndices.push(A.id),this.temporaryIds.nodes.push(g.id),this.temporaryIds.edges.push(A.id)}this.touchTime=(new Date).valueOf()}}_dragControlNode(g){const A=this.body.functions.getPointer(g.center),t=this.selectionHandler._pointerToPositionObject(A);let C;void 0!==this.temporaryIds.edges[0]&&(C=this.body.edges[this.temporaryIds.edges[0]].fromId);const I=this.selectionHandler._getAllNodesOverlappingWith(t);let e;for(let g=I.length-1;g>=0;g--){var i;if(-1===fa(i=this.temporaryIds.nodes).call(i,I[g])){e=this.body.nodes[I[g]];break}}if(g.controlEdge={from:C,to:e?e.id:void 0},this.selectionHandler.generateClickEvent(\"controlNodeDragging\",g,A),void 0!==this.temporaryIds.nodes[0]){const g=this.body.nodes[this.temporaryIds.nodes[0]];g.x=this.canvas._XconvertDOMtoCanvas(A.x),g.y=this.canvas._YconvertDOMtoCanvas(A.y),this.body.emitter.emit(\"_redraw\")}else this.interactionHandler.onDrag(g)}_finishConnect(g){const A=this.body.functions.getPointer(g.center),t=this.selectionHandler._pointerToPositionObject(A);let C;void 0!==this.temporaryIds.edges[0]&&(C=this.body.edges[this.temporaryIds.edges[0]].fromId);const I=this.selectionHandler._getAllNodesOverlappingWith(t);let e;for(let g=I.length-1;g>=0;g--){var i;if(-1===fa(i=this.temporaryIds.nodes).call(i,I[g])){e=this.body.nodes[I[g]];break}}this._cleanupTemporaryNodesAndEdges(),void 0!==e&&(!0===e.isCluster?alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError):void 0!==this.body.nodes[C]&&void 0!==this.body.nodes[e.id]&&this._performAddEdge(C,e.id)),g.controlEdge={from:C,to:e?e.id:void 0},this.selectionHandler.generateClickEvent(\"controlNodeDragEnd\",g,A),this.body.emitter.emit(\"_redraw\")}_dragStartEdge(g){const A=this.lastTouch;this.selectionHandler.generateClickEvent(\"dragStart\",g,A,void 0,!0)}_performAddNode(g){const A={id:_w(),x:g.pointer.canvas.x,y:g.pointer.canvas.y,label:\"new\"};if(\"function\"==typeof this.options.addNode){if(2!==this.options.addNode.length)throw this.showManipulatorToolbar(),new Error(\"The function for add does not support two arguments (data,callback)\");this.options.addNode(A,g=>{null!=g&&\"addNode\"===this.inMode&&this.body.data.nodes.getDataSet().add(g),this.showManipulatorToolbar()})}else this.body.data.nodes.getDataSet().add(A),this.showManipulatorToolbar()}_performAddEdge(g,A){const t={from:g,to:A};if(\"function\"==typeof this.options.addEdge){if(2!==this.options.addEdge.length)throw new Error(\"The function for connect does not support two arguments (data,callback)\");this.options.addEdge(t,g=>{null!=g&&\"addEdge\"===this.inMode&&(this.body.data.edges.getDataSet().add(g),this.selectionHandler.unselectAll(),this.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().add(t),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}_performEditEdge(g,A){const t={id:this.edgeBeingEditedId,from:g,to:A,label:this.body.data.edges.get(this.edgeBeingEditedId).label};let C=this.options.editEdge;if(\"object\"==typeof C&&(C=C.editWithoutDrag),\"function\"==typeof C){if(2!==C.length)throw new Error(\"The function for edit does not support two arguments (data, callback)\");C(t,g=>{null==g||\"editEdge\"!==this.inMode?(this.body.edges[t.id].updateEdgeType(),this.body.emitter.emit(\"_redraw\"),this.showManipulatorToolbar()):(this.body.data.edges.getDataSet().update(g),this.selectionHandler.unselectAll(),this.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().update(t),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}}const ET=\"string\",OT=\"boolean\",TT=\"number\",DT=\"array\",NT=\"object\",RT=[\"arrow\",\"bar\",\"box\",\"circle\",\"crow\",\"curve\",\"diamond\",\"image\",\"inv_curve\",\"inv_triangle\",\"triangle\",\"vee\"],kT={borderWidth:{number:TT},borderWidthSelected:{number:TT,undefined:\"undefined\"},brokenImage:{string:ET,undefined:\"undefined\"},chosen:{label:{boolean:OT,function:\"function\"},node:{boolean:OT,function:\"function\"},__type__:{object:NT,boolean:OT}},color:{border:{string:ET},background:{string:ET},highlight:{border:{string:ET},background:{string:ET},__type__:{object:NT,string:ET}},hover:{border:{string:ET},background:{string:ET},__type__:{object:NT,string:ET}},__type__:{object:NT,string:ET}},opacity:{number:TT,undefined:\"undefined\"},fixed:{x:{boolean:OT},y:{boolean:OT},__type__:{object:NT,boolean:OT}},font:{align:{string:ET},color:{string:ET},size:{number:TT},face:{string:ET},background:{string:ET},strokeWidth:{number:TT},strokeColor:{string:ET},vadjust:{number:TT},multi:{boolean:OT,string:ET},bold:{color:{string:ET},size:{number:TT},face:{string:ET},mod:{string:ET},vadjust:{number:TT},__type__:{object:NT,string:ET}},boldital:{color:{string:ET},size:{number:TT},face:{string:ET},mod:{string:ET},vadjust:{number:TT},__type__:{object:NT,string:ET}},ital:{color:{string:ET},size:{number:TT},face:{string:ET},mod:{string:ET},vadjust:{number:TT},__type__:{object:NT,string:ET}},mono:{color:{string:ET},size:{number:TT},face:{string:ET},mod:{string:ET},vadjust:{number:TT},__type__:{object:NT,string:ET}},__type__:{object:NT,string:ET}},group:{string:ET,number:TT,undefined:\"undefined\"},heightConstraint:{minimum:{number:TT},valign:{string:ET},__type__:{object:NT,boolean:OT,number:TT}},hidden:{boolean:OT},icon:{face:{string:ET},code:{string:ET},size:{number:TT},color:{string:ET},weight:{string:ET,number:TT},__type__:{object:NT}},id:{string:ET,number:TT},image:{selected:{string:ET,undefined:\"undefined\"},unselected:{string:ET,undefined:\"undefined\"},__type__:{object:NT,string:ET}},imagePadding:{top:{number:TT},right:{number:TT},bottom:{number:TT},left:{number:TT},__type__:{object:NT,number:TT}},label:{string:ET,undefined:\"undefined\"},labelHighlightBold:{boolean:OT},level:{number:TT,undefined:\"undefined\"},margin:{top:{number:TT},right:{number:TT},bottom:{number:TT},left:{number:TT},__type__:{object:NT,number:TT}},mass:{number:TT},physics:{boolean:OT},scaling:{min:{number:TT},max:{number:TT},label:{enabled:{boolean:OT},min:{number:TT},max:{number:TT},maxVisible:{number:TT},drawThreshold:{number:TT},__type__:{object:NT,boolean:OT}},customScalingFunction:{function:\"function\"},__type__:{object:NT}},shadow:{enabled:{boolean:OT},color:{string:ET},size:{number:TT},x:{number:TT},y:{number:TT},__type__:{object:NT,boolean:OT}},shape:{string:[\"custom\",\"ellipse\",\"circle\",\"database\",\"box\",\"text\",\"image\",\"circularImage\",\"diamond\",\"dot\",\"star\",\"triangle\",\"triangleDown\",\"square\",\"icon\",\"hexagon\"]},ctxRenderer:{function:\"function\"},shapeProperties:{borderDashes:{boolean:OT,array:DT},borderRadius:{number:TT},interpolation:{boolean:OT},useImageSize:{boolean:OT},useBorderWithImage:{boolean:OT},coordinateOrigin:{string:[\"center\",\"top-left\"]},__type__:{object:NT}},size:{number:TT},title:{string:ET,dom:\"dom\",undefined:\"undefined\"},value:{number:TT,undefined:\"undefined\"},widthConstraint:{minimum:{number:TT},maximum:{number:TT},__type__:{object:NT,boolean:OT,number:TT}},x:{number:TT},y:{number:TT},__type__:{object:NT}},PT={configure:{enabled:{boolean:OT},filter:{boolean:OT,string:ET,array:DT,function:\"function\"},container:{dom:\"dom\"},showButton:{boolean:OT},__type__:{object:NT,boolean:OT,string:ET,array:DT,function:\"function\"}},edges:{arrows:{to:{enabled:{boolean:OT},scaleFactor:{number:TT},type:{string:RT},imageHeight:{number:TT},imageWidth:{number:TT},src:{string:ET},__type__:{object:NT,boolean:OT}},middle:{enabled:{boolean:OT},scaleFactor:{number:TT},type:{string:RT},imageWidth:{number:TT},imageHeight:{number:TT},src:{string:ET},__type__:{object:NT,boolean:OT}},from:{enabled:{boolean:OT},scaleFactor:{number:TT},type:{string:RT},imageWidth:{number:TT},imageHeight:{number:TT},src:{string:ET},__type__:{object:NT,boolean:OT}},__type__:{string:[\"from\",\"to\",\"middle\"],object:NT}},endPointOffset:{from:{number:TT},to:{number:TT},__type__:{object:NT,number:TT}},arrowStrikethrough:{boolean:OT},background:{enabled:{boolean:OT},color:{string:ET},size:{number:TT},dashes:{boolean:OT,array:DT},__type__:{object:NT,boolean:OT}},chosen:{label:{boolean:OT,function:\"function\"},edge:{boolean:OT,function:\"function\"},__type__:{object:NT,boolean:OT}},color:{color:{string:ET},highlight:{string:ET},hover:{string:ET},inherit:{string:[\"from\",\"to\",\"both\"],boolean:OT},opacity:{number:TT},__type__:{object:NT,string:ET}},dashes:{boolean:OT,array:DT},font:{color:{string:ET},size:{number:TT},face:{string:ET},background:{string:ET},strokeWidth:{number:TT},strokeColor:{string:ET},align:{string:[\"horizontal\",\"top\",\"middle\",\"bottom\"]},vadjust:{number:TT},multi:{boolean:OT,string:ET},bold:{color:{string:ET},size:{number:TT},face:{string:ET},mod:{string:ET},vadjust:{number:TT},__type__:{object:NT,string:ET}},boldital:{color:{string:ET},size:{number:TT},face:{string:ET},mod:{string:ET},vadjust:{number:TT},__type__:{object:NT,string:ET}},ital:{color:{string:ET},size:{number:TT},face:{string:ET},mod:{string:ET},vadjust:{number:TT},__type__:{object:NT,string:ET}},mono:{color:{string:ET},size:{number:TT},face:{string:ET},mod:{string:ET},vadjust:{number:TT},__type__:{object:NT,string:ET}},__type__:{object:NT,string:ET}},hidden:{boolean:OT},hoverWidth:{function:\"function\",number:TT},label:{string:ET,undefined:\"undefined\"},labelHighlightBold:{boolean:OT},length:{number:TT,undefined:\"undefined\"},physics:{boolean:OT},scaling:{min:{number:TT},max:{number:TT},label:{enabled:{boolean:OT},min:{number:TT},max:{number:TT},maxVisible:{number:TT},drawThreshold:{number:TT},__type__:{object:NT,boolean:OT}},customScalingFunction:{function:\"function\"},__type__:{object:NT}},selectionWidth:{function:\"function\",number:TT},selfReferenceSize:{number:TT},selfReference:{size:{number:TT},angle:{number:TT},renderBehindTheNode:{boolean:OT},__type__:{object:NT}},shadow:{enabled:{boolean:OT},color:{string:ET},size:{number:TT},x:{number:TT},y:{number:TT},__type__:{object:NT,boolean:OT}},smooth:{enabled:{boolean:OT},type:{string:[\"dynamic\",\"continuous\",\"discrete\",\"diagonalCross\",\"straightCross\",\"horizontal\",\"vertical\",\"curvedCW\",\"curvedCCW\",\"cubicBezier\"]},roundness:{number:TT},forceDirection:{string:[\"horizontal\",\"vertical\",\"none\"],boolean:OT},__type__:{object:NT,boolean:OT}},title:{string:ET,undefined:\"undefined\"},width:{number:TT},widthConstraint:{maximum:{number:TT},__type__:{object:NT,boolean:OT,number:TT}},value:{number:TT,undefined:\"undefined\"},__type__:{object:NT}},groups:{useDefaultGroups:{boolean:OT},__any__:kT,__type__:{object:NT}},interaction:{dragNodes:{boolean:OT},dragView:{boolean:OT},hideEdgesOnDrag:{boolean:OT},hideEdgesOnZoom:{boolean:OT},hideNodesOnDrag:{boolean:OT},hover:{boolean:OT},keyboard:{enabled:{boolean:OT},speed:{x:{number:TT},y:{number:TT},zoom:{number:TT},__type__:{object:NT}},bindToWindow:{boolean:OT},autoFocus:{boolean:OT},__type__:{object:NT,boolean:OT}},multiselect:{boolean:OT},navigationButtons:{boolean:OT},selectable:{boolean:OT},selectConnectedEdges:{boolean:OT},hoverConnectedEdges:{boolean:OT},tooltipDelay:{number:TT},zoomView:{boolean:OT},zoomSpeed:{number:TT},__type__:{object:NT}},layout:{randomSeed:{undefined:\"undefined\",number:TT,string:ET},improvedLayout:{boolean:OT},clusterThreshold:{number:TT},hierarchical:{enabled:{boolean:OT},levelSeparation:{number:TT},nodeSpacing:{number:TT},treeSpacing:{number:TT},blockShifting:{boolean:OT},edgeMinimization:{boolean:OT},parentCentralization:{boolean:OT},direction:{string:[\"UD\",\"DU\",\"LR\",\"RL\"]},sortMethod:{string:[\"hubsize\",\"directed\"]},shakeTowards:{string:[\"leaves\",\"roots\"]},__type__:{object:NT,boolean:OT}},__type__:{object:NT}},manipulation:{enabled:{boolean:OT},initiallyActive:{boolean:OT},addNode:{boolean:OT,function:\"function\"},addEdge:{boolean:OT,function:\"function\"},editNode:{function:\"function\"},editEdge:{editWithoutDrag:{function:\"function\"},__type__:{object:NT,boolean:OT,function:\"function\"}},deleteNode:{boolean:OT,function:\"function\"},deleteEdge:{boolean:OT,function:\"function\"},controlNodeStyle:kT,__type__:{object:NT,boolean:OT}},nodes:kT,physics:{enabled:{boolean:OT},barnesHut:{theta:{number:TT},gravitationalConstant:{number:TT},centralGravity:{number:TT},springLength:{number:TT},springConstant:{number:TT},damping:{number:TT},avoidOverlap:{number:TT},__type__:{object:NT}},forceAtlas2Based:{theta:{number:TT},gravitationalConstant:{number:TT},centralGravity:{number:TT},springLength:{number:TT},springConstant:{number:TT},damping:{number:TT},avoidOverlap:{number:TT},__type__:{object:NT}},repulsion:{centralGravity:{number:TT},springLength:{number:TT},springConstant:{number:TT},nodeDistance:{number:TT},damping:{number:TT},__type__:{object:NT}},hierarchicalRepulsion:{centralGravity:{number:TT},springLength:{number:TT},springConstant:{number:TT},nodeDistance:{number:TT},damping:{number:TT},avoidOverlap:{number:TT},__type__:{object:NT}},maxVelocity:{number:TT},minVelocity:{number:TT},solver:{string:[\"barnesHut\",\"repulsion\",\"hierarchicalRepulsion\",\"forceAtlas2Based\"]},stabilization:{enabled:{boolean:OT},iterations:{number:TT},updateInterval:{number:TT},onlyDynamicEdges:{boolean:OT},fit:{boolean:OT},__type__:{object:NT,boolean:OT}},timestep:{number:TT},adaptiveTimestep:{boolean:OT},wind:{x:{number:TT},y:{number:TT},__type__:{object:NT,function:\"function\"}},__type__:{object:NT,boolean:OT}},autoResize:{boolean:OT},clickToUse:{boolean:OT},locale:{string:ET},locales:{__any__:{any:\"any\"},__type__:{object:NT}},height:{string:ET},width:{string:ET},__type__:{object:NT}},MT={nodes:{borderWidth:[1,0,10,1],borderWidthSelected:[2,0,10,1],color:{border:[\"color\",\"#2B7CE9\"],background:[\"color\",\"#97C2FC\"],highlight:{border:[\"color\",\"#2B7CE9\"],background:[\"color\",\"#D2E5FF\"]},hover:{border:[\"color\",\"#2B7CE9\"],background:[\"color\",\"#D2E5FF\"]}},opacity:[0,0,1,.1],fixed:{x:!1,y:!1},font:{color:[\"color\",\"#343434\"],size:[14,0,100,1],face:[\"arial\",\"verdana\",\"tahoma\"],background:[\"color\",\"none\"],strokeWidth:[0,0,50,1],strokeColor:[\"color\",\"#ffffff\"]},hidden:!1,labelHighlightBold:!0,physics:!0,scaling:{min:[10,0,200,1],max:[30,0,200,1],label:{enabled:!1,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},shadow:{enabled:!1,color:\"rgba(0,0,0,0.5)\",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},shape:[\"ellipse\",\"box\",\"circle\",\"database\",\"diamond\",\"dot\",\"square\",\"star\",\"text\",\"triangle\",\"triangleDown\",\"hexagon\"],shapeProperties:{borderDashes:!1,borderRadius:[6,0,20,1],interpolation:!0,useImageSize:!1},size:[25,0,200,1]},edges:{arrows:{to:{enabled:!1,scaleFactor:[1,0,3,.05],type:\"arrow\"},middle:{enabled:!1,scaleFactor:[1,0,3,.05],type:\"arrow\"},from:{enabled:!1,scaleFactor:[1,0,3,.05],type:\"arrow\"}},endPointOffset:{from:[0,-10,10,1],to:[0,-10,10,1]},arrowStrikethrough:!0,color:{color:[\"color\",\"#848484\"],highlight:[\"color\",\"#848484\"],hover:[\"color\",\"#848484\"],inherit:[\"from\",\"to\",\"both\",!0,!1],opacity:[1,0,1,.05]},dashes:!1,font:{color:[\"color\",\"#343434\"],size:[14,0,100,1],face:[\"arial\",\"verdana\",\"tahoma\"],background:[\"color\",\"none\"],strokeWidth:[2,0,50,1],strokeColor:[\"color\",\"#ffffff\"],align:[\"horizontal\",\"top\",\"middle\",\"bottom\"]},hidden:!1,hoverWidth:[1.5,0,5,.1],labelHighlightBold:!0,physics:!0,scaling:{min:[1,0,100,1],max:[15,0,100,1],label:{enabled:!0,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},selectionWidth:[1.5,0,5,.1],selfReferenceSize:[20,0,200,1],selfReference:{size:[20,0,200,1],angle:[Math.PI/2,-6*Math.PI,6*Math.PI,Math.PI/8],renderBehindTheNode:!0},shadow:{enabled:!1,color:\"rgba(0,0,0,0.5)\",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},smooth:{enabled:!0,type:[\"dynamic\",\"continuous\",\"discrete\",\"diagonalCross\",\"straightCross\",\"horizontal\",\"vertical\",\"curvedCW\",\"curvedCCW\",\"cubicBezier\"],forceDirection:[\"horizontal\",\"vertical\",\"none\"],roundness:[.5,0,1,.05]},width:[1,0,30,1]},layout:{hierarchical:{enabled:!1,levelSeparation:[150,20,500,5],nodeSpacing:[100,20,500,5],treeSpacing:[200,20,500,5],blockShifting:!0,edgeMinimization:!0,parentCentralization:!0,direction:[\"UD\",\"DU\",\"LR\",\"RL\"],sortMethod:[\"hubsize\",\"directed\"],shakeTowards:[\"leaves\",\"roots\"]}},interaction:{dragNodes:!0,dragView:!0,hideEdgesOnDrag:!1,hideEdgesOnZoom:!1,hideNodesOnDrag:!1,hover:!1,keyboard:{enabled:!1,speed:{x:[10,0,40,1],y:[10,0,40,1],zoom:[.02,0,.1,.005]},bindToWindow:!0,autoFocus:!0},multiselect:!1,navigationButtons:!1,selectable:!0,selectConnectedEdges:!0,hoverConnectedEdges:!0,tooltipDelay:[300,0,1e3,25],zoomView:!0,zoomSpeed:[1,.1,2,.1]},manipulation:{enabled:!1,initiallyActive:!1},physics:{enabled:!0,barnesHut:{theta:[.5,.1,1,.05],gravitationalConstant:[-2e3,-3e4,0,50],centralGravity:[.3,0,10,.05],springLength:[95,0,500,5],springConstant:[.04,0,1.2,.005],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},forceAtlas2Based:{theta:[.5,.1,1,.05],gravitationalConstant:[-50,-500,0,1],centralGravity:[.01,0,1,.005],springLength:[95,0,500,5],springConstant:[.08,0,1.2,.005],damping:[.4,0,1,.01],avoidOverlap:[0,0,1,.01]},repulsion:{centralGravity:[.2,0,10,.05],springLength:[200,0,500,5],springConstant:[.05,0,1.2,.005],nodeDistance:[100,0,500,5],damping:[.09,0,1,.01]},hierarchicalRepulsion:{centralGravity:[.2,0,10,.05],springLength:[100,0,500,5],springConstant:[.01,0,1.2,.005],nodeDistance:[120,0,500,5],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},maxVelocity:[50,0,150,1],minVelocity:[.1,.01,.5,.01],solver:[\"barnesHut\",\"forceAtlas2Based\",\"repulsion\",\"hierarchicalRepulsion\"],timestep:[.5,.01,1,.01],wind:{x:[0,-10,10,.1],y:[0,-10,10,.1]}}},zT=(g,A,t)=>{var C,I;return!(!js(g).call(g,\"physics\")||!js(C=MT.physics.solver).call(C,A)||t.physics.solver===A||\"wind\"===A)||!(!js(g).call(g,\"physics\")||!js(g).call(g,\"wind\")||\"x\"!==A&&\"y\"!==A||\"function\"!=typeof(null==t||null===(I=t.physics)||void 0===I?void 0:I.wind))};var BT=Object.freeze({__proto__:null,allOptions:PT,configuratorHideOption:zT,configureOptions:MT});class ZT{getDistances(g,A,t){const C={},I=g.edges;for(let g=0;g<A.length;g++){const t={};C[A[g]]=t;for(let C=0;C<A.length;C++)t[A[C]]=g==C?0:1e9}for(let g=0;g<t.length;g++){const A=I[t[g]];!0===A.connected&&void 0!==C[A.fromId]&&void 0!==C[A.toId]&&(C[A.fromId][A.toId]=1,C[A.toId][A.fromId]=1)}const e=A.length;for(let g=0;g<e;g++){const t=A[g],I=C[t];for(let g=0;g<e-1;g++){const i=A[g],o=C[i];for(let n=g+1;n<e;n++){const g=A[n],e=C[g],s=Math.min(o[g],o[t]+I[g]);o[g]=s,e[i]=s}}}return C}}class ST{constructor(g,A,t){this.body=g,this.springLength=A,this.springConstant=t,this.distanceSolver=new ZT}setOptions(g){g&&(g.springLength&&(this.springLength=g.springLength),g.springConstant&&(this.springConstant=g.springConstant))}solve(g,A){let t=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const C=this.distanceSolver.getDistances(this.body,g,A);this._createL_matrix(C),this._createK_matrix(C),this._createE_matrix();let I=0;const e=Math.max(1e3,Math.min(10*this.body.nodeIndices.length,6e3));let i=1e9,o=0,n=0,s=0,r=0,a=0;for(;i>.01&&I<e;)for(I+=1,[o,i,n,s]=this._getHighestEnergyNode(t),r=i,a=0;r>1&&a<5;)a+=1,this._moveNode(o,n,s),[r,n,s]=this._getEnergy(o)}_getHighestEnergyNode(g){const A=this.body.nodeIndices,t=this.body.nodes;let C=0,I=A[0],e=0,i=0;for(let o=0;o<A.length;o++){const n=A[o];if(!0!==t[n].predefinedPosition||!0===t[n].isCluster&&!0===g||!0!==t[n].options.fixed.x||!0!==t[n].options.fixed.y){const[g,A,t]=this._getEnergy(n);C<g&&(C=g,I=n,e=A,i=t)}}return[I,C,e,i]}_getEnergy(g){const[A,t]=this.E_sums[g];return[Math.sqrt(A**2+t**2),A,t]}_moveNode(g,A,t){const C=this.body.nodeIndices,I=this.body.nodes;let e=0,i=0,o=0;const n=I[g].x,s=I[g].y,r=this.K_matrix[g],a=this.L_matrix[g];for(let A=0;A<C.length;A++){const t=C[A];if(t!==g){const g=I[t].x,A=I[t].y,C=r[t],d=a[t],h=1/((n-g)**2+(s-A)**2)**1.5;e+=C*(1-d*(s-A)**2*h),i+=C*(d*(n-g)*(s-A)*h),o+=C*(1-d*(n-g)**2*h)}}const d=(A/e+t/i)/(i/e-o/i),h=-(i*d+A)/e;I[g].x+=h,I[g].y+=d,this._updateE_matrix(g)}_createL_matrix(g){const A=this.body.nodeIndices,t=this.springLength;this.L_matrix=[];for(let C=0;C<A.length;C++){this.L_matrix[A[C]]={};for(let I=0;I<A.length;I++)this.L_matrix[A[C]][A[I]]=t*g[A[C]][A[I]]}}_createK_matrix(g){const A=this.body.nodeIndices,t=this.springConstant;this.K_matrix=[];for(let C=0;C<A.length;C++){this.K_matrix[A[C]]={};for(let I=0;I<A.length;I++)this.K_matrix[A[C]][A[I]]=t*g[A[C]][A[I]]**-2}}_createE_matrix(){const g=this.body.nodeIndices,A=this.body.nodes;this.E_matrix={},this.E_sums={};for(let A=0;A<g.length;A++)this.E_matrix[g[A]]=[];for(let t=0;t<g.length;t++){const C=g[t],I=A[C].x,e=A[C].y;let i=0,o=0;for(let n=t;n<g.length;n++){const s=g[n];if(s!==C){const g=A[s].x,r=A[s].y,a=1/Math.sqrt((I-g)**2+(e-r)**2);this.E_matrix[C][n]=[this.K_matrix[C][s]*(I-g-this.L_matrix[C][s]*(I-g)*a),this.K_matrix[C][s]*(e-r-this.L_matrix[C][s]*(e-r)*a)],this.E_matrix[s][t]=this.E_matrix[C][n],i+=this.E_matrix[C][n][0],o+=this.E_matrix[C][n][1]}}this.E_sums[C]=[i,o]}}_updateE_matrix(g){const A=this.body.nodeIndices,t=this.body.nodes,C=this.E_matrix[g],I=this.K_matrix[g],e=this.L_matrix[g],i=t[g].x,o=t[g].y;let n=0,s=0;for(let r=0;r<A.length;r++){const a=A[r];if(a!==g){const g=C[r],A=g[0],d=g[1],h=t[a].x,l=t[a].y,c=1/Math.sqrt((i-h)**2+(o-l)**2),u=I[a]*(i-h-e[a]*(i-h)*c),p=I[a]*(o-l-e[a]*(o-l)*c);C[r]=[u,p],n+=u,s+=p;const f=this.E_sums[a];f[0]+=u-A,f[1]+=p-d}}this.E_sums[g]=[n,s]}}function FT(g,A,t){var C,I,e,i;if(!(this instanceof FT))throw new SyntaxError(\"Constructor must be called with the new operator\");this.options={},this.defaultOptions={locale:\"en\",locales:Fc,clickToUse:!1},_t(this.options,this.defaultOptions),this.body={container:g,nodes:{},nodeIndices:[],edges:{},edgeIndices:[],emitter:{on:IC(C=this.on).call(C,this),off:IC(I=this.off).call(I,this),emit:IC(e=this.emit).call(e,this),once:IC(i=this.once).call(i,this)},eventListeners:{onTap:function(){},onTouch:function(){},onDoubleTap:function(){},onHold:function(){},onDragStart:function(){},onDrag:function(){},onDragEnd:function(){},onMouseWheel:function(){},onPinch:function(){},onMouseMove:function(){},onRelease:function(){},onContext:function(){}},data:{nodes:null,edges:null},functions:{createNode:function(){},createEdge:function(){},getPointer:function(){}},modules:{},view:{scale:1,translation:{x:0,y:0}},selectionBox:{show:!1,position:{start:{x:0,y:0},end:{x:0,y:0}}}},this.bindEventListeners(),this.images=new Lc(()=>this.body.emitter.emit(\"_requestRedraw\")),this.groups=new tp,this.canvas=new yO(this.body),this.selectionHandler=new tT(this.body,this.canvas),this.interactionHandler=new OO(this.body,this.canvas,this.selectionHandler),this.view=new wO(this.body,this.canvas),this.renderer=new hO(this.body,this.canvas),this.physics=new sO(this.body),this.layoutEngine=new wT(this.body),this.clustering=new dO(this.body),this.manipulation=new xT(this.body,this.canvas,this.selectionHandler,this.interactionHandler),this.nodesHandler=new uE(this.body,this.images,this.groups,this.layoutEngine),this.edgesHandler=new gO(this.body,this.images,this.groups),this.body.modules.kamadaKawai=new ST(this.body,150,.05),this.body.modules.clustering=this.clustering,this.canvas._create(),this.setOptions(t),this.setData(A)}BC(FT.prototype),FT.prototype.setOptions=function(g){if(null===g&&(g=void 0),void 0!==g){!0===ec.validate(g,PT)&&console.error(\"%cErrors have been found in the supplied options object.\",Ic);if(Dl([\"locale\",\"locales\",\"clickToUse\"],this.options,g),void 0!==g.locale&&(g.locale=function(g,A){try{const[C,I]=A.split(/[-_ /]/,2),e=null!=C?C.toLowerCase():null,i=null!=I?I.toUpperCase():null;if(e&&i){const A=e+\"-\"+i;if(Object.prototype.hasOwnProperty.call(g,A))return A;var t;console.warn(dr(t=\"Unknown variant \".concat(i,\" of language \")).call(t,e,\".\"))}if(e){const A=e;if(Object.prototype.hasOwnProperty.call(g,A))return A;console.warn(\"Unknown language \".concat(e))}return console.warn(\"Unknown locale \".concat(A,\", falling back to English.\")),\"en\"}catch(g){return console.error(g),console.warn(\"Unexpected error while normalizing locale \".concat(A,\", falling back to English.\")),\"en\"}}(g.locales||this.options.locales,g.locale)),g=this.layoutEngine.setOptions(g.layout,g),this.canvas.setOptions(g),this.groups.setOptions(g.groups),this.nodesHandler.setOptions(g.nodes),this.edgesHandler.setOptions(g.edges),this.physics.setOptions(g.physics),this.manipulation.setOptions(g.manipulation,g,this.options),this.interactionHandler.setOptions(g.interaction),this.renderer.setOptions(g.interaction),this.selectionHandler.setOptions(g.interaction),void 0!==g.groups&&this.body.emitter.emit(\"refreshNodes\"),\"configure\"in g&&(this.configurator||(this.configurator=new Ac(this,this.body.container,MT,this.canvas.pixelRatio,zT)),this.configurator.setOptions(g.configure)),this.configurator&&!0===this.configurator.options.enabled){const g={nodes:{},edges:{},layout:{},interaction:{},manipulation:{},physics:{},global:{}};Rl(g.nodes,this.nodesHandler.options),Rl(g.edges,this.edgesHandler.options),Rl(g.layout,this.layoutEngine.options),Rl(g.interaction,this.selectionHandler.options),Rl(g.interaction,this.renderer.options),Rl(g.interaction,this.interactionHandler.options),Rl(g.manipulation,this.manipulation.options),Rl(g.physics,this.physics.options),Rl(g.global,this.canvas.options),Rl(g.global,this.options),this.configurator.setModuleOptions(g)}void 0!==g.clickToUse?!0===g.clickToUse?void 0===this.activator&&(this.activator=new gc(this.canvas.frame),this.activator.on(\"change\",()=>{this.body.emitter.emit(\"activate\")})):(void 0!==this.activator&&(this.activator.destroy(),delete this.activator),this.body.emitter.emit(\"activate\")):this.body.emitter.emit(\"activate\"),this.canvas.setSize(),this.body.emitter.emit(\"startSimulation\")}},FT.prototype._updateVisibleIndices=function(){const g=this.body.nodes,A=this.body.edges;this.body.nodeIndices=[],this.body.edgeIndices=[];for(const A in g)Object.prototype.hasOwnProperty.call(g,A)&&(this.clustering._isClusteredNode(A)||!1!==g[A].options.hidden||this.body.nodeIndices.push(g[A].id));for(const t in A)if(Object.prototype.hasOwnProperty.call(A,t)){const C=A[t],I=g[C.fromId],e=g[C.toId],i=void 0!==I&&void 0!==e;!this.clustering._isClusteredEdge(t)&&!1===C.options.hidden&&i&&!1===I.options.hidden&&!1===e.options.hidden&&this.body.edgeIndices.push(C.id)}},FT.prototype.bindEventListeners=function(){this.body.emitter.on(\"_dataChanged\",()=>{this.edgesHandler._updateState(),this.body.emitter.emit(\"_dataUpdated\")}),this.body.emitter.on(\"_dataUpdated\",()=>{this.clustering._updateState(),this._updateVisibleIndices(),this._updateValueRange(this.body.nodes),this._updateValueRange(this.body.edges),this.body.emitter.emit(\"startSimulation\"),this.body.emitter.emit(\"_requestRedraw\")})},FT.prototype.setData=function(g){if(this.body.emitter.emit(\"resetPhysics\"),this.body.emitter.emit(\"_resetData\"),this.selectionHandler.unselectAll(),g&&g.dot&&(g.nodes||g.edges))throw new SyntaxError('Data must contain either parameter \"dot\" or parameter pair \"nodes\" and \"edges\", but not both.');if(this.setOptions(g&&g.options),g&&g.dot){console.warn(\"The dot property has been deprecated. Please use the static convertDot method to convert DOT into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertDot(dotString);\");const A=zc(g.dot);return void this.setData(A)}if(g&&g.gephi){console.warn(\"The gephi property has been deprecated. Please use the static convertGephi method to convert gephi into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertGephi(gephiJson);\");const A=Zc(g.gephi);return void this.setData(A)}this.nodesHandler.setData(g&&g.nodes,!0),this.edgesHandler.setData(g&&g.edges,!0),this.body.emitter.emit(\"_dataChanged\"),this.body.emitter.emit(\"_dataLoaded\"),this.body.emitter.emit(\"initPhysics\")},FT.prototype.destroy=function(){this.body.emitter.emit(\"destroy\"),this.body.emitter.off(),this.off(),delete this.groups,delete this.canvas,delete this.selectionHandler,delete this.interactionHandler,delete this.view,delete this.renderer,delete this.physics,delete this.layoutEngine,delete this.clustering,delete this.manipulation,delete this.nodesHandler,delete this.edgesHandler,delete this.configurator,delete this.images;for(const g in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,g)&&delete this.body.nodes[g];for(const g in this.body.edges)Object.prototype.hasOwnProperty.call(this.body.edges,g)&&delete this.body.edges[g];wl(this.body.container)},FT.prototype._updateValueRange=function(g){let A,t,C,I=0;for(A in g)if(Object.prototype.hasOwnProperty.call(g,A)){const e=g[A].getValue();void 0!==e&&(t=void 0===t?e:Math.min(e,t),C=void 0===C?e:Math.max(e,C),I+=e)}if(void 0!==t&&void 0!==C)for(A in g)Object.prototype.hasOwnProperty.call(g,A)&&g[A].setValueRange(t,C,I)},FT.prototype.isActive=function(){return!this.activator||this.activator.active},FT.prototype.setSize=function(){return this.canvas.setSize.apply(this.canvas,arguments)},FT.prototype.canvasToDOM=function(){return this.canvas.canvasToDOM.apply(this.canvas,arguments)},FT.prototype.DOMtoCanvas=function(){return this.canvas.DOMtoCanvas.apply(this.canvas,arguments)},FT.prototype.findNode=function(){return this.clustering.findNode.apply(this.clustering,arguments)},FT.prototype.isCluster=function(){return this.clustering.isCluster.apply(this.clustering,arguments)},FT.prototype.openCluster=function(){return this.clustering.openCluster.apply(this.clustering,arguments)},FT.prototype.cluster=function(){return this.clustering.cluster.apply(this.clustering,arguments)},FT.prototype.getNodesInCluster=function(){return this.clustering.getNodesInCluster.apply(this.clustering,arguments)},FT.prototype.clusterByConnection=function(){return this.clustering.clusterByConnection.apply(this.clustering,arguments)},FT.prototype.clusterByHubsize=function(){return this.clustering.clusterByHubsize.apply(this.clustering,arguments)},FT.prototype.updateClusteredNode=function(){return this.clustering.updateClusteredNode.apply(this.clustering,arguments)},FT.prototype.getClusteredEdges=function(){return this.clustering.getClusteredEdges.apply(this.clustering,arguments)},FT.prototype.getBaseEdge=function(){return this.clustering.getBaseEdge.apply(this.clustering,arguments)},FT.prototype.getBaseEdges=function(){return this.clustering.getBaseEdges.apply(this.clustering,arguments)},FT.prototype.updateEdge=function(){return this.clustering.updateEdge.apply(this.clustering,arguments)},FT.prototype.clusterOutliers=function(){return this.clustering.clusterOutliers.apply(this.clustering,arguments)},FT.prototype.getSeed=function(){return this.layoutEngine.getSeed.apply(this.layoutEngine,arguments)},FT.prototype.enableEditMode=function(){return this.manipulation.enableEditMode.apply(this.manipulation,arguments)},FT.prototype.disableEditMode=function(){return this.manipulation.disableEditMode.apply(this.manipulation,arguments)},FT.prototype.addNodeMode=function(){return this.manipulation.addNodeMode.apply(this.manipulation,arguments)},FT.prototype.editNode=function(){return this.manipulation.editNode.apply(this.manipulation,arguments)},FT.prototype.editNodeMode=function(){return console.warn(\"Deprecated: Please use editNode instead of editNodeMode.\"),this.manipulation.editNode.apply(this.manipulation,arguments)},FT.prototype.addEdgeMode=function(){return this.manipulation.addEdgeMode.apply(this.manipulation,arguments)},FT.prototype.editEdgeMode=function(){return this.manipulation.editEdgeMode.apply(this.manipulation,arguments)},FT.prototype.deleteSelected=function(){return this.manipulation.deleteSelected.apply(this.manipulation,arguments)},FT.prototype.getPositions=function(){return this.nodesHandler.getPositions.apply(this.nodesHandler,arguments)},FT.prototype.getPosition=function(){return this.nodesHandler.getPosition.apply(this.nodesHandler,arguments)},FT.prototype.storePositions=function(){return this.nodesHandler.storePositions.apply(this.nodesHandler,arguments)},FT.prototype.moveNode=function(){return this.nodesHandler.moveNode.apply(this.nodesHandler,arguments)},FT.prototype.getBoundingBox=function(){return this.nodesHandler.getBoundingBox.apply(this.nodesHandler,arguments)},FT.prototype.getConnectedNodes=function(g){return void 0!==this.body.nodes[g]?this.nodesHandler.getConnectedNodes.apply(this.nodesHandler,arguments):this.edgesHandler.getConnectedNodes.apply(this.edgesHandler,arguments)},FT.prototype.getConnectedEdges=function(){return this.nodesHandler.getConnectedEdges.apply(this.nodesHandler,arguments)},FT.prototype.startSimulation=function(){return this.physics.startSimulation.apply(this.physics,arguments)},FT.prototype.stopSimulation=function(){return this.physics.stopSimulation.apply(this.physics,arguments)},FT.prototype.stabilize=function(){return this.physics.stabilize.apply(this.physics,arguments)},FT.prototype.getSelection=function(){return this.selectionHandler.getSelection.apply(this.selectionHandler,arguments)},FT.prototype.setSelection=function(){return this.selectionHandler.setSelection.apply(this.selectionHandler,arguments)},FT.prototype.getSelectedNodes=function(){return this.selectionHandler.getSelectedNodeIds.apply(this.selectionHandler,arguments)},FT.prototype.getSelectedEdges=function(){return this.selectionHandler.getSelectedEdgeIds.apply(this.selectionHandler,arguments)},FT.prototype.getNodeAt=function(){const g=this.selectionHandler.getNodeAt.apply(this.selectionHandler,arguments);return void 0!==g&&void 0!==g.id?g.id:g},FT.prototype.getEdgeAt=function(){const g=this.selectionHandler.getEdgeAt.apply(this.selectionHandler,arguments);return void 0!==g&&void 0!==g.id?g.id:g},FT.prototype.selectNodes=function(){return this.selectionHandler.selectNodes.apply(this.selectionHandler,arguments)},FT.prototype.selectEdges=function(){return this.selectionHandler.selectEdges.apply(this.selectionHandler,arguments)},FT.prototype.unselectAll=function(){this.selectionHandler.unselectAll.apply(this.selectionHandler,arguments),this.selectionHandler.commitWithoutEmitting.apply(this.selectionHandler),this.redraw()},FT.prototype.redraw=function(){return this.renderer.redraw.apply(this.renderer,arguments)},FT.prototype.getScale=function(){return this.view.getScale.apply(this.view,arguments)},FT.prototype.getViewPosition=function(){return this.view.getViewPosition.apply(this.view,arguments)},FT.prototype.fit=function(){return this.view.fit.apply(this.view,arguments)},FT.prototype.moveTo=function(){return this.view.moveTo.apply(this.view,arguments)},FT.prototype.focus=function(){return this.view.focus.apply(this.view,arguments)},FT.prototype.releaseNode=function(){return this.view.releaseNode.apply(this.view,arguments)},FT.prototype.getOptionsFromConfigurator=function(){let g={};return this.configurator&&(g=this.configurator.getOptions.apply(this.configurator)),g};const GT=zc;g.DataSet=ex,g.DataView=ix,g.Network=FT,g.NetworkImages=Lc,g.Queue=tx,g.data=fx,g.networkDOTParser=Bc,g.networkGephiParser=Sc,g.networkOptions=BT,g.parseDOTNetwork=GT,g.parseGephiNetwork=Zc});\n//# sourceMappingURL=vis-network.min.cjs.map\n";
|
|
11
|
+
//# sourceMappingURL=vis-network-source.d.ts.map
|