@commercetools-frontend/application-shell 22.14.3 → 22.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/commercetools-frontend-application-shell.cjs.dev.js +1 -1
  2. package/dist/commercetools-frontend-application-shell.cjs.prod.js +1 -1
  3. package/dist/commercetools-frontend-application-shell.esm.js +1 -1
  4. package/dist/{custom-view-dev-host-52595f60.cjs.dev.js → custom-view-dev-host-0f62a220.cjs.dev.js} +1 -1
  5. package/dist/{custom-view-dev-host-98e7ce7d.cjs.prod.js → custom-view-dev-host-714c9d65.cjs.prod.js} +1 -1
  6. package/dist/{custom-view-dev-host-945f058b.esm.js → custom-view-dev-host-e3c2a970.esm.js} +1 -1
  7. package/dist/declarations/src/components/authenticated/oidc-callback.async.d.ts +1 -1
  8. package/dist/declarations/src/components/authenticated/oidc-callback.d.ts +1 -1
  9. package/dist/declarations/src/components/navbar/menu-items.d.ts +4 -4
  10. package/dist/declarations/src/components/navbar/use-navbar-state-manager.d.ts +1 -1
  11. package/dist/declarations/src/components/redirect-to-login/index.d.ts +1 -1
  12. package/dist/declarations/src/components/redirect-to-login/redirect-to-login.d.ts +1 -1
  13. package/dist/declarations/src/components/redirector/index.d.ts +1 -1
  14. package/dist/declarations/src/components/redirector/redirector.d.ts +6 -5
  15. package/dist/{index-c29f8aa0.cjs.prod.js → index-08c8fcb3.cjs.prod.js} +42 -19
  16. package/dist/{index-35f9f7c2.esm.js → index-4eee2222.esm.js} +56 -30
  17. package/dist/{index-0d0e6d8b.cjs.dev.js → index-97ddc7b1.cjs.dev.js} +54 -28
  18. package/dist/navbar-5a1b9a06.esm.js +1223 -0
  19. package/dist/navbar-a5342082.cjs.dev.js +1256 -0
  20. package/dist/{navbar-be902d73.cjs.prod.js → navbar-d60f807a.cjs.prod.js} +38 -8
  21. package/dist/{oidc-callback-860db268.esm.js → oidc-callback-621a8bd2.esm.js} +69 -48
  22. package/dist/{oidc-callback-25005367.cjs.prod.js → oidc-callback-f70d9fd1.cjs.prod.js} +66 -47
  23. package/dist/{oidc-callback-6aa0b446.cjs.dev.js → oidc-callback-fa62a3ca.cjs.dev.js} +70 -48
  24. package/dist/{project-container-22dd3ee8.cjs.dev.js → project-container-2751a67a.cjs.dev.js} +5 -5
  25. package/dist/{project-container-8a000259.esm.js → project-container-b2a1fd66.esm.js} +5 -5
  26. package/dist/{project-container-0b7034a5.cjs.prod.js → project-container-e657827e.cjs.prod.js} +5 -5
  27. package/dist/{project-expired-abde10a9.cjs.prod.js → project-expired-085f8e5a.cjs.prod.js} +2 -2
  28. package/dist/{project-expired-175f09e7.esm.js → project-expired-09e4078a.esm.js} +2 -2
  29. package/dist/{project-expired-7e9f4a37.cjs.dev.js → project-expired-cb7e26ef.cjs.dev.js} +2 -2
  30. package/dist/{project-not-found-89cc6d97.esm.js → project-not-found-13cd7767.esm.js} +2 -2
  31. package/dist/{project-not-found-aeb6b4e5.cjs.prod.js → project-not-found-2f6dc5d2.cjs.prod.js} +2 -2
  32. package/dist/{project-not-found-fcb9f62d.cjs.dev.js → project-not-found-7646a1ee.cjs.dev.js} +2 -2
  33. package/dist/{project-not-initialized-1e4f45dc.esm.js → project-not-initialized-74f4384a.esm.js} +2 -2
  34. package/dist/{project-not-initialized-e8c5fae6.cjs.prod.js → project-not-initialized-9694ef3e.cjs.prod.js} +2 -2
  35. package/dist/{project-not-initialized-718a18d0.cjs.dev.js → project-not-initialized-e40d16f2.cjs.dev.js} +2 -2
  36. package/dist/{project-suspended-d028eced.cjs.dev.js → project-suspended-55f2ac4f.cjs.dev.js} +2 -2
  37. package/dist/{project-suspended-1f94c722.cjs.prod.js → project-suspended-f5463061.cjs.prod.js} +2 -2
  38. package/dist/{project-suspended-0d49681f.esm.js → project-suspended-f9999215.esm.js} +2 -2
  39. package/dist/{quick-access-11418f11.esm.js → quick-access-6cd9b3ba.esm.js} +1 -1
  40. package/dist/{quick-access-08a2f835.cjs.dev.js → quick-access-8314ffe5.cjs.dev.js} +1 -1
  41. package/dist/{quick-access-ecbaedf9.cjs.prod.js → quick-access-c9f75955.cjs.prod.js} +1 -1
  42. package/dist/redirect-to-login-5e148cff.esm.js +118 -0
  43. package/dist/redirect-to-login-d2287ced.cjs.dev.js +120 -0
  44. package/dist/redirect-to-login-e4f2ca07.cjs.prod.js +120 -0
  45. package/dist/{redirect-to-logout-8cbbf5b3.cjs.dev.js → redirect-to-logout-a4bc80a6.cjs.dev.js} +3 -6
  46. package/dist/{redirect-to-logout-2418d058.cjs.prod.js → redirect-to-logout-cdcb00b1.cjs.prod.js} +3 -6
  47. package/dist/{redirect-to-logout-7fb8c085.esm.js → redirect-to-logout-ed7cd66d.esm.js} +3 -6
  48. package/dist/redirect-to-project-create-1d0c6b01.esm.js +59 -0
  49. package/dist/redirect-to-project-create-67d7cd03.cjs.dev.js +67 -0
  50. package/dist/redirect-to-project-create-c962f72f.cjs.prod.js +67 -0
  51. package/dist/{redirector-752b4efc.cjs.prod.js → redirector-15844d9b.cjs.prod.js} +22 -12
  52. package/dist/{redirector-db8b5cd2.esm.js → redirector-54a03b75.esm.js} +23 -14
  53. package/dist/{redirector-5daa8baa.cjs.dev.js → redirector-fcdeaba7.cjs.dev.js} +22 -12
  54. package/dist/{requests-in-flight-loader-41d05ebb.cjs.dev.js → requests-in-flight-loader-097bfc28.cjs.dev.js} +1 -1
  55. package/dist/{requests-in-flight-loader-9400ad17.esm.js → requests-in-flight-loader-e5951187.esm.js} +1 -1
  56. package/dist/{requests-in-flight-loader-7580242c.cjs.prod.js → requests-in-flight-loader-f584e80c.cjs.prod.js} +1 -1
  57. package/dist/{service-page-project-switcher-c2446f31.cjs.dev.js → service-page-project-switcher-8f694816.cjs.dev.js} +1 -1
  58. package/dist/{service-page-project-switcher-f7058ef7.esm.js → service-page-project-switcher-90efcfbc.esm.js} +1 -1
  59. package/dist/{service-page-project-switcher-3343ea60.cjs.prod.js → service-page-project-switcher-cc8cab71.cjs.prod.js} +1 -1
  60. package/dist/{version-tracker-d3961598.esm.js → version-tracker-46a3f021.esm.js} +1 -1
  61. package/dist/{version-tracker-0c067072.cjs.dev.js → version-tracker-9976ad26.cjs.dev.js} +1 -1
  62. package/dist/{version-tracker-abf7b029.cjs.prod.js → version-tracker-a3eb5a8e.cjs.prod.js} +1 -1
  63. package/package.json +16 -16
  64. package/dist/navbar-8409df86.cjs.dev.js +0 -1226
  65. package/dist/navbar-e4559c93.esm.js +0 -1193
  66. package/dist/redirect-to-login-573b012a.cjs.prod.js +0 -109
  67. package/dist/redirect-to-login-dffecd53.cjs.dev.js +0 -109
  68. package/dist/redirect-to-login-e569bd46.esm.js +0 -107
  69. package/dist/redirect-to-project-create-2266c427.cjs.prod.js +0 -59
  70. package/dist/redirect-to-project-create-7b476aa6.cjs.dev.js +0 -59
  71. package/dist/redirect-to-project-create-c5323504.esm.js +0 -50
@@ -0,0 +1,1256 @@
1
+ 'use strict';
2
+
3
+ var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
4
+ var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
5
+ var _pt = require('prop-types');
6
+ var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/filter');
7
+ var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
8
+ var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
9
+ var _Array$isArray = require('@babel/runtime-corejs3/core-js-stable/array/is-array');
10
+ var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
11
+ var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols');
12
+ var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor');
13
+ var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
14
+ var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors');
15
+ var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
16
+ var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/object/define-property');
17
+ var react = require('react');
18
+ var react$1 = require('@emotion/react');
19
+ var classnames = require('classnames');
20
+ var snakeCase = require('lodash/snakeCase');
21
+ var reactIntl = require('react-intl');
22
+ var reactRouterDom = require('react-router-dom');
23
+ var applicationShellConnectors = require('@commercetools-frontend/application-shell-connectors');
24
+ var LogoSVG = require('@commercetools-frontend/assets/logos/commercetools_small-logo.svg');
25
+ var constants = require('@commercetools-frontend/constants');
26
+ var icons = require('@commercetools-uikit/icons');
27
+ var Spacings = require('@commercetools-uikit/spacings');
28
+ var oidc = require('./oidc-7c48215c.cjs.dev.js');
29
+ var _objectWithoutProperties = require('@babel/runtime-corejs3/helpers/objectWithoutProperties');
30
+ var _styled = require('@emotion/styled/base');
31
+ var _includesInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/includes');
32
+ var _everyInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/every');
33
+ var _findInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/find');
34
+ var _startsWithInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/starts-with');
35
+ var reactBroadcast = require('@flopflip/react-broadcast');
36
+ var MissingImageSvg = require('@commercetools-frontend/assets/images/diagonal-line.svg');
37
+ var permissions = require('@commercetools-frontend/permissions');
38
+ var InlineSvg = require('@commercetools-uikit/icons/inline-svg');
39
+ var useIsServedByProxy = require('./use-is-served-by-proxy-ed411f45.cjs.dev.js');
40
+ var jsxRuntime = require('@emotion/react/jsx-runtime');
41
+ var _keysInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/keys');
42
+ var designSystem = require('@commercetools-uikit/design-system');
43
+ var _sortInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/sort');
44
+ var isNil = require('lodash/isNil');
45
+ var throttle = require('lodash/throttle');
46
+ var sentry = require('@commercetools-frontend/sentry');
47
+ var useApplicationsMenu = require('./use-applications-menu-2fe3d465.cjs.dev.js');
48
+ require('@apollo/client');
49
+ require('@commercetools-frontend/l10n');
50
+
51
+ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
52
+
53
+ var _pt__default = /*#__PURE__*/_interopDefault(_pt);
54
+ var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
55
+ var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
56
+ var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
57
+ var _Array$isArray__default = /*#__PURE__*/_interopDefault(_Array$isArray);
58
+ var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
59
+ var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
60
+ var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptor);
61
+ var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachInstanceProperty);
62
+ var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptors);
63
+ var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$defineProperties);
64
+ var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
65
+ var classnames__default = /*#__PURE__*/_interopDefault(classnames);
66
+ var snakeCase__default = /*#__PURE__*/_interopDefault(snakeCase);
67
+ var LogoSVG__default = /*#__PURE__*/_interopDefault(LogoSVG);
68
+ var Spacings__default = /*#__PURE__*/_interopDefault(Spacings);
69
+ var _styled__default = /*#__PURE__*/_interopDefault(_styled);
70
+ var _includesInstanceProperty__default = /*#__PURE__*/_interopDefault(_includesInstanceProperty);
71
+ var _everyInstanceProperty__default = /*#__PURE__*/_interopDefault(_everyInstanceProperty);
72
+ var _findInstanceProperty__default = /*#__PURE__*/_interopDefault(_findInstanceProperty);
73
+ var _startsWithInstanceProperty__default = /*#__PURE__*/_interopDefault(_startsWithInstanceProperty);
74
+ var MissingImageSvg__default = /*#__PURE__*/_interopDefault(MissingImageSvg);
75
+ var InlineSvg__default = /*#__PURE__*/_interopDefault(InlineSvg);
76
+ var _keysInstanceProperty__default = /*#__PURE__*/_interopDefault(_keysInstanceProperty);
77
+ var _sortInstanceProperty__default = /*#__PURE__*/_interopDefault(_sortInstanceProperty);
78
+ var isNil__default = /*#__PURE__*/_interopDefault(isNil);
79
+ var throttle__default = /*#__PURE__*/_interopDefault(throttle);
80
+
81
+ const _excluded = ["icon"];
82
+ function ownKeys$2(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
83
+ function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var _context3, _context4; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context3 = ownKeys$2(Object(t), !0)).call(_context3, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context4 = ownKeys$2(Object(t))).call(_context4, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
84
+ function _EMOTION_STRINGIFIED_CSS_ERROR__$1() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
85
+ const compiledStyles$1 = {
86
+ "global": ":root {\n\n /* Left navigation */\n}\n\n@keyframes navbar-mod__visible___AKV1b {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n/* Left Nav */\n\n.navbar-mod__left-navigation___n7yUt {\n display: grid;\n width: 80px;\n background: var(--color-primary);\n height: 100%;\n grid-template-rows: 56px 1fr;\n transition: all 150ms cubic-bezier(1, 0, 0.58, 1);\n}\n\n.navbar-mod__navigation-header___Z6fOr {\n background-color: var(--color-accent-10);\n color: var(--color-surface);\n display: flex;\n justify-content: center;\n flex-direction: row;\n align-items: center;\n padding: var(--spacing-30);\n}\n\n.navbar-mod__navigation-header___Z6fOr .navbar-mod__icon-container___w3FtA {\n width: auto;\n display: flex;\n justify-content: center;\n}\n\n.navbar-mod__navigation-header___Z6fOr .navbar-mod__title___eRWUj {\n font-weight: 600;\n margin-left: var(--spacing-20);\n transition: all 150ms cubic-bezier(1, 0, 0.58, 1);\n animation: navbar-mod__visible___AKV1b 150ms cubic-bezier(1, 0, 0.58, 1);\n}\n\n.navbar-mod__navigation-header___Z6fOr .navbar-mod__icon___bLsep {\n width: 24px;\n height: 24px;\n}\n\n.navbar-mod__list___RCV3J {\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n min-height: 0;\n flex: 1 1 0;\n}\n\n.navbar-mod__list-item___MjK6t {\n min-height: 48px;\n background: var(--color-primary);\n margin: 0;\n list-style: none;\n cursor: pointer;\n}\n\n.navbar-mod__item-link___X2Ina {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link);\n width: 48px;\n position: relative;\n display: block;\n}\n\n.body__menu-open .navbar-mod__item-link___X2Ina {\n width: 100%;\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__item-icon-text___a-8JY {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__icon___bLsep {\n width: 24px;\n height: 24px;\n transition: all 150ms cubic-bezier(1, 0, 0.58, 1);\n}\n\n.navbar-mod__list-item___MjK6t:hover .navbar-mod__icon___bLsep,\n.navbar-mod__list-item___MjK6t:focus-within .navbar-mod__icon___bLsep {\n /* 1.16 is roughly the ratio of icon-size-hover to --icon-size */\n transform: scale(1.2);\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__icon___bLsep > svg *:not([fill='none']) {\n fill: var(--color-surface);\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__title___eRWUj {\n flex: 1;\n font-weight: 600;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n line-height: var(--line-height-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link);\n opacity: 0;\n transition: all 150ms cubic-bezier(1, 0, 0.58, 1);\n text-align: left;\n text-decoration: none;\n z-index: 1;\n}\n\n.navbar-mod__expander___jyAUi {\n display: flex;\n align-items: center;\n justify-content: center;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background: linear-gradient(\n 180deg,\n var(--color-primary) 0%,\n var(--color-primary-25) 100%\n );\n padding: var(--spacing-30) var(--spacing-25);\n}\n\n.navbar-mod__expander___jyAUi:hover,\n.navbar-mod__expander___jyAUi:focus {\n background-color: var(--color-primary-40);\n}\n\n/* divider */\n\n.navbar-mod__expander___jyAUi::before {\n content: '';\n position: absolute;\n top: 56px;\n height: 1px;\n background: rgba(255, 255, 255, 0.5);\n width: calc(100% - 2 * var(--spacing-30));\n}\n\n.navbar-mod__expand-icon___BtmRa {\n height: 40px;\n width: 40px;\n border-radius: var(--border-radius-4);\n padding: var(--spacing-20);\n background: rgba(255, 255, 255, 0.2);\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.navbar-mod__expand-icon___BtmRa:hover,\n.navbar-mod__expand-icon___BtmRa:focus {\n background: rgba(255, 255, 255, 0.3);\n cursor: pointer;\n}\n\n.navbar-mod__item--bottom___eW7nh {\n position: absolute;\n bottom: 50px;\n}\n\n.navbar-mod__list-item___MjK6t:not(.navbar-mod__item_menu__active___5xFRw):hover,\n.navbar-mod__list-item___MjK6t:not(.navbar-mod__item_menu__active___5xFRw):focus-within {\n background-color: var(--color-primary-40);\n border-radius: var(--border-radius-8);\n}\n\n.navbar-mod__item_menu-open___zk0zh {\n height: auto !important;\n}\n\n.navbar-mod__item_menu-collapsed___cluyY .navbar-mod__item-link___X2Ina {\n text-align: center;\n}\n\n.body__menu-open .navbar-mod__left-navigation___n7yUt {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n box-shadow: var(--shadow-for-navbar);\n transition: all 150ms cubic-bezier(1, 0, 0.58, 1);\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t {\n height: auto;\n min-height: 48px;\n width: 100%;\n}\n\n.body__menu-open .navbar-mod__left-navigation___n7yUt {\n width: 256px;\n transition: all 150ms cubic-bezier(1, 0, 0.58, 1);\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t .navbar-mod__title___eRWUj {\n opacity: 1;\n margin-left: var(--spacing-25);\n color: var(--color-surface);\n transition: all 150ms cubic-bezier(1, 0, 0.58, 1);\n animation: navbar-mod__visible___AKV1b 150ms cubic-bezier(1, 0, 0.58, 1);\n}\n\n.navbar-mod__list-item___MjK6t:hover .navbar-mod__title___eRWUj,\n.navbar-mod__list-item___MjK6t:focus-within .navbar-mod__title___eRWUj {\n margin-left: calc(var(--spacing-25) + 2px);\n}\n\n.navbar-mod__list-item___MjK6t:not(.navbar-mod__item__active___lo1sr):hover .navbar-mod__icon___bLsep > svg *:not([fill='none']),\n.navbar-mod__list-item___MjK6t:not(.navbar-mod__item__active___lo1sr):focus-within .navbar-mod__icon___bLsep > svg *:not([fill='none']) {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n fill: var(--color-for-navbar-icon-when-active);\n}\n\n.navbar-mod__list-item___MjK6t:not(.navbar-mod__item__active___lo1sr):hover .navbar-mod__title___eRWUj,\n.navbar-mod__list-item___MjK6t:not(.navbar-mod__item__active___lo1sr):focus-within .navbar-mod__title___eRWUj {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link-when-hovered);\n}\n\n.body__menu-open .navbar-mod__item__active___lo1sr {\n max-height: 500px;\n transition: max-height 0.25s ease-in;\n}\n\n/* Second level menu */\n\n.navbar-mod__sublist___os1s7 {\n padding: var(--spacing-30);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background-color: var(--background-color-for-navbar);\n left: 72px;\n z-index: -1;\n list-style: none;\n position: fixed;\n display: none;\n}\n\n/* This pseudo-element is required to enable smooth coursor movement from the main menu item to submenu items with the gap in between */\n\n.navbar-mod__sublist-expanded__active___240JK::before,\n.navbar-mod__sublist-collapsed__active___-9vYh::before,\n.navbar-mod__sublist-collapsed__active__above___BXCeM::before {\n content: '';\n position: absolute;\n display: block;\n width: calc(253px + var(--spacing-20));\n height: 48px;\n left: calc(-1 * var(--spacing-20));\n}\n\n.navbar-mod__sublist__inactive___kJvf- {\n /* empty block */\n}\n\n.navbar-mod__sublist-item___gafkS {\n display: flex;\n align-items: center;\n align-self: stretch;\n}\n\n.navbar-mod__sublist-item__active___QC6pa {\n border-radius: var(--border-radius-4);\n background: var(--color-accent-30);\n}\n\n.navbar-mod__sublist-item___gafkS:not(.navbar-mod__sublist-item__active___QC6pa):hover,\n.navbar-mod__sublist-item___gafkS:not(.navbar-mod__sublist-item__active___QC6pa):focus-within {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link-when-hovered);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link-when-hovered);\n border-radius: var(--border-radius-4);\n background: var(--color-primary-95);\n}\n\n.navbar-mod__text___ccHEu {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n line-height: var(--line-height-for-navbar-link);\n width: 100%;\n height: 100%;\n}\n\n.navbar-mod__text-link___dhtj6 {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link);\n text-decoration: none;\n display: flex;\n padding: var(--spacing-25);\n align-items: center;\n justify-content: center;\n}\n\n.body__menu-open .navbar-mod__text-link___dhtj6 {\n justify-content: start;\n}\n\n.navbar-mod__text-link-sublist-wrapper___1JN4x {\n display: flex;\n flex-direction: column;\n position: relative;\n min-height: 0;\n}\n\n.navbar-mod__text-link-sublist___AoIpU {\n /* stylelint-disable-next-line value-no-vendor-prefix */\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n color: var(--color-solid);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link-when-hovered);\n text-decoration: none;\n flex: 1;\n padding: var(--spacing-25) var(--spacing-25) var(--spacing-25)\n var(--spacing-30);\n transition: padding 150ms ease-out;\n}\n\n.navbar-mod__sublist-item___gafkS:not(.navbar-mod__sublist-item__active___QC6pa):hover .navbar-mod__text-link-sublist___AoIpU,\n.navbar-mod__sublist-item___gafkS:not(.navbar-mod__sublist-item__active___QC6pa):focus-within .navbar-mod__text-link-sublist___AoIpU {\n /* additional left padding on hover and focus */\n padding: var(--spacing-25) var(--spacing-25) var(--spacing-25)\n calc(var(--spacing-30) + var(--spacing-20));\n}\n\n.navbar-mod__navlink-clickable-content___bzddC {\n height: 100%;\n width: 100%;\n}\n\n/* Item active */\n\n.navbar-mod__item__active___lo1sr,\n.navbar-mod__item_menu__active___5xFRw,\n.navbar-mod__item_menu__active___5xFRw:focus-within .navbar-mod__list-item___MjK6t {\n background: var(--color-accent-30);\n border-radius: var(--border-radius-8);\n}\n\n.navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY {\n justify-content: flex-start;\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__icon-container___w3FtA {\n width: auto;\n display: flex;\n justify-content: center;\n align-self: flex-start;\n}\n\n.navbar-mod__fixed-menu___42tD9 .navbar-mod__list-item___MjK6t .navbar-mod__item-icon-text___a-8JY {\n justify-content: center;\n display: flex;\n width: 100%;\n}\n\n.navbar-mod__support-menu___fi5Ka {\n padding: var(--spacing-10) var(--spacing-30) var(--spacing-20)\n var(--spacing-30);\n height: calc(48px + var(--spacing-20));\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY {\n position: relative;\n width: auto;\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY {\n margin-left: 0;\n}\n\n.navbar-mod__tooltip-container___iJYyi {\n position: absolute;\n left: 0;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n height: 48px;\n visibility: visible;\n}\n\n.navbar-mod__tooltip___1ID3j {\n padding: var(--spacing-10) calc(var(--spacing-20) + var(--spacing-10));\n /* stylelint-disable-next-line value-no-vendor-prefix */\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n border-radius: var(--border-radius-4);\n background: var(--color-accent-10);\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.25);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n line-height: var(--line-height-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link);\n color: var(--color-surface);\n max-height: 48px;\n visibility: inherit;\n}\n\n.navbar-mod__sublist-expanded__active___240JK,\n.navbar-mod__sublist-collapsed__active___-9vYh,\n.navbar-mod__sublist-collapsed__active__above___BXCeM {\n opacity: 1;\n display: none;\n text-align: left;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background-color: var(--background-color-for-navbar-when-active);\n}\n\n.navbar-mod__item-link___X2Ina:hover .navbar-mod__sublist-collapsed__active___-9vYh,\n.navbar-mod__item-link___X2Ina:hover .navbar-mod__sublist-collapsed__active__above___BXCeM,\n.navbar-mod__item-link___X2Ina:hover .navbar-mod__sublist-expanded__active___240JK,\n.navbar-mod__item-link___X2Ina:focus-within .navbar-mod__sublist-collapsed__active___-9vYh,\n.navbar-mod__item-link___X2Ina:focus-within .navbar-mod__sublist-collapsed__active__above___BXCeM,\n.navbar-mod__item-link___X2Ina:focus-within .navbar-mod__sublist-expanded__active___240JK {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background-color: var(--color-surface);\n /* TODO: add design tokens instead hard-coded values */\n min-height: 50px;\n width: 253px;\n border-radius: var(--border-radius-8);\n /* z-index value must be higher than AppBar's z-index */\n z-index: 20001;\n box-shadow: -2px 4px 25px 0 rgba(89, 89, 89, 0.5);\n}\n\n.navbar-mod__item-link___X2Ina:hover .navbar-mod__sublist-collapsed__active___-9vYh.navbar-mod__sublist-collapsed__empty___FBUli,\n.navbar-mod__item-link___X2Ina:hover .navbar-mod__sublist-collapsed__active__above___BXCeM.navbar-mod__sublist-collapsed__empty___FBUli,\n.navbar-mod__item-link___X2Ina:focus-within .navbar-mod__sublist-collapsed__active___-9vYh.navbar-mod__sublist-collapsed__empty___FBUli,\n.navbar-mod__item-link___X2Ina:focus-within\n .navbar-mod__sublist-collapsed__active__above___BXCeM.navbar-mod__sublist-collapsed__empty___FBUli {\n visibility: hidden;\n}\n\n.navbar-mod__item-link___X2Ina:hover .navbar-mod__sublist-expanded__active___240JK,\n.navbar-mod__item-link___X2Ina:focus-within .navbar-mod__sublist-expanded__active___240JK {\n left: 248px;\n}\n\n.navbar-mod__highlighted___oJWkA,\n.navbar-mod__highlighted___oJWkA .navbar-mod__title___eRWUj {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link-when-active) !important;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link-when-active);\n}\n\n.navbar-mod__hidden___TQLSs {\n display: none;\n}\n\n.navbar-mod__divider___TpVzu {\n border-top: 1px solid var(--color-neutral-40);\n}\n\n.navbar-mod__loading-dot-container___G2LVb {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.navbar-mod__scrollable-menu___64pxJ {\n flex: 1 1 0;\n overflow-x: hidden;\n overflow-y: hidden;\n padding: var(--spacing-30) var(--spacing-30) 48px;\n width: 80px;\n box-sizing: border-box;\n /* For Firefox */\n scrollbar-width: thin;\n scrollbar-color: var(--color-primary-40) transparent;\n}\n\n.body__menu-open .navbar-mod__scrollable-menu___64pxJ {\n width: 256px;\n}\n\n.navbar-mod__scrollable-menu___64pxJ:hover {\n overflow-y: scroll;\n padding-right: 8px;\n}\n\n.navbar-mod__scrollable-menu___64pxJ::-webkit-scrollbar {\n width: 8px;\n}\n\n.navbar-mod__scrollable-menu___64pxJ::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.navbar-mod__scrollable-menu___64pxJ::-webkit-scrollbar-thumb {\n background-color: var(--color-primary-40);\n border-radius: var(--border-radius-8);\n}\n\n.navbar-mod__fixed-menu___42tD9 {\n position: relative;\n width: 80px;\n}\n\n.body__menu-open .navbar-mod__fixed-menu___42tD9 {\n width: 256px;\n}\n",
87
+ "jsonMap": {
88
+ "left-navigation": "navbar-mod__left-navigation___n7yUt",
89
+ "navigation-header": "navbar-mod__navigation-header___Z6fOr",
90
+ "icon-container": "navbar-mod__icon-container___w3FtA",
91
+ "title": "navbar-mod__title___eRWUj",
92
+ "visible": "navbar-mod__visible___AKV1b",
93
+ "icon": "navbar-mod__icon___bLsep",
94
+ "list": "navbar-mod__list___RCV3J",
95
+ "list-item": "navbar-mod__list-item___MjK6t",
96
+ "item-link": "navbar-mod__item-link___X2Ina",
97
+ "item-icon-text": "navbar-mod__item-icon-text___a-8JY",
98
+ "expander": "navbar-mod__expander___jyAUi",
99
+ "expand-icon": "navbar-mod__expand-icon___BtmRa",
100
+ "item--bottom": "navbar-mod__item--bottom___eW7nh",
101
+ "item_menu__active": "navbar-mod__item_menu__active___5xFRw",
102
+ "item_menu-open": "navbar-mod__item_menu-open___zk0zh",
103
+ "item_menu-collapsed": "navbar-mod__item_menu-collapsed___cluyY",
104
+ "item__active": "navbar-mod__item__active___lo1sr",
105
+ "sublist": "navbar-mod__sublist___os1s7",
106
+ "sublist-expanded__active": "navbar-mod__sublist-expanded__active___240JK",
107
+ "sublist-collapsed__active": "navbar-mod__sublist-collapsed__active___-9vYh",
108
+ "sublist-collapsed__active__above": "navbar-mod__sublist-collapsed__active__above___BXCeM",
109
+ "sublist__inactive": "navbar-mod__sublist__inactive___kJvf-",
110
+ "sublist-item": "navbar-mod__sublist-item___gafkS",
111
+ "sublist-item__active": "navbar-mod__sublist-item__active___QC6pa",
112
+ "text": "navbar-mod__text___ccHEu",
113
+ "text-link": "navbar-mod__text-link___dhtj6",
114
+ "text-link-sublist-wrapper": "navbar-mod__text-link-sublist-wrapper___1JN4x",
115
+ "text-link-sublist": "navbar-mod__text-link-sublist___AoIpU",
116
+ "navlink-clickable-content": "navbar-mod__navlink-clickable-content___bzddC",
117
+ "fixed-menu": "navbar-mod__fixed-menu___42tD9",
118
+ "support-menu": "navbar-mod__support-menu___fi5Ka",
119
+ "tooltip-container": "navbar-mod__tooltip-container___iJYyi",
120
+ "tooltip": "navbar-mod__tooltip___1ID3j",
121
+ "sublist-collapsed__empty": "navbar-mod__sublist-collapsed__empty___FBUli",
122
+ "highlighted": "navbar-mod__highlighted___oJWkA",
123
+ "hidden": "navbar-mod__hidden___TQLSs",
124
+ "divider": "navbar-mod__divider___TpVzu",
125
+ "loading-dot-container": "navbar-mod__loading-dot-container___G2LVb",
126
+ "scrollable-menu": "navbar-mod__scrollable-menu___64pxJ"
127
+ }
128
+ };
129
+ const styles$1 = compiledStyles$1.jsonMap;
130
+ const HeartIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./heart-e49dd92a.cjs.dev.js'); }));
131
+ const PaperclipIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./paperclip-005ec544.cjs.dev.js'); }));
132
+ const PluginIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./plugin-feb22442.cjs.dev.js'); }));
133
+ const RocketIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./rocket-3372731a.cjs.dev.js'); }));
134
+ const StarIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./star-6b9a91d2.cjs.dev.js'); }));
135
+ const ConnectedSquareIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./connected-square-a2fea344.cjs.dev.js'); }));
136
+ const WorldIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./world-500baeb2.cjs.dev.js'); }));
137
+ const TreeStructureIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./tree-structure-96ab0b7e.cjs.dev.js'); }));
138
+ const UserFilledIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./user-filled-34aeebcc.cjs.dev.js'); }));
139
+ const SpeedometerIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./speedometer-c1ec5a1d.cjs.dev.js'); }));
140
+ const TagMultiIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./tag-multi-abef3e15.cjs.dev.js'); }));
141
+ const CartIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./cart-b0044279.cjs.dev.js'); }));
142
+ const BoxIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./box-4857aa65.cjs.dev.js'); }));
143
+ const GearIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./gear-f2668579.cjs.dev.js'); }));
144
+ const ListWithSearchIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./list-with-search-027ab8eb.cjs.dev.js'); }));
145
+ // The icon is expected to be the `svg` document as a string.
146
+ // For backwards compatibility purposes, we still support the legacy "icon name",
147
+ // which we then map to one of the pre-defined icons.
148
+ // Eventually, we want to get rid of this "switch" logic.
149
+ const IconSwitcher = _ref4 => {
150
+ let icon = _ref4.icon,
151
+ iconProps = _objectWithoutProperties(_ref4, _excluded);
152
+ if (_includesInstanceProperty__default["default"](icon).call(icon, '<svg')) {
153
+ return jsxRuntime.jsx(InlineSvg__default["default"], _objectSpread$2({
154
+ data: icon
155
+ }, iconProps));
156
+ }
157
+ // Backwards compatibility for apps using the "icon name".
158
+ switch (icon) {
159
+ // Legacy application icons
160
+ // TODO: To be removed once MC applications icons updates are published
161
+ case 'TreeStructureIcon':
162
+ return jsxRuntime.jsx(TreeStructureIcon, _objectSpread$2({}, iconProps));
163
+ case 'UserFilledIcon':
164
+ return jsxRuntime.jsx(UserFilledIcon, _objectSpread$2({}, iconProps));
165
+ case 'SpeedometerIcon':
166
+ return jsxRuntime.jsx(SpeedometerIcon, _objectSpread$2({}, iconProps));
167
+ case 'TagMultiIcon':
168
+ return jsxRuntime.jsx(TagMultiIcon, _objectSpread$2({}, iconProps));
169
+ case 'CartIcon':
170
+ return jsxRuntime.jsx(CartIcon, _objectSpread$2({}, iconProps));
171
+ case 'BoxIcon':
172
+ return jsxRuntime.jsx(BoxIcon, _objectSpread$2({}, iconProps));
173
+ case 'GearIcon':
174
+ return jsxRuntime.jsx(GearIcon, _objectSpread$2({}, iconProps));
175
+ case 'ListWithSearchIcon':
176
+ return jsxRuntime.jsx(ListWithSearchIcon, _objectSpread$2({}, iconProps));
177
+
178
+ // Custom application icons set
179
+ case 'HeartIcon':
180
+ return jsxRuntime.jsx(HeartIcon, _objectSpread$2({}, iconProps));
181
+ case 'PaperclipIcon':
182
+ return jsxRuntime.jsx(PaperclipIcon, _objectSpread$2({}, iconProps));
183
+ case 'PluginIcon':
184
+ return jsxRuntime.jsx(PluginIcon, _objectSpread$2({}, iconProps));
185
+ case 'RocketIcon':
186
+ return jsxRuntime.jsx(RocketIcon, _objectSpread$2({}, iconProps));
187
+ case 'StarIcon':
188
+ return jsxRuntime.jsx(StarIcon, _objectSpread$2({}, iconProps));
189
+ case 'ConnectedSquareIcon':
190
+ return jsxRuntime.jsx(ConnectedSquareIcon, _objectSpread$2({}, iconProps));
191
+ // For backwards compatibility
192
+ case 'WorldIcon':
193
+ return jsxRuntime.jsx(WorldIcon, _objectSpread$2({}, iconProps));
194
+ default:
195
+ return jsxRuntime.jsx("img", {
196
+ src: MissingImageSvg__default["default"],
197
+ alt: "missing icon"
198
+ });
199
+ }
200
+ };
201
+ IconSwitcher.propTypes = process.env.NODE_ENV !== "production" ? {
202
+ icon: _pt__default["default"].string.isRequired
203
+ } : {};
204
+ IconSwitcher.displayName = 'IconSwitcher';
205
+ const getIcon = _ref5 => {
206
+ let isMenuOpen = _ref5.isMenuOpen;
207
+ const Icon = isMenuOpen ? icons.SidebarCollapseIcon : icons.SidebarExpandIcon;
208
+ return jsxRuntime.jsx(Icon, {
209
+ color: "surface",
210
+ size: "big"
211
+ });
212
+ };
213
+ const MenuExpander = props => {
214
+ return jsxRuntime.jsx("li", {
215
+ className: classnames__default["default"](styles$1.expander, {
216
+ [styles$1.hidden]: !props.isVisible
217
+ }),
218
+ children: jsxRuntime.jsx("div", {
219
+ onClick: props.onClick,
220
+ onKeyDown: e => {
221
+ if (e.key === 'Enter') {
222
+ props.onClick(e);
223
+ }
224
+ },
225
+ tabIndex: 0,
226
+ className: styles$1['expand-icon'],
227
+ "data-testid": "menu-expander",
228
+ children: getIcon(props)
229
+ })
230
+ }, "expander");
231
+ };
232
+ MenuExpander.propTypes = process.env.NODE_ENV !== "production" ? {
233
+ isVisible: _pt__default["default"].bool.isRequired,
234
+ onClick: _pt__default["default"].func.isRequired,
235
+ isMenuOpen: _pt__default["default"].bool.isRequired
236
+ } : {};
237
+ MenuExpander.displayName = 'MenuExpander';
238
+ const Faded = /*#__PURE__*/_styled__default["default"]("div", process.env.NODE_ENV === "production" ? {
239
+ target: "ekdrmmp0"
240
+ } : {
241
+ target: "ekdrmmp0",
242
+ label: "Faded"
243
+ })(process.env.NODE_ENV === "production" ? {
244
+ name: "16qr508",
245
+ styles: "position:absolute;top:-32px;height:32px;width:100%;background:linear-gradient(180deg, rgba(0, 153, 135, 0) 0%, #00b39e 100%);z-index:1"
246
+ } : {
247
+ name: "16qr508",
248
+ styles: "position:absolute;top:-32px;height:32px;width:100%;background:linear-gradient(180deg, rgba(0, 153, 135, 0) 0%, #00b39e 100%);z-index:1",
249
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUtaXRlbXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlLd0IiLCJmaWxlIjoibWVudS1pdGVtcy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBmb3J3YXJkUmVmLFxuICBsYXp5LFxuICB0eXBlIE1vdXNlRXZlbnRIYW5kbGVyLFxuICB0eXBlIEZvY3VzRXZlbnRIYW5kbGVyLFxuICB0eXBlIE1vdXNlRXZlbnQsXG4gIHR5cGUgS2V5Ym9hcmRFdmVudCxcbiAgdHlwZSBSZWFjdE5vZGUsXG4gIHR5cGUgU3ludGhldGljRXZlbnQsXG59IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEdsb2JhbCwgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgdXNlRmxhZ1ZhcmlhdGlvbiB9IGZyb20gJ0BmbG9wZmxpcC9yZWFjdC1icm9hZGNhc3QnO1xuaW1wb3J0IHR5cGUgeyBURmxhZ1ZhcmlhdGlvbiB9IGZyb20gJ0BmbG9wZmxpcC90eXBlcyc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IE5hdkxpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB0eXBlIHtcbiAgVE5vcm1hbGl6ZWRNZW51VmlzaWJpbGl0aWVzLFxuICBUTm9ybWFsaXplZFBlcm1pc3Npb25zLFxuICBUTm9ybWFsaXplZEFjdGlvblJpZ2h0cyxcbiAgVE5vcm1hbGl6ZWREYXRhRmVuY2VzLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1zaGVsbC1jb25uZWN0b3JzJztcbmltcG9ydCBNaXNzaW5nSW1hZ2VTdmcgZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvYXNzZXRzL2ltYWdlcy9kaWFnb25hbC1saW5lLnN2Zyc7XG5pbXBvcnQgeyBOT19WQUxVRV9GQUxMQkFDSyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBSZXN0cmljdGVkQnlQZXJtaXNzaW9ucyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL3Blcm1pc3Npb25zJztcbmltcG9ydCB7XG4gIEJhY2tJY29uLFxuICBTaWRlYmFyRXhwYW5kSWNvbixcbiAgU2lkZWJhckNvbGxhcHNlSWNvbixcbn0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvaWNvbnMnO1xuaW1wb3J0IElubGluZVN2ZyBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pY29ucy9pbmxpbmUtc3ZnJztcbmltcG9ydCB7IERJTUVOU0lPTlMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUge1xuICBURGF0YUZlbmNlLFxuICBUQWN0aW9uUmlnaHQsXG4gIFRMb2NhbGl6ZWRGaWVsZCxcbn0gZnJvbSAnLi4vLi4vdHlwZXMvZ2VuZXJhdGVkL3Byb3h5JztcbmltcG9ydCB7IGxvY2F0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9jYXRpb24nO1xuLy8gaHR0cHM6Ly9iYWJlbGpzLmlvL2Jsb2cvMjAxNy8wOS8xMS96ZXJvLWNvbmZpZy13aXRoLWJhYmVsLW1hY3Jvc1xuaW1wb3J0IGNvbXBpbGVkU3R5bGVzIGZyb20gLyogcHJldmFsICovICcuL25hdmJhci5zdHlsZXMnO1xuXG5jb25zdCBzdHlsZXMgPSBjb21waWxlZFN0eWxlcy5qc29uTWFwO1xuXG50eXBlIFRQcm9qZWN0UGVybWlzc2lvbnMgPSB7XG4gIHBlcm1pc3Npb25zOiBUTm9ybWFsaXplZFBlcm1pc3Npb25zIHwgbnVsbDtcbiAgYWN0aW9uUmlnaHRzOiBUTm9ybWFsaXplZEFjdGlvblJpZ2h0cyB8IG51bGw7XG4gIGRhdGFGZW5jZXM6IFROb3JtYWxpemVkRGF0YUZlbmNlcyB8IG51bGw7XG59O1xuXG5jb25zdCBIZWFydEljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvaGVhcnQnKSk7XG5jb25zdCBQYXBlcmNsaXBJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3BhcGVyY2xpcCcpKTtcbmNvbnN0IFBsdWdpbkljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvcGx1Z2luJykpO1xuY29uc3QgUm9ja2V0SWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9yb2NrZXQnKSk7XG5jb25zdCBTdGFySWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9zdGFyJykpO1xuY29uc3QgQ29ubmVjdGVkU3F1YXJlSWNvbiA9IGxhenkoXG4gICgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvY29ubmVjdGVkLXNxdWFyZScpXG4pO1xuY29uc3QgV29ybGRJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3dvcmxkJykpO1xuY29uc3QgVHJlZVN0cnVjdHVyZUljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvdHJlZS1zdHJ1Y3R1cmUnKSk7XG5jb25zdCBVc2VyRmlsbGVkSWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy91c2VyLWZpbGxlZCcpKTtcbmNvbnN0IFNwZWVkb21ldGVySWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9zcGVlZG9tZXRlcicpKTtcbmNvbnN0IFRhZ011bHRpSWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy90YWctbXVsdGknKSk7XG5jb25zdCBDYXJ0SWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9jYXJ0JykpO1xuY29uc3QgQm94SWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9ib3gnKSk7XG5jb25zdCBHZWFySWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9nZWFyJykpO1xuY29uc3QgTGlzdFdpdGhTZWFyY2hJY29uID0gbGF6eShcbiAgKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9saXN0LXdpdGgtc2VhcmNoJylcbik7XG5cbnR5cGUgSWNvblByb3BzID0gUGFyYW1ldGVyczx0eXBlb2YgQmFja0ljb24+WzBdO1xudHlwZSBJY29uU3dpdGNoZXJQcm9wcyA9IHsgaWNvbjogc3RyaW5nIH0gJiBJY29uUHJvcHM7XG4vLyBUaGUgaWNvbiBpcyBleHBlY3RlZCB0byBiZSB0aGUgYHN2Z2AgZG9jdW1lbnQgYXMgYSBzdHJpbmcuXG4vLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgcHVycG9zZXMsIHdlIHN0aWxsIHN1cHBvcnQgdGhlIGxlZ2FjeSBcImljb24gbmFtZVwiLFxuLy8gd2hpY2ggd2UgdGhlbiBtYXAgdG8gb25lIG9mIHRoZSBwcmUtZGVmaW5lZCBpY29ucy5cbi8vIEV2ZW50dWFsbHksIHdlIHdhbnQgdG8gZ2V0IHJpZCBvZiB0aGlzIFwic3dpdGNoXCIgbG9naWMuXG5jb25zdCBJY29uU3dpdGNoZXIgPSAoeyBpY29uLCAuLi5pY29uUHJvcHMgfTogSWNvblN3aXRjaGVyUHJvcHMpID0+IHtcbiAgaWYgKGljb24uaW5jbHVkZXMoJzxzdmcnKSkge1xuICAgIHJldHVybiA8SW5saW5lU3ZnIGRhdGE9e2ljb259IHsuLi5pY29uUHJvcHN9IC8+O1xuICB9XG4gIC8vIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGZvciBhcHBzIHVzaW5nIHRoZSBcImljb24gbmFtZVwiLlxuICBzd2l0Y2ggKGljb24pIHtcbiAgICAvLyBMZWdhY3kgYXBwbGljYXRpb24gaWNvbnNcbiAgICAvLyBUT0RPOiBUbyBiZSByZW1vdmVkIG9uY2UgTUMgYXBwbGljYXRpb25zIGljb25zIHVwZGF0ZXMgYXJlIHB1Ymxpc2hlZFxuICAgIGNhc2UgJ1RyZWVTdHJ1Y3R1cmVJY29uJzpcbiAgICAgIHJldHVybiA8VHJlZVN0cnVjdHVyZUljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnVXNlckZpbGxlZEljb24nOlxuICAgICAgcmV0dXJuIDxVc2VyRmlsbGVkSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdTcGVlZG9tZXRlckljb24nOlxuICAgICAgcmV0dXJuIDxTcGVlZG9tZXRlckljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnVGFnTXVsdGlJY29uJzpcbiAgICAgIHJldHVybiA8VGFnTXVsdGlJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ0NhcnRJY29uJzpcbiAgICAgIHJldHVybiA8Q2FydEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnQm94SWNvbic6XG4gICAgICByZXR1cm4gPEJveEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnR2Vhckljb24nOlxuICAgICAgcmV0dXJuIDxHZWFySWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdMaXN0V2l0aFNlYXJjaEljb24nOlxuICAgICAgcmV0dXJuIDxMaXN0V2l0aFNlYXJjaEljb24gey4uLmljb25Qcm9wc30gLz47XG5cbiAgICAvLyBDdXN0b20gYXBwbGljYXRpb24gaWNvbnMgc2V0XG4gICAgY2FzZSAnSGVhcnRJY29uJzpcbiAgICAgIHJldHVybiA8SGVhcnRJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1BhcGVyY2xpcEljb24nOlxuICAgICAgcmV0dXJuIDxQYXBlcmNsaXBJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1BsdWdpbkljb24nOlxuICAgICAgcmV0dXJuIDxQbHVnaW5JY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1JvY2tldEljb24nOlxuICAgICAgcmV0dXJuIDxSb2NrZXRJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1N0YXJJY29uJzpcbiAgICAgIHJldHVybiA8U3Rhckljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnQ29ubmVjdGVkU3F1YXJlSWNvbic6XG4gICAgICByZXR1cm4gPENvbm5lY3RlZFNxdWFyZUljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgLy8gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgY2FzZSAnV29ybGRJY29uJzpcbiAgICAgIHJldHVybiA8V29ybGRJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gPGltZyBzcmM9e01pc3NpbmdJbWFnZVN2Z30gYWx0PVwibWlzc2luZyBpY29uXCIgLz47XG4gIH1cbn07XG5JY29uU3dpdGNoZXIuZGlzcGxheU5hbWUgPSAnSWNvblN3aXRjaGVyJztcblxudHlwZSBNZW51RXhwYW5kZXJQcm9wcyA9IHtcbiAgaXNWaXNpYmxlOiBib29sZWFuO1xuICBvbkNsaWNrOiAoXG4gICAgZTogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4gfCBLZXlib2FyZEV2ZW50PEhUTUxEaXZFbGVtZW50PlxuICApID0+IHZvaWQ7XG4gIGlzTWVudU9wZW46IGJvb2xlYW47XG59O1xuXG5jb25zdCBnZXRJY29uID0gKHsgaXNNZW51T3BlbiB9OiBNZW51RXhwYW5kZXJQcm9wcykgPT4ge1xuICBjb25zdCBJY29uID0gaXNNZW51T3BlbiA/IFNpZGViYXJDb2xsYXBzZUljb24gOiBTaWRlYmFyRXhwYW5kSWNvbjtcbiAgcmV0dXJuIDxJY29uIGNvbG9yPVwic3VyZmFjZVwiIHNpemU9XCJiaWdcIiAvPjtcbn07XG5cbmNvbnN0IE1lbnVFeHBhbmRlciA9IChwcm9wczogTWVudUV4cGFuZGVyUHJvcHMpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8bGlcbiAgICAgIGtleT1cImV4cGFuZGVyXCJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcyhzdHlsZXMuZXhwYW5kZXIsIHtcbiAgICAgICAgW3N0eWxlcy5oaWRkZW5dOiAhcHJvcHMuaXNWaXNpYmxlLFxuICAgICAgfSl9XG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBvbkNsaWNrPXtwcm9wcy5vbkNsaWNrfVxuICAgICAgICBvbktleURvd249eyhlKSA9PiB7XG4gICAgICAgICAgaWYgKGUua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICBwcm9wcy5vbkNsaWNrKGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgIGNsYXNzTmFtZT17c3R5bGVzWydleHBhbmQtaWNvbiddfVxuICAgICAgICBkYXRhLXRlc3RpZD1cIm1lbnUtZXhwYW5kZXJcIlxuICAgICAgPlxuICAgICAgICB7Z2V0SWNvbihwcm9wcyl9XG4gICAgICA8L2Rpdj5cbiAgICA8L2xpPlxuICApO1xufTtcbk1lbnVFeHBhbmRlci5kaXNwbGF5TmFtZSA9ICdNZW51RXhwYW5kZXInO1xuXG5jb25zdCBGYWRlZCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgwLCAxNTMsIDEzNSwgMCkgMCUsICMwMGIzOWUgMTAwJSk7XG4gIHotaW5kZXg6IDE7XG5gO1xuXG50eXBlIE1lbnVHcm91cFByb3BzID0ge1xuICBpZDogc3RyaW5nO1xuICBsZXZlbDogMSB8IDI7XG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcbiAgaXNFeHBhbmRlZD86IGJvb2xlYW47XG4gIGhhc1N1Ym1lbnU/OiBib29sZWFuO1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbiAgc3VibWVudVZlcnRpY2FsUG9zaXRpb24/OiBudW1iZXI7XG4gIGlzU3VibWVudUFib3ZlTWVudUl0ZW0/OiBib29sZWFuO1xufTtcblxuY29uc3QgZ2V0U3VibWVudVBvc2l0aW9uQmFzZWRPbk1lbnVJdGVtUG9zaXRpb24gPSAoXG4gIGlzU3VibWVudUFib3ZlTWVudUl0ZW0/OiBib29sZWFuLFxuICBzdWJtZW51VmVydGljYWxQb3NpdGlvbj86IG51bWJlclxuKSA9PiBjc3NgXG4gICR7aXNTdWJtZW51QWJvdmVNZW51SXRlbSA/ICdib3R0b20nIDogJ3RvcCd9OiAke3N1Ym1lbnVWZXJ0aWNhbFBvc2l0aW9ufXB4XG5gO1xuXG5jb25zdCBnZXRDb250YWluZXJQb3NpdGlvbkJhc2VkT25NZW51SXRlbVBvc2l0aW9uID0gKFxuICBpc1N1Ym1lbnVBYm92ZU1lbnVJdGVtPzogYm9vbGVhbixcbiAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZD86IGJvb2xlYW4sXG4gIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkPzogYm9vbGVhblxuKSA9PiBbXG4gIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkICYmXG4gICAgY3NzYFxuICAgICAgJHtpc1N1Ym1lbnVBYm92ZU1lbnVJdGVtXG4gICAgICAgID8gJ2JvdHRvbSdcbiAgICAgICAgOiAndG9wJ306IC0ke0RJTUVOU0lPTlMubmF2TWVudUl0ZW1IZWlnaHR9O1xuICAgIGAsXG4gIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51RXhwYW5kZWQgJiZcbiAgICBpc1N1Ym1lbnVBYm92ZU1lbnVJdGVtICYmXG4gICAgY3NzYFxuICAgICAgYm90dG9tOiAwO1xuICAgIGAsXG4gIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51RXhwYW5kZWQgJiZcbiAgICAhaXNTdWJtZW51QWJvdmVNZW51SXRlbSAmJlxuICAgIGNzc2BcbiAgICAgIHRvcDogMDtcbiAgICBgLFxuXTtcblxuY29uc3QgTWVudUdyb3VwID0gZm9yd2FyZFJlZjxIVE1MVUxpc3RFbGVtZW50LCBNZW51R3JvdXBQcm9wcz4oKHByb3BzLCByZWYpID0+IHtcbiAgaWYgKFxuICAgIHByb3BzLmlzRXhwYW5kZWQgJiZcbiAgICAoKHByb3BzLmxldmVsID09PSAyICYmICFwcm9wcy5oYXNTdWJtZW51KSB8fFxuICAgICAgKHByb3BzLmxldmVsID09PSAyICYmICFwcm9wcy5pc0FjdGl2ZSkpXG4gICkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNvbnN0IGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51RXhwYW5kZWQgPVxuICAgIHByb3BzLmxldmVsID09PSAyICYmIHByb3BzLmlzQWN0aXZlICYmIHByb3BzLmlzRXhwYW5kZWQ7XG4gIGNvbnN0IGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkID1cbiAgICBwcm9wcy5sZXZlbCA9PT0gMiAmJiBwcm9wcy5pc0FjdGl2ZSAmJiAhcHJvcHMuaXNFeHBhbmRlZDtcbiAgcmV0dXJuIChcbiAgICA8dWxcbiAgICAgIHJlZj17cmVmICYmIHByb3BzLmxldmVsID09PSAyID8gcmVmIDogbnVsbH1cbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICAke2dldFN1Ym1lbnVQb3NpdGlvbkJhc2VkT25NZW51SXRlbVBvc2l0aW9uKFxuICAgICAgICAgIHByb3BzLmlzU3VibWVudUFib3ZlTWVudUl0ZW0sXG4gICAgICAgICAgcHJvcHMuc3VibWVudVZlcnRpY2FsUG9zaXRpb25cbiAgICAgICAgKX07XG4gICAgICBcbiAgICAgIC8vIHByZXZlbnQgZ2xpdGNoeSBiZWhhdmlvciBkdXJpbmcgdGhlIGluaXRpYWwgcmVuZGVyIHdoZW4gdGhlIHN1Ym1lbnUncyB2ZXJ0aWNhbCBwb3NpdGlvbiBpcyBldmFsdWF0ZWQgYXMgMFxuICAgICAgJHtcbiAgICAgICAgcHJvcHMuc3VibWVudVZlcnRpY2FsUG9zaXRpb24gPT09IDAgJiZcbiAgICAgICAgY3NzYFxuICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgYFxuICAgICAgfVxuXG4gICAgICAgIC8vIGFkZGl0aW9uYWwgc3R5bGluZyBvZiB0aGUgcHNldWRvLWVsZW1lbnQgZW5hYmxpbmcgc21vb3RoIGNvdXJzb3IgbW92ZW1lbnRcbiAgICAgICAgOjpiZWZvcmUge1xuICAgICAgICAgICR7Z2V0Q29udGFpbmVyUG9zaXRpb25CYXNlZE9uTWVudUl0ZW1Qb3NpdGlvbihcbiAgICAgICAgICAgIHByb3BzLmlzU3VibWVudUFib3ZlTWVudUl0ZW0sXG4gICAgICAgICAgICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUV4cGFuZGVkLFxuICAgICAgICAgICAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWRcbiAgICAgICAgICApfVxuICAgICAgYH1cbiAgICAgIGlkPXtgZ3JvdXAtJHtwcm9wcy5pZH1gfVxuICAgICAgZGF0YS10ZXN0aWQ9e2Bncm91cC0ke3Byb3BzLmlkfWB9XG4gICAgICByb2xlPVwibWVudVwiXG4gICAgICBhcmlhLWV4cGFuZGVkPXtcbiAgICAgICAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCB8fFxuICAgICAgICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUNvbGxhcHNlZFxuICAgICAgfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKFxuICAgICAgICB7IFtzdHlsZXMubGlzdF06IHByb3BzLmxldmVsID09PSAxIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzWydzdWJsaXN0J11dOiBwcm9wcy5sZXZlbCA9PT0gMixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXNbJ3N1Ymxpc3QtZXhwYW5kZWRfX2FjdGl2ZSddXTpcbiAgICAgICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51RXhwYW5kZWQsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzWydzdWJsaXN0LWNvbGxhcHNlZF9fZW1wdHknXV06XG4gICAgICAgICAgICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUNvbGxhcHNlZCAmJiAhcHJvcHMuaGFzU3VibWVudSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXNbJ3N1Ymxpc3QtY29sbGFwc2VkX19hY3RpdmUnXV06XG4gICAgICAgICAgICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUNvbGxhcHNlZCAmJlxuICAgICAgICAgICAgIXByb3BzLmlzU3VibWVudUFib3ZlTWVudUl0ZW0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzWydzdWJsaXN0LWNvbGxhcHNlZF9fYWN0aXZlX19hYm92ZSddXTpcbiAgICAgICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkICYmIHByb3BzLmlzU3VibWVudUFib3ZlTWVudUl0ZW0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzLnN1Ymxpc3RfX2luYWN0aXZlXTogIWlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkLFxuICAgICAgICB9XG4gICAgICApfVxuICAgID5cbiAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICA8L3VsPlxuICApO1xufSk7XG5NZW51R3JvdXAuZGlzcGxheU5hbWUgPSAnTWVudUdyb3VwJztcblxudHlwZSBNZW51SXRlbVByb3BzID0ge1xuICBoYXNTdWJtZW51OiBib29sZWFuO1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgaXNNYWluTWVudVJvdXRlQWN0aXZlPzogYm9vbGVhbjtcbiAgaXNNZW51T3BlbjogYm9vbGVhbjtcbiAgb25DbGljazogTW91c2VFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+O1xuICBvbk1vdXNlRW50ZXI/OlxuICAgIHwgTW91c2VFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+XG4gICAgfCBGb2N1c0V2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD47XG4gIG9uTW91c2VMZWF2ZT86XG4gICAgfCBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD5cbiAgICB8IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxFbGVtZW50PjtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgaWRlbnRpZmllcj86IHN0cmluZztcbn07XG5jb25zdCBNZW51SXRlbSA9IChwcm9wczogTWVudUl0ZW1Qcm9wcykgPT4ge1xuICByZXR1cm4gKFxuICAgIDxsaVxuICAgICAgcm9sZT1cIm1lbnVpdGVtXCJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcyhzdHlsZXNbJ2xpc3QtaXRlbSddLCB7XG4gICAgICAgIFtzdHlsZXMuaXRlbV9fYWN0aXZlXTogcHJvcHMuaXNBY3RpdmUsXG4gICAgICAgIFtzdHlsZXNbJ2l0ZW1fbWVudV9fYWN0aXZlJ11dOiBwcm9wcy5pc01haW5NZW51Um91dGVBY3RpdmUgPz8gZmFsc2UsXG4gICAgICAgIFtzdHlsZXNbJ2l0ZW1fbWVudS1jb2xsYXBzZWQnXV06ICFwcm9wcy5pc01lbnVPcGVuLFxuICAgICAgfSl9XG4gICAgICBvbkNsaWNrPXtwcm9wcy5vbkNsaWNrfVxuICAgICAgb25Nb3VzZUVudGVyPXtwcm9wcy5vbk1vdXNlRW50ZXIgYXMgTW91c2VFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+fVxuICAgICAgb25Nb3VzZUxlYXZlPXtwcm9wcy5vbk1vdXNlTGVhdmUgYXMgTW91c2VFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+fVxuICAgICAgb25Gb2N1cz17cHJvcHMub25Nb3VzZUVudGVyIGFzIEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxFbGVtZW50Pn1cbiAgICAgIG9uQmx1cj17cHJvcHMub25Nb3VzZUxlYXZlIGFzIEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxFbGVtZW50Pn1cbiAgICAgIGRhdGEtbWVudWl0ZW09e3Byb3BzLmlkZW50aWZpZXJ9XG4gICAgPlxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snaXRlbS1saW5rJ119Pntwcm9wcy5jaGlsZHJlbn08L2Rpdj5cbiAgICA8L2xpPlxuICApO1xufTtcblxuTWVudUl0ZW0uZGlzcGxheU5hbWUgPSAnTWVudUl0ZW0nO1xuXG5leHBvcnQgdHlwZSBNZW51SXRlbUxpbmtQcm9wcyA9IHtcbiAgbGlua1RvPzogc3RyaW5nO1xuICBleGFjdE1hdGNoOiBib29sZWFuO1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBvbkNsaWNrPzogKGV2ZW50OiBTeW50aGV0aWNFdmVudDxIVE1MQW5jaG9yRWxlbWVudD4pID0+IHZvaWQ7XG4gIHVzZUZ1bGxSZWRpcmVjdHNGb3JMaW5rcz86IGJvb2xlYW47XG4gIGlzU3VibWVudUxpbms/OiBib29sZWFuO1xufTtcbmNvbnN0IG1lbnVJdGVtTGlua0RlZmF1bHRQcm9wczogUGljazxNZW51SXRlbUxpbmtQcm9wcywgJ2V4YWN0TWF0Y2gnPiA9IHtcbiAgZXhhY3RNYXRjaDogZmFsc2UsXG59O1xuY29uc3QgTmF2TGlua1dyYXBwZXIgPSAocHJvcHM6IE1lbnVJdGVtTGlua1Byb3BzKSA9PiB7XG4gIGlmIChwcm9wcy5pc1N1Ym1lbnVMaW5rKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbJ3RleHQtbGluay1zdWJsaXN0LXdyYXBwZXInXX0+XG4gICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIDw+e3Byb3BzLmNoaWxkcmVufTwvPjtcbn07XG5jb25zdCBOYXZMaW5rQ2xpY2thYmxlQ29udGVudFdyYXBwZXIgPSAocHJvcHM6IE1lbnVJdGVtTGlua1Byb3BzKSA9PiB7XG4gIGlmIChwcm9wcy5pc1N1Ym1lbnVMaW5rKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbJ25hdmxpbmstY2xpY2thYmxlLWNvbnRlbnQnXX0+XG4gICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIDw+e3Byb3BzLmNoaWxkcmVufTwvPjtcbn07XG5cbmNvbnN0IE1lbnVJdGVtTGluayA9IChwcm9wczogTWVudUl0ZW1MaW5rUHJvcHMpID0+IHtcbiAgY29uc3QgcmVkaXJlY3RUbyA9ICh0YXJnZXRVcmw6IHN0cmluZykgPT4gbG9jYXRpb24ucmVwbGFjZSh0YXJnZXRVcmwpO1xuICBpZiAocHJvcHMubGlua1RvKSB7XG4gICAgY29uc3QgbGlua0xldmVsID0gcHJvcHMuaXNTdWJtZW51TGluayA/ICd0ZXh0LWxpbmstc3VibGlzdCcgOiAndGV4dC1saW5rJztcbiAgICByZXR1cm4gKFxuICAgICAgPE5hdkxpbmtXcmFwcGVyIHsuLi5wcm9wc30+XG4gICAgICAgIDxOYXZMaW5rXG4gICAgICAgICAgdG89e3Byb3BzLmxpbmtUb31cbiAgICAgICAgICBleGFjdD17cHJvcHMuZXhhY3RNYXRjaH1cbiAgICAgICAgICBhY3RpdmVDbGFzc05hbWU9e3N0eWxlcy5oaWdobGlnaHRlZH1cbiAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tsaW5rTGV2ZWxdfVxuICAgICAgICAgIGRhdGEtbGluay1sZXZlbD17bGlua0xldmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKHByb3BzLmxpbmtUbyAmJiBwcm9wcy51c2VGdWxsUmVkaXJlY3RzRm9yTGlua3MpIHtcbiAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgcmVkaXJlY3RUbyhwcm9wcy5saW5rVG8pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9wcy5vbkNsaWNrKSB7XG4gICAgICAgICAgICAgIGV2ZW50LnBlcnNpc3QoKTtcbiAgICAgICAgICAgICAgcHJvcHMub25DbGljayhldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxOYXZMaW5rQ2xpY2thYmxlQ29udGVudFdyYXBwZXIgey4uLnByb3BzfT5cbiAgICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgICA8L05hdkxpbmtDbGlja2FibGVDb250ZW50V3JhcHBlcj5cbiAgICAgICAgPC9OYXZMaW5rPlxuICAgICAgPC9OYXZMaW5rV3JhcHBlcj5cbiAgICApO1xuICB9XG4gIHJldHVybiA8Pntwcm9wcy5jaGlsZHJlbn08Lz47XG59O1xuTWVudUl0ZW1MaW5rLmRpc3BsYXlOYW1lID0gJ01lbnVJdGVtTGluayc7XG5NZW51SXRlbUxpbmsuZGVmYXVsdFByb3BzID0gbWVudUl0ZW1MaW5rRGVmYXVsdFByb3BzO1xuXG5jb25zdCBpc0V2ZXJ5TWVudVZpc2liaWxpdHlTZXRUb0hpZGRlbiA9IChcbiAgbWVudVZpc2liaWxpdGllcz86IFROb3JtYWxpemVkTWVudVZpc2liaWxpdGllcyB8IG51bGwsXG4gIG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzPzogc3RyaW5nW11cbikgPT5cbiAgQXJyYXkuaXNBcnJheShuYW1lc09mTWVudVZpc2liaWxpdGllcykgJiZcbiAgbmFtZXNPZk1lbnVWaXNpYmlsaXRpZXMubGVuZ3RoID4gMCAmJlxuICBuYW1lc09mTWVudVZpc2liaWxpdGllcy5ldmVyeShcbiAgICAobmFtZU9mTWVudVZpc2liaWxpdHkpID0+XG4gICAgICBtZW51VmlzaWJpbGl0aWVzICYmIG1lbnVWaXNpYmlsaXRpZXNbbmFtZU9mTWVudVZpc2liaWxpdHldID09PSB0cnVlXG4gICk7XG5cbnR5cGUgUmVzdHJpY3RlZE1lbnVJdGVtUHJvcHMgPSB7XG4gIGZlYXR1cmVUb2dnbGU/OiBzdHJpbmc7XG4gIG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzPzogc3RyaW5nW107XG4gIHByb2plY3RQZXJtaXNzaW9uczogVFByb2plY3RQZXJtaXNzaW9ucztcbiAgbWVudVZpc2liaWxpdGllczogVE5vcm1hbGl6ZWRNZW51VmlzaWJpbGl0aWVzIHwgbnVsbDtcbiAga2V5T2ZNZW51SXRlbTogc3RyaW5nO1xuICBwZXJtaXNzaW9uczogc3RyaW5nW107XG4gIGFjdGlvblJpZ2h0cz86IFRBY3Rpb25SaWdodFtdO1xuICBkYXRhRmVuY2VzPzogVERhdGFGZW5jZVtdO1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xufTtcbnR5cGUgVExvbmdMaXZlZEZsYWcgPSB7XG4gIHZhbHVlOiBib29sZWFuO1xuICByZWFzb24/OiBzdHJpbmc7XG59O1xuY29uc3QgcmVzdHJpY3RlZE1lbnVJdGVtRGVmYXVsdFByb3BzOiBQaWNrPFxuICBSZXN0cmljdGVkTWVudUl0ZW1Qcm9wcyxcbiAgJ3Blcm1pc3Npb25zJ1xuPiA9IHtcbiAgcGVybWlzc2lvbnM6IFtdLFxufTtcbmZ1bmN0aW9uIGlzTG9uZ0xpdmVkRmxhZyhcbiAgZmxhZzogVEZsYWdWYXJpYXRpb24gfCBUTG9uZ0xpdmVkRmxhZ1xuKTogZmxhZyBpcyBUTG9uZ0xpdmVkRmxhZyB7XG4gIHJldHVybiB0eXBlb2YgKGZsYWcgYXMgVExvbmdMaXZlZEZsYWcpPy52YWx1ZSA9PT0gJ2Jvb2xlYW4nO1xufVxuY29uc3QgUmVzdHJpY3RlZE1lbnVJdGVtID0gKHByb3BzOiBSZXN0cmljdGVkTWVudUl0ZW1Qcm9wcykgPT4ge1xuICAvLyBOT1RFOiBDdXN0b20gYXBwbGljYXRpb24gYXJlIGFjdGl2YXRlZC9kZWFjdGl2YXRlZCB3aGlsZSB0aGVpclxuICAvLyB2aXNpYmlsaXR5IGlzIG5vdCBjb250cm9sbGVkIHZpYSBhIHZpc2liaWlsaXR5IG92ZXJ3cml0ZS5cbiAgY29uc3QgZmxhZ1ZhcmlhdGlvbiA9IHVzZUZsYWdWYXJpYXRpb24ocHJvcHMuZmVhdHVyZVRvZ2dsZSk7XG4gIGlmIChcbiAgICBpc0V2ZXJ5TWVudVZpc2liaWxpdHlTZXRUb0hpZGRlbihcbiAgICAgIHByb3BzLm1lbnVWaXNpYmlsaXRpZXMsXG4gICAgICBwcm9wcy5uYW1lc09mTWVudVZpc2liaWxpdGllc1xuICAgIClcbiAgKVxuICAgIHJldHVybiBudWxsO1xuXG4gIGNvbnN0IHBlcm1pc3Npb25zV3JhcHBlciA9XG4gICAgKEFycmF5LmlzQXJyYXkocHJvcHMucGVybWlzc2lvbnMpICYmIHByb3BzLnBlcm1pc3Npb25zLmxlbmd0aCA+IDApIHx8XG4gICAgKEFycmF5LmlzQXJyYXkocHJvcHMuZGF0YUZlbmNlcykgJiYgcHJvcHMuZGF0YUZlbmNlcy5sZW5ndGggPiAwKSA/IChcbiAgICAgIDxSZXN0cmljdGVkQnlQZXJtaXNzaW9uc1xuICAgICAgICBwZXJtaXNzaW9ucz17cHJvcHMucGVybWlzc2lvbnN9XG4gICAgICAgIGFjdGlvblJpZ2h0cz17cHJvcHMuYWN0aW9uUmlnaHRzfVxuICAgICAgICBkYXRhRmVuY2VzPXtwcm9wcy5kYXRhRmVuY2VzfVxuICAgICAgICBzZWxlY3REYXRhRmVuY2VEYXRhPXsoZGVtYW5kZWREYXRhRmVuY2UpID0+IHtcbiAgICAgICAgICBzd2l0Y2ggKGRlbWFuZGVkRGF0YUZlbmNlLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3N0b3JlJzpcbiAgICAgICAgICAgICAgcmV0dXJuIGRlbWFuZGVkRGF0YUZlbmNlLmFjdHVhbERhdGFGZW5jZVZhbHVlcztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgLy8gQWx3YXlzIGNoZWNrIHRoYXQgc29tZSBvZiB0aGUgZ2l2ZW4gcGVybWlzc2lvbnMgbWF0Y2guXG4gICAgICAgIHNob3VsZE1hdGNoU29tZVBlcm1pc3Npb25zPXt0cnVlfVxuICAgICAgICBwcm9qZWN0UGVybWlzc2lvbnM9e3Byb3BzLnByb2plY3RQZXJtaXNzaW9uc31cbiAgICAgID5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9SZXN0cmljdGVkQnlQZXJtaXNzaW9ucz5cbiAgICApIDogKFxuICAgICAgPD57cHJvcHMuY2hpbGRyZW59PC8+XG4gICAgKTtcblxuICBpZiAocHJvcHMuZmVhdHVyZVRvZ2dsZSkge1xuICAgIC8vIEEgcmVndWxhciBzaG9ydC1saXZlZCBmZWF0dXJlIHRvZ2dsZVxuICAgIGlmIChmbGFnVmFyaWF0aW9uID09PSB0cnVlKSByZXR1cm4gcGVybWlzc2lvbnNXcmFwcGVyO1xuICAgIC8vIEEgbG9uZy1saXZlZCBmZWF0dXJlIHRvZ2dsZSB3aXRoIGB7IHZhbHVlOiBib29sZWFuLCBzdHJpbmc6IHJlYXNvbiB9YFxuICAgIGlmIChpc0xvbmdMaXZlZEZsYWcoZmxhZ1ZhcmlhdGlvbikgJiYgZmxhZ1ZhcmlhdGlvbi52YWx1ZSA9PT0gdHJ1ZSlcbiAgICAgIHJldHVybiBwZXJtaXNzaW9uc1dyYXBwZXI7XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBwZXJtaXNzaW9uc1dyYXBwZXI7XG59O1xuUmVzdHJpY3RlZE1lbnVJdGVtLmRpc3BsYXlOYW1lID0gJ1Jlc3RyaWN0ZWRNZW51SXRlbSc7XG5SZXN0cmljdGVkTWVudUl0ZW0uZGVmYXVsdFByb3BzID0gcmVzdHJpY3RlZE1lbnVJdGVtRGVmYXVsdFByb3BzO1xuXG50eXBlIE1lbnVMYWJlbFByb3BzID0ge1xuICBsYWJlbEFsbExvY2FsZXM6IFRMb2NhbGl6ZWRGaWVsZFtdO1xuICBkZWZhdWx0TGFiZWw/OiBzdHJpbmc7XG4gIGFwcGxpY2F0aW9uTG9jYWxlOiBzdHJpbmc7XG59O1xuY29uc3QgTWVudUxhYmVsID0gKHByb3BzOiBNZW51TGFiZWxQcm9wcykgPT4ge1xuICBjb25zdCBsb2NhbGl6ZWRMYWJlbCA9IHByb3BzLmxhYmVsQWxsTG9jYWxlcy5maW5kKChsb2MpID0+XG4gICAgcHJvcHMuYXBwbGljYXRpb25Mb2NhbGUuc3RhcnRzV2l0aChsb2MubG9jYWxlKVxuICApO1xuICBpZiAobG9jYWxpemVkTGFiZWwpIHJldHVybiA8Pntsb2NhbGl6ZWRMYWJlbC52YWx1ZX08Lz47XG4gIGlmIChwcm9wcy5kZWZhdWx0TGFiZWwpIHJldHVybiA8Pntwcm9wcy5kZWZhdWx0TGFiZWx9PC8+O1xuICByZXR1cm4gPD57Tk9fVkFMVUVfRkFMTEJBQ0t9PC8+O1xufTtcblxudHlwZSBUTmF2QmFyTGF5b3V0UHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG59O1xuY29uc3QgTmF2QmFyTGF5b3V0ID0gZm9yd2FyZFJlZjxIVE1MRWxlbWVudCwgVE5hdkJhckxheW91dFByb3BzPihcbiAgKHByb3BzLCByZWYpID0+IChcbiAgICA8PlxuICAgICAgPEdsb2JhbFxuICAgICAgICBzdHlsZXM9e2Nzc2BcbiAgICAgICAgICAke2NvbXBpbGVkU3R5bGVzLmdsb2JhbH1cbiAgICAgICAgYH1cbiAgICAgIC8+XG4gICAgICA8bmF2XG4gICAgICAgIHJlZj17cmVmfVxuICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1snbGVmdC1uYXZpZ2F0aW9uJ119XG4gICAgICAgIGRhdGEtdGVzdD1cImxlZnQtbmF2aWdhdGlvblwiXG4gICAgICAgIGRhdGEtdGVzdGlkPVwibGVmdC1uYXZpZ2F0aW9uXCJcbiAgICAgID5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9uYXY+XG4gICAgPC8+XG4gIClcbik7XG5OYXZCYXJMYXlvdXQuZGlzcGxheU5hbWUgPSAnTmF2QmFyTGF5b3V0JztcblxudHlwZSBJdGVtQ29udGFpbmVyUHJvcHMgPSB7XG4gIGxhYmVsQWxsTG9jYWxlczogVExvY2FsaXplZEZpZWxkW107XG4gIGRlZmF1bHRMYWJlbD86IHN0cmluZztcbiAgYXBwbGljYXRpb25Mb2NhbGU6IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xuICBpc01lbnVPcGVuPzogYm9vbGVhbjtcbn07XG5cbmNvbnN0IEl0ZW1Db250YWluZXIgPSAocHJvcHM6IEl0ZW1Db250YWluZXJQcm9wcykgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbJ2l0ZW0taWNvbi10ZXh0J119PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snaWNvbi1jb250YWluZXInXX0+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuaWNvbn0+XG4gICAgICAgICAgPEljb25Td2l0Y2hlciBpY29uPXtwcm9wcy5pY29ufSBzaXplPVwic2NhbGVcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAge3Byb3BzLmlzTWVudU9wZW4gPyAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMudGl0bGV9PlxuICAgICAgICAgIDxNZW51TGFiZWxcbiAgICAgICAgICAgIGxhYmVsQWxsTG9jYWxlcz17cHJvcHMubGFiZWxBbGxMb2NhbGVzfVxuICAgICAgICAgICAgZGVmYXVsdExhYmVsPXtwcm9wcy5kZWZhdWx0TGFiZWx9XG4gICAgICAgICAgICBhcHBsaWNhdGlvbkxvY2FsZT17cHJvcHMuYXBwbGljYXRpb25Mb2NhbGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICApIDogbnVsbH1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbkl0ZW1Db250YWluZXIuZGlzcGxheU5hbWUgPSAnSXRlbUNvbnRhaW5lcic7XG5cbmV4cG9ydCB7XG4gIFJlc3RyaWN0ZWRNZW51SXRlbSxcbiAgTWVudUl0ZW0sXG4gIE1lbnVJdGVtTGluayxcbiAgSWNvblN3aXRjaGVyLFxuICBNZW51R3JvdXAsXG4gIE1lbnVMYWJlbCxcbiAgTWVudUV4cGFuZGVyLFxuICBGYWRlZCxcbiAgTmF2QmFyTGF5b3V0LFxuICBJdGVtQ29udGFpbmVyLFxufTtcbiJdfQ== */",
250
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1
251
+ });
252
+ const getSubmenuPositionBasedOnMenuItemPosition = (isSubmenuAboveMenuItem, submenuVerticalPosition) => /*#__PURE__*/react$1.css(isSubmenuAboveMenuItem ? 'bottom' : 'top', ":", submenuVerticalPosition, "px;" + (process.env.NODE_ENV === "production" ? "" : ";label:getSubmenuPositionBasedOnMenuItemPosition;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUtaXRlbXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdMUSIsImZpbGUiOiJtZW51LWl0ZW1zLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGZvcndhcmRSZWYsXG4gIGxhenksXG4gIHR5cGUgTW91c2VFdmVudEhhbmRsZXIsXG4gIHR5cGUgRm9jdXNFdmVudEhhbmRsZXIsXG4gIHR5cGUgTW91c2VFdmVudCxcbiAgdHlwZSBLZXlib2FyZEV2ZW50LFxuICB0eXBlIFJlYWN0Tm9kZSxcbiAgdHlwZSBTeW50aGV0aWNFdmVudCxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgR2xvYmFsLCBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB1c2VGbGFnVmFyaWF0aW9uIH0gZnJvbSAnQGZsb3BmbGlwL3JlYWN0LWJyb2FkY2FzdCc7XG5pbXBvcnQgdHlwZSB7IFRGbGFnVmFyaWF0aW9uIH0gZnJvbSAnQGZsb3BmbGlwL3R5cGVzJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgTmF2TGluayB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHR5cGUge1xuICBUTm9ybWFsaXplZE1lbnVWaXNpYmlsaXRpZXMsXG4gIFROb3JtYWxpemVkUGVybWlzc2lvbnMsXG4gIFROb3JtYWxpemVkQWN0aW9uUmlnaHRzLFxuICBUTm9ybWFsaXplZERhdGFGZW5jZXMsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IE1pc3NpbmdJbWFnZVN2ZyBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hc3NldHMvaW1hZ2VzL2RpYWdvbmFsLWxpbmUuc3ZnJztcbmltcG9ydCB7IE5PX1ZBTFVFX0ZBTExCQUNLIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7IFJlc3RyaWN0ZWRCeVBlcm1pc3Npb25zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvcGVybWlzc2lvbnMnO1xuaW1wb3J0IHtcbiAgQmFja0ljb24sXG4gIFNpZGViYXJFeHBhbmRJY29uLFxuICBTaWRlYmFyQ29sbGFwc2VJY29uLFxufSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pY29ucyc7XG5pbXBvcnQgSW5saW5lU3ZnIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2ljb25zL2lubGluZS1zdmcnO1xuaW1wb3J0IHsgRElNRU5TSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIFREYXRhRmVuY2UsXG4gIFRBY3Rpb25SaWdodCxcbiAgVExvY2FsaXplZEZpZWxkLFxufSBmcm9tICcuLi8uLi90eXBlcy9nZW5lcmF0ZWQvcHJveHknO1xuaW1wb3J0IHsgbG9jYXRpb24gfSBmcm9tICcuLi8uLi91dGlscy9sb2NhdGlvbic7XG4vLyBodHRwczovL2JhYmVsanMuaW8vYmxvZy8yMDE3LzA5LzExL3plcm8tY29uZmlnLXdpdGgtYmFiZWwtbWFjcm9zXG5pbXBvcnQgY29tcGlsZWRTdHlsZXMgZnJvbSAvKiBwcmV2YWwgKi8gJy4vbmF2YmFyLnN0eWxlcyc7XG5cbmNvbnN0IHN0eWxlcyA9IGNvbXBpbGVkU3R5bGVzLmpzb25NYXA7XG5cbnR5cGUgVFByb2plY3RQZXJtaXNzaW9ucyA9IHtcbiAgcGVybWlzc2lvbnM6IFROb3JtYWxpemVkUGVybWlzc2lvbnMgfCBudWxsO1xuICBhY3Rpb25SaWdodHM6IFROb3JtYWxpemVkQWN0aW9uUmlnaHRzIHwgbnVsbDtcbiAgZGF0YUZlbmNlczogVE5vcm1hbGl6ZWREYXRhRmVuY2VzIHwgbnVsbDtcbn07XG5cbmNvbnN0IEhlYXJ0SWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9oZWFydCcpKTtcbmNvbnN0IFBhcGVyY2xpcEljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvcGFwZXJjbGlwJykpO1xuY29uc3QgUGx1Z2luSWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9wbHVnaW4nKSk7XG5jb25zdCBSb2NrZXRJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3JvY2tldCcpKTtcbmNvbnN0IFN0YXJJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3N0YXInKSk7XG5jb25zdCBDb25uZWN0ZWRTcXVhcmVJY29uID0gbGF6eShcbiAgKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9jb25uZWN0ZWQtc3F1YXJlJylcbik7XG5jb25zdCBXb3JsZEljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvd29ybGQnKSk7XG5jb25zdCBUcmVlU3RydWN0dXJlSWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy90cmVlLXN0cnVjdHVyZScpKTtcbmNvbnN0IFVzZXJGaWxsZWRJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3VzZXItZmlsbGVkJykpO1xuY29uc3QgU3BlZWRvbWV0ZXJJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3NwZWVkb21ldGVyJykpO1xuY29uc3QgVGFnTXVsdGlJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3RhZy1tdWx0aScpKTtcbmNvbnN0IENhcnRJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2NhcnQnKSk7XG5jb25zdCBCb3hJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2JveCcpKTtcbmNvbnN0IEdlYXJJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2dlYXInKSk7XG5jb25zdCBMaXN0V2l0aFNlYXJjaEljb24gPSBsYXp5KFxuICAoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2xpc3Qtd2l0aC1zZWFyY2gnKVxuKTtcblxudHlwZSBJY29uUHJvcHMgPSBQYXJhbWV0ZXJzPHR5cGVvZiBCYWNrSWNvbj5bMF07XG50eXBlIEljb25Td2l0Y2hlclByb3BzID0geyBpY29uOiBzdHJpbmcgfSAmIEljb25Qcm9wcztcbi8vIFRoZSBpY29uIGlzIGV4cGVjdGVkIHRvIGJlIHRoZSBgc3ZnYCBkb2N1bWVudCBhcyBhIHN0cmluZy5cbi8vIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBwdXJwb3Nlcywgd2Ugc3RpbGwgc3VwcG9ydCB0aGUgbGVnYWN5IFwiaWNvbiBuYW1lXCIsXG4vLyB3aGljaCB3ZSB0aGVuIG1hcCB0byBvbmUgb2YgdGhlIHByZS1kZWZpbmVkIGljb25zLlxuLy8gRXZlbnR1YWxseSwgd2Ugd2FudCB0byBnZXQgcmlkIG9mIHRoaXMgXCJzd2l0Y2hcIiBsb2dpYy5cbmNvbnN0IEljb25Td2l0Y2hlciA9ICh7IGljb24sIC4uLmljb25Qcm9wcyB9OiBJY29uU3dpdGNoZXJQcm9wcykgPT4ge1xuICBpZiAoaWNvbi5pbmNsdWRlcygnPHN2ZycpKSB7XG4gICAgcmV0dXJuIDxJbmxpbmVTdmcgZGF0YT17aWNvbn0gey4uLmljb25Qcm9wc30gLz47XG4gIH1cbiAgLy8gQmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZm9yIGFwcHMgdXNpbmcgdGhlIFwiaWNvbiBuYW1lXCIuXG4gIHN3aXRjaCAoaWNvbikge1xuICAgIC8vIExlZ2FjeSBhcHBsaWNhdGlvbiBpY29uc1xuICAgIC8vIFRPRE86IFRvIGJlIHJlbW92ZWQgb25jZSBNQyBhcHBsaWNhdGlvbnMgaWNvbnMgdXBkYXRlcyBhcmUgcHVibGlzaGVkXG4gICAgY2FzZSAnVHJlZVN0cnVjdHVyZUljb24nOlxuICAgICAgcmV0dXJuIDxUcmVlU3RydWN0dXJlSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdVc2VyRmlsbGVkSWNvbic6XG4gICAgICByZXR1cm4gPFVzZXJGaWxsZWRJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1NwZWVkb21ldGVySWNvbic6XG4gICAgICByZXR1cm4gPFNwZWVkb21ldGVySWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdUYWdNdWx0aUljb24nOlxuICAgICAgcmV0dXJuIDxUYWdNdWx0aUljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnQ2FydEljb24nOlxuICAgICAgcmV0dXJuIDxDYXJ0SWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdCb3hJY29uJzpcbiAgICAgIHJldHVybiA8Qm94SWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdHZWFySWNvbic6XG4gICAgICByZXR1cm4gPEdlYXJJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ0xpc3RXaXRoU2VhcmNoSWNvbic6XG4gICAgICByZXR1cm4gPExpc3RXaXRoU2VhcmNoSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcblxuICAgIC8vIEN1c3RvbSBhcHBsaWNhdGlvbiBpY29ucyBzZXRcbiAgICBjYXNlICdIZWFydEljb24nOlxuICAgICAgcmV0dXJuIDxIZWFydEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnUGFwZXJjbGlwSWNvbic6XG4gICAgICByZXR1cm4gPFBhcGVyY2xpcEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnUGx1Z2luSWNvbic6XG4gICAgICByZXR1cm4gPFBsdWdpbkljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnUm9ja2V0SWNvbic6XG4gICAgICByZXR1cm4gPFJvY2tldEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnU3Rhckljb24nOlxuICAgICAgcmV0dXJuIDxTdGFySWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdDb25uZWN0ZWRTcXVhcmVJY29uJzpcbiAgICAgIHJldHVybiA8Q29ubmVjdGVkU3F1YXJlSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICAvLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICBjYXNlICdXb3JsZEljb24nOlxuICAgICAgcmV0dXJuIDxXb3JsZEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiA8aW1nIHNyYz17TWlzc2luZ0ltYWdlU3ZnfSBhbHQ9XCJtaXNzaW5nIGljb25cIiAvPjtcbiAgfVxufTtcbkljb25Td2l0Y2hlci5kaXNwbGF5TmFtZSA9ICdJY29uU3dpdGNoZXInO1xuXG50eXBlIE1lbnVFeHBhbmRlclByb3BzID0ge1xuICBpc1Zpc2libGU6IGJvb2xlYW47XG4gIG9uQ2xpY2s6IChcbiAgICBlOiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PiB8IEtleWJvYXJkRXZlbnQ8SFRNTERpdkVsZW1lbnQ+XG4gICkgPT4gdm9pZDtcbiAgaXNNZW51T3BlbjogYm9vbGVhbjtcbn07XG5cbmNvbnN0IGdldEljb24gPSAoeyBpc01lbnVPcGVuIH06IE1lbnVFeHBhbmRlclByb3BzKSA9PiB7XG4gIGNvbnN0IEljb24gPSBpc01lbnVPcGVuID8gU2lkZWJhckNvbGxhcHNlSWNvbiA6IFNpZGViYXJFeHBhbmRJY29uO1xuICByZXR1cm4gPEljb24gY29sb3I9XCJzdXJmYWNlXCIgc2l6ZT1cImJpZ1wiIC8+O1xufTtcblxuY29uc3QgTWVudUV4cGFuZGVyID0gKHByb3BzOiBNZW51RXhwYW5kZXJQcm9wcykgPT4ge1xuICByZXR1cm4gKFxuICAgIDxsaVxuICAgICAga2V5PVwiZXhwYW5kZXJcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKHN0eWxlcy5leHBhbmRlciwge1xuICAgICAgICBbc3R5bGVzLmhpZGRlbl06ICFwcm9wcy5pc1Zpc2libGUsXG4gICAgICB9KX1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIG9uQ2xpY2s9e3Byb3BzLm9uQ2xpY2t9XG4gICAgICAgIG9uS2V5RG93bj17KGUpID0+IHtcbiAgICAgICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgIHByb3BzLm9uQ2xpY2soZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbJ2V4cGFuZC1pY29uJ119XG4gICAgICAgIGRhdGEtdGVzdGlkPVwibWVudS1leHBhbmRlclwiXG4gICAgICA+XG4gICAgICAgIHtnZXRJY29uKHByb3BzKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvbGk+XG4gICk7XG59O1xuTWVudUV4cGFuZGVyLmRpc3BsYXlOYW1lID0gJ01lbnVFeHBhbmRlcic7XG5cbmNvbnN0IEZhZGVkID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0zMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDE1MywgMTM1LCAwKSAwJSwgIzAwYjM5ZSAxMDAlKTtcbiAgei1pbmRleDogMTtcbmA7XG5cbnR5cGUgTWVudUdyb3VwUHJvcHMgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIGxldmVsOiAxIHwgMjtcbiAgaXNBY3RpdmU/OiBib29sZWFuO1xuICBpc0V4cGFuZGVkPzogYm9vbGVhbjtcbiAgaGFzU3VibWVudT86IGJvb2xlYW47XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xuICBzdWJtZW51VmVydGljYWxQb3NpdGlvbj86IG51bWJlcjtcbiAgaXNTdWJtZW51QWJvdmVNZW51SXRlbT86IGJvb2xlYW47XG59O1xuXG5jb25zdCBnZXRTdWJtZW51UG9zaXRpb25CYXNlZE9uTWVudUl0ZW1Qb3NpdGlvbiA9IChcbiAgaXNTdWJtZW51QWJvdmVNZW51SXRlbT86IGJvb2xlYW4sXG4gIHN1Ym1lbnVWZXJ0aWNhbFBvc2l0aW9uPzogbnVtYmVyXG4pID0+IGNzc2BcbiAgJHtpc1N1Ym1lbnVBYm92ZU1lbnVJdGVtID8gJ2JvdHRvbScgOiAndG9wJ306ICR7c3VibWVudVZlcnRpY2FsUG9zaXRpb259cHhcbmA7XG5cbmNvbnN0IGdldENvbnRhaW5lclBvc2l0aW9uQmFzZWRPbk1lbnVJdGVtUG9zaXRpb24gPSAoXG4gIGlzU3VibWVudUFib3ZlTWVudUl0ZW0/OiBib29sZWFuLFxuICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUV4cGFuZGVkPzogYm9vbGVhbixcbiAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQ/OiBib29sZWFuXG4pID0+IFtcbiAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQgJiZcbiAgICBjc3NgXG4gICAgICAke2lzU3VibWVudUFib3ZlTWVudUl0ZW1cbiAgICAgICAgPyAnYm90dG9tJ1xuICAgICAgICA6ICd0b3AnfTogLSR7RElNRU5TSU9OUy5uYXZNZW51SXRlbUhlaWdodH07XG4gICAgYCxcbiAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCAmJlxuICAgIGlzU3VibWVudUFib3ZlTWVudUl0ZW0gJiZcbiAgICBjc3NgXG4gICAgICBib3R0b206IDA7XG4gICAgYCxcbiAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCAmJlxuICAgICFpc1N1Ym1lbnVBYm92ZU1lbnVJdGVtICYmXG4gICAgY3NzYFxuICAgICAgdG9wOiAwO1xuICAgIGAsXG5dO1xuXG5jb25zdCBNZW51R3JvdXAgPSBmb3J3YXJkUmVmPEhUTUxVTGlzdEVsZW1lbnQsIE1lbnVHcm91cFByb3BzPigocHJvcHMsIHJlZikgPT4ge1xuICBpZiAoXG4gICAgcHJvcHMuaXNFeHBhbmRlZCAmJlxuICAgICgocHJvcHMubGV2ZWwgPT09IDIgJiYgIXByb3BzLmhhc1N1Ym1lbnUpIHx8XG4gICAgICAocHJvcHMubGV2ZWwgPT09IDIgJiYgIXByb3BzLmlzQWN0aXZlKSlcbiAgKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCA9XG4gICAgcHJvcHMubGV2ZWwgPT09IDIgJiYgcHJvcHMuaXNBY3RpdmUgJiYgcHJvcHMuaXNFeHBhbmRlZDtcbiAgY29uc3QgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQgPVxuICAgIHByb3BzLmxldmVsID09PSAyICYmIHByb3BzLmlzQWN0aXZlICYmICFwcm9wcy5pc0V4cGFuZGVkO1xuICByZXR1cm4gKFxuICAgIDx1bFxuICAgICAgcmVmPXtyZWYgJiYgcHJvcHMubGV2ZWwgPT09IDIgPyByZWYgOiBudWxsfVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgICR7Z2V0U3VibWVudVBvc2l0aW9uQmFzZWRPbk1lbnVJdGVtUG9zaXRpb24oXG4gICAgICAgICAgcHJvcHMuaXNTdWJtZW51QWJvdmVNZW51SXRlbSxcbiAgICAgICAgICBwcm9wcy5zdWJtZW51VmVydGljYWxQb3NpdGlvblxuICAgICAgICApfTtcbiAgICAgIFxuICAgICAgLy8gcHJldmVudCBnbGl0Y2h5IGJlaGF2aW9yIGR1cmluZyB0aGUgaW5pdGlhbCByZW5kZXIgd2hlbiB0aGUgc3VibWVudSdzIHZlcnRpY2FsIHBvc2l0aW9uIGlzIGV2YWx1YXRlZCBhcyAwXG4gICAgICAke1xuICAgICAgICBwcm9wcy5zdWJtZW51VmVydGljYWxQb3NpdGlvbiA9PT0gMCAmJlxuICAgICAgICBjc3NgXG4gICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICBgXG4gICAgICB9XG5cbiAgICAgICAgLy8gYWRkaXRpb25hbCBzdHlsaW5nIG9mIHRoZSBwc2V1ZG8tZWxlbWVudCBlbmFibGluZyBzbW9vdGggY291cnNvciBtb3ZlbWVudFxuICAgICAgICA6OmJlZm9yZSB7XG4gICAgICAgICAgJHtnZXRDb250YWluZXJQb3NpdGlvbkJhc2VkT25NZW51SXRlbVBvc2l0aW9uKFxuICAgICAgICAgICAgcHJvcHMuaXNTdWJtZW51QWJvdmVNZW51SXRlbSxcbiAgICAgICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51RXhwYW5kZWQsXG4gICAgICAgICAgICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUNvbGxhcHNlZFxuICAgICAgICAgICl9XG4gICAgICBgfVxuICAgICAgaWQ9e2Bncm91cC0ke3Byb3BzLmlkfWB9XG4gICAgICBkYXRhLXRlc3RpZD17YGdyb3VwLSR7cHJvcHMuaWR9YH1cbiAgICAgIHJvbGU9XCJtZW51XCJcbiAgICAgIGFyaWEtZXhwYW5kZWQ9e1xuICAgICAgICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUV4cGFuZGVkIHx8XG4gICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkXG4gICAgICB9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoXG4gICAgICAgIHsgW3N0eWxlcy5saXN0XTogcHJvcHMubGV2ZWwgPT09IDEgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXNbJ3N1Ymxpc3QnXV06IHByb3BzLmxldmVsID09PSAyLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlc1snc3VibGlzdC1leHBhbmRlZF9fYWN0aXZlJ11dOlxuICAgICAgICAgICAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXNbJ3N1Ymxpc3QtY29sbGFwc2VkX19lbXB0eSddXTpcbiAgICAgICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkICYmICFwcm9wcy5oYXNTdWJtZW51LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlc1snc3VibGlzdC1jb2xsYXBzZWRfX2FjdGl2ZSddXTpcbiAgICAgICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkICYmXG4gICAgICAgICAgICAhcHJvcHMuaXNTdWJtZW51QWJvdmVNZW51SXRlbSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXNbJ3N1Ymxpc3QtY29sbGFwc2VkX19hY3RpdmVfX2Fib3ZlJ11dOlxuICAgICAgICAgICAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQgJiYgcHJvcHMuaXNTdWJtZW51QWJvdmVNZW51SXRlbSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMuc3VibGlzdF9faW5hY3RpdmVdOiAhaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQsXG4gICAgICAgIH1cbiAgICAgICl9XG4gICAgPlxuICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgIDwvdWw+XG4gICk7XG59KTtcbk1lbnVHcm91cC5kaXNwbGF5TmFtZSA9ICdNZW51R3JvdXAnO1xuXG50eXBlIE1lbnVJdGVtUHJvcHMgPSB7XG4gIGhhc1N1Ym1lbnU6IGJvb2xlYW47XG4gIGlzQWN0aXZlOiBib29sZWFuO1xuICBpc01haW5NZW51Um91dGVBY3RpdmU/OiBib29sZWFuO1xuICBpc01lbnVPcGVuOiBib29sZWFuO1xuICBvbkNsaWNrOiBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD47XG4gIG9uTW91c2VFbnRlcj86XG4gICAgfCBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD5cbiAgICB8IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxFbGVtZW50PjtcbiAgb25Nb3VzZUxlYXZlPzpcbiAgICB8IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxFbGVtZW50PlxuICAgIHwgRm9jdXNFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+O1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBpZGVudGlmaWVyPzogc3RyaW5nO1xufTtcbmNvbnN0IE1lbnVJdGVtID0gKHByb3BzOiBNZW51SXRlbVByb3BzKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGxpXG4gICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKHN0eWxlc1snbGlzdC1pdGVtJ10sIHtcbiAgICAgICAgW3N0eWxlcy5pdGVtX19hY3RpdmVdOiBwcm9wcy5pc0FjdGl2ZSxcbiAgICAgICAgW3N0eWxlc1snaXRlbV9tZW51X19hY3RpdmUnXV06IHByb3BzLmlzTWFpbk1lbnVSb3V0ZUFjdGl2ZSA/PyBmYWxzZSxcbiAgICAgICAgW3N0eWxlc1snaXRlbV9tZW51LWNvbGxhcHNlZCddXTogIXByb3BzLmlzTWVudU9wZW4sXG4gICAgICB9KX1cbiAgICAgIG9uQ2xpY2s9e3Byb3BzLm9uQ2xpY2t9XG4gICAgICBvbk1vdXNlRW50ZXI9e3Byb3BzLm9uTW91c2VFbnRlciBhcyBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD59XG4gICAgICBvbk1vdXNlTGVhdmU9e3Byb3BzLm9uTW91c2VMZWF2ZSBhcyBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD59XG4gICAgICBvbkZvY3VzPXtwcm9wcy5vbk1vdXNlRW50ZXIgYXMgRm9jdXNFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+fVxuICAgICAgb25CbHVyPXtwcm9wcy5vbk1vdXNlTGVhdmUgYXMgRm9jdXNFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+fVxuICAgICAgZGF0YS1tZW51aXRlbT17cHJvcHMuaWRlbnRpZmllcn1cbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydpdGVtLWxpbmsnXX0+e3Byb3BzLmNoaWxkcmVufTwvZGl2PlxuICAgIDwvbGk+XG4gICk7XG59O1xuXG5NZW51SXRlbS5kaXNwbGF5TmFtZSA9ICdNZW51SXRlbSc7XG5cbmV4cG9ydCB0eXBlIE1lbnVJdGVtTGlua1Byb3BzID0ge1xuICBsaW5rVG8/OiBzdHJpbmc7XG4gIGV4YWN0TWF0Y2g6IGJvb2xlYW47XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIG9uQ2xpY2s/OiAoZXZlbnQ6IFN5bnRoZXRpY0V2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4gdm9pZDtcbiAgdXNlRnVsbFJlZGlyZWN0c0ZvckxpbmtzPzogYm9vbGVhbjtcbiAgaXNTdWJtZW51TGluaz86IGJvb2xlYW47XG59O1xuY29uc3QgbWVudUl0ZW1MaW5rRGVmYXVsdFByb3BzOiBQaWNrPE1lbnVJdGVtTGlua1Byb3BzLCAnZXhhY3RNYXRjaCc+ID0ge1xuICBleGFjdE1hdGNoOiBmYWxzZSxcbn07XG5jb25zdCBOYXZMaW5rV3JhcHBlciA9IChwcm9wczogTWVudUl0ZW1MaW5rUHJvcHMpID0+IHtcbiAgaWYgKHByb3BzLmlzU3VibWVudUxpbmspIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1sndGV4dC1saW5rLXN1Ymxpc3Qtd3JhcHBlciddfT5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuICByZXR1cm4gPD57cHJvcHMuY2hpbGRyZW59PC8+O1xufTtcbmNvbnN0IE5hdkxpbmtDbGlja2FibGVDb250ZW50V3JhcHBlciA9IChwcm9wczogTWVudUl0ZW1MaW5rUHJvcHMpID0+IHtcbiAgaWYgKHByb3BzLmlzU3VibWVudUxpbmspIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snbmF2bGluay1jbGlja2FibGUtY29udGVudCddfT5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuICByZXR1cm4gPD57cHJvcHMuY2hpbGRyZW59PC8+O1xufTtcblxuY29uc3QgTWVudUl0ZW1MaW5rID0gKHByb3BzOiBNZW51SXRlbUxpbmtQcm9wcykgPT4ge1xuICBjb25zdCByZWRpcmVjdFRvID0gKHRhcmdldFVybDogc3RyaW5nKSA9PiBsb2NhdGlvbi5yZXBsYWNlKHRhcmdldFVybCk7XG4gIGlmIChwcm9wcy5saW5rVG8pIHtcbiAgICBjb25zdCBsaW5rTGV2ZWwgPSBwcm9wcy5pc1N1Ym1lbnVMaW5rID8gJ3RleHQtbGluay1zdWJsaXN0JyA6ICd0ZXh0LWxpbmsnO1xuICAgIHJldHVybiAoXG4gICAgICA8TmF2TGlua1dyYXBwZXIgey4uLnByb3BzfT5cbiAgICAgICAgPE5hdkxpbmtcbiAgICAgICAgICB0bz17cHJvcHMubGlua1RvfVxuICAgICAgICAgIGV4YWN0PXtwcm9wcy5leGFjdE1hdGNofVxuICAgICAgICAgIGFjdGl2ZUNsYXNzTmFtZT17c3R5bGVzLmhpZ2hsaWdodGVkfVxuICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW2xpbmtMZXZlbF19XG4gICAgICAgICAgZGF0YS1saW5rLWxldmVsPXtsaW5rTGV2ZWx9XG4gICAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAocHJvcHMubGlua1RvICYmIHByb3BzLnVzZUZ1bGxSZWRpcmVjdHNGb3JMaW5rcykge1xuICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICByZWRpcmVjdFRvKHByb3BzLmxpbmtUbyk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHByb3BzLm9uQ2xpY2spIHtcbiAgICAgICAgICAgICAgZXZlbnQucGVyc2lzdCgpO1xuICAgICAgICAgICAgICBwcm9wcy5vbkNsaWNrKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPE5hdkxpbmtDbGlja2FibGVDb250ZW50V3JhcHBlciB7Li4ucHJvcHN9PlxuICAgICAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgICAgIDwvTmF2TGlua0NsaWNrYWJsZUNvbnRlbnRXcmFwcGVyPlxuICAgICAgICA8L05hdkxpbms+XG4gICAgICA8L05hdkxpbmtXcmFwcGVyPlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIDw+e3Byb3BzLmNoaWxkcmVufTwvPjtcbn07XG5NZW51SXRlbUxpbmsuZGlzcGxheU5hbWUgPSAnTWVudUl0ZW1MaW5rJztcbk1lbnVJdGVtTGluay5kZWZhdWx0UHJvcHMgPSBtZW51SXRlbUxpbmtEZWZhdWx0UHJvcHM7XG5cbmNvbnN0IGlzRXZlcnlNZW51VmlzaWJpbGl0eVNldFRvSGlkZGVuID0gKFxuICBtZW51VmlzaWJpbGl0aWVzPzogVE5vcm1hbGl6ZWRNZW51VmlzaWJpbGl0aWVzIHwgbnVsbCxcbiAgbmFtZXNPZk1lbnVWaXNpYmlsaXRpZXM/OiBzdHJpbmdbXVxuKSA9PlxuICBBcnJheS5pc0FycmF5KG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzKSAmJlxuICBuYW1lc09mTWVudVZpc2liaWxpdGllcy5sZW5ndGggPiAwICYmXG4gIG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzLmV2ZXJ5KFxuICAgIChuYW1lT2ZNZW51VmlzaWJpbGl0eSkgPT5cbiAgICAgIG1lbnVWaXNpYmlsaXRpZXMgJiYgbWVudVZpc2liaWxpdGllc1tuYW1lT2ZNZW51VmlzaWJpbGl0eV0gPT09IHRydWVcbiAgKTtcblxudHlwZSBSZXN0cmljdGVkTWVudUl0ZW1Qcm9wcyA9IHtcbiAgZmVhdHVyZVRvZ2dsZT86IHN0cmluZztcbiAgbmFtZXNPZk1lbnVWaXNpYmlsaXRpZXM/OiBzdHJpbmdbXTtcbiAgcHJvamVjdFBlcm1pc3Npb25zOiBUUHJvamVjdFBlcm1pc3Npb25zO1xuICBtZW51VmlzaWJpbGl0aWVzOiBUTm9ybWFsaXplZE1lbnVWaXNpYmlsaXRpZXMgfCBudWxsO1xuICBrZXlPZk1lbnVJdGVtOiBzdHJpbmc7XG4gIHBlcm1pc3Npb25zOiBzdHJpbmdbXTtcbiAgYWN0aW9uUmlnaHRzPzogVEFjdGlvblJpZ2h0W107XG4gIGRhdGFGZW5jZXM/OiBURGF0YUZlbmNlW107XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG59O1xudHlwZSBUTG9uZ0xpdmVkRmxhZyA9IHtcbiAgdmFsdWU6IGJvb2xlYW47XG4gIHJlYXNvbj86IHN0cmluZztcbn07XG5jb25zdCByZXN0cmljdGVkTWVudUl0ZW1EZWZhdWx0UHJvcHM6IFBpY2s8XG4gIFJlc3RyaWN0ZWRNZW51SXRlbVByb3BzLFxuICAncGVybWlzc2lvbnMnXG4+ID0ge1xuICBwZXJtaXNzaW9uczogW10sXG59O1xuZnVuY3Rpb24gaXNMb25nTGl2ZWRGbGFnKFxuICBmbGFnOiBURmxhZ1ZhcmlhdGlvbiB8IFRMb25nTGl2ZWRGbGFnXG4pOiBmbGFnIGlzIFRMb25nTGl2ZWRGbGFnIHtcbiAgcmV0dXJuIHR5cGVvZiAoZmxhZyBhcyBUTG9uZ0xpdmVkRmxhZyk/LnZhbHVlID09PSAnYm9vbGVhbic7XG59XG5jb25zdCBSZXN0cmljdGVkTWVudUl0ZW0gPSAocHJvcHM6IFJlc3RyaWN0ZWRNZW51SXRlbVByb3BzKSA9PiB7XG4gIC8vIE5PVEU6IEN1c3RvbSBhcHBsaWNhdGlvbiBhcmUgYWN0aXZhdGVkL2RlYWN0aXZhdGVkIHdoaWxlIHRoZWlyXG4gIC8vIHZpc2liaWxpdHkgaXMgbm90IGNvbnRyb2xsZWQgdmlhIGEgdmlzaWJpaWxpdHkgb3ZlcndyaXRlLlxuICBjb25zdCBmbGFnVmFyaWF0aW9uID0gdXNlRmxhZ1ZhcmlhdGlvbihwcm9wcy5mZWF0dXJlVG9nZ2xlKTtcbiAgaWYgKFxuICAgIGlzRXZlcnlNZW51VmlzaWJpbGl0eVNldFRvSGlkZGVuKFxuICAgICAgcHJvcHMubWVudVZpc2liaWxpdGllcyxcbiAgICAgIHByb3BzLm5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzXG4gICAgKVxuICApXG4gICAgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgcGVybWlzc2lvbnNXcmFwcGVyID1cbiAgICAoQXJyYXkuaXNBcnJheShwcm9wcy5wZXJtaXNzaW9ucykgJiYgcHJvcHMucGVybWlzc2lvbnMubGVuZ3RoID4gMCkgfHxcbiAgICAoQXJyYXkuaXNBcnJheShwcm9wcy5kYXRhRmVuY2VzKSAmJiBwcm9wcy5kYXRhRmVuY2VzLmxlbmd0aCA+IDApID8gKFxuICAgICAgPFJlc3RyaWN0ZWRCeVBlcm1pc3Npb25zXG4gICAgICAgIHBlcm1pc3Npb25zPXtwcm9wcy5wZXJtaXNzaW9uc31cbiAgICAgICAgYWN0aW9uUmlnaHRzPXtwcm9wcy5hY3Rpb25SaWdodHN9XG4gICAgICAgIGRhdGFGZW5jZXM9e3Byb3BzLmRhdGFGZW5jZXN9XG4gICAgICAgIHNlbGVjdERhdGFGZW5jZURhdGE9eyhkZW1hbmRlZERhdGFGZW5jZSkgPT4ge1xuICAgICAgICAgIHN3aXRjaCAoZGVtYW5kZWREYXRhRmVuY2UudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnc3RvcmUnOlxuICAgICAgICAgICAgICByZXR1cm4gZGVtYW5kZWREYXRhRmVuY2UuYWN0dWFsRGF0YUZlbmNlVmFsdWVzO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICAvLyBBbHdheXMgY2hlY2sgdGhhdCBzb21lIG9mIHRoZSBnaXZlbiBwZXJtaXNzaW9ucyBtYXRjaC5cbiAgICAgICAgc2hvdWxkTWF0Y2hTb21lUGVybWlzc2lvbnM9e3RydWV9XG4gICAgICAgIHByb2plY3RQZXJtaXNzaW9ucz17cHJvcHMucHJvamVjdFBlcm1pc3Npb25zfVxuICAgICAgPlxuICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICA8L1Jlc3RyaWN0ZWRCeVBlcm1pc3Npb25zPlxuICAgICkgOiAoXG4gICAgICA8Pntwcm9wcy5jaGlsZHJlbn08Lz5cbiAgICApO1xuXG4gIGlmIChwcm9wcy5mZWF0dXJlVG9nZ2xlKSB7XG4gICAgLy8gQSByZWd1bGFyIHNob3J0LWxpdmVkIGZlYXR1cmUgdG9nZ2xlXG4gICAgaWYgKGZsYWdWYXJpYXRpb24gPT09IHRydWUpIHJldHVybiBwZXJtaXNzaW9uc1dyYXBwZXI7XG4gICAgLy8gQSBsb25nLWxpdmVkIGZlYXR1cmUgdG9nZ2xlIHdpdGggYHsgdmFsdWU6IGJvb2xlYW4sIHN0cmluZzogcmVhc29uIH1gXG4gICAgaWYgKGlzTG9uZ0xpdmVkRmxhZyhmbGFnVmFyaWF0aW9uKSAmJiBmbGFnVmFyaWF0aW9uLnZhbHVlID09PSB0cnVlKVxuICAgICAgcmV0dXJuIHBlcm1pc3Npb25zV3JhcHBlcjtcblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHBlcm1pc3Npb25zV3JhcHBlcjtcbn07XG5SZXN0cmljdGVkTWVudUl0ZW0uZGlzcGxheU5hbWUgPSAnUmVzdHJpY3RlZE1lbnVJdGVtJztcblJlc3RyaWN0ZWRNZW51SXRlbS5kZWZhdWx0UHJvcHMgPSByZXN0cmljdGVkTWVudUl0ZW1EZWZhdWx0UHJvcHM7XG5cbnR5cGUgTWVudUxhYmVsUHJvcHMgPSB7XG4gIGxhYmVsQWxsTG9jYWxlczogVExvY2FsaXplZEZpZWxkW107XG4gIGRlZmF1bHRMYWJlbD86IHN0cmluZztcbiAgYXBwbGljYXRpb25Mb2NhbGU6IHN0cmluZztcbn07XG5jb25zdCBNZW51TGFiZWwgPSAocHJvcHM6IE1lbnVMYWJlbFByb3BzKSA9PiB7XG4gIGNvbnN0IGxvY2FsaXplZExhYmVsID0gcHJvcHMubGFiZWxBbGxMb2NhbGVzLmZpbmQoKGxvYykgPT5cbiAgICBwcm9wcy5hcHBsaWNhdGlvbkxvY2FsZS5zdGFydHNXaXRoKGxvYy5sb2NhbGUpXG4gICk7XG4gIGlmIChsb2NhbGl6ZWRMYWJlbCkgcmV0dXJuIDw+e2xvY2FsaXplZExhYmVsLnZhbHVlfTwvPjtcbiAgaWYgKHByb3BzLmRlZmF1bHRMYWJlbCkgcmV0dXJuIDw+e3Byb3BzLmRlZmF1bHRMYWJlbH08Lz47XG4gIHJldHVybiA8PntOT19WQUxVRV9GQUxMQkFDS308Lz47XG59O1xuXG50eXBlIFROYXZCYXJMYXlvdXRQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbn07XG5jb25zdCBOYXZCYXJMYXlvdXQgPSBmb3J3YXJkUmVmPEhUTUxFbGVtZW50LCBUTmF2QmFyTGF5b3V0UHJvcHM+KFxuICAocHJvcHMsIHJlZikgPT4gKFxuICAgIDw+XG4gICAgICA8R2xvYmFsXG4gICAgICAgIHN0eWxlcz17Y3NzYFxuICAgICAgICAgICR7Y29tcGlsZWRTdHlsZXMuZ2xvYmFsfVxuICAgICAgICBgfVxuICAgICAgLz5cbiAgICAgIDxuYXZcbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIGNsYXNzTmFtZT17c3R5bGVzWydsZWZ0LW5hdmlnYXRpb24nXX1cbiAgICAgICAgZGF0YS10ZXN0PVwibGVmdC1uYXZpZ2F0aW9uXCJcbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJsZWZ0LW5hdmlnYXRpb25cIlxuICAgICAgPlxuICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICA8L25hdj5cbiAgICA8Lz5cbiAgKVxuKTtcbk5hdkJhckxheW91dC5kaXNwbGF5TmFtZSA9ICdOYXZCYXJMYXlvdXQnO1xuXG50eXBlIEl0ZW1Db250YWluZXJQcm9wcyA9IHtcbiAgbGFiZWxBbGxMb2NhbGVzOiBUTG9jYWxpemVkRmllbGRbXTtcbiAgZGVmYXVsdExhYmVsPzogc3RyaW5nO1xuICBhcHBsaWNhdGlvbkxvY2FsZTogc3RyaW5nO1xuICBpY29uOiBzdHJpbmc7XG4gIGlzTWVudU9wZW4/OiBib29sZWFuO1xufTtcblxuY29uc3QgSXRlbUNvbnRhaW5lciA9IChwcm9wczogSXRlbUNvbnRhaW5lclByb3BzKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snaXRlbS1pY29uLXRleHQnXX0+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydpY29uLWNvbnRhaW5lciddfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5pY29ufT5cbiAgICAgICAgICA8SWNvblN3aXRjaGVyIGljb249e3Byb3BzLmljb259IHNpemU9XCJzY2FsZVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICB7cHJvcHMuaXNNZW51T3BlbiA/IChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy50aXRsZX0+XG4gICAgICAgICAgPE1lbnVMYWJlbFxuICAgICAgICAgICAgbGFiZWxBbGxMb2NhbGVzPXtwcm9wcy5sYWJlbEFsbExvY2FsZXN9XG4gICAgICAgICAgICBkZWZhdWx0TGFiZWw9e3Byb3BzLmRlZmF1bHRMYWJlbH1cbiAgICAgICAgICAgIGFwcGxpY2F0aW9uTG9jYWxlPXtwcm9wcy5hcHBsaWNhdGlvbkxvY2FsZX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICkgOiBudWxsfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuSXRlbUNvbnRhaW5lci5kaXNwbGF5TmFtZSA9ICdJdGVtQ29udGFpbmVyJztcblxuZXhwb3J0IHtcbiAgUmVzdHJpY3RlZE1lbnVJdGVtLFxuICBNZW51SXRlbSxcbiAgTWVudUl0ZW1MaW5rLFxuICBJY29uU3dpdGNoZXIsXG4gIE1lbnVHcm91cCxcbiAgTWVudUxhYmVsLFxuICBNZW51RXhwYW5kZXIsXG4gIEZhZGVkLFxuICBOYXZCYXJMYXlvdXQsXG4gIEl0ZW1Db250YWluZXIsXG59O1xuIl19 */");
253
+ var _ref2 = process.env.NODE_ENV === "production" ? {
254
+ name: "abcix4",
255
+ styles: "top:0"
256
+ } : {
257
+ name: "4uw94j-getContainerPositionBasedOnMenuItemPosition",
258
+ styles: "top:0;label:getContainerPositionBasedOnMenuItemPosition;",
259
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUtaXRlbXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThNTyIsImZpbGUiOiJtZW51LWl0ZW1zLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGZvcndhcmRSZWYsXG4gIGxhenksXG4gIHR5cGUgTW91c2VFdmVudEhhbmRsZXIsXG4gIHR5cGUgRm9jdXNFdmVudEhhbmRsZXIsXG4gIHR5cGUgTW91c2VFdmVudCxcbiAgdHlwZSBLZXlib2FyZEV2ZW50LFxuICB0eXBlIFJlYWN0Tm9kZSxcbiAgdHlwZSBTeW50aGV0aWNFdmVudCxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgR2xvYmFsLCBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB1c2VGbGFnVmFyaWF0aW9uIH0gZnJvbSAnQGZsb3BmbGlwL3JlYWN0LWJyb2FkY2FzdCc7XG5pbXBvcnQgdHlwZSB7IFRGbGFnVmFyaWF0aW9uIH0gZnJvbSAnQGZsb3BmbGlwL3R5cGVzJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgTmF2TGluayB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHR5cGUge1xuICBUTm9ybWFsaXplZE1lbnVWaXNpYmlsaXRpZXMsXG4gIFROb3JtYWxpemVkUGVybWlzc2lvbnMsXG4gIFROb3JtYWxpemVkQWN0aW9uUmlnaHRzLFxuICBUTm9ybWFsaXplZERhdGFGZW5jZXMsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IE1pc3NpbmdJbWFnZVN2ZyBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hc3NldHMvaW1hZ2VzL2RpYWdvbmFsLWxpbmUuc3ZnJztcbmltcG9ydCB7IE5PX1ZBTFVFX0ZBTExCQUNLIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7IFJlc3RyaWN0ZWRCeVBlcm1pc3Npb25zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvcGVybWlzc2lvbnMnO1xuaW1wb3J0IHtcbiAgQmFja0ljb24sXG4gIFNpZGViYXJFeHBhbmRJY29uLFxuICBTaWRlYmFyQ29sbGFwc2VJY29uLFxufSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pY29ucyc7XG5pbXBvcnQgSW5saW5lU3ZnIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2ljb25zL2lubGluZS1zdmcnO1xuaW1wb3J0IHsgRElNRU5TSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIFREYXRhRmVuY2UsXG4gIFRBY3Rpb25SaWdodCxcbiAgVExvY2FsaXplZEZpZWxkLFxufSBmcm9tICcuLi8uLi90eXBlcy9nZW5lcmF0ZWQvcHJveHknO1xuaW1wb3J0IHsgbG9jYXRpb24gfSBmcm9tICcuLi8uLi91dGlscy9sb2NhdGlvbic7XG4vLyBodHRwczovL2JhYmVsanMuaW8vYmxvZy8yMDE3LzA5LzExL3plcm8tY29uZmlnLXdpdGgtYmFiZWwtbWFjcm9zXG5pbXBvcnQgY29tcGlsZWRTdHlsZXMgZnJvbSAvKiBwcmV2YWwgKi8gJy4vbmF2YmFyLnN0eWxlcyc7XG5cbmNvbnN0IHN0eWxlcyA9IGNvbXBpbGVkU3R5bGVzLmpzb25NYXA7XG5cbnR5cGUgVFByb2plY3RQZXJtaXNzaW9ucyA9IHtcbiAgcGVybWlzc2lvbnM6IFROb3JtYWxpemVkUGVybWlzc2lvbnMgfCBudWxsO1xuICBhY3Rpb25SaWdodHM6IFROb3JtYWxpemVkQWN0aW9uUmlnaHRzIHwgbnVsbDtcbiAgZGF0YUZlbmNlczogVE5vcm1hbGl6ZWREYXRhRmVuY2VzIHwgbnVsbDtcbn07XG5cbmNvbnN0IEhlYXJ0SWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9oZWFydCcpKTtcbmNvbnN0IFBhcGVyY2xpcEljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvcGFwZXJjbGlwJykpO1xuY29uc3QgUGx1Z2luSWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9wbHVnaW4nKSk7XG5jb25zdCBSb2NrZXRJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3JvY2tldCcpKTtcbmNvbnN0IFN0YXJJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3N0YXInKSk7XG5jb25zdCBDb25uZWN0ZWRTcXVhcmVJY29uID0gbGF6eShcbiAgKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9jb25uZWN0ZWQtc3F1YXJlJylcbik7XG5jb25zdCBXb3JsZEljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvd29ybGQnKSk7XG5jb25zdCBUcmVlU3RydWN0dXJlSWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy90cmVlLXN0cnVjdHVyZScpKTtcbmNvbnN0IFVzZXJGaWxsZWRJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3VzZXItZmlsbGVkJykpO1xuY29uc3QgU3BlZWRvbWV0ZXJJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3NwZWVkb21ldGVyJykpO1xuY29uc3QgVGFnTXVsdGlJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3RhZy1tdWx0aScpKTtcbmNvbnN0IENhcnRJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2NhcnQnKSk7XG5jb25zdCBCb3hJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2JveCcpKTtcbmNvbnN0IEdlYXJJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2dlYXInKSk7XG5jb25zdCBMaXN0V2l0aFNlYXJjaEljb24gPSBsYXp5KFxuICAoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2xpc3Qtd2l0aC1zZWFyY2gnKVxuKTtcblxudHlwZSBJY29uUHJvcHMgPSBQYXJhbWV0ZXJzPHR5cGVvZiBCYWNrSWNvbj5bMF07XG50eXBlIEljb25Td2l0Y2hlclByb3BzID0geyBpY29uOiBzdHJpbmcgfSAmIEljb25Qcm9wcztcbi8vIFRoZSBpY29uIGlzIGV4cGVjdGVkIHRvIGJlIHRoZSBgc3ZnYCBkb2N1bWVudCBhcyBhIHN0cmluZy5cbi8vIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBwdXJwb3Nlcywgd2Ugc3RpbGwgc3VwcG9ydCB0aGUgbGVnYWN5IFwiaWNvbiBuYW1lXCIsXG4vLyB3aGljaCB3ZSB0aGVuIG1hcCB0byBvbmUgb2YgdGhlIHByZS1kZWZpbmVkIGljb25zLlxuLy8gRXZlbnR1YWxseSwgd2Ugd2FudCB0byBnZXQgcmlkIG9mIHRoaXMgXCJzd2l0Y2hcIiBsb2dpYy5cbmNvbnN0IEljb25Td2l0Y2hlciA9ICh7IGljb24sIC4uLmljb25Qcm9wcyB9OiBJY29uU3dpdGNoZXJQcm9wcykgPT4ge1xuICBpZiAoaWNvbi5pbmNsdWRlcygnPHN2ZycpKSB7XG4gICAgcmV0dXJuIDxJbmxpbmVTdmcgZGF0YT17aWNvbn0gey4uLmljb25Qcm9wc30gLz47XG4gIH1cbiAgLy8gQmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZm9yIGFwcHMgdXNpbmcgdGhlIFwiaWNvbiBuYW1lXCIuXG4gIHN3aXRjaCAoaWNvbikge1xuICAgIC8vIExlZ2FjeSBhcHBsaWNhdGlvbiBpY29uc1xuICAgIC8vIFRPRE86IFRvIGJlIHJlbW92ZWQgb25jZSBNQyBhcHBsaWNhdGlvbnMgaWNvbnMgdXBkYXRlcyBhcmUgcHVibGlzaGVkXG4gICAgY2FzZSAnVHJlZVN0cnVjdHVyZUljb24nOlxuICAgICAgcmV0dXJuIDxUcmVlU3RydWN0dXJlSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdVc2VyRmlsbGVkSWNvbic6XG4gICAgICByZXR1cm4gPFVzZXJGaWxsZWRJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1NwZWVkb21ldGVySWNvbic6XG4gICAgICByZXR1cm4gPFNwZWVkb21ldGVySWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdUYWdNdWx0aUljb24nOlxuICAgICAgcmV0dXJuIDxUYWdNdWx0aUljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnQ2FydEljb24nOlxuICAgICAgcmV0dXJuIDxDYXJ0SWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdCb3hJY29uJzpcbiAgICAgIHJldHVybiA8Qm94SWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdHZWFySWNvbic6XG4gICAgICByZXR1cm4gPEdlYXJJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ0xpc3RXaXRoU2VhcmNoSWNvbic6XG4gICAgICByZXR1cm4gPExpc3RXaXRoU2VhcmNoSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcblxuICAgIC8vIEN1c3RvbSBhcHBsaWNhdGlvbiBpY29ucyBzZXRcbiAgICBjYXNlICdIZWFydEljb24nOlxuICAgICAgcmV0dXJuIDxIZWFydEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnUGFwZXJjbGlwSWNvbic6XG4gICAgICByZXR1cm4gPFBhcGVyY2xpcEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnUGx1Z2luSWNvbic6XG4gICAgICByZXR1cm4gPFBsdWdpbkljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnUm9ja2V0SWNvbic6XG4gICAgICByZXR1cm4gPFJvY2tldEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnU3Rhckljb24nOlxuICAgICAgcmV0dXJuIDxTdGFySWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdDb25uZWN0ZWRTcXVhcmVJY29uJzpcbiAgICAgIHJldHVybiA8Q29ubmVjdGVkU3F1YXJlSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICAvLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICBjYXNlICdXb3JsZEljb24nOlxuICAgICAgcmV0dXJuIDxXb3JsZEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiA8aW1nIHNyYz17TWlzc2luZ0ltYWdlU3ZnfSBhbHQ9XCJtaXNzaW5nIGljb25cIiAvPjtcbiAgfVxufTtcbkljb25Td2l0Y2hlci5kaXNwbGF5TmFtZSA9ICdJY29uU3dpdGNoZXInO1xuXG50eXBlIE1lbnVFeHBhbmRlclByb3BzID0ge1xuICBpc1Zpc2libGU6IGJvb2xlYW47XG4gIG9uQ2xpY2s6IChcbiAgICBlOiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PiB8IEtleWJvYXJkRXZlbnQ8SFRNTERpdkVsZW1lbnQ+XG4gICkgPT4gdm9pZDtcbiAgaXNNZW51T3BlbjogYm9vbGVhbjtcbn07XG5cbmNvbnN0IGdldEljb24gPSAoeyBpc01lbnVPcGVuIH06IE1lbnVFeHBhbmRlclByb3BzKSA9PiB7XG4gIGNvbnN0IEljb24gPSBpc01lbnVPcGVuID8gU2lkZWJhckNvbGxhcHNlSWNvbiA6IFNpZGViYXJFeHBhbmRJY29uO1xuICByZXR1cm4gPEljb24gY29sb3I9XCJzdXJmYWNlXCIgc2l6ZT1cImJpZ1wiIC8+O1xufTtcblxuY29uc3QgTWVudUV4cGFuZGVyID0gKHByb3BzOiBNZW51RXhwYW5kZXJQcm9wcykgPT4ge1xuICByZXR1cm4gKFxuICAgIDxsaVxuICAgICAga2V5PVwiZXhwYW5kZXJcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKHN0eWxlcy5leHBhbmRlciwge1xuICAgICAgICBbc3R5bGVzLmhpZGRlbl06ICFwcm9wcy5pc1Zpc2libGUsXG4gICAgICB9KX1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIG9uQ2xpY2s9e3Byb3BzLm9uQ2xpY2t9XG4gICAgICAgIG9uS2V5RG93bj17KGUpID0+IHtcbiAgICAgICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgIHByb3BzLm9uQ2xpY2soZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbJ2V4cGFuZC1pY29uJ119XG4gICAgICAgIGRhdGEtdGVzdGlkPVwibWVudS1leHBhbmRlclwiXG4gICAgICA+XG4gICAgICAgIHtnZXRJY29uKHByb3BzKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvbGk+XG4gICk7XG59O1xuTWVudUV4cGFuZGVyLmRpc3BsYXlOYW1lID0gJ01lbnVFeHBhbmRlcic7XG5cbmNvbnN0IEZhZGVkID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0zMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDE1MywgMTM1LCAwKSAwJSwgIzAwYjM5ZSAxMDAlKTtcbiAgei1pbmRleDogMTtcbmA7XG5cbnR5cGUgTWVudUdyb3VwUHJvcHMgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIGxldmVsOiAxIHwgMjtcbiAgaXNBY3RpdmU/OiBib29sZWFuO1xuICBpc0V4cGFuZGVkPzogYm9vbGVhbjtcbiAgaGFzU3VibWVudT86IGJvb2xlYW47XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xuICBzdWJtZW51VmVydGljYWxQb3NpdGlvbj86IG51bWJlcjtcbiAgaXNTdWJtZW51QWJvdmVNZW51SXRlbT86IGJvb2xlYW47XG59O1xuXG5jb25zdCBnZXRTdWJtZW51UG9zaXRpb25CYXNlZE9uTWVudUl0ZW1Qb3NpdGlvbiA9IChcbiAgaXNTdWJtZW51QWJvdmVNZW51SXRlbT86IGJvb2xlYW4sXG4gIHN1Ym1lbnVWZXJ0aWNhbFBvc2l0aW9uPzogbnVtYmVyXG4pID0+IGNzc2BcbiAgJHtpc1N1Ym1lbnVBYm92ZU1lbnVJdGVtID8gJ2JvdHRvbScgOiAndG9wJ306ICR7c3VibWVudVZlcnRpY2FsUG9zaXRpb259cHhcbmA7XG5cbmNvbnN0IGdldENvbnRhaW5lclBvc2l0aW9uQmFzZWRPbk1lbnVJdGVtUG9zaXRpb24gPSAoXG4gIGlzU3VibWVudUFib3ZlTWVudUl0ZW0/OiBib29sZWFuLFxuICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUV4cGFuZGVkPzogYm9vbGVhbixcbiAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQ/OiBib29sZWFuXG4pID0+IFtcbiAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQgJiZcbiAgICBjc3NgXG4gICAgICAke2lzU3VibWVudUFib3ZlTWVudUl0ZW1cbiAgICAgICAgPyAnYm90dG9tJ1xuICAgICAgICA6ICd0b3AnfTogLSR7RElNRU5TSU9OUy5uYXZNZW51SXRlbUhlaWdodH07XG4gICAgYCxcbiAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCAmJlxuICAgIGlzU3VibWVudUFib3ZlTWVudUl0ZW0gJiZcbiAgICBjc3NgXG4gICAgICBib3R0b206IDA7XG4gICAgYCxcbiAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCAmJlxuICAgICFpc1N1Ym1lbnVBYm92ZU1lbnVJdGVtICYmXG4gICAgY3NzYFxuICAgICAgdG9wOiAwO1xuICAgIGAsXG5dO1xuXG5jb25zdCBNZW51R3JvdXAgPSBmb3J3YXJkUmVmPEhUTUxVTGlzdEVsZW1lbnQsIE1lbnVHcm91cFByb3BzPigocHJvcHMsIHJlZikgPT4ge1xuICBpZiAoXG4gICAgcHJvcHMuaXNFeHBhbmRlZCAmJlxuICAgICgocHJvcHMubGV2ZWwgPT09IDIgJiYgIXByb3BzLmhhc1N1Ym1lbnUpIHx8XG4gICAgICAocHJvcHMubGV2ZWwgPT09IDIgJiYgIXByb3BzLmlzQWN0aXZlKSlcbiAgKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCA9XG4gICAgcHJvcHMubGV2ZWwgPT09IDIgJiYgcHJvcHMuaXNBY3RpdmUgJiYgcHJvcHMuaXNFeHBhbmRlZDtcbiAgY29uc3QgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQgPVxuICAgIHByb3BzLmxldmVsID09PSAyICYmIHByb3BzLmlzQWN0aXZlICYmICFwcm9wcy5pc0V4cGFuZGVkO1xuICByZXR1cm4gKFxuICAgIDx1bFxuICAgICAgcmVmPXtyZWYgJiYgcHJvcHMubGV2ZWwgPT09IDIgPyByZWYgOiBudWxsfVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgICR7Z2V0U3VibWVudVBvc2l0aW9uQmFzZWRPbk1lbnVJdGVtUG9zaXRpb24oXG4gICAgICAgICAgcHJvcHMuaXNTdWJtZW51QWJvdmVNZW51SXRlbSxcbiAgICAgICAgICBwcm9wcy5zdWJtZW51VmVydGljYWxQb3NpdGlvblxuICAgICAgICApfTtcbiAgICAgIFxuICAgICAgLy8gcHJldmVudCBnbGl0Y2h5IGJlaGF2aW9yIGR1cmluZyB0aGUgaW5pdGlhbCByZW5kZXIgd2hlbiB0aGUgc3VibWVudSdzIHZlcnRpY2FsIHBvc2l0aW9uIGlzIGV2YWx1YXRlZCBhcyAwXG4gICAgICAke1xuICAgICAgICBwcm9wcy5zdWJtZW51VmVydGljYWxQb3NpdGlvbiA9PT0gMCAmJlxuICAgICAgICBjc3NgXG4gICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICBgXG4gICAgICB9XG5cbiAgICAgICAgLy8gYWRkaXRpb25hbCBzdHlsaW5nIG9mIHRoZSBwc2V1ZG8tZWxlbWVudCBlbmFibGluZyBzbW9vdGggY291cnNvciBtb3ZlbWVudFxuICAgICAgICA6OmJlZm9yZSB7XG4gICAgICAgICAgJHtnZXRDb250YWluZXJQb3NpdGlvbkJhc2VkT25NZW51SXRlbVBvc2l0aW9uKFxuICAgICAgICAgICAgcHJvcHMuaXNTdWJtZW51QWJvdmVNZW51SXRlbSxcbiAgICAgICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51RXhwYW5kZWQsXG4gICAgICAgICAgICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUNvbGxhcHNlZFxuICAgICAgICAgICl9XG4gICAgICBgfVxuICAgICAgaWQ9e2Bncm91cC0ke3Byb3BzLmlkfWB9XG4gICAgICBkYXRhLXRlc3RpZD17YGdyb3VwLSR7cHJvcHMuaWR9YH1cbiAgICAgIHJvbGU9XCJtZW51XCJcbiAgICAgIGFyaWEtZXhwYW5kZWQ9e1xuICAgICAgICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUV4cGFuZGVkIHx8XG4gICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkXG4gICAgICB9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoXG4gICAgICAgIHsgW3N0eWxlcy5saXN0XTogcHJvcHMubGV2ZWwgPT09IDEgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXNbJ3N1Ymxpc3QnXV06IHByb3BzLmxldmVsID09PSAyLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlc1snc3VibGlzdC1leHBhbmRlZF9fYWN0aXZlJ11dOlxuICAgICAgICAgICAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXNbJ3N1Ymxpc3QtY29sbGFwc2VkX19lbXB0eSddXTpcbiAgICAgICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkICYmICFwcm9wcy5oYXNTdWJtZW51LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlc1snc3VibGlzdC1jb2xsYXBzZWRfX2FjdGl2ZSddXTpcbiAgICAgICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkICYmXG4gICAgICAgICAgICAhcHJvcHMuaXNTdWJtZW51QWJvdmVNZW51SXRlbSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXNbJ3N1Ymxpc3QtY29sbGFwc2VkX19hY3RpdmVfX2Fib3ZlJ11dOlxuICAgICAgICAgICAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQgJiYgcHJvcHMuaXNTdWJtZW51QWJvdmVNZW51SXRlbSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMuc3VibGlzdF9faW5hY3RpdmVdOiAhaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQsXG4gICAgICAgIH1cbiAgICAgICl9XG4gICAgPlxuICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgIDwvdWw+XG4gICk7XG59KTtcbk1lbnVHcm91cC5kaXNwbGF5TmFtZSA9ICdNZW51R3JvdXAnO1xuXG50eXBlIE1lbnVJdGVtUHJvcHMgPSB7XG4gIGhhc1N1Ym1lbnU6IGJvb2xlYW47XG4gIGlzQWN0aXZlOiBib29sZWFuO1xuICBpc01haW5NZW51Um91dGVBY3RpdmU/OiBib29sZWFuO1xuICBpc01lbnVPcGVuOiBib29sZWFuO1xuICBvbkNsaWNrOiBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD47XG4gIG9uTW91c2VFbnRlcj86XG4gICAgfCBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD5cbiAgICB8IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxFbGVtZW50PjtcbiAgb25Nb3VzZUxlYXZlPzpcbiAgICB8IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxFbGVtZW50PlxuICAgIHwgRm9jdXNFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+O1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBpZGVudGlmaWVyPzogc3RyaW5nO1xufTtcbmNvbnN0IE1lbnVJdGVtID0gKHByb3BzOiBNZW51SXRlbVByb3BzKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGxpXG4gICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKHN0eWxlc1snbGlzdC1pdGVtJ10sIHtcbiAgICAgICAgW3N0eWxlcy5pdGVtX19hY3RpdmVdOiBwcm9wcy5pc0FjdGl2ZSxcbiAgICAgICAgW3N0eWxlc1snaXRlbV9tZW51X19hY3RpdmUnXV06IHByb3BzLmlzTWFpbk1lbnVSb3V0ZUFjdGl2ZSA/PyBmYWxzZSxcbiAgICAgICAgW3N0eWxlc1snaXRlbV9tZW51LWNvbGxhcHNlZCddXTogIXByb3BzLmlzTWVudU9wZW4sXG4gICAgICB9KX1cbiAgICAgIG9uQ2xpY2s9e3Byb3BzLm9uQ2xpY2t9XG4gICAgICBvbk1vdXNlRW50ZXI9e3Byb3BzLm9uTW91c2VFbnRlciBhcyBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD59XG4gICAgICBvbk1vdXNlTGVhdmU9e3Byb3BzLm9uTW91c2VMZWF2ZSBhcyBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD59XG4gICAgICBvbkZvY3VzPXtwcm9wcy5vbk1vdXNlRW50ZXIgYXMgRm9jdXNFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+fVxuICAgICAgb25CbHVyPXtwcm9wcy5vbk1vdXNlTGVhdmUgYXMgRm9jdXNFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+fVxuICAgICAgZGF0YS1tZW51aXRlbT17cHJvcHMuaWRlbnRpZmllcn1cbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydpdGVtLWxpbmsnXX0+e3Byb3BzLmNoaWxkcmVufTwvZGl2PlxuICAgIDwvbGk+XG4gICk7XG59O1xuXG5NZW51SXRlbS5kaXNwbGF5TmFtZSA9ICdNZW51SXRlbSc7XG5cbmV4cG9ydCB0eXBlIE1lbnVJdGVtTGlua1Byb3BzID0ge1xuICBsaW5rVG8/OiBzdHJpbmc7XG4gIGV4YWN0TWF0Y2g6IGJvb2xlYW47XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIG9uQ2xpY2s/OiAoZXZlbnQ6IFN5bnRoZXRpY0V2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4gdm9pZDtcbiAgdXNlRnVsbFJlZGlyZWN0c0ZvckxpbmtzPzogYm9vbGVhbjtcbiAgaXNTdWJtZW51TGluaz86IGJvb2xlYW47XG59O1xuY29uc3QgbWVudUl0ZW1MaW5rRGVmYXVsdFByb3BzOiBQaWNrPE1lbnVJdGVtTGlua1Byb3BzLCAnZXhhY3RNYXRjaCc+ID0ge1xuICBleGFjdE1hdGNoOiBmYWxzZSxcbn07XG5jb25zdCBOYXZMaW5rV3JhcHBlciA9IChwcm9wczogTWVudUl0ZW1MaW5rUHJvcHMpID0+IHtcbiAgaWYgKHByb3BzLmlzU3VibWVudUxpbmspIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1sndGV4dC1saW5rLXN1Ymxpc3Qtd3JhcHBlciddfT5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuICByZXR1cm4gPD57cHJvcHMuY2hpbGRyZW59PC8+O1xufTtcbmNvbnN0IE5hdkxpbmtDbGlja2FibGVDb250ZW50V3JhcHBlciA9IChwcm9wczogTWVudUl0ZW1MaW5rUHJvcHMpID0+IHtcbiAgaWYgKHByb3BzLmlzU3VibWVudUxpbmspIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snbmF2bGluay1jbGlja2FibGUtY29udGVudCddfT5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuICByZXR1cm4gPD57cHJvcHMuY2hpbGRyZW59PC8+O1xufTtcblxuY29uc3QgTWVudUl0ZW1MaW5rID0gKHByb3BzOiBNZW51SXRlbUxpbmtQcm9wcykgPT4ge1xuICBjb25zdCByZWRpcmVjdFRvID0gKHRhcmdldFVybDogc3RyaW5nKSA9PiBsb2NhdGlvbi5yZXBsYWNlKHRhcmdldFVybCk7XG4gIGlmIChwcm9wcy5saW5rVG8pIHtcbiAgICBjb25zdCBsaW5rTGV2ZWwgPSBwcm9wcy5pc1N1Ym1lbnVMaW5rID8gJ3RleHQtbGluay1zdWJsaXN0JyA6ICd0ZXh0LWxpbmsnO1xuICAgIHJldHVybiAoXG4gICAgICA8TmF2TGlua1dyYXBwZXIgey4uLnByb3BzfT5cbiAgICAgICAgPE5hdkxpbmtcbiAgICAgICAgICB0bz17cHJvcHMubGlua1RvfVxuICAgICAgICAgIGV4YWN0PXtwcm9wcy5leGFjdE1hdGNofVxuICAgICAgICAgIGFjdGl2ZUNsYXNzTmFtZT17c3R5bGVzLmhpZ2hsaWdodGVkfVxuICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW2xpbmtMZXZlbF19XG4gICAgICAgICAgZGF0YS1saW5rLWxldmVsPXtsaW5rTGV2ZWx9XG4gICAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAocHJvcHMubGlua1RvICYmIHByb3BzLnVzZUZ1bGxSZWRpcmVjdHNGb3JMaW5rcykge1xuICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICByZWRpcmVjdFRvKHByb3BzLmxpbmtUbyk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHByb3BzLm9uQ2xpY2spIHtcbiAgICAgICAgICAgICAgZXZlbnQucGVyc2lzdCgpO1xuICAgICAgICAgICAgICBwcm9wcy5vbkNsaWNrKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPE5hdkxpbmtDbGlja2FibGVDb250ZW50V3JhcHBlciB7Li4ucHJvcHN9PlxuICAgICAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgICAgIDwvTmF2TGlua0NsaWNrYWJsZUNvbnRlbnRXcmFwcGVyPlxuICAgICAgICA8L05hdkxpbms+XG4gICAgICA8L05hdkxpbmtXcmFwcGVyPlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIDw+e3Byb3BzLmNoaWxkcmVufTwvPjtcbn07XG5NZW51SXRlbUxpbmsuZGlzcGxheU5hbWUgPSAnTWVudUl0ZW1MaW5rJztcbk1lbnVJdGVtTGluay5kZWZhdWx0UHJvcHMgPSBtZW51SXRlbUxpbmtEZWZhdWx0UHJvcHM7XG5cbmNvbnN0IGlzRXZlcnlNZW51VmlzaWJpbGl0eVNldFRvSGlkZGVuID0gKFxuICBtZW51VmlzaWJpbGl0aWVzPzogVE5vcm1hbGl6ZWRNZW51VmlzaWJpbGl0aWVzIHwgbnVsbCxcbiAgbmFtZXNPZk1lbnVWaXNpYmlsaXRpZXM/OiBzdHJpbmdbXVxuKSA9PlxuICBBcnJheS5pc0FycmF5KG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzKSAmJlxuICBuYW1lc09mTWVudVZpc2liaWxpdGllcy5sZW5ndGggPiAwICYmXG4gIG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzLmV2ZXJ5KFxuICAgIChuYW1lT2ZNZW51VmlzaWJpbGl0eSkgPT5cbiAgICAgIG1lbnVWaXNpYmlsaXRpZXMgJiYgbWVudVZpc2liaWxpdGllc1tuYW1lT2ZNZW51VmlzaWJpbGl0eV0gPT09IHRydWVcbiAgKTtcblxudHlwZSBSZXN0cmljdGVkTWVudUl0ZW1Qcm9wcyA9IHtcbiAgZmVhdHVyZVRvZ2dsZT86IHN0cmluZztcbiAgbmFtZXNPZk1lbnVWaXNpYmlsaXRpZXM/OiBzdHJpbmdbXTtcbiAgcHJvamVjdFBlcm1pc3Npb25zOiBUUHJvamVjdFBlcm1pc3Npb25zO1xuICBtZW51VmlzaWJpbGl0aWVzOiBUTm9ybWFsaXplZE1lbnVWaXNpYmlsaXRpZXMgfCBudWxsO1xuICBrZXlPZk1lbnVJdGVtOiBzdHJpbmc7XG4gIHBlcm1pc3Npb25zOiBzdHJpbmdbXTtcbiAgYWN0aW9uUmlnaHRzPzogVEFjdGlvblJpZ2h0W107XG4gIGRhdGFGZW5jZXM/OiBURGF0YUZlbmNlW107XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG59O1xudHlwZSBUTG9uZ0xpdmVkRmxhZyA9IHtcbiAgdmFsdWU6IGJvb2xlYW47XG4gIHJlYXNvbj86IHN0cmluZztcbn07XG5jb25zdCByZXN0cmljdGVkTWVudUl0ZW1EZWZhdWx0UHJvcHM6IFBpY2s8XG4gIFJlc3RyaWN0ZWRNZW51SXRlbVByb3BzLFxuICAncGVybWlzc2lvbnMnXG4+ID0ge1xuICBwZXJtaXNzaW9uczogW10sXG59O1xuZnVuY3Rpb24gaXNMb25nTGl2ZWRGbGFnKFxuICBmbGFnOiBURmxhZ1ZhcmlhdGlvbiB8IFRMb25nTGl2ZWRGbGFnXG4pOiBmbGFnIGlzIFRMb25nTGl2ZWRGbGFnIHtcbiAgcmV0dXJuIHR5cGVvZiAoZmxhZyBhcyBUTG9uZ0xpdmVkRmxhZyk/LnZhbHVlID09PSAnYm9vbGVhbic7XG59XG5jb25zdCBSZXN0cmljdGVkTWVudUl0ZW0gPSAocHJvcHM6IFJlc3RyaWN0ZWRNZW51SXRlbVByb3BzKSA9PiB7XG4gIC8vIE5PVEU6IEN1c3RvbSBhcHBsaWNhdGlvbiBhcmUgYWN0aXZhdGVkL2RlYWN0aXZhdGVkIHdoaWxlIHRoZWlyXG4gIC8vIHZpc2liaWxpdHkgaXMgbm90IGNvbnRyb2xsZWQgdmlhIGEgdmlzaWJpaWxpdHkgb3ZlcndyaXRlLlxuICBjb25zdCBmbGFnVmFyaWF0aW9uID0gdXNlRmxhZ1ZhcmlhdGlvbihwcm9wcy5mZWF0dXJlVG9nZ2xlKTtcbiAgaWYgKFxuICAgIGlzRXZlcnlNZW51VmlzaWJpbGl0eVNldFRvSGlkZGVuKFxuICAgICAgcHJvcHMubWVudVZpc2liaWxpdGllcyxcbiAgICAgIHByb3BzLm5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzXG4gICAgKVxuICApXG4gICAgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgcGVybWlzc2lvbnNXcmFwcGVyID1cbiAgICAoQXJyYXkuaXNBcnJheShwcm9wcy5wZXJtaXNzaW9ucykgJiYgcHJvcHMucGVybWlzc2lvbnMubGVuZ3RoID4gMCkgfHxcbiAgICAoQXJyYXkuaXNBcnJheShwcm9wcy5kYXRhRmVuY2VzKSAmJiBwcm9wcy5kYXRhRmVuY2VzLmxlbmd0aCA+IDApID8gKFxuICAgICAgPFJlc3RyaWN0ZWRCeVBlcm1pc3Npb25zXG4gICAgICAgIHBlcm1pc3Npb25zPXtwcm9wcy5wZXJtaXNzaW9uc31cbiAgICAgICAgYWN0aW9uUmlnaHRzPXtwcm9wcy5hY3Rpb25SaWdodHN9XG4gICAgICAgIGRhdGFGZW5jZXM9e3Byb3BzLmRhdGFGZW5jZXN9XG4gICAgICAgIHNlbGVjdERhdGFGZW5jZURhdGE9eyhkZW1hbmRlZERhdGFGZW5jZSkgPT4ge1xuICAgICAgICAgIHN3aXRjaCAoZGVtYW5kZWREYXRhRmVuY2UudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnc3RvcmUnOlxuICAgICAgICAgICAgICByZXR1cm4gZGVtYW5kZWREYXRhRmVuY2UuYWN0dWFsRGF0YUZlbmNlVmFsdWVzO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICAvLyBBbHdheXMgY2hlY2sgdGhhdCBzb21lIG9mIHRoZSBnaXZlbiBwZXJtaXNzaW9ucyBtYXRjaC5cbiAgICAgICAgc2hvdWxkTWF0Y2hTb21lUGVybWlzc2lvbnM9e3RydWV9XG4gICAgICAgIHByb2plY3RQZXJtaXNzaW9ucz17cHJvcHMucHJvamVjdFBlcm1pc3Npb25zfVxuICAgICAgPlxuICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICA8L1Jlc3RyaWN0ZWRCeVBlcm1pc3Npb25zPlxuICAgICkgOiAoXG4gICAgICA8Pntwcm9wcy5jaGlsZHJlbn08Lz5cbiAgICApO1xuXG4gIGlmIChwcm9wcy5mZWF0dXJlVG9nZ2xlKSB7XG4gICAgLy8gQSByZWd1bGFyIHNob3J0LWxpdmVkIGZlYXR1cmUgdG9nZ2xlXG4gICAgaWYgKGZsYWdWYXJpYXRpb24gPT09IHRydWUpIHJldHVybiBwZXJtaXNzaW9uc1dyYXBwZXI7XG4gICAgLy8gQSBsb25nLWxpdmVkIGZlYXR1cmUgdG9nZ2xlIHdpdGggYHsgdmFsdWU6IGJvb2xlYW4sIHN0cmluZzogcmVhc29uIH1gXG4gICAgaWYgKGlzTG9uZ0xpdmVkRmxhZyhmbGFnVmFyaWF0aW9uKSAmJiBmbGFnVmFyaWF0aW9uLnZhbHVlID09PSB0cnVlKVxuICAgICAgcmV0dXJuIHBlcm1pc3Npb25zV3JhcHBlcjtcblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHBlcm1pc3Npb25zV3JhcHBlcjtcbn07XG5SZXN0cmljdGVkTWVudUl0ZW0uZGlzcGxheU5hbWUgPSAnUmVzdHJpY3RlZE1lbnVJdGVtJztcblJlc3RyaWN0ZWRNZW51SXRlbS5kZWZhdWx0UHJvcHMgPSByZXN0cmljdGVkTWVudUl0ZW1EZWZhdWx0UHJvcHM7XG5cbnR5cGUgTWVudUxhYmVsUHJvcHMgPSB7XG4gIGxhYmVsQWxsTG9jYWxlczogVExvY2FsaXplZEZpZWxkW107XG4gIGRlZmF1bHRMYWJlbD86IHN0cmluZztcbiAgYXBwbGljYXRpb25Mb2NhbGU6IHN0cmluZztcbn07XG5jb25zdCBNZW51TGFiZWwgPSAocHJvcHM6IE1lbnVMYWJlbFByb3BzKSA9PiB7XG4gIGNvbnN0IGxvY2FsaXplZExhYmVsID0gcHJvcHMubGFiZWxBbGxMb2NhbGVzLmZpbmQoKGxvYykgPT5cbiAgICBwcm9wcy5hcHBsaWNhdGlvbkxvY2FsZS5zdGFydHNXaXRoKGxvYy5sb2NhbGUpXG4gICk7XG4gIGlmIChsb2NhbGl6ZWRMYWJlbCkgcmV0dXJuIDw+e2xvY2FsaXplZExhYmVsLnZhbHVlfTwvPjtcbiAgaWYgKHByb3BzLmRlZmF1bHRMYWJlbCkgcmV0dXJuIDw+e3Byb3BzLmRlZmF1bHRMYWJlbH08Lz47XG4gIHJldHVybiA8PntOT19WQUxVRV9GQUxMQkFDS308Lz47XG59O1xuXG50eXBlIFROYXZCYXJMYXlvdXRQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbn07XG5jb25zdCBOYXZCYXJMYXlvdXQgPSBmb3J3YXJkUmVmPEhUTUxFbGVtZW50LCBUTmF2QmFyTGF5b3V0UHJvcHM+KFxuICAocHJvcHMsIHJlZikgPT4gKFxuICAgIDw+XG4gICAgICA8R2xvYmFsXG4gICAgICAgIHN0eWxlcz17Y3NzYFxuICAgICAgICAgICR7Y29tcGlsZWRTdHlsZXMuZ2xvYmFsfVxuICAgICAgICBgfVxuICAgICAgLz5cbiAgICAgIDxuYXZcbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIGNsYXNzTmFtZT17c3R5bGVzWydsZWZ0LW5hdmlnYXRpb24nXX1cbiAgICAgICAgZGF0YS10ZXN0PVwibGVmdC1uYXZpZ2F0aW9uXCJcbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJsZWZ0LW5hdmlnYXRpb25cIlxuICAgICAgPlxuICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICA8L25hdj5cbiAgICA8Lz5cbiAgKVxuKTtcbk5hdkJhckxheW91dC5kaXNwbGF5TmFtZSA9ICdOYXZCYXJMYXlvdXQnO1xuXG50eXBlIEl0ZW1Db250YWluZXJQcm9wcyA9IHtcbiAgbGFiZWxBbGxMb2NhbGVzOiBUTG9jYWxpemVkRmllbGRbXTtcbiAgZGVmYXVsdExhYmVsPzogc3RyaW5nO1xuICBhcHBsaWNhdGlvbkxvY2FsZTogc3RyaW5nO1xuICBpY29uOiBzdHJpbmc7XG4gIGlzTWVudU9wZW4/OiBib29sZWFuO1xufTtcblxuY29uc3QgSXRlbUNvbnRhaW5lciA9IChwcm9wczogSXRlbUNvbnRhaW5lclByb3BzKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snaXRlbS1pY29uLXRleHQnXX0+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydpY29uLWNvbnRhaW5lciddfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5pY29ufT5cbiAgICAgICAgICA8SWNvblN3aXRjaGVyIGljb249e3Byb3BzLmljb259IHNpemU9XCJzY2FsZVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICB7cHJvcHMuaXNNZW51T3BlbiA/IChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy50aXRsZX0+XG4gICAgICAgICAgPE1lbnVMYWJlbFxuICAgICAgICAgICAgbGFiZWxBbGxMb2NhbGVzPXtwcm9wcy5sYWJlbEFsbExvY2FsZXN9XG4gICAgICAgICAgICBkZWZhdWx0TGFiZWw9e3Byb3BzLmRlZmF1bHRMYWJlbH1cbiAgICAgICAgICAgIGFwcGxpY2F0aW9uTG9jYWxlPXtwcm9wcy5hcHBsaWNhdGlvbkxvY2FsZX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICkgOiBudWxsfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuSXRlbUNvbnRhaW5lci5kaXNwbGF5TmFtZSA9ICdJdGVtQ29udGFpbmVyJztcblxuZXhwb3J0IHtcbiAgUmVzdHJpY3RlZE1lbnVJdGVtLFxuICBNZW51SXRlbSxcbiAgTWVudUl0ZW1MaW5rLFxuICBJY29uU3dpdGNoZXIsXG4gIE1lbnVHcm91cCxcbiAgTWVudUxhYmVsLFxuICBNZW51RXhwYW5kZXIsXG4gIEZhZGVkLFxuICBOYXZCYXJMYXlvdXQsXG4gIEl0ZW1Db250YWluZXIsXG59O1xuIl19 */",
260
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1
261
+ };
262
+ var _ref3 = process.env.NODE_ENV === "production" ? {
263
+ name: "8tapst",
264
+ styles: "bottom:0"
265
+ } : {
266
+ name: "11ucmnx-getContainerPositionBasedOnMenuItemPosition",
267
+ styles: "bottom:0;label:getContainerPositionBasedOnMenuItemPosition;",
268
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUtaXRlbXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlNTyIsImZpbGUiOiJtZW51LWl0ZW1zLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGZvcndhcmRSZWYsXG4gIGxhenksXG4gIHR5cGUgTW91c2VFdmVudEhhbmRsZXIsXG4gIHR5cGUgRm9jdXNFdmVudEhhbmRsZXIsXG4gIHR5cGUgTW91c2VFdmVudCxcbiAgdHlwZSBLZXlib2FyZEV2ZW50LFxuICB0eXBlIFJlYWN0Tm9kZSxcbiAgdHlwZSBTeW50aGV0aWNFdmVudCxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgR2xvYmFsLCBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB1c2VGbGFnVmFyaWF0aW9uIH0gZnJvbSAnQGZsb3BmbGlwL3JlYWN0LWJyb2FkY2FzdCc7XG5pbXBvcnQgdHlwZSB7IFRGbGFnVmFyaWF0aW9uIH0gZnJvbSAnQGZsb3BmbGlwL3R5cGVzJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgTmF2TGluayB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHR5cGUge1xuICBUTm9ybWFsaXplZE1lbnVWaXNpYmlsaXRpZXMsXG4gIFROb3JtYWxpemVkUGVybWlzc2lvbnMsXG4gIFROb3JtYWxpemVkQWN0aW9uUmlnaHRzLFxuICBUTm9ybWFsaXplZERhdGFGZW5jZXMsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IE1pc3NpbmdJbWFnZVN2ZyBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hc3NldHMvaW1hZ2VzL2RpYWdvbmFsLWxpbmUuc3ZnJztcbmltcG9ydCB7IE5PX1ZBTFVFX0ZBTExCQUNLIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7IFJlc3RyaWN0ZWRCeVBlcm1pc3Npb25zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvcGVybWlzc2lvbnMnO1xuaW1wb3J0IHtcbiAgQmFja0ljb24sXG4gIFNpZGViYXJFeHBhbmRJY29uLFxuICBTaWRlYmFyQ29sbGFwc2VJY29uLFxufSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pY29ucyc7XG5pbXBvcnQgSW5saW5lU3ZnIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2ljb25zL2lubGluZS1zdmcnO1xuaW1wb3J0IHsgRElNRU5TSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIFREYXRhRmVuY2UsXG4gIFRBY3Rpb25SaWdodCxcbiAgVExvY2FsaXplZEZpZWxkLFxufSBmcm9tICcuLi8uLi90eXBlcy9nZW5lcmF0ZWQvcHJveHknO1xuaW1wb3J0IHsgbG9jYXRpb24gfSBmcm9tICcuLi8uLi91dGlscy9sb2NhdGlvbic7XG4vLyBodHRwczovL2JhYmVsanMuaW8vYmxvZy8yMDE3LzA5LzExL3plcm8tY29uZmlnLXdpdGgtYmFiZWwtbWFjcm9zXG5pbXBvcnQgY29tcGlsZWRTdHlsZXMgZnJvbSAvKiBwcmV2YWwgKi8gJy4vbmF2YmFyLnN0eWxlcyc7XG5cbmNvbnN0IHN0eWxlcyA9IGNvbXBpbGVkU3R5bGVzLmpzb25NYXA7XG5cbnR5cGUgVFByb2plY3RQZXJtaXNzaW9ucyA9IHtcbiAgcGVybWlzc2lvbnM6IFROb3JtYWxpemVkUGVybWlzc2lvbnMgfCBudWxsO1xuICBhY3Rpb25SaWdodHM6IFROb3JtYWxpemVkQWN0aW9uUmlnaHRzIHwgbnVsbDtcbiAgZGF0YUZlbmNlczogVE5vcm1hbGl6ZWREYXRhRmVuY2VzIHwgbnVsbDtcbn07XG5cbmNvbnN0IEhlYXJ0SWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9oZWFydCcpKTtcbmNvbnN0IFBhcGVyY2xpcEljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvcGFwZXJjbGlwJykpO1xuY29uc3QgUGx1Z2luSWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9wbHVnaW4nKSk7XG5jb25zdCBSb2NrZXRJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3JvY2tldCcpKTtcbmNvbnN0IFN0YXJJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3N0YXInKSk7XG5jb25zdCBDb25uZWN0ZWRTcXVhcmVJY29uID0gbGF6eShcbiAgKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9jb25uZWN0ZWQtc3F1YXJlJylcbik7XG5jb25zdCBXb3JsZEljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvd29ybGQnKSk7XG5jb25zdCBUcmVlU3RydWN0dXJlSWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy90cmVlLXN0cnVjdHVyZScpKTtcbmNvbnN0IFVzZXJGaWxsZWRJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3VzZXItZmlsbGVkJykpO1xuY29uc3QgU3BlZWRvbWV0ZXJJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3NwZWVkb21ldGVyJykpO1xuY29uc3QgVGFnTXVsdGlJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3RhZy1tdWx0aScpKTtcbmNvbnN0IENhcnRJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2NhcnQnKSk7XG5jb25zdCBCb3hJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2JveCcpKTtcbmNvbnN0IEdlYXJJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2dlYXInKSk7XG5jb25zdCBMaXN0V2l0aFNlYXJjaEljb24gPSBsYXp5KFxuICAoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2xpc3Qtd2l0aC1zZWFyY2gnKVxuKTtcblxudHlwZSBJY29uUHJvcHMgPSBQYXJhbWV0ZXJzPHR5cGVvZiBCYWNrSWNvbj5bMF07XG50eXBlIEljb25Td2l0Y2hlclByb3BzID0geyBpY29uOiBzdHJpbmcgfSAmIEljb25Qcm9wcztcbi8vIFRoZSBpY29uIGlzIGV4cGVjdGVkIHRvIGJlIHRoZSBgc3ZnYCBkb2N1bWVudCBhcyBhIHN0cmluZy5cbi8vIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBwdXJwb3Nlcywgd2Ugc3RpbGwgc3VwcG9ydCB0aGUgbGVnYWN5IFwiaWNvbiBuYW1lXCIsXG4vLyB3aGljaCB3ZSB0aGVuIG1hcCB0byBvbmUgb2YgdGhlIHByZS1kZWZpbmVkIGljb25zLlxuLy8gRXZlbnR1YWxseSwgd2Ugd2FudCB0byBnZXQgcmlkIG9mIHRoaXMgXCJzd2l0Y2hcIiBsb2dpYy5cbmNvbnN0IEljb25Td2l0Y2hlciA9ICh7IGljb24sIC4uLmljb25Qcm9wcyB9OiBJY29uU3dpdGNoZXJQcm9wcykgPT4ge1xuICBpZiAoaWNvbi5pbmNsdWRlcygnPHN2ZycpKSB7XG4gICAgcmV0dXJuIDxJbmxpbmVTdmcgZGF0YT17aWNvbn0gey4uLmljb25Qcm9wc30gLz47XG4gIH1cbiAgLy8gQmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZm9yIGFwcHMgdXNpbmcgdGhlIFwiaWNvbiBuYW1lXCIuXG4gIHN3aXRjaCAoaWNvbikge1xuICAgIC8vIExlZ2FjeSBhcHBsaWNhdGlvbiBpY29uc1xuICAgIC8vIFRPRE86IFRvIGJlIHJlbW92ZWQgb25jZSBNQyBhcHBsaWNhdGlvbnMgaWNvbnMgdXBkYXRlcyBhcmUgcHVibGlzaGVkXG4gICAgY2FzZSAnVHJlZVN0cnVjdHVyZUljb24nOlxuICAgICAgcmV0dXJuIDxUcmVlU3RydWN0dXJlSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdVc2VyRmlsbGVkSWNvbic6XG4gICAgICByZXR1cm4gPFVzZXJGaWxsZWRJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1NwZWVkb21ldGVySWNvbic6XG4gICAgICByZXR1cm4gPFNwZWVkb21ldGVySWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdUYWdNdWx0aUljb24nOlxuICAgICAgcmV0dXJuIDxUYWdNdWx0aUljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnQ2FydEljb24nOlxuICAgICAgcmV0dXJuIDxDYXJ0SWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdCb3hJY29uJzpcbiAgICAgIHJldHVybiA8Qm94SWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdHZWFySWNvbic6XG4gICAgICByZXR1cm4gPEdlYXJJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ0xpc3RXaXRoU2VhcmNoSWNvbic6XG4gICAgICByZXR1cm4gPExpc3RXaXRoU2VhcmNoSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcblxuICAgIC8vIEN1c3RvbSBhcHBsaWNhdGlvbiBpY29ucyBzZXRcbiAgICBjYXNlICdIZWFydEljb24nOlxuICAgICAgcmV0dXJuIDxIZWFydEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnUGFwZXJjbGlwSWNvbic6XG4gICAgICByZXR1cm4gPFBhcGVyY2xpcEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnUGx1Z2luSWNvbic6XG4gICAgICByZXR1cm4gPFBsdWdpbkljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnUm9ja2V0SWNvbic6XG4gICAgICByZXR1cm4gPFJvY2tldEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnU3Rhckljb24nOlxuICAgICAgcmV0dXJuIDxTdGFySWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdDb25uZWN0ZWRTcXVhcmVJY29uJzpcbiAgICAgIHJldHVybiA8Q29ubmVjdGVkU3F1YXJlSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICAvLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICBjYXNlICdXb3JsZEljb24nOlxuICAgICAgcmV0dXJuIDxXb3JsZEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiA8aW1nIHNyYz17TWlzc2luZ0ltYWdlU3ZnfSBhbHQ9XCJtaXNzaW5nIGljb25cIiAvPjtcbiAgfVxufTtcbkljb25Td2l0Y2hlci5kaXNwbGF5TmFtZSA9ICdJY29uU3dpdGNoZXInO1xuXG50eXBlIE1lbnVFeHBhbmRlclByb3BzID0ge1xuICBpc1Zpc2libGU6IGJvb2xlYW47XG4gIG9uQ2xpY2s6IChcbiAgICBlOiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PiB8IEtleWJvYXJkRXZlbnQ8SFRNTERpdkVsZW1lbnQ+XG4gICkgPT4gdm9pZDtcbiAgaXNNZW51T3BlbjogYm9vbGVhbjtcbn07XG5cbmNvbnN0IGdldEljb24gPSAoeyBpc01lbnVPcGVuIH06IE1lbnVFeHBhbmRlclByb3BzKSA9PiB7XG4gIGNvbnN0IEljb24gPSBpc01lbnVPcGVuID8gU2lkZWJhckNvbGxhcHNlSWNvbiA6IFNpZGViYXJFeHBhbmRJY29uO1xuICByZXR1cm4gPEljb24gY29sb3I9XCJzdXJmYWNlXCIgc2l6ZT1cImJpZ1wiIC8+O1xufTtcblxuY29uc3QgTWVudUV4cGFuZGVyID0gKHByb3BzOiBNZW51RXhwYW5kZXJQcm9wcykgPT4ge1xuICByZXR1cm4gKFxuICAgIDxsaVxuICAgICAga2V5PVwiZXhwYW5kZXJcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKHN0eWxlcy5leHBhbmRlciwge1xuICAgICAgICBbc3R5bGVzLmhpZGRlbl06ICFwcm9wcy5pc1Zpc2libGUsXG4gICAgICB9KX1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIG9uQ2xpY2s9e3Byb3BzLm9uQ2xpY2t9XG4gICAgICAgIG9uS2V5RG93bj17KGUpID0+IHtcbiAgICAgICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgIHByb3BzLm9uQ2xpY2soZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbJ2V4cGFuZC1pY29uJ119XG4gICAgICAgIGRhdGEtdGVzdGlkPVwibWVudS1leHBhbmRlclwiXG4gICAgICA+XG4gICAgICAgIHtnZXRJY29uKHByb3BzKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvbGk+XG4gICk7XG59O1xuTWVudUV4cGFuZGVyLmRpc3BsYXlOYW1lID0gJ01lbnVFeHBhbmRlcic7XG5cbmNvbnN0IEZhZGVkID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0zMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDE1MywgMTM1LCAwKSAwJSwgIzAwYjM5ZSAxMDAlKTtcbiAgei1pbmRleDogMTtcbmA7XG5cbnR5cGUgTWVudUdyb3VwUHJvcHMgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIGxldmVsOiAxIHwgMjtcbiAgaXNBY3RpdmU/OiBib29sZWFuO1xuICBpc0V4cGFuZGVkPzogYm9vbGVhbjtcbiAgaGFzU3VibWVudT86IGJvb2xlYW47XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xuICBzdWJtZW51VmVydGljYWxQb3NpdGlvbj86IG51bWJlcjtcbiAgaXNTdWJtZW51QWJvdmVNZW51SXRlbT86IGJvb2xlYW47XG59O1xuXG5jb25zdCBnZXRTdWJtZW51UG9zaXRpb25CYXNlZE9uTWVudUl0ZW1Qb3NpdGlvbiA9IChcbiAgaXNTdWJtZW51QWJvdmVNZW51SXRlbT86IGJvb2xlYW4sXG4gIHN1Ym1lbnVWZXJ0aWNhbFBvc2l0aW9uPzogbnVtYmVyXG4pID0+IGNzc2BcbiAgJHtpc1N1Ym1lbnVBYm92ZU1lbnVJdGVtID8gJ2JvdHRvbScgOiAndG9wJ306ICR7c3VibWVudVZlcnRpY2FsUG9zaXRpb259cHhcbmA7XG5cbmNvbnN0IGdldENvbnRhaW5lclBvc2l0aW9uQmFzZWRPbk1lbnVJdGVtUG9zaXRpb24gPSAoXG4gIGlzU3VibWVudUFib3ZlTWVudUl0ZW0/OiBib29sZWFuLFxuICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUV4cGFuZGVkPzogYm9vbGVhbixcbiAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQ/OiBib29sZWFuXG4pID0+IFtcbiAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQgJiZcbiAgICBjc3NgXG4gICAgICAke2lzU3VibWVudUFib3ZlTWVudUl0ZW1cbiAgICAgICAgPyAnYm90dG9tJ1xuICAgICAgICA6ICd0b3AnfTogLSR7RElNRU5TSU9OUy5uYXZNZW51SXRlbUhlaWdodH07XG4gICAgYCxcbiAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCAmJlxuICAgIGlzU3VibWVudUFib3ZlTWVudUl0ZW0gJiZcbiAgICBjc3NgXG4gICAgICBib3R0b206IDA7XG4gICAgYCxcbiAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCAmJlxuICAgICFpc1N1Ym1lbnVBYm92ZU1lbnVJdGVtICYmXG4gICAgY3NzYFxuICAgICAgdG9wOiAwO1xuICAgIGAsXG5dO1xuXG5jb25zdCBNZW51R3JvdXAgPSBmb3J3YXJkUmVmPEhUTUxVTGlzdEVsZW1lbnQsIE1lbnVHcm91cFByb3BzPigocHJvcHMsIHJlZikgPT4ge1xuICBpZiAoXG4gICAgcHJvcHMuaXNFeHBhbmRlZCAmJlxuICAgICgocHJvcHMubGV2ZWwgPT09IDIgJiYgIXByb3BzLmhhc1N1Ym1lbnUpIHx8XG4gICAgICAocHJvcHMubGV2ZWwgPT09IDIgJiYgIXByb3BzLmlzQWN0aXZlKSlcbiAgKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCA9XG4gICAgcHJvcHMubGV2ZWwgPT09IDIgJiYgcHJvcHMuaXNBY3RpdmUgJiYgcHJvcHMuaXNFeHBhbmRlZDtcbiAgY29uc3QgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQgPVxuICAgIHByb3BzLmxldmVsID09PSAyICYmIHByb3BzLmlzQWN0aXZlICYmICFwcm9wcy5pc0V4cGFuZGVkO1xuICByZXR1cm4gKFxuICAgIDx1bFxuICAgICAgcmVmPXtyZWYgJiYgcHJvcHMubGV2ZWwgPT09IDIgPyByZWYgOiBudWxsfVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgICR7Z2V0U3VibWVudVBvc2l0aW9uQmFzZWRPbk1lbnVJdGVtUG9zaXRpb24oXG4gICAgICAgICAgcHJvcHMuaXNTdWJtZW51QWJvdmVNZW51SXRlbSxcbiAgICAgICAgICBwcm9wcy5zdWJtZW51VmVydGljYWxQb3NpdGlvblxuICAgICAgICApfTtcbiAgICAgIFxuICAgICAgLy8gcHJldmVudCBnbGl0Y2h5IGJlaGF2aW9yIGR1cmluZyB0aGUgaW5pdGlhbCByZW5kZXIgd2hlbiB0aGUgc3VibWVudSdzIHZlcnRpY2FsIHBvc2l0aW9uIGlzIGV2YWx1YXRlZCBhcyAwXG4gICAgICAke1xuICAgICAgICBwcm9wcy5zdWJtZW51VmVydGljYWxQb3NpdGlvbiA9PT0gMCAmJlxuICAgICAgICBjc3NgXG4gICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICBgXG4gICAgICB9XG5cbiAgICAgICAgLy8gYWRkaXRpb25hbCBzdHlsaW5nIG9mIHRoZSBwc2V1ZG8tZWxlbWVudCBlbmFibGluZyBzbW9vdGggY291cnNvciBtb3ZlbWVudFxuICAgICAgICA6OmJlZm9yZSB7XG4gICAgICAgICAgJHtnZXRDb250YWluZXJQb3NpdGlvbkJhc2VkT25NZW51SXRlbVBvc2l0aW9uKFxuICAgICAgICAgICAgcHJvcHMuaXNTdWJtZW51QWJvdmVNZW51SXRlbSxcbiAgICAgICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51RXhwYW5kZWQsXG4gICAgICAgICAgICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUNvbGxhcHNlZFxuICAgICAgICAgICl9XG4gICAgICBgfVxuICAgICAgaWQ9e2Bncm91cC0ke3Byb3BzLmlkfWB9XG4gICAgICBkYXRhLXRlc3RpZD17YGdyb3VwLSR7cHJvcHMuaWR9YH1cbiAgICAgIHJvbGU9XCJtZW51XCJcbiAgICAgIGFyaWEtZXhwYW5kZWQ9e1xuICAgICAgICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUV4cGFuZGVkIHx8XG4gICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkXG4gICAgICB9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoXG4gICAgICAgIHsgW3N0eWxlcy5saXN0XTogcHJvcHMubGV2ZWwgPT09IDEgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXNbJ3N1Ymxpc3QnXV06IHByb3BzLmxldmVsID09PSAyLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlc1snc3VibGlzdC1leHBhbmRlZF9fYWN0aXZlJ11dOlxuICAgICAgICAgICAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXNbJ3N1Ymxpc3QtY29sbGFwc2VkX19lbXB0eSddXTpcbiAgICAgICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkICYmICFwcm9wcy5oYXNTdWJtZW51LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlc1snc3VibGlzdC1jb2xsYXBzZWRfX2FjdGl2ZSddXTpcbiAgICAgICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkICYmXG4gICAgICAgICAgICAhcHJvcHMuaXNTdWJtZW51QWJvdmVNZW51SXRlbSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXNbJ3N1Ymxpc3QtY29sbGFwc2VkX19hY3RpdmVfX2Fib3ZlJ11dOlxuICAgICAgICAgICAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQgJiYgcHJvcHMuaXNTdWJtZW51QWJvdmVNZW51SXRlbSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMuc3VibGlzdF9faW5hY3RpdmVdOiAhaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQsXG4gICAgICAgIH1cbiAgICAgICl9XG4gICAgPlxuICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgIDwvdWw+XG4gICk7XG59KTtcbk1lbnVHcm91cC5kaXNwbGF5TmFtZSA9ICdNZW51R3JvdXAnO1xuXG50eXBlIE1lbnVJdGVtUHJvcHMgPSB7XG4gIGhhc1N1Ym1lbnU6IGJvb2xlYW47XG4gIGlzQWN0aXZlOiBib29sZWFuO1xuICBpc01haW5NZW51Um91dGVBY3RpdmU/OiBib29sZWFuO1xuICBpc01lbnVPcGVuOiBib29sZWFuO1xuICBvbkNsaWNrOiBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD47XG4gIG9uTW91c2VFbnRlcj86XG4gICAgfCBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD5cbiAgICB8IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxFbGVtZW50PjtcbiAgb25Nb3VzZUxlYXZlPzpcbiAgICB8IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxFbGVtZW50PlxuICAgIHwgRm9jdXNFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+O1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBpZGVudGlmaWVyPzogc3RyaW5nO1xufTtcbmNvbnN0IE1lbnVJdGVtID0gKHByb3BzOiBNZW51SXRlbVByb3BzKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGxpXG4gICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKHN0eWxlc1snbGlzdC1pdGVtJ10sIHtcbiAgICAgICAgW3N0eWxlcy5pdGVtX19hY3RpdmVdOiBwcm9wcy5pc0FjdGl2ZSxcbiAgICAgICAgW3N0eWxlc1snaXRlbV9tZW51X19hY3RpdmUnXV06IHByb3BzLmlzTWFpbk1lbnVSb3V0ZUFjdGl2ZSA/PyBmYWxzZSxcbiAgICAgICAgW3N0eWxlc1snaXRlbV9tZW51LWNvbGxhcHNlZCddXTogIXByb3BzLmlzTWVudU9wZW4sXG4gICAgICB9KX1cbiAgICAgIG9uQ2xpY2s9e3Byb3BzLm9uQ2xpY2t9XG4gICAgICBvbk1vdXNlRW50ZXI9e3Byb3BzLm9uTW91c2VFbnRlciBhcyBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD59XG4gICAgICBvbk1vdXNlTGVhdmU9e3Byb3BzLm9uTW91c2VMZWF2ZSBhcyBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD59XG4gICAgICBvbkZvY3VzPXtwcm9wcy5vbk1vdXNlRW50ZXIgYXMgRm9jdXNFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+fVxuICAgICAgb25CbHVyPXtwcm9wcy5vbk1vdXNlTGVhdmUgYXMgRm9jdXNFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+fVxuICAgICAgZGF0YS1tZW51aXRlbT17cHJvcHMuaWRlbnRpZmllcn1cbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydpdGVtLWxpbmsnXX0+e3Byb3BzLmNoaWxkcmVufTwvZGl2PlxuICAgIDwvbGk+XG4gICk7XG59O1xuXG5NZW51SXRlbS5kaXNwbGF5TmFtZSA9ICdNZW51SXRlbSc7XG5cbmV4cG9ydCB0eXBlIE1lbnVJdGVtTGlua1Byb3BzID0ge1xuICBsaW5rVG8/OiBzdHJpbmc7XG4gIGV4YWN0TWF0Y2g6IGJvb2xlYW47XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIG9uQ2xpY2s/OiAoZXZlbnQ6IFN5bnRoZXRpY0V2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4gdm9pZDtcbiAgdXNlRnVsbFJlZGlyZWN0c0ZvckxpbmtzPzogYm9vbGVhbjtcbiAgaXNTdWJtZW51TGluaz86IGJvb2xlYW47XG59O1xuY29uc3QgbWVudUl0ZW1MaW5rRGVmYXVsdFByb3BzOiBQaWNrPE1lbnVJdGVtTGlua1Byb3BzLCAnZXhhY3RNYXRjaCc+ID0ge1xuICBleGFjdE1hdGNoOiBmYWxzZSxcbn07XG5jb25zdCBOYXZMaW5rV3JhcHBlciA9IChwcm9wczogTWVudUl0ZW1MaW5rUHJvcHMpID0+IHtcbiAgaWYgKHByb3BzLmlzU3VibWVudUxpbmspIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1sndGV4dC1saW5rLXN1Ymxpc3Qtd3JhcHBlciddfT5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuICByZXR1cm4gPD57cHJvcHMuY2hpbGRyZW59PC8+O1xufTtcbmNvbnN0IE5hdkxpbmtDbGlja2FibGVDb250ZW50V3JhcHBlciA9IChwcm9wczogTWVudUl0ZW1MaW5rUHJvcHMpID0+IHtcbiAgaWYgKHByb3BzLmlzU3VibWVudUxpbmspIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snbmF2bGluay1jbGlja2FibGUtY29udGVudCddfT5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuICByZXR1cm4gPD57cHJvcHMuY2hpbGRyZW59PC8+O1xufTtcblxuY29uc3QgTWVudUl0ZW1MaW5rID0gKHByb3BzOiBNZW51SXRlbUxpbmtQcm9wcykgPT4ge1xuICBjb25zdCByZWRpcmVjdFRvID0gKHRhcmdldFVybDogc3RyaW5nKSA9PiBsb2NhdGlvbi5yZXBsYWNlKHRhcmdldFVybCk7XG4gIGlmIChwcm9wcy5saW5rVG8pIHtcbiAgICBjb25zdCBsaW5rTGV2ZWwgPSBwcm9wcy5pc1N1Ym1lbnVMaW5rID8gJ3RleHQtbGluay1zdWJsaXN0JyA6ICd0ZXh0LWxpbmsnO1xuICAgIHJldHVybiAoXG4gICAgICA8TmF2TGlua1dyYXBwZXIgey4uLnByb3BzfT5cbiAgICAgICAgPE5hdkxpbmtcbiAgICAgICAgICB0bz17cHJvcHMubGlua1RvfVxuICAgICAgICAgIGV4YWN0PXtwcm9wcy5leGFjdE1hdGNofVxuICAgICAgICAgIGFjdGl2ZUNsYXNzTmFtZT17c3R5bGVzLmhpZ2hsaWdodGVkfVxuICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW2xpbmtMZXZlbF19XG4gICAgICAgICAgZGF0YS1saW5rLWxldmVsPXtsaW5rTGV2ZWx9XG4gICAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAocHJvcHMubGlua1RvICYmIHByb3BzLnVzZUZ1bGxSZWRpcmVjdHNGb3JMaW5rcykge1xuICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICByZWRpcmVjdFRvKHByb3BzLmxpbmtUbyk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHByb3BzLm9uQ2xpY2spIHtcbiAgICAgICAgICAgICAgZXZlbnQucGVyc2lzdCgpO1xuICAgICAgICAgICAgICBwcm9wcy5vbkNsaWNrKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPE5hdkxpbmtDbGlja2FibGVDb250ZW50V3JhcHBlciB7Li4ucHJvcHN9PlxuICAgICAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgICAgIDwvTmF2TGlua0NsaWNrYWJsZUNvbnRlbnRXcmFwcGVyPlxuICAgICAgICA8L05hdkxpbms+XG4gICAgICA8L05hdkxpbmtXcmFwcGVyPlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIDw+e3Byb3BzLmNoaWxkcmVufTwvPjtcbn07XG5NZW51SXRlbUxpbmsuZGlzcGxheU5hbWUgPSAnTWVudUl0ZW1MaW5rJztcbk1lbnVJdGVtTGluay5kZWZhdWx0UHJvcHMgPSBtZW51SXRlbUxpbmtEZWZhdWx0UHJvcHM7XG5cbmNvbnN0IGlzRXZlcnlNZW51VmlzaWJpbGl0eVNldFRvSGlkZGVuID0gKFxuICBtZW51VmlzaWJpbGl0aWVzPzogVE5vcm1hbGl6ZWRNZW51VmlzaWJpbGl0aWVzIHwgbnVsbCxcbiAgbmFtZXNPZk1lbnVWaXNpYmlsaXRpZXM/OiBzdHJpbmdbXVxuKSA9PlxuICBBcnJheS5pc0FycmF5KG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzKSAmJlxuICBuYW1lc09mTWVudVZpc2liaWxpdGllcy5sZW5ndGggPiAwICYmXG4gIG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzLmV2ZXJ5KFxuICAgIChuYW1lT2ZNZW51VmlzaWJpbGl0eSkgPT5cbiAgICAgIG1lbnVWaXNpYmlsaXRpZXMgJiYgbWVudVZpc2liaWxpdGllc1tuYW1lT2ZNZW51VmlzaWJpbGl0eV0gPT09IHRydWVcbiAgKTtcblxudHlwZSBSZXN0cmljdGVkTWVudUl0ZW1Qcm9wcyA9IHtcbiAgZmVhdHVyZVRvZ2dsZT86IHN0cmluZztcbiAgbmFtZXNPZk1lbnVWaXNpYmlsaXRpZXM/OiBzdHJpbmdbXTtcbiAgcHJvamVjdFBlcm1pc3Npb25zOiBUUHJvamVjdFBlcm1pc3Npb25zO1xuICBtZW51VmlzaWJpbGl0aWVzOiBUTm9ybWFsaXplZE1lbnVWaXNpYmlsaXRpZXMgfCBudWxsO1xuICBrZXlPZk1lbnVJdGVtOiBzdHJpbmc7XG4gIHBlcm1pc3Npb25zOiBzdHJpbmdbXTtcbiAgYWN0aW9uUmlnaHRzPzogVEFjdGlvblJpZ2h0W107XG4gIGRhdGFGZW5jZXM/OiBURGF0YUZlbmNlW107XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG59O1xudHlwZSBUTG9uZ0xpdmVkRmxhZyA9IHtcbiAgdmFsdWU6IGJvb2xlYW47XG4gIHJlYXNvbj86IHN0cmluZztcbn07XG5jb25zdCByZXN0cmljdGVkTWVudUl0ZW1EZWZhdWx0UHJvcHM6IFBpY2s8XG4gIFJlc3RyaWN0ZWRNZW51SXRlbVByb3BzLFxuICAncGVybWlzc2lvbnMnXG4+ID0ge1xuICBwZXJtaXNzaW9uczogW10sXG59O1xuZnVuY3Rpb24gaXNMb25nTGl2ZWRGbGFnKFxuICBmbGFnOiBURmxhZ1ZhcmlhdGlvbiB8IFRMb25nTGl2ZWRGbGFnXG4pOiBmbGFnIGlzIFRMb25nTGl2ZWRGbGFnIHtcbiAgcmV0dXJuIHR5cGVvZiAoZmxhZyBhcyBUTG9uZ0xpdmVkRmxhZyk/LnZhbHVlID09PSAnYm9vbGVhbic7XG59XG5jb25zdCBSZXN0cmljdGVkTWVudUl0ZW0gPSAocHJvcHM6IFJlc3RyaWN0ZWRNZW51SXRlbVByb3BzKSA9PiB7XG4gIC8vIE5PVEU6IEN1c3RvbSBhcHBsaWNhdGlvbiBhcmUgYWN0aXZhdGVkL2RlYWN0aXZhdGVkIHdoaWxlIHRoZWlyXG4gIC8vIHZpc2liaWxpdHkgaXMgbm90IGNvbnRyb2xsZWQgdmlhIGEgdmlzaWJpaWxpdHkgb3ZlcndyaXRlLlxuICBjb25zdCBmbGFnVmFyaWF0aW9uID0gdXNlRmxhZ1ZhcmlhdGlvbihwcm9wcy5mZWF0dXJlVG9nZ2xlKTtcbiAgaWYgKFxuICAgIGlzRXZlcnlNZW51VmlzaWJpbGl0eVNldFRvSGlkZGVuKFxuICAgICAgcHJvcHMubWVudVZpc2liaWxpdGllcyxcbiAgICAgIHByb3BzLm5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzXG4gICAgKVxuICApXG4gICAgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgcGVybWlzc2lvbnNXcmFwcGVyID1cbiAgICAoQXJyYXkuaXNBcnJheShwcm9wcy5wZXJtaXNzaW9ucykgJiYgcHJvcHMucGVybWlzc2lvbnMubGVuZ3RoID4gMCkgfHxcbiAgICAoQXJyYXkuaXNBcnJheShwcm9wcy5kYXRhRmVuY2VzKSAmJiBwcm9wcy5kYXRhRmVuY2VzLmxlbmd0aCA+IDApID8gKFxuICAgICAgPFJlc3RyaWN0ZWRCeVBlcm1pc3Npb25zXG4gICAgICAgIHBlcm1pc3Npb25zPXtwcm9wcy5wZXJtaXNzaW9uc31cbiAgICAgICAgYWN0aW9uUmlnaHRzPXtwcm9wcy5hY3Rpb25SaWdodHN9XG4gICAgICAgIGRhdGFGZW5jZXM9e3Byb3BzLmRhdGFGZW5jZXN9XG4gICAgICAgIHNlbGVjdERhdGFGZW5jZURhdGE9eyhkZW1hbmRlZERhdGFGZW5jZSkgPT4ge1xuICAgICAgICAgIHN3aXRjaCAoZGVtYW5kZWREYXRhRmVuY2UudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnc3RvcmUnOlxuICAgICAgICAgICAgICByZXR1cm4gZGVtYW5kZWREYXRhRmVuY2UuYWN0dWFsRGF0YUZlbmNlVmFsdWVzO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICAvLyBBbHdheXMgY2hlY2sgdGhhdCBzb21lIG9mIHRoZSBnaXZlbiBwZXJtaXNzaW9ucyBtYXRjaC5cbiAgICAgICAgc2hvdWxkTWF0Y2hTb21lUGVybWlzc2lvbnM9e3RydWV9XG4gICAgICAgIHByb2plY3RQZXJtaXNzaW9ucz17cHJvcHMucHJvamVjdFBlcm1pc3Npb25zfVxuICAgICAgPlxuICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICA8L1Jlc3RyaWN0ZWRCeVBlcm1pc3Npb25zPlxuICAgICkgOiAoXG4gICAgICA8Pntwcm9wcy5jaGlsZHJlbn08Lz5cbiAgICApO1xuXG4gIGlmIChwcm9wcy5mZWF0dXJlVG9nZ2xlKSB7XG4gICAgLy8gQSByZWd1bGFyIHNob3J0LWxpdmVkIGZlYXR1cmUgdG9nZ2xlXG4gICAgaWYgKGZsYWdWYXJpYXRpb24gPT09IHRydWUpIHJldHVybiBwZXJtaXNzaW9uc1dyYXBwZXI7XG4gICAgLy8gQSBsb25nLWxpdmVkIGZlYXR1cmUgdG9nZ2xlIHdpdGggYHsgdmFsdWU6IGJvb2xlYW4sIHN0cmluZzogcmVhc29uIH1gXG4gICAgaWYgKGlzTG9uZ0xpdmVkRmxhZyhmbGFnVmFyaWF0aW9uKSAmJiBmbGFnVmFyaWF0aW9uLnZhbHVlID09PSB0cnVlKVxuICAgICAgcmV0dXJuIHBlcm1pc3Npb25zV3JhcHBlcjtcblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHBlcm1pc3Npb25zV3JhcHBlcjtcbn07XG5SZXN0cmljdGVkTWVudUl0ZW0uZGlzcGxheU5hbWUgPSAnUmVzdHJpY3RlZE1lbnVJdGVtJztcblJlc3RyaWN0ZWRNZW51SXRlbS5kZWZhdWx0UHJvcHMgPSByZXN0cmljdGVkTWVudUl0ZW1EZWZhdWx0UHJvcHM7XG5cbnR5cGUgTWVudUxhYmVsUHJvcHMgPSB7XG4gIGxhYmVsQWxsTG9jYWxlczogVExvY2FsaXplZEZpZWxkW107XG4gIGRlZmF1bHRMYWJlbD86IHN0cmluZztcbiAgYXBwbGljYXRpb25Mb2NhbGU6IHN0cmluZztcbn07XG5jb25zdCBNZW51TGFiZWwgPSAocHJvcHM6IE1lbnVMYWJlbFByb3BzKSA9PiB7XG4gIGNvbnN0IGxvY2FsaXplZExhYmVsID0gcHJvcHMubGFiZWxBbGxMb2NhbGVzLmZpbmQoKGxvYykgPT5cbiAgICBwcm9wcy5hcHBsaWNhdGlvbkxvY2FsZS5zdGFydHNXaXRoKGxvYy5sb2NhbGUpXG4gICk7XG4gIGlmIChsb2NhbGl6ZWRMYWJlbCkgcmV0dXJuIDw+e2xvY2FsaXplZExhYmVsLnZhbHVlfTwvPjtcbiAgaWYgKHByb3BzLmRlZmF1bHRMYWJlbCkgcmV0dXJuIDw+e3Byb3BzLmRlZmF1bHRMYWJlbH08Lz47XG4gIHJldHVybiA8PntOT19WQUxVRV9GQUxMQkFDS308Lz47XG59O1xuXG50eXBlIFROYXZCYXJMYXlvdXRQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbn07XG5jb25zdCBOYXZCYXJMYXlvdXQgPSBmb3J3YXJkUmVmPEhUTUxFbGVtZW50LCBUTmF2QmFyTGF5b3V0UHJvcHM+KFxuICAocHJvcHMsIHJlZikgPT4gKFxuICAgIDw+XG4gICAgICA8R2xvYmFsXG4gICAgICAgIHN0eWxlcz17Y3NzYFxuICAgICAgICAgICR7Y29tcGlsZWRTdHlsZXMuZ2xvYmFsfVxuICAgICAgICBgfVxuICAgICAgLz5cbiAgICAgIDxuYXZcbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIGNsYXNzTmFtZT17c3R5bGVzWydsZWZ0LW5hdmlnYXRpb24nXX1cbiAgICAgICAgZGF0YS10ZXN0PVwibGVmdC1uYXZpZ2F0aW9uXCJcbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJsZWZ0LW5hdmlnYXRpb25cIlxuICAgICAgPlxuICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICA8L25hdj5cbiAgICA8Lz5cbiAgKVxuKTtcbk5hdkJhckxheW91dC5kaXNwbGF5TmFtZSA9ICdOYXZCYXJMYXlvdXQnO1xuXG50eXBlIEl0ZW1Db250YWluZXJQcm9wcyA9IHtcbiAgbGFiZWxBbGxMb2NhbGVzOiBUTG9jYWxpemVkRmllbGRbXTtcbiAgZGVmYXVsdExhYmVsPzogc3RyaW5nO1xuICBhcHBsaWNhdGlvbkxvY2FsZTogc3RyaW5nO1xuICBpY29uOiBzdHJpbmc7XG4gIGlzTWVudU9wZW4/OiBib29sZWFuO1xufTtcblxuY29uc3QgSXRlbUNvbnRhaW5lciA9IChwcm9wczogSXRlbUNvbnRhaW5lclByb3BzKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snaXRlbS1pY29uLXRleHQnXX0+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydpY29uLWNvbnRhaW5lciddfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5pY29ufT5cbiAgICAgICAgICA8SWNvblN3aXRjaGVyIGljb249e3Byb3BzLmljb259IHNpemU9XCJzY2FsZVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICB7cHJvcHMuaXNNZW51T3BlbiA/IChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy50aXRsZX0+XG4gICAgICAgICAgPE1lbnVMYWJlbFxuICAgICAgICAgICAgbGFiZWxBbGxMb2NhbGVzPXtwcm9wcy5sYWJlbEFsbExvY2FsZXN9XG4gICAgICAgICAgICBkZWZhdWx0TGFiZWw9e3Byb3BzLmRlZmF1bHRMYWJlbH1cbiAgICAgICAgICAgIGFwcGxpY2F0aW9uTG9jYWxlPXtwcm9wcy5hcHBsaWNhdGlvbkxvY2FsZX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICkgOiBudWxsfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuSXRlbUNvbnRhaW5lci5kaXNwbGF5TmFtZSA9ICdJdGVtQ29udGFpbmVyJztcblxuZXhwb3J0IHtcbiAgUmVzdHJpY3RlZE1lbnVJdGVtLFxuICBNZW51SXRlbSxcbiAgTWVudUl0ZW1MaW5rLFxuICBJY29uU3dpdGNoZXIsXG4gIE1lbnVHcm91cCxcbiAgTWVudUxhYmVsLFxuICBNZW51RXhwYW5kZXIsXG4gIEZhZGVkLFxuICBOYXZCYXJMYXlvdXQsXG4gIEl0ZW1Db250YWluZXIsXG59O1xuIl19 */",
269
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1
270
+ };
271
+ const getContainerPositionBasedOnMenuItemPosition = (isSubmenuAboveMenuItem, isSublistActiveWhileIsMenuExpanded, isSublistActiveWhileIsMenuCollapsed) => [isSublistActiveWhileIsMenuCollapsed && /*#__PURE__*/react$1.css(isSubmenuAboveMenuItem ? 'bottom' : 'top', ":-", oidc.DIMENSIONS.navMenuItemHeight, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:getContainerPositionBasedOnMenuItemPosition;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUtaXRlbXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtNTyIsImZpbGUiOiJtZW51LWl0ZW1zLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGZvcndhcmRSZWYsXG4gIGxhenksXG4gIHR5cGUgTW91c2VFdmVudEhhbmRsZXIsXG4gIHR5cGUgRm9jdXNFdmVudEhhbmRsZXIsXG4gIHR5cGUgTW91c2VFdmVudCxcbiAgdHlwZSBLZXlib2FyZEV2ZW50LFxuICB0eXBlIFJlYWN0Tm9kZSxcbiAgdHlwZSBTeW50aGV0aWNFdmVudCxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgR2xvYmFsLCBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB1c2VGbGFnVmFyaWF0aW9uIH0gZnJvbSAnQGZsb3BmbGlwL3JlYWN0LWJyb2FkY2FzdCc7XG5pbXBvcnQgdHlwZSB7IFRGbGFnVmFyaWF0aW9uIH0gZnJvbSAnQGZsb3BmbGlwL3R5cGVzJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgTmF2TGluayB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHR5cGUge1xuICBUTm9ybWFsaXplZE1lbnVWaXNpYmlsaXRpZXMsXG4gIFROb3JtYWxpemVkUGVybWlzc2lvbnMsXG4gIFROb3JtYWxpemVkQWN0aW9uUmlnaHRzLFxuICBUTm9ybWFsaXplZERhdGFGZW5jZXMsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IE1pc3NpbmdJbWFnZVN2ZyBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hc3NldHMvaW1hZ2VzL2RpYWdvbmFsLWxpbmUuc3ZnJztcbmltcG9ydCB7IE5PX1ZBTFVFX0ZBTExCQUNLIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7IFJlc3RyaWN0ZWRCeVBlcm1pc3Npb25zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvcGVybWlzc2lvbnMnO1xuaW1wb3J0IHtcbiAgQmFja0ljb24sXG4gIFNpZGViYXJFeHBhbmRJY29uLFxuICBTaWRlYmFyQ29sbGFwc2VJY29uLFxufSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pY29ucyc7XG5pbXBvcnQgSW5saW5lU3ZnIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2ljb25zL2lubGluZS1zdmcnO1xuaW1wb3J0IHsgRElNRU5TSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIFREYXRhRmVuY2UsXG4gIFRBY3Rpb25SaWdodCxcbiAgVExvY2FsaXplZEZpZWxkLFxufSBmcm9tICcuLi8uLi90eXBlcy9nZW5lcmF0ZWQvcHJveHknO1xuaW1wb3J0IHsgbG9jYXRpb24gfSBmcm9tICcuLi8uLi91dGlscy9sb2NhdGlvbic7XG4vLyBodHRwczovL2JhYmVsanMuaW8vYmxvZy8yMDE3LzA5LzExL3plcm8tY29uZmlnLXdpdGgtYmFiZWwtbWFjcm9zXG5pbXBvcnQgY29tcGlsZWRTdHlsZXMgZnJvbSAvKiBwcmV2YWwgKi8gJy4vbmF2YmFyLnN0eWxlcyc7XG5cbmNvbnN0IHN0eWxlcyA9IGNvbXBpbGVkU3R5bGVzLmpzb25NYXA7XG5cbnR5cGUgVFByb2plY3RQZXJtaXNzaW9ucyA9IHtcbiAgcGVybWlzc2lvbnM6IFROb3JtYWxpemVkUGVybWlzc2lvbnMgfCBudWxsO1xuICBhY3Rpb25SaWdodHM6IFROb3JtYWxpemVkQWN0aW9uUmlnaHRzIHwgbnVsbDtcbiAgZGF0YUZlbmNlczogVE5vcm1hbGl6ZWREYXRhRmVuY2VzIHwgbnVsbDtcbn07XG5cbmNvbnN0IEhlYXJ0SWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9oZWFydCcpKTtcbmNvbnN0IFBhcGVyY2xpcEljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvcGFwZXJjbGlwJykpO1xuY29uc3QgUGx1Z2luSWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9wbHVnaW4nKSk7XG5jb25zdCBSb2NrZXRJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3JvY2tldCcpKTtcbmNvbnN0IFN0YXJJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3N0YXInKSk7XG5jb25zdCBDb25uZWN0ZWRTcXVhcmVJY29uID0gbGF6eShcbiAgKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9jb25uZWN0ZWQtc3F1YXJlJylcbik7XG5jb25zdCBXb3JsZEljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvd29ybGQnKSk7XG5jb25zdCBUcmVlU3RydWN0dXJlSWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy90cmVlLXN0cnVjdHVyZScpKTtcbmNvbnN0IFVzZXJGaWxsZWRJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3VzZXItZmlsbGVkJykpO1xuY29uc3QgU3BlZWRvbWV0ZXJJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3NwZWVkb21ldGVyJykpO1xuY29uc3QgVGFnTXVsdGlJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3RhZy1tdWx0aScpKTtcbmNvbnN0IENhcnRJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2NhcnQnKSk7XG5jb25zdCBCb3hJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2JveCcpKTtcbmNvbnN0IEdlYXJJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2dlYXInKSk7XG5jb25zdCBMaXN0V2l0aFNlYXJjaEljb24gPSBsYXp5KFxuICAoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2xpc3Qtd2l0aC1zZWFyY2gnKVxuKTtcblxudHlwZSBJY29uUHJvcHMgPSBQYXJhbWV0ZXJzPHR5cGVvZiBCYWNrSWNvbj5bMF07XG50eXBlIEljb25Td2l0Y2hlclByb3BzID0geyBpY29uOiBzdHJpbmcgfSAmIEljb25Qcm9wcztcbi8vIFRoZSBpY29uIGlzIGV4cGVjdGVkIHRvIGJlIHRoZSBgc3ZnYCBkb2N1bWVudCBhcyBhIHN0cmluZy5cbi8vIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBwdXJwb3Nlcywgd2Ugc3RpbGwgc3VwcG9ydCB0aGUgbGVnYWN5IFwiaWNvbiBuYW1lXCIsXG4vLyB3aGljaCB3ZSB0aGVuIG1hcCB0byBvbmUgb2YgdGhlIHByZS1kZWZpbmVkIGljb25zLlxuLy8gRXZlbnR1YWxseSwgd2Ugd2FudCB0byBnZXQgcmlkIG9mIHRoaXMgXCJzd2l0Y2hcIiBsb2dpYy5cbmNvbnN0IEljb25Td2l0Y2hlciA9ICh7IGljb24sIC4uLmljb25Qcm9wcyB9OiBJY29uU3dpdGNoZXJQcm9wcykgPT4ge1xuICBpZiAoaWNvbi5pbmNsdWRlcygnPHN2ZycpKSB7XG4gICAgcmV0dXJuIDxJbmxpbmVTdmcgZGF0YT17aWNvbn0gey4uLmljb25Qcm9wc30gLz47XG4gIH1cbiAgLy8gQmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZm9yIGFwcHMgdXNpbmcgdGhlIFwiaWNvbiBuYW1lXCIuXG4gIHN3aXRjaCAoaWNvbikge1xuICAgIC8vIExlZ2FjeSBhcHBsaWNhdGlvbiBpY29uc1xuICAgIC8vIFRPRE86IFRvIGJlIHJlbW92ZWQgb25jZSBNQyBhcHBsaWNhdGlvbnMgaWNvbnMgdXBkYXRlcyBhcmUgcHVibGlzaGVkXG4gICAgY2FzZSAnVHJlZVN0cnVjdHVyZUljb24nOlxuICAgICAgcmV0dXJuIDxUcmVlU3RydWN0dXJlSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdVc2VyRmlsbGVkSWNvbic6XG4gICAgICByZXR1cm4gPFVzZXJGaWxsZWRJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1NwZWVkb21ldGVySWNvbic6XG4gICAgICByZXR1cm4gPFNwZWVkb21ldGVySWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdUYWdNdWx0aUljb24nOlxuICAgICAgcmV0dXJuIDxUYWdNdWx0aUljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnQ2FydEljb24nOlxuICAgICAgcmV0dXJuIDxDYXJ0SWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdCb3hJY29uJzpcbiAgICAgIHJldHVybiA8Qm94SWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdHZWFySWNvbic6XG4gICAgICByZXR1cm4gPEdlYXJJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ0xpc3RXaXRoU2VhcmNoSWNvbic6XG4gICAgICByZXR1cm4gPExpc3RXaXRoU2VhcmNoSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcblxuICAgIC8vIEN1c3RvbSBhcHBsaWNhdGlvbiBpY29ucyBzZXRcbiAgICBjYXNlICdIZWFydEljb24nOlxuICAgICAgcmV0dXJuIDxIZWFydEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnUGFwZXJjbGlwSWNvbic6XG4gICAgICByZXR1cm4gPFBhcGVyY2xpcEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnUGx1Z2luSWNvbic6XG4gICAgICByZXR1cm4gPFBsdWdpbkljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnUm9ja2V0SWNvbic6XG4gICAgICByZXR1cm4gPFJvY2tldEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnU3Rhckljb24nOlxuICAgICAgcmV0dXJuIDxTdGFySWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdDb25uZWN0ZWRTcXVhcmVJY29uJzpcbiAgICAgIHJldHVybiA8Q29ubmVjdGVkU3F1YXJlSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICAvLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICBjYXNlICdXb3JsZEljb24nOlxuICAgICAgcmV0dXJuIDxXb3JsZEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiA8aW1nIHNyYz17TWlzc2luZ0ltYWdlU3ZnfSBhbHQ9XCJtaXNzaW5nIGljb25cIiAvPjtcbiAgfVxufTtcbkljb25Td2l0Y2hlci5kaXNwbGF5TmFtZSA9ICdJY29uU3dpdGNoZXInO1xuXG50eXBlIE1lbnVFeHBhbmRlclByb3BzID0ge1xuICBpc1Zpc2libGU6IGJvb2xlYW47XG4gIG9uQ2xpY2s6IChcbiAgICBlOiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PiB8IEtleWJvYXJkRXZlbnQ8SFRNTERpdkVsZW1lbnQ+XG4gICkgPT4gdm9pZDtcbiAgaXNNZW51T3BlbjogYm9vbGVhbjtcbn07XG5cbmNvbnN0IGdldEljb24gPSAoeyBpc01lbnVPcGVuIH06IE1lbnVFeHBhbmRlclByb3BzKSA9PiB7XG4gIGNvbnN0IEljb24gPSBpc01lbnVPcGVuID8gU2lkZWJhckNvbGxhcHNlSWNvbiA6IFNpZGViYXJFeHBhbmRJY29uO1xuICByZXR1cm4gPEljb24gY29sb3I9XCJzdXJmYWNlXCIgc2l6ZT1cImJpZ1wiIC8+O1xufTtcblxuY29uc3QgTWVudUV4cGFuZGVyID0gKHByb3BzOiBNZW51RXhwYW5kZXJQcm9wcykgPT4ge1xuICByZXR1cm4gKFxuICAgIDxsaVxuICAgICAga2V5PVwiZXhwYW5kZXJcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKHN0eWxlcy5leHBhbmRlciwge1xuICAgICAgICBbc3R5bGVzLmhpZGRlbl06ICFwcm9wcy5pc1Zpc2libGUsXG4gICAgICB9KX1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIG9uQ2xpY2s9e3Byb3BzLm9uQ2xpY2t9XG4gICAgICAgIG9uS2V5RG93bj17KGUpID0+IHtcbiAgICAgICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgIHByb3BzLm9uQ2xpY2soZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbJ2V4cGFuZC1pY29uJ119XG4gICAgICAgIGRhdGEtdGVzdGlkPVwibWVudS1leHBhbmRlclwiXG4gICAgICA+XG4gICAgICAgIHtnZXRJY29uKHByb3BzKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvbGk+XG4gICk7XG59O1xuTWVudUV4cGFuZGVyLmRpc3BsYXlOYW1lID0gJ01lbnVFeHBhbmRlcic7XG5cbmNvbnN0IEZhZGVkID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0zMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDE1MywgMTM1LCAwKSAwJSwgIzAwYjM5ZSAxMDAlKTtcbiAgei1pbmRleDogMTtcbmA7XG5cbnR5cGUgTWVudUdyb3VwUHJvcHMgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIGxldmVsOiAxIHwgMjtcbiAgaXNBY3RpdmU/OiBib29sZWFuO1xuICBpc0V4cGFuZGVkPzogYm9vbGVhbjtcbiAgaGFzU3VibWVudT86IGJvb2xlYW47XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xuICBzdWJtZW51VmVydGljYWxQb3NpdGlvbj86IG51bWJlcjtcbiAgaXNTdWJtZW51QWJvdmVNZW51SXRlbT86IGJvb2xlYW47XG59O1xuXG5jb25zdCBnZXRTdWJtZW51UG9zaXRpb25CYXNlZE9uTWVudUl0ZW1Qb3NpdGlvbiA9IChcbiAgaXNTdWJtZW51QWJvdmVNZW51SXRlbT86IGJvb2xlYW4sXG4gIHN1Ym1lbnVWZXJ0aWNhbFBvc2l0aW9uPzogbnVtYmVyXG4pID0+IGNzc2BcbiAgJHtpc1N1Ym1lbnVBYm92ZU1lbnVJdGVtID8gJ2JvdHRvbScgOiAndG9wJ306ICR7c3VibWVudVZlcnRpY2FsUG9zaXRpb259cHhcbmA7XG5cbmNvbnN0IGdldENvbnRhaW5lclBvc2l0aW9uQmFzZWRPbk1lbnVJdGVtUG9zaXRpb24gPSAoXG4gIGlzU3VibWVudUFib3ZlTWVudUl0ZW0/OiBib29sZWFuLFxuICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUV4cGFuZGVkPzogYm9vbGVhbixcbiAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQ/OiBib29sZWFuXG4pID0+IFtcbiAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQgJiZcbiAgICBjc3NgXG4gICAgICAke2lzU3VibWVudUFib3ZlTWVudUl0ZW1cbiAgICAgICAgPyAnYm90dG9tJ1xuICAgICAgICA6ICd0b3AnfTogLSR7RElNRU5TSU9OUy5uYXZNZW51SXRlbUhlaWdodH07XG4gICAgYCxcbiAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCAmJlxuICAgIGlzU3VibWVudUFib3ZlTWVudUl0ZW0gJiZcbiAgICBjc3NgXG4gICAgICBib3R0b206IDA7XG4gICAgYCxcbiAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCAmJlxuICAgICFpc1N1Ym1lbnVBYm92ZU1lbnVJdGVtICYmXG4gICAgY3NzYFxuICAgICAgdG9wOiAwO1xuICAgIGAsXG5dO1xuXG5jb25zdCBNZW51R3JvdXAgPSBmb3J3YXJkUmVmPEhUTUxVTGlzdEVsZW1lbnQsIE1lbnVHcm91cFByb3BzPigocHJvcHMsIHJlZikgPT4ge1xuICBpZiAoXG4gICAgcHJvcHMuaXNFeHBhbmRlZCAmJlxuICAgICgocHJvcHMubGV2ZWwgPT09IDIgJiYgIXByb3BzLmhhc1N1Ym1lbnUpIHx8XG4gICAgICAocHJvcHMubGV2ZWwgPT09IDIgJiYgIXByb3BzLmlzQWN0aXZlKSlcbiAgKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCA9XG4gICAgcHJvcHMubGV2ZWwgPT09IDIgJiYgcHJvcHMuaXNBY3RpdmUgJiYgcHJvcHMuaXNFeHBhbmRlZDtcbiAgY29uc3QgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQgPVxuICAgIHByb3BzLmxldmVsID09PSAyICYmIHByb3BzLmlzQWN0aXZlICYmICFwcm9wcy5pc0V4cGFuZGVkO1xuICByZXR1cm4gKFxuICAgIDx1bFxuICAgICAgcmVmPXtyZWYgJiYgcHJvcHMubGV2ZWwgPT09IDIgPyByZWYgOiBudWxsfVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgICR7Z2V0U3VibWVudVBvc2l0aW9uQmFzZWRPbk1lbnVJdGVtUG9zaXRpb24oXG4gICAgICAgICAgcHJvcHMuaXNTdWJtZW51QWJvdmVNZW51SXRlbSxcbiAgICAgICAgICBwcm9wcy5zdWJtZW51VmVydGljYWxQb3NpdGlvblxuICAgICAgICApfTtcbiAgICAgIFxuICAgICAgLy8gcHJldmVudCBnbGl0Y2h5IGJlaGF2aW9yIGR1cmluZyB0aGUgaW5pdGlhbCByZW5kZXIgd2hlbiB0aGUgc3VibWVudSdzIHZlcnRpY2FsIHBvc2l0aW9uIGlzIGV2YWx1YXRlZCBhcyAwXG4gICAgICAke1xuICAgICAgICBwcm9wcy5zdWJtZW51VmVydGljYWxQb3NpdGlvbiA9PT0gMCAmJlxuICAgICAgICBjc3NgXG4gICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICBgXG4gICAgICB9XG5cbiAgICAgICAgLy8gYWRkaXRpb25hbCBzdHlsaW5nIG9mIHRoZSBwc2V1ZG8tZWxlbWVudCBlbmFibGluZyBzbW9vdGggY291cnNvciBtb3ZlbWVudFxuICAgICAgICA6OmJlZm9yZSB7XG4gICAgICAgICAgJHtnZXRDb250YWluZXJQb3NpdGlvbkJhc2VkT25NZW51SXRlbVBvc2l0aW9uKFxuICAgICAgICAgICAgcHJvcHMuaXNTdWJtZW51QWJvdmVNZW51SXRlbSxcbiAgICAgICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51RXhwYW5kZWQsXG4gICAgICAgICAgICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUNvbGxhcHNlZFxuICAgICAgICAgICl9XG4gICAgICBgfVxuICAgICAgaWQ9e2Bncm91cC0ke3Byb3BzLmlkfWB9XG4gICAgICBkYXRhLXRlc3RpZD17YGdyb3VwLSR7cHJvcHMuaWR9YH1cbiAgICAgIHJvbGU9XCJtZW51XCJcbiAgICAgIGFyaWEtZXhwYW5kZWQ9e1xuICAgICAgICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUV4cGFuZGVkIHx8XG4gICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkXG4gICAgICB9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoXG4gICAgICAgIHsgW3N0eWxlcy5saXN0XTogcHJvcHMubGV2ZWwgPT09IDEgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXNbJ3N1Ymxpc3QnXV06IHByb3BzLmxldmVsID09PSAyLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlc1snc3VibGlzdC1leHBhbmRlZF9fYWN0aXZlJ11dOlxuICAgICAgICAgICAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXNbJ3N1Ymxpc3QtY29sbGFwc2VkX19lbXB0eSddXTpcbiAgICAgICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkICYmICFwcm9wcy5oYXNTdWJtZW51LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlc1snc3VibGlzdC1jb2xsYXBzZWRfX2FjdGl2ZSddXTpcbiAgICAgICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkICYmXG4gICAgICAgICAgICAhcHJvcHMuaXNTdWJtZW51QWJvdmVNZW51SXRlbSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXNbJ3N1Ymxpc3QtY29sbGFwc2VkX19hY3RpdmVfX2Fib3ZlJ11dOlxuICAgICAgICAgICAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQgJiYgcHJvcHMuaXNTdWJtZW51QWJvdmVNZW51SXRlbSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMuc3VibGlzdF9faW5hY3RpdmVdOiAhaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQsXG4gICAgICAgIH1cbiAgICAgICl9XG4gICAgPlxuICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgIDwvdWw+XG4gICk7XG59KTtcbk1lbnVHcm91cC5kaXNwbGF5TmFtZSA9ICdNZW51R3JvdXAnO1xuXG50eXBlIE1lbnVJdGVtUHJvcHMgPSB7XG4gIGhhc1N1Ym1lbnU6IGJvb2xlYW47XG4gIGlzQWN0aXZlOiBib29sZWFuO1xuICBpc01haW5NZW51Um91dGVBY3RpdmU/OiBib29sZWFuO1xuICBpc01lbnVPcGVuOiBib29sZWFuO1xuICBvbkNsaWNrOiBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD47XG4gIG9uTW91c2VFbnRlcj86XG4gICAgfCBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD5cbiAgICB8IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxFbGVtZW50PjtcbiAgb25Nb3VzZUxlYXZlPzpcbiAgICB8IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxFbGVtZW50PlxuICAgIHwgRm9jdXNFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+O1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBpZGVudGlmaWVyPzogc3RyaW5nO1xufTtcbmNvbnN0IE1lbnVJdGVtID0gKHByb3BzOiBNZW51SXRlbVByb3BzKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGxpXG4gICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKHN0eWxlc1snbGlzdC1pdGVtJ10sIHtcbiAgICAgICAgW3N0eWxlcy5pdGVtX19hY3RpdmVdOiBwcm9wcy5pc0FjdGl2ZSxcbiAgICAgICAgW3N0eWxlc1snaXRlbV9tZW51X19hY3RpdmUnXV06IHByb3BzLmlzTWFpbk1lbnVSb3V0ZUFjdGl2ZSA/PyBmYWxzZSxcbiAgICAgICAgW3N0eWxlc1snaXRlbV9tZW51LWNvbGxhcHNlZCddXTogIXByb3BzLmlzTWVudU9wZW4sXG4gICAgICB9KX1cbiAgICAgIG9uQ2xpY2s9e3Byb3BzLm9uQ2xpY2t9XG4gICAgICBvbk1vdXNlRW50ZXI9e3Byb3BzLm9uTW91c2VFbnRlciBhcyBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD59XG4gICAgICBvbk1vdXNlTGVhdmU9e3Byb3BzLm9uTW91c2VMZWF2ZSBhcyBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD59XG4gICAgICBvbkZvY3VzPXtwcm9wcy5vbk1vdXNlRW50ZXIgYXMgRm9jdXNFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+fVxuICAgICAgb25CbHVyPXtwcm9wcy5vbk1vdXNlTGVhdmUgYXMgRm9jdXNFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+fVxuICAgICAgZGF0YS1tZW51aXRlbT17cHJvcHMuaWRlbnRpZmllcn1cbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydpdGVtLWxpbmsnXX0+e3Byb3BzLmNoaWxkcmVufTwvZGl2PlxuICAgIDwvbGk+XG4gICk7XG59O1xuXG5NZW51SXRlbS5kaXNwbGF5TmFtZSA9ICdNZW51SXRlbSc7XG5cbmV4cG9ydCB0eXBlIE1lbnVJdGVtTGlua1Byb3BzID0ge1xuICBsaW5rVG8/OiBzdHJpbmc7XG4gIGV4YWN0TWF0Y2g6IGJvb2xlYW47XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIG9uQ2xpY2s/OiAoZXZlbnQ6IFN5bnRoZXRpY0V2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4gdm9pZDtcbiAgdXNlRnVsbFJlZGlyZWN0c0ZvckxpbmtzPzogYm9vbGVhbjtcbiAgaXNTdWJtZW51TGluaz86IGJvb2xlYW47XG59O1xuY29uc3QgbWVudUl0ZW1MaW5rRGVmYXVsdFByb3BzOiBQaWNrPE1lbnVJdGVtTGlua1Byb3BzLCAnZXhhY3RNYXRjaCc+ID0ge1xuICBleGFjdE1hdGNoOiBmYWxzZSxcbn07XG5jb25zdCBOYXZMaW5rV3JhcHBlciA9IChwcm9wczogTWVudUl0ZW1MaW5rUHJvcHMpID0+IHtcbiAgaWYgKHByb3BzLmlzU3VibWVudUxpbmspIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1sndGV4dC1saW5rLXN1Ymxpc3Qtd3JhcHBlciddfT5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuICByZXR1cm4gPD57cHJvcHMuY2hpbGRyZW59PC8+O1xufTtcbmNvbnN0IE5hdkxpbmtDbGlja2FibGVDb250ZW50V3JhcHBlciA9IChwcm9wczogTWVudUl0ZW1MaW5rUHJvcHMpID0+IHtcbiAgaWYgKHByb3BzLmlzU3VibWVudUxpbmspIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snbmF2bGluay1jbGlja2FibGUtY29udGVudCddfT5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuICByZXR1cm4gPD57cHJvcHMuY2hpbGRyZW59PC8+O1xufTtcblxuY29uc3QgTWVudUl0ZW1MaW5rID0gKHByb3BzOiBNZW51SXRlbUxpbmtQcm9wcykgPT4ge1xuICBjb25zdCByZWRpcmVjdFRvID0gKHRhcmdldFVybDogc3RyaW5nKSA9PiBsb2NhdGlvbi5yZXBsYWNlKHRhcmdldFVybCk7XG4gIGlmIChwcm9wcy5saW5rVG8pIHtcbiAgICBjb25zdCBsaW5rTGV2ZWwgPSBwcm9wcy5pc1N1Ym1lbnVMaW5rID8gJ3RleHQtbGluay1zdWJsaXN0JyA6ICd0ZXh0LWxpbmsnO1xuICAgIHJldHVybiAoXG4gICAgICA8TmF2TGlua1dyYXBwZXIgey4uLnByb3BzfT5cbiAgICAgICAgPE5hdkxpbmtcbiAgICAgICAgICB0bz17cHJvcHMubGlua1RvfVxuICAgICAgICAgIGV4YWN0PXtwcm9wcy5leGFjdE1hdGNofVxuICAgICAgICAgIGFjdGl2ZUNsYXNzTmFtZT17c3R5bGVzLmhpZ2hsaWdodGVkfVxuICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW2xpbmtMZXZlbF19XG4gICAgICAgICAgZGF0YS1saW5rLWxldmVsPXtsaW5rTGV2ZWx9XG4gICAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAocHJvcHMubGlua1RvICYmIHByb3BzLnVzZUZ1bGxSZWRpcmVjdHNGb3JMaW5rcykge1xuICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICByZWRpcmVjdFRvKHByb3BzLmxpbmtUbyk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHByb3BzLm9uQ2xpY2spIHtcbiAgICAgICAgICAgICAgZXZlbnQucGVyc2lzdCgpO1xuICAgICAgICAgICAgICBwcm9wcy5vbkNsaWNrKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPE5hdkxpbmtDbGlja2FibGVDb250ZW50V3JhcHBlciB7Li4ucHJvcHN9PlxuICAgICAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgICAgIDwvTmF2TGlua0NsaWNrYWJsZUNvbnRlbnRXcmFwcGVyPlxuICAgICAgICA8L05hdkxpbms+XG4gICAgICA8L05hdkxpbmtXcmFwcGVyPlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIDw+e3Byb3BzLmNoaWxkcmVufTwvPjtcbn07XG5NZW51SXRlbUxpbmsuZGlzcGxheU5hbWUgPSAnTWVudUl0ZW1MaW5rJztcbk1lbnVJdGVtTGluay5kZWZhdWx0UHJvcHMgPSBtZW51SXRlbUxpbmtEZWZhdWx0UHJvcHM7XG5cbmNvbnN0IGlzRXZlcnlNZW51VmlzaWJpbGl0eVNldFRvSGlkZGVuID0gKFxuICBtZW51VmlzaWJpbGl0aWVzPzogVE5vcm1hbGl6ZWRNZW51VmlzaWJpbGl0aWVzIHwgbnVsbCxcbiAgbmFtZXNPZk1lbnVWaXNpYmlsaXRpZXM/OiBzdHJpbmdbXVxuKSA9PlxuICBBcnJheS5pc0FycmF5KG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzKSAmJlxuICBuYW1lc09mTWVudVZpc2liaWxpdGllcy5sZW5ndGggPiAwICYmXG4gIG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzLmV2ZXJ5KFxuICAgIChuYW1lT2ZNZW51VmlzaWJpbGl0eSkgPT5cbiAgICAgIG1lbnVWaXNpYmlsaXRpZXMgJiYgbWVudVZpc2liaWxpdGllc1tuYW1lT2ZNZW51VmlzaWJpbGl0eV0gPT09IHRydWVcbiAgKTtcblxudHlwZSBSZXN0cmljdGVkTWVudUl0ZW1Qcm9wcyA9IHtcbiAgZmVhdHVyZVRvZ2dsZT86IHN0cmluZztcbiAgbmFtZXNPZk1lbnVWaXNpYmlsaXRpZXM/OiBzdHJpbmdbXTtcbiAgcHJvamVjdFBlcm1pc3Npb25zOiBUUHJvamVjdFBlcm1pc3Npb25zO1xuICBtZW51VmlzaWJpbGl0aWVzOiBUTm9ybWFsaXplZE1lbnVWaXNpYmlsaXRpZXMgfCBudWxsO1xuICBrZXlPZk1lbnVJdGVtOiBzdHJpbmc7XG4gIHBlcm1pc3Npb25zOiBzdHJpbmdbXTtcbiAgYWN0aW9uUmlnaHRzPzogVEFjdGlvblJpZ2h0W107XG4gIGRhdGFGZW5jZXM/OiBURGF0YUZlbmNlW107XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG59O1xudHlwZSBUTG9uZ0xpdmVkRmxhZyA9IHtcbiAgdmFsdWU6IGJvb2xlYW47XG4gIHJlYXNvbj86IHN0cmluZztcbn07XG5jb25zdCByZXN0cmljdGVkTWVudUl0ZW1EZWZhdWx0UHJvcHM6IFBpY2s8XG4gIFJlc3RyaWN0ZWRNZW51SXRlbVByb3BzLFxuICAncGVybWlzc2lvbnMnXG4+ID0ge1xuICBwZXJtaXNzaW9uczogW10sXG59O1xuZnVuY3Rpb24gaXNMb25nTGl2ZWRGbGFnKFxuICBmbGFnOiBURmxhZ1ZhcmlhdGlvbiB8IFRMb25nTGl2ZWRGbGFnXG4pOiBmbGFnIGlzIFRMb25nTGl2ZWRGbGFnIHtcbiAgcmV0dXJuIHR5cGVvZiAoZmxhZyBhcyBUTG9uZ0xpdmVkRmxhZyk/LnZhbHVlID09PSAnYm9vbGVhbic7XG59XG5jb25zdCBSZXN0cmljdGVkTWVudUl0ZW0gPSAocHJvcHM6IFJlc3RyaWN0ZWRNZW51SXRlbVByb3BzKSA9PiB7XG4gIC8vIE5PVEU6IEN1c3RvbSBhcHBsaWNhdGlvbiBhcmUgYWN0aXZhdGVkL2RlYWN0aXZhdGVkIHdoaWxlIHRoZWlyXG4gIC8vIHZpc2liaWxpdHkgaXMgbm90IGNvbnRyb2xsZWQgdmlhIGEgdmlzaWJpaWxpdHkgb3ZlcndyaXRlLlxuICBjb25zdCBmbGFnVmFyaWF0aW9uID0gdXNlRmxhZ1ZhcmlhdGlvbihwcm9wcy5mZWF0dXJlVG9nZ2xlKTtcbiAgaWYgKFxuICAgIGlzRXZlcnlNZW51VmlzaWJpbGl0eVNldFRvSGlkZGVuKFxuICAgICAgcHJvcHMubWVudVZpc2liaWxpdGllcyxcbiAgICAgIHByb3BzLm5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzXG4gICAgKVxuICApXG4gICAgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgcGVybWlzc2lvbnNXcmFwcGVyID1cbiAgICAoQXJyYXkuaXNBcnJheShwcm9wcy5wZXJtaXNzaW9ucykgJiYgcHJvcHMucGVybWlzc2lvbnMubGVuZ3RoID4gMCkgfHxcbiAgICAoQXJyYXkuaXNBcnJheShwcm9wcy5kYXRhRmVuY2VzKSAmJiBwcm9wcy5kYXRhRmVuY2VzLmxlbmd0aCA+IDApID8gKFxuICAgICAgPFJlc3RyaWN0ZWRCeVBlcm1pc3Npb25zXG4gICAgICAgIHBlcm1pc3Npb25zPXtwcm9wcy5wZXJtaXNzaW9uc31cbiAgICAgICAgYWN0aW9uUmlnaHRzPXtwcm9wcy5hY3Rpb25SaWdodHN9XG4gICAgICAgIGRhdGFGZW5jZXM9e3Byb3BzLmRhdGFGZW5jZXN9XG4gICAgICAgIHNlbGVjdERhdGFGZW5jZURhdGE9eyhkZW1hbmRlZERhdGFGZW5jZSkgPT4ge1xuICAgICAgICAgIHN3aXRjaCAoZGVtYW5kZWREYXRhRmVuY2UudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnc3RvcmUnOlxuICAgICAgICAgICAgICByZXR1cm4gZGVtYW5kZWREYXRhRmVuY2UuYWN0dWFsRGF0YUZlbmNlVmFsdWVzO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICAvLyBBbHdheXMgY2hlY2sgdGhhdCBzb21lIG9mIHRoZSBnaXZlbiBwZXJtaXNzaW9ucyBtYXRjaC5cbiAgICAgICAgc2hvdWxkTWF0Y2hTb21lUGVybWlzc2lvbnM9e3RydWV9XG4gICAgICAgIHByb2plY3RQZXJtaXNzaW9ucz17cHJvcHMucHJvamVjdFBlcm1pc3Npb25zfVxuICAgICAgPlxuICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICA8L1Jlc3RyaWN0ZWRCeVBlcm1pc3Npb25zPlxuICAgICkgOiAoXG4gICAgICA8Pntwcm9wcy5jaGlsZHJlbn08Lz5cbiAgICApO1xuXG4gIGlmIChwcm9wcy5mZWF0dXJlVG9nZ2xlKSB7XG4gICAgLy8gQSByZWd1bGFyIHNob3J0LWxpdmVkIGZlYXR1cmUgdG9nZ2xlXG4gICAgaWYgKGZsYWdWYXJpYXRpb24gPT09IHRydWUpIHJldHVybiBwZXJtaXNzaW9uc1dyYXBwZXI7XG4gICAgLy8gQSBsb25nLWxpdmVkIGZlYXR1cmUgdG9nZ2xlIHdpdGggYHsgdmFsdWU6IGJvb2xlYW4sIHN0cmluZzogcmVhc29uIH1gXG4gICAgaWYgKGlzTG9uZ0xpdmVkRmxhZyhmbGFnVmFyaWF0aW9uKSAmJiBmbGFnVmFyaWF0aW9uLnZhbHVlID09PSB0cnVlKVxuICAgICAgcmV0dXJuIHBlcm1pc3Npb25zV3JhcHBlcjtcblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHBlcm1pc3Npb25zV3JhcHBlcjtcbn07XG5SZXN0cmljdGVkTWVudUl0ZW0uZGlzcGxheU5hbWUgPSAnUmVzdHJpY3RlZE1lbnVJdGVtJztcblJlc3RyaWN0ZWRNZW51SXRlbS5kZWZhdWx0UHJvcHMgPSByZXN0cmljdGVkTWVudUl0ZW1EZWZhdWx0UHJvcHM7XG5cbnR5cGUgTWVudUxhYmVsUHJvcHMgPSB7XG4gIGxhYmVsQWxsTG9jYWxlczogVExvY2FsaXplZEZpZWxkW107XG4gIGRlZmF1bHRMYWJlbD86IHN0cmluZztcbiAgYXBwbGljYXRpb25Mb2NhbGU6IHN0cmluZztcbn07XG5jb25zdCBNZW51TGFiZWwgPSAocHJvcHM6IE1lbnVMYWJlbFByb3BzKSA9PiB7XG4gIGNvbnN0IGxvY2FsaXplZExhYmVsID0gcHJvcHMubGFiZWxBbGxMb2NhbGVzLmZpbmQoKGxvYykgPT5cbiAgICBwcm9wcy5hcHBsaWNhdGlvbkxvY2FsZS5zdGFydHNXaXRoKGxvYy5sb2NhbGUpXG4gICk7XG4gIGlmIChsb2NhbGl6ZWRMYWJlbCkgcmV0dXJuIDw+e2xvY2FsaXplZExhYmVsLnZhbHVlfTwvPjtcbiAgaWYgKHByb3BzLmRlZmF1bHRMYWJlbCkgcmV0dXJuIDw+e3Byb3BzLmRlZmF1bHRMYWJlbH08Lz47XG4gIHJldHVybiA8PntOT19WQUxVRV9GQUxMQkFDS308Lz47XG59O1xuXG50eXBlIFROYXZCYXJMYXlvdXRQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbn07XG5jb25zdCBOYXZCYXJMYXlvdXQgPSBmb3J3YXJkUmVmPEhUTUxFbGVtZW50LCBUTmF2QmFyTGF5b3V0UHJvcHM+KFxuICAocHJvcHMsIHJlZikgPT4gKFxuICAgIDw+XG4gICAgICA8R2xvYmFsXG4gICAgICAgIHN0eWxlcz17Y3NzYFxuICAgICAgICAgICR7Y29tcGlsZWRTdHlsZXMuZ2xvYmFsfVxuICAgICAgICBgfVxuICAgICAgLz5cbiAgICAgIDxuYXZcbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIGNsYXNzTmFtZT17c3R5bGVzWydsZWZ0LW5hdmlnYXRpb24nXX1cbiAgICAgICAgZGF0YS10ZXN0PVwibGVmdC1uYXZpZ2F0aW9uXCJcbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJsZWZ0LW5hdmlnYXRpb25cIlxuICAgICAgPlxuICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICA8L25hdj5cbiAgICA8Lz5cbiAgKVxuKTtcbk5hdkJhckxheW91dC5kaXNwbGF5TmFtZSA9ICdOYXZCYXJMYXlvdXQnO1xuXG50eXBlIEl0ZW1Db250YWluZXJQcm9wcyA9IHtcbiAgbGFiZWxBbGxMb2NhbGVzOiBUTG9jYWxpemVkRmllbGRbXTtcbiAgZGVmYXVsdExhYmVsPzogc3RyaW5nO1xuICBhcHBsaWNhdGlvbkxvY2FsZTogc3RyaW5nO1xuICBpY29uOiBzdHJpbmc7XG4gIGlzTWVudU9wZW4/OiBib29sZWFuO1xufTtcblxuY29uc3QgSXRlbUNvbnRhaW5lciA9IChwcm9wczogSXRlbUNvbnRhaW5lclByb3BzKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snaXRlbS1pY29uLXRleHQnXX0+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydpY29uLWNvbnRhaW5lciddfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5pY29ufT5cbiAgICAgICAgICA8SWNvblN3aXRjaGVyIGljb249e3Byb3BzLmljb259IHNpemU9XCJzY2FsZVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICB7cHJvcHMuaXNNZW51T3BlbiA/IChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy50aXRsZX0+XG4gICAgICAgICAgPE1lbnVMYWJlbFxuICAgICAgICAgICAgbGFiZWxBbGxMb2NhbGVzPXtwcm9wcy5sYWJlbEFsbExvY2FsZXN9XG4gICAgICAgICAgICBkZWZhdWx0TGFiZWw9e3Byb3BzLmRlZmF1bHRMYWJlbH1cbiAgICAgICAgICAgIGFwcGxpY2F0aW9uTG9jYWxlPXtwcm9wcy5hcHBsaWNhdGlvbkxvY2FsZX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICkgOiBudWxsfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuSXRlbUNvbnRhaW5lci5kaXNwbGF5TmFtZSA9ICdJdGVtQ29udGFpbmVyJztcblxuZXhwb3J0IHtcbiAgUmVzdHJpY3RlZE1lbnVJdGVtLFxuICBNZW51SXRlbSxcbiAgTWVudUl0ZW1MaW5rLFxuICBJY29uU3dpdGNoZXIsXG4gIE1lbnVHcm91cCxcbiAgTWVudUxhYmVsLFxuICBNZW51RXhwYW5kZXIsXG4gIEZhZGVkLFxuICBOYXZCYXJMYXlvdXQsXG4gIEl0ZW1Db250YWluZXIsXG59O1xuIl19 */"), isSublistActiveWhileIsMenuExpanded && isSubmenuAboveMenuItem && _ref3, isSublistActiveWhileIsMenuExpanded && !isSubmenuAboveMenuItem && _ref2];
272
+ var _ref = process.env.NODE_ENV === "production" ? {
273
+ name: "6dhm9o",
274
+ styles: "visibility:hidden"
275
+ } : {
276
+ name: "1nk9wny-MenuGroup",
277
+ styles: "visibility:hidden;label:MenuGroup;",
278
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUtaXRlbXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJPVyIsImZpbGUiOiJtZW51LWl0ZW1zLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGZvcndhcmRSZWYsXG4gIGxhenksXG4gIHR5cGUgTW91c2VFdmVudEhhbmRsZXIsXG4gIHR5cGUgRm9jdXNFdmVudEhhbmRsZXIsXG4gIHR5cGUgTW91c2VFdmVudCxcbiAgdHlwZSBLZXlib2FyZEV2ZW50LFxuICB0eXBlIFJlYWN0Tm9kZSxcbiAgdHlwZSBTeW50aGV0aWNFdmVudCxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgR2xvYmFsLCBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB1c2VGbGFnVmFyaWF0aW9uIH0gZnJvbSAnQGZsb3BmbGlwL3JlYWN0LWJyb2FkY2FzdCc7XG5pbXBvcnQgdHlwZSB7IFRGbGFnVmFyaWF0aW9uIH0gZnJvbSAnQGZsb3BmbGlwL3R5cGVzJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgTmF2TGluayB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHR5cGUge1xuICBUTm9ybWFsaXplZE1lbnVWaXNpYmlsaXRpZXMsXG4gIFROb3JtYWxpemVkUGVybWlzc2lvbnMsXG4gIFROb3JtYWxpemVkQWN0aW9uUmlnaHRzLFxuICBUTm9ybWFsaXplZERhdGFGZW5jZXMsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IE1pc3NpbmdJbWFnZVN2ZyBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hc3NldHMvaW1hZ2VzL2RpYWdvbmFsLWxpbmUuc3ZnJztcbmltcG9ydCB7IE5PX1ZBTFVFX0ZBTExCQUNLIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7IFJlc3RyaWN0ZWRCeVBlcm1pc3Npb25zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvcGVybWlzc2lvbnMnO1xuaW1wb3J0IHtcbiAgQmFja0ljb24sXG4gIFNpZGViYXJFeHBhbmRJY29uLFxuICBTaWRlYmFyQ29sbGFwc2VJY29uLFxufSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pY29ucyc7XG5pbXBvcnQgSW5saW5lU3ZnIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2ljb25zL2lubGluZS1zdmcnO1xuaW1wb3J0IHsgRElNRU5TSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIFREYXRhRmVuY2UsXG4gIFRBY3Rpb25SaWdodCxcbiAgVExvY2FsaXplZEZpZWxkLFxufSBmcm9tICcuLi8uLi90eXBlcy9nZW5lcmF0ZWQvcHJveHknO1xuaW1wb3J0IHsgbG9jYXRpb24gfSBmcm9tICcuLi8uLi91dGlscy9sb2NhdGlvbic7XG4vLyBodHRwczovL2JhYmVsanMuaW8vYmxvZy8yMDE3LzA5LzExL3plcm8tY29uZmlnLXdpdGgtYmFiZWwtbWFjcm9zXG5pbXBvcnQgY29tcGlsZWRTdHlsZXMgZnJvbSAvKiBwcmV2YWwgKi8gJy4vbmF2YmFyLnN0eWxlcyc7XG5cbmNvbnN0IHN0eWxlcyA9IGNvbXBpbGVkU3R5bGVzLmpzb25NYXA7XG5cbnR5cGUgVFByb2plY3RQZXJtaXNzaW9ucyA9IHtcbiAgcGVybWlzc2lvbnM6IFROb3JtYWxpemVkUGVybWlzc2lvbnMgfCBudWxsO1xuICBhY3Rpb25SaWdodHM6IFROb3JtYWxpemVkQWN0aW9uUmlnaHRzIHwgbnVsbDtcbiAgZGF0YUZlbmNlczogVE5vcm1hbGl6ZWREYXRhRmVuY2VzIHwgbnVsbDtcbn07XG5cbmNvbnN0IEhlYXJ0SWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9oZWFydCcpKTtcbmNvbnN0IFBhcGVyY2xpcEljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvcGFwZXJjbGlwJykpO1xuY29uc3QgUGx1Z2luSWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9wbHVnaW4nKSk7XG5jb25zdCBSb2NrZXRJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3JvY2tldCcpKTtcbmNvbnN0IFN0YXJJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3N0YXInKSk7XG5jb25zdCBDb25uZWN0ZWRTcXVhcmVJY29uID0gbGF6eShcbiAgKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9jb25uZWN0ZWQtc3F1YXJlJylcbik7XG5jb25zdCBXb3JsZEljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvd29ybGQnKSk7XG5jb25zdCBUcmVlU3RydWN0dXJlSWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy90cmVlLXN0cnVjdHVyZScpKTtcbmNvbnN0IFVzZXJGaWxsZWRJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3VzZXItZmlsbGVkJykpO1xuY29uc3QgU3BlZWRvbWV0ZXJJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3NwZWVkb21ldGVyJykpO1xuY29uc3QgVGFnTXVsdGlJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3RhZy1tdWx0aScpKTtcbmNvbnN0IENhcnRJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2NhcnQnKSk7XG5jb25zdCBCb3hJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2JveCcpKTtcbmNvbnN0IEdlYXJJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2dlYXInKSk7XG5jb25zdCBMaXN0V2l0aFNlYXJjaEljb24gPSBsYXp5KFxuICAoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2xpc3Qtd2l0aC1zZWFyY2gnKVxuKTtcblxudHlwZSBJY29uUHJvcHMgPSBQYXJhbWV0ZXJzPHR5cGVvZiBCYWNrSWNvbj5bMF07XG50eXBlIEljb25Td2l0Y2hlclByb3BzID0geyBpY29uOiBzdHJpbmcgfSAmIEljb25Qcm9wcztcbi8vIFRoZSBpY29uIGlzIGV4cGVjdGVkIHRvIGJlIHRoZSBgc3ZnYCBkb2N1bWVudCBhcyBhIHN0cmluZy5cbi8vIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBwdXJwb3Nlcywgd2Ugc3RpbGwgc3VwcG9ydCB0aGUgbGVnYWN5IFwiaWNvbiBuYW1lXCIsXG4vLyB3aGljaCB3ZSB0aGVuIG1hcCB0byBvbmUgb2YgdGhlIHByZS1kZWZpbmVkIGljb25zLlxuLy8gRXZlbnR1YWxseSwgd2Ugd2FudCB0byBnZXQgcmlkIG9mIHRoaXMgXCJzd2l0Y2hcIiBsb2dpYy5cbmNvbnN0IEljb25Td2l0Y2hlciA9ICh7IGljb24sIC4uLmljb25Qcm9wcyB9OiBJY29uU3dpdGNoZXJQcm9wcykgPT4ge1xuICBpZiAoaWNvbi5pbmNsdWRlcygnPHN2ZycpKSB7XG4gICAgcmV0dXJuIDxJbmxpbmVTdmcgZGF0YT17aWNvbn0gey4uLmljb25Qcm9wc30gLz47XG4gIH1cbiAgLy8gQmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZm9yIGFwcHMgdXNpbmcgdGhlIFwiaWNvbiBuYW1lXCIuXG4gIHN3aXRjaCAoaWNvbikge1xuICAgIC8vIExlZ2FjeSBhcHBsaWNhdGlvbiBpY29uc1xuICAgIC8vIFRPRE86IFRvIGJlIHJlbW92ZWQgb25jZSBNQyBhcHBsaWNhdGlvbnMgaWNvbnMgdXBkYXRlcyBhcmUgcHVibGlzaGVkXG4gICAgY2FzZSAnVHJlZVN0cnVjdHVyZUljb24nOlxuICAgICAgcmV0dXJuIDxUcmVlU3RydWN0dXJlSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdVc2VyRmlsbGVkSWNvbic6XG4gICAgICByZXR1cm4gPFVzZXJGaWxsZWRJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1NwZWVkb21ldGVySWNvbic6XG4gICAgICByZXR1cm4gPFNwZWVkb21ldGVySWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdUYWdNdWx0aUljb24nOlxuICAgICAgcmV0dXJuIDxUYWdNdWx0aUljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnQ2FydEljb24nOlxuICAgICAgcmV0dXJuIDxDYXJ0SWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdCb3hJY29uJzpcbiAgICAgIHJldHVybiA8Qm94SWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdHZWFySWNvbic6XG4gICAgICByZXR1cm4gPEdlYXJJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ0xpc3RXaXRoU2VhcmNoSWNvbic6XG4gICAgICByZXR1cm4gPExpc3RXaXRoU2VhcmNoSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcblxuICAgIC8vIEN1c3RvbSBhcHBsaWNhdGlvbiBpY29ucyBzZXRcbiAgICBjYXNlICdIZWFydEljb24nOlxuICAgICAgcmV0dXJuIDxIZWFydEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnUGFwZXJjbGlwSWNvbic6XG4gICAgICByZXR1cm4gPFBhcGVyY2xpcEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnUGx1Z2luSWNvbic6XG4gICAgICByZXR1cm4gPFBsdWdpbkljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnUm9ja2V0SWNvbic6XG4gICAgICByZXR1cm4gPFJvY2tldEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnU3Rhckljb24nOlxuICAgICAgcmV0dXJuIDxTdGFySWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdDb25uZWN0ZWRTcXVhcmVJY29uJzpcbiAgICAgIHJldHVybiA8Q29ubmVjdGVkU3F1YXJlSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICAvLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICBjYXNlICdXb3JsZEljb24nOlxuICAgICAgcmV0dXJuIDxXb3JsZEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiA8aW1nIHNyYz17TWlzc2luZ0ltYWdlU3ZnfSBhbHQ9XCJtaXNzaW5nIGljb25cIiAvPjtcbiAgfVxufTtcbkljb25Td2l0Y2hlci5kaXNwbGF5TmFtZSA9ICdJY29uU3dpdGNoZXInO1xuXG50eXBlIE1lbnVFeHBhbmRlclByb3BzID0ge1xuICBpc1Zpc2libGU6IGJvb2xlYW47XG4gIG9uQ2xpY2s6IChcbiAgICBlOiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PiB8IEtleWJvYXJkRXZlbnQ8SFRNTERpdkVsZW1lbnQ+XG4gICkgPT4gdm9pZDtcbiAgaXNNZW51T3BlbjogYm9vbGVhbjtcbn07XG5cbmNvbnN0IGdldEljb24gPSAoeyBpc01lbnVPcGVuIH06IE1lbnVFeHBhbmRlclByb3BzKSA9PiB7XG4gIGNvbnN0IEljb24gPSBpc01lbnVPcGVuID8gU2lkZWJhckNvbGxhcHNlSWNvbiA6IFNpZGViYXJFeHBhbmRJY29uO1xuICByZXR1cm4gPEljb24gY29sb3I9XCJzdXJmYWNlXCIgc2l6ZT1cImJpZ1wiIC8+O1xufTtcblxuY29uc3QgTWVudUV4cGFuZGVyID0gKHByb3BzOiBNZW51RXhwYW5kZXJQcm9wcykgPT4ge1xuICByZXR1cm4gKFxuICAgIDxsaVxuICAgICAga2V5PVwiZXhwYW5kZXJcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKHN0eWxlcy5leHBhbmRlciwge1xuICAgICAgICBbc3R5bGVzLmhpZGRlbl06ICFwcm9wcy5pc1Zpc2libGUsXG4gICAgICB9KX1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIG9uQ2xpY2s9e3Byb3BzLm9uQ2xpY2t9XG4gICAgICAgIG9uS2V5RG93bj17KGUpID0+IHtcbiAgICAgICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgIHByb3BzLm9uQ2xpY2soZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbJ2V4cGFuZC1pY29uJ119XG4gICAgICAgIGRhdGEtdGVzdGlkPVwibWVudS1leHBhbmRlclwiXG4gICAgICA+XG4gICAgICAgIHtnZXRJY29uKHByb3BzKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvbGk+XG4gICk7XG59O1xuTWVudUV4cGFuZGVyLmRpc3BsYXlOYW1lID0gJ01lbnVFeHBhbmRlcic7XG5cbmNvbnN0IEZhZGVkID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0zMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDE1MywgMTM1LCAwKSAwJSwgIzAwYjM5ZSAxMDAlKTtcbiAgei1pbmRleDogMTtcbmA7XG5cbnR5cGUgTWVudUdyb3VwUHJvcHMgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIGxldmVsOiAxIHwgMjtcbiAgaXNBY3RpdmU/OiBib29sZWFuO1xuICBpc0V4cGFuZGVkPzogYm9vbGVhbjtcbiAgaGFzU3VibWVudT86IGJvb2xlYW47XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xuICBzdWJtZW51VmVydGljYWxQb3NpdGlvbj86IG51bWJlcjtcbiAgaXNTdWJtZW51QWJvdmVNZW51SXRlbT86IGJvb2xlYW47XG59O1xuXG5jb25zdCBnZXRTdWJtZW51UG9zaXRpb25CYXNlZE9uTWVudUl0ZW1Qb3NpdGlvbiA9IChcbiAgaXNTdWJtZW51QWJvdmVNZW51SXRlbT86IGJvb2xlYW4sXG4gIHN1Ym1lbnVWZXJ0aWNhbFBvc2l0aW9uPzogbnVtYmVyXG4pID0+IGNzc2BcbiAgJHtpc1N1Ym1lbnVBYm92ZU1lbnVJdGVtID8gJ2JvdHRvbScgOiAndG9wJ306ICR7c3VibWVudVZlcnRpY2FsUG9zaXRpb259cHhcbmA7XG5cbmNvbnN0IGdldENvbnRhaW5lclBvc2l0aW9uQmFzZWRPbk1lbnVJdGVtUG9zaXRpb24gPSAoXG4gIGlzU3VibWVudUFib3ZlTWVudUl0ZW0/OiBib29sZWFuLFxuICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUV4cGFuZGVkPzogYm9vbGVhbixcbiAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQ/OiBib29sZWFuXG4pID0+IFtcbiAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQgJiZcbiAgICBjc3NgXG4gICAgICAke2lzU3VibWVudUFib3ZlTWVudUl0ZW1cbiAgICAgICAgPyAnYm90dG9tJ1xuICAgICAgICA6ICd0b3AnfTogLSR7RElNRU5TSU9OUy5uYXZNZW51SXRlbUhlaWdodH07XG4gICAgYCxcbiAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCAmJlxuICAgIGlzU3VibWVudUFib3ZlTWVudUl0ZW0gJiZcbiAgICBjc3NgXG4gICAgICBib3R0b206IDA7XG4gICAgYCxcbiAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCAmJlxuICAgICFpc1N1Ym1lbnVBYm92ZU1lbnVJdGVtICYmXG4gICAgY3NzYFxuICAgICAgdG9wOiAwO1xuICAgIGAsXG5dO1xuXG5jb25zdCBNZW51R3JvdXAgPSBmb3J3YXJkUmVmPEhUTUxVTGlzdEVsZW1lbnQsIE1lbnVHcm91cFByb3BzPigocHJvcHMsIHJlZikgPT4ge1xuICBpZiAoXG4gICAgcHJvcHMuaXNFeHBhbmRlZCAmJlxuICAgICgocHJvcHMubGV2ZWwgPT09IDIgJiYgIXByb3BzLmhhc1N1Ym1lbnUpIHx8XG4gICAgICAocHJvcHMubGV2ZWwgPT09IDIgJiYgIXByb3BzLmlzQWN0aXZlKSlcbiAgKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCA9XG4gICAgcHJvcHMubGV2ZWwgPT09IDIgJiYgcHJvcHMuaXNBY3RpdmUgJiYgcHJvcHMuaXNFeHBhbmRlZDtcbiAgY29uc3QgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQgPVxuICAgIHByb3BzLmxldmVsID09PSAyICYmIHByb3BzLmlzQWN0aXZlICYmICFwcm9wcy5pc0V4cGFuZGVkO1xuICByZXR1cm4gKFxuICAgIDx1bFxuICAgICAgcmVmPXtyZWYgJiYgcHJvcHMubGV2ZWwgPT09IDIgPyByZWYgOiBudWxsfVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgICR7Z2V0U3VibWVudVBvc2l0aW9uQmFzZWRPbk1lbnVJdGVtUG9zaXRpb24oXG4gICAgICAgICAgcHJvcHMuaXNTdWJtZW51QWJvdmVNZW51SXRlbSxcbiAgICAgICAgICBwcm9wcy5zdWJtZW51VmVydGljYWxQb3NpdGlvblxuICAgICAgICApfTtcbiAgICAgIFxuICAgICAgLy8gcHJldmVudCBnbGl0Y2h5IGJlaGF2aW9yIGR1cmluZyB0aGUgaW5pdGlhbCByZW5kZXIgd2hlbiB0aGUgc3VibWVudSdzIHZlcnRpY2FsIHBvc2l0aW9uIGlzIGV2YWx1YXRlZCBhcyAwXG4gICAgICAke1xuICAgICAgICBwcm9wcy5zdWJtZW51VmVydGljYWxQb3NpdGlvbiA9PT0gMCAmJlxuICAgICAgICBjc3NgXG4gICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICBgXG4gICAgICB9XG5cbiAgICAgICAgLy8gYWRkaXRpb25hbCBzdHlsaW5nIG9mIHRoZSBwc2V1ZG8tZWxlbWVudCBlbmFibGluZyBzbW9vdGggY291cnNvciBtb3ZlbWVudFxuICAgICAgICA6OmJlZm9yZSB7XG4gICAgICAgICAgJHtnZXRDb250YWluZXJQb3NpdGlvbkJhc2VkT25NZW51SXRlbVBvc2l0aW9uKFxuICAgICAgICAgICAgcHJvcHMuaXNTdWJtZW51QWJvdmVNZW51SXRlbSxcbiAgICAgICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51RXhwYW5kZWQsXG4gICAgICAgICAgICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUNvbGxhcHNlZFxuICAgICAgICAgICl9XG4gICAgICBgfVxuICAgICAgaWQ9e2Bncm91cC0ke3Byb3BzLmlkfWB9XG4gICAgICBkYXRhLXRlc3RpZD17YGdyb3VwLSR7cHJvcHMuaWR9YH1cbiAgICAgIHJvbGU9XCJtZW51XCJcbiAgICAgIGFyaWEtZXhwYW5kZWQ9e1xuICAgICAgICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUV4cGFuZGVkIHx8XG4gICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkXG4gICAgICB9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoXG4gICAgICAgIHsgW3N0eWxlcy5saXN0XTogcHJvcHMubGV2ZWwgPT09IDEgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXNbJ3N1Ymxpc3QnXV06IHByb3BzLmxldmVsID09PSAyLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlc1snc3VibGlzdC1leHBhbmRlZF9fYWN0aXZlJ11dOlxuICAgICAgICAgICAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXNbJ3N1Ymxpc3QtY29sbGFwc2VkX19lbXB0eSddXTpcbiAgICAgICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkICYmICFwcm9wcy5oYXNTdWJtZW51LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlc1snc3VibGlzdC1jb2xsYXBzZWRfX2FjdGl2ZSddXTpcbiAgICAgICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkICYmXG4gICAgICAgICAgICAhcHJvcHMuaXNTdWJtZW51QWJvdmVNZW51SXRlbSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXNbJ3N1Ymxpc3QtY29sbGFwc2VkX19hY3RpdmVfX2Fib3ZlJ11dOlxuICAgICAgICAgICAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQgJiYgcHJvcHMuaXNTdWJtZW51QWJvdmVNZW51SXRlbSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMuc3VibGlzdF9faW5hY3RpdmVdOiAhaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQsXG4gICAgICAgIH1cbiAgICAgICl9XG4gICAgPlxuICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgIDwvdWw+XG4gICk7XG59KTtcbk1lbnVHcm91cC5kaXNwbGF5TmFtZSA9ICdNZW51R3JvdXAnO1xuXG50eXBlIE1lbnVJdGVtUHJvcHMgPSB7XG4gIGhhc1N1Ym1lbnU6IGJvb2xlYW47XG4gIGlzQWN0aXZlOiBib29sZWFuO1xuICBpc01haW5NZW51Um91dGVBY3RpdmU/OiBib29sZWFuO1xuICBpc01lbnVPcGVuOiBib29sZWFuO1xuICBvbkNsaWNrOiBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD47XG4gIG9uTW91c2VFbnRlcj86XG4gICAgfCBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD5cbiAgICB8IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxFbGVtZW50PjtcbiAgb25Nb3VzZUxlYXZlPzpcbiAgICB8IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxFbGVtZW50PlxuICAgIHwgRm9jdXNFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+O1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBpZGVudGlmaWVyPzogc3RyaW5nO1xufTtcbmNvbnN0IE1lbnVJdGVtID0gKHByb3BzOiBNZW51SXRlbVByb3BzKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGxpXG4gICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKHN0eWxlc1snbGlzdC1pdGVtJ10sIHtcbiAgICAgICAgW3N0eWxlcy5pdGVtX19hY3RpdmVdOiBwcm9wcy5pc0FjdGl2ZSxcbiAgICAgICAgW3N0eWxlc1snaXRlbV9tZW51X19hY3RpdmUnXV06IHByb3BzLmlzTWFpbk1lbnVSb3V0ZUFjdGl2ZSA/PyBmYWxzZSxcbiAgICAgICAgW3N0eWxlc1snaXRlbV9tZW51LWNvbGxhcHNlZCddXTogIXByb3BzLmlzTWVudU9wZW4sXG4gICAgICB9KX1cbiAgICAgIG9uQ2xpY2s9e3Byb3BzLm9uQ2xpY2t9XG4gICAgICBvbk1vdXNlRW50ZXI9e3Byb3BzLm9uTW91c2VFbnRlciBhcyBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD59XG4gICAgICBvbk1vdXNlTGVhdmU9e3Byb3BzLm9uTW91c2VMZWF2ZSBhcyBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD59XG4gICAgICBvbkZvY3VzPXtwcm9wcy5vbk1vdXNlRW50ZXIgYXMgRm9jdXNFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+fVxuICAgICAgb25CbHVyPXtwcm9wcy5vbk1vdXNlTGVhdmUgYXMgRm9jdXNFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+fVxuICAgICAgZGF0YS1tZW51aXRlbT17cHJvcHMuaWRlbnRpZmllcn1cbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydpdGVtLWxpbmsnXX0+e3Byb3BzLmNoaWxkcmVufTwvZGl2PlxuICAgIDwvbGk+XG4gICk7XG59O1xuXG5NZW51SXRlbS5kaXNwbGF5TmFtZSA9ICdNZW51SXRlbSc7XG5cbmV4cG9ydCB0eXBlIE1lbnVJdGVtTGlua1Byb3BzID0ge1xuICBsaW5rVG8/OiBzdHJpbmc7XG4gIGV4YWN0TWF0Y2g6IGJvb2xlYW47XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIG9uQ2xpY2s/OiAoZXZlbnQ6IFN5bnRoZXRpY0V2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4gdm9pZDtcbiAgdXNlRnVsbFJlZGlyZWN0c0ZvckxpbmtzPzogYm9vbGVhbjtcbiAgaXNTdWJtZW51TGluaz86IGJvb2xlYW47XG59O1xuY29uc3QgbWVudUl0ZW1MaW5rRGVmYXVsdFByb3BzOiBQaWNrPE1lbnVJdGVtTGlua1Byb3BzLCAnZXhhY3RNYXRjaCc+ID0ge1xuICBleGFjdE1hdGNoOiBmYWxzZSxcbn07XG5jb25zdCBOYXZMaW5rV3JhcHBlciA9IChwcm9wczogTWVudUl0ZW1MaW5rUHJvcHMpID0+IHtcbiAgaWYgKHByb3BzLmlzU3VibWVudUxpbmspIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1sndGV4dC1saW5rLXN1Ymxpc3Qtd3JhcHBlciddfT5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuICByZXR1cm4gPD57cHJvcHMuY2hpbGRyZW59PC8+O1xufTtcbmNvbnN0IE5hdkxpbmtDbGlja2FibGVDb250ZW50V3JhcHBlciA9IChwcm9wczogTWVudUl0ZW1MaW5rUHJvcHMpID0+IHtcbiAgaWYgKHByb3BzLmlzU3VibWVudUxpbmspIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snbmF2bGluay1jbGlja2FibGUtY29udGVudCddfT5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuICByZXR1cm4gPD57cHJvcHMuY2hpbGRyZW59PC8+O1xufTtcblxuY29uc3QgTWVudUl0ZW1MaW5rID0gKHByb3BzOiBNZW51SXRlbUxpbmtQcm9wcykgPT4ge1xuICBjb25zdCByZWRpcmVjdFRvID0gKHRhcmdldFVybDogc3RyaW5nKSA9PiBsb2NhdGlvbi5yZXBsYWNlKHRhcmdldFVybCk7XG4gIGlmIChwcm9wcy5saW5rVG8pIHtcbiAgICBjb25zdCBsaW5rTGV2ZWwgPSBwcm9wcy5pc1N1Ym1lbnVMaW5rID8gJ3RleHQtbGluay1zdWJsaXN0JyA6ICd0ZXh0LWxpbmsnO1xuICAgIHJldHVybiAoXG4gICAgICA8TmF2TGlua1dyYXBwZXIgey4uLnByb3BzfT5cbiAgICAgICAgPE5hdkxpbmtcbiAgICAgICAgICB0bz17cHJvcHMubGlua1RvfVxuICAgICAgICAgIGV4YWN0PXtwcm9wcy5leGFjdE1hdGNofVxuICAgICAgICAgIGFjdGl2ZUNsYXNzTmFtZT17c3R5bGVzLmhpZ2hsaWdodGVkfVxuICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW2xpbmtMZXZlbF19XG4gICAgICAgICAgZGF0YS1saW5rLWxldmVsPXtsaW5rTGV2ZWx9XG4gICAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAocHJvcHMubGlua1RvICYmIHByb3BzLnVzZUZ1bGxSZWRpcmVjdHNGb3JMaW5rcykge1xuICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICByZWRpcmVjdFRvKHByb3BzLmxpbmtUbyk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHByb3BzLm9uQ2xpY2spIHtcbiAgICAgICAgICAgICAgZXZlbnQucGVyc2lzdCgpO1xuICAgICAgICAgICAgICBwcm9wcy5vbkNsaWNrKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPE5hdkxpbmtDbGlja2FibGVDb250ZW50V3JhcHBlciB7Li4ucHJvcHN9PlxuICAgICAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgICAgIDwvTmF2TGlua0NsaWNrYWJsZUNvbnRlbnRXcmFwcGVyPlxuICAgICAgICA8L05hdkxpbms+XG4gICAgICA8L05hdkxpbmtXcmFwcGVyPlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIDw+e3Byb3BzLmNoaWxkcmVufTwvPjtcbn07XG5NZW51SXRlbUxpbmsuZGlzcGxheU5hbWUgPSAnTWVudUl0ZW1MaW5rJztcbk1lbnVJdGVtTGluay5kZWZhdWx0UHJvcHMgPSBtZW51SXRlbUxpbmtEZWZhdWx0UHJvcHM7XG5cbmNvbnN0IGlzRXZlcnlNZW51VmlzaWJpbGl0eVNldFRvSGlkZGVuID0gKFxuICBtZW51VmlzaWJpbGl0aWVzPzogVE5vcm1hbGl6ZWRNZW51VmlzaWJpbGl0aWVzIHwgbnVsbCxcbiAgbmFtZXNPZk1lbnVWaXNpYmlsaXRpZXM/OiBzdHJpbmdbXVxuKSA9PlxuICBBcnJheS5pc0FycmF5KG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzKSAmJlxuICBuYW1lc09mTWVudVZpc2liaWxpdGllcy5sZW5ndGggPiAwICYmXG4gIG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzLmV2ZXJ5KFxuICAgIChuYW1lT2ZNZW51VmlzaWJpbGl0eSkgPT5cbiAgICAgIG1lbnVWaXNpYmlsaXRpZXMgJiYgbWVudVZpc2liaWxpdGllc1tuYW1lT2ZNZW51VmlzaWJpbGl0eV0gPT09IHRydWVcbiAgKTtcblxudHlwZSBSZXN0cmljdGVkTWVudUl0ZW1Qcm9wcyA9IHtcbiAgZmVhdHVyZVRvZ2dsZT86IHN0cmluZztcbiAgbmFtZXNPZk1lbnVWaXNpYmlsaXRpZXM/OiBzdHJpbmdbXTtcbiAgcHJvamVjdFBlcm1pc3Npb25zOiBUUHJvamVjdFBlcm1pc3Npb25zO1xuICBtZW51VmlzaWJpbGl0aWVzOiBUTm9ybWFsaXplZE1lbnVWaXNpYmlsaXRpZXMgfCBudWxsO1xuICBrZXlPZk1lbnVJdGVtOiBzdHJpbmc7XG4gIHBlcm1pc3Npb25zOiBzdHJpbmdbXTtcbiAgYWN0aW9uUmlnaHRzPzogVEFjdGlvblJpZ2h0W107XG4gIGRhdGFGZW5jZXM/OiBURGF0YUZlbmNlW107XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG59O1xudHlwZSBUTG9uZ0xpdmVkRmxhZyA9IHtcbiAgdmFsdWU6IGJvb2xlYW47XG4gIHJlYXNvbj86IHN0cmluZztcbn07XG5jb25zdCByZXN0cmljdGVkTWVudUl0ZW1EZWZhdWx0UHJvcHM6IFBpY2s8XG4gIFJlc3RyaWN0ZWRNZW51SXRlbVByb3BzLFxuICAncGVybWlzc2lvbnMnXG4+ID0ge1xuICBwZXJtaXNzaW9uczogW10sXG59O1xuZnVuY3Rpb24gaXNMb25nTGl2ZWRGbGFnKFxuICBmbGFnOiBURmxhZ1ZhcmlhdGlvbiB8IFRMb25nTGl2ZWRGbGFnXG4pOiBmbGFnIGlzIFRMb25nTGl2ZWRGbGFnIHtcbiAgcmV0dXJuIHR5cGVvZiAoZmxhZyBhcyBUTG9uZ0xpdmVkRmxhZyk/LnZhbHVlID09PSAnYm9vbGVhbic7XG59XG5jb25zdCBSZXN0cmljdGVkTWVudUl0ZW0gPSAocHJvcHM6IFJlc3RyaWN0ZWRNZW51SXRlbVByb3BzKSA9PiB7XG4gIC8vIE5PVEU6IEN1c3RvbSBhcHBsaWNhdGlvbiBhcmUgYWN0aXZhdGVkL2RlYWN0aXZhdGVkIHdoaWxlIHRoZWlyXG4gIC8vIHZpc2liaWxpdHkgaXMgbm90IGNvbnRyb2xsZWQgdmlhIGEgdmlzaWJpaWxpdHkgb3ZlcndyaXRlLlxuICBjb25zdCBmbGFnVmFyaWF0aW9uID0gdXNlRmxhZ1ZhcmlhdGlvbihwcm9wcy5mZWF0dXJlVG9nZ2xlKTtcbiAgaWYgKFxuICAgIGlzRXZlcnlNZW51VmlzaWJpbGl0eVNldFRvSGlkZGVuKFxuICAgICAgcHJvcHMubWVudVZpc2liaWxpdGllcyxcbiAgICAgIHByb3BzLm5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzXG4gICAgKVxuICApXG4gICAgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgcGVybWlzc2lvbnNXcmFwcGVyID1cbiAgICAoQXJyYXkuaXNBcnJheShwcm9wcy5wZXJtaXNzaW9ucykgJiYgcHJvcHMucGVybWlzc2lvbnMubGVuZ3RoID4gMCkgfHxcbiAgICAoQXJyYXkuaXNBcnJheShwcm9wcy5kYXRhRmVuY2VzKSAmJiBwcm9wcy5kYXRhRmVuY2VzLmxlbmd0aCA+IDApID8gKFxuICAgICAgPFJlc3RyaWN0ZWRCeVBlcm1pc3Npb25zXG4gICAgICAgIHBlcm1pc3Npb25zPXtwcm9wcy5wZXJtaXNzaW9uc31cbiAgICAgICAgYWN0aW9uUmlnaHRzPXtwcm9wcy5hY3Rpb25SaWdodHN9XG4gICAgICAgIGRhdGFGZW5jZXM9e3Byb3BzLmRhdGFGZW5jZXN9XG4gICAgICAgIHNlbGVjdERhdGFGZW5jZURhdGE9eyhkZW1hbmRlZERhdGFGZW5jZSkgPT4ge1xuICAgICAgICAgIHN3aXRjaCAoZGVtYW5kZWREYXRhRmVuY2UudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnc3RvcmUnOlxuICAgICAgICAgICAgICByZXR1cm4gZGVtYW5kZWREYXRhRmVuY2UuYWN0dWFsRGF0YUZlbmNlVmFsdWVzO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICAvLyBBbHdheXMgY2hlY2sgdGhhdCBzb21lIG9mIHRoZSBnaXZlbiBwZXJtaXNzaW9ucyBtYXRjaC5cbiAgICAgICAgc2hvdWxkTWF0Y2hTb21lUGVybWlzc2lvbnM9e3RydWV9XG4gICAgICAgIHByb2plY3RQZXJtaXNzaW9ucz17cHJvcHMucHJvamVjdFBlcm1pc3Npb25zfVxuICAgICAgPlxuICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICA8L1Jlc3RyaWN0ZWRCeVBlcm1pc3Npb25zPlxuICAgICkgOiAoXG4gICAgICA8Pntwcm9wcy5jaGlsZHJlbn08Lz5cbiAgICApO1xuXG4gIGlmIChwcm9wcy5mZWF0dXJlVG9nZ2xlKSB7XG4gICAgLy8gQSByZWd1bGFyIHNob3J0LWxpdmVkIGZlYXR1cmUgdG9nZ2xlXG4gICAgaWYgKGZsYWdWYXJpYXRpb24gPT09IHRydWUpIHJldHVybiBwZXJtaXNzaW9uc1dyYXBwZXI7XG4gICAgLy8gQSBsb25nLWxpdmVkIGZlYXR1cmUgdG9nZ2xlIHdpdGggYHsgdmFsdWU6IGJvb2xlYW4sIHN0cmluZzogcmVhc29uIH1gXG4gICAgaWYgKGlzTG9uZ0xpdmVkRmxhZyhmbGFnVmFyaWF0aW9uKSAmJiBmbGFnVmFyaWF0aW9uLnZhbHVlID09PSB0cnVlKVxuICAgICAgcmV0dXJuIHBlcm1pc3Npb25zV3JhcHBlcjtcblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHBlcm1pc3Npb25zV3JhcHBlcjtcbn07XG5SZXN0cmljdGVkTWVudUl0ZW0uZGlzcGxheU5hbWUgPSAnUmVzdHJpY3RlZE1lbnVJdGVtJztcblJlc3RyaWN0ZWRNZW51SXRlbS5kZWZhdWx0UHJvcHMgPSByZXN0cmljdGVkTWVudUl0ZW1EZWZhdWx0UHJvcHM7XG5cbnR5cGUgTWVudUxhYmVsUHJvcHMgPSB7XG4gIGxhYmVsQWxsTG9jYWxlczogVExvY2FsaXplZEZpZWxkW107XG4gIGRlZmF1bHRMYWJlbD86IHN0cmluZztcbiAgYXBwbGljYXRpb25Mb2NhbGU6IHN0cmluZztcbn07XG5jb25zdCBNZW51TGFiZWwgPSAocHJvcHM6IE1lbnVMYWJlbFByb3BzKSA9PiB7XG4gIGNvbnN0IGxvY2FsaXplZExhYmVsID0gcHJvcHMubGFiZWxBbGxMb2NhbGVzLmZpbmQoKGxvYykgPT5cbiAgICBwcm9wcy5hcHBsaWNhdGlvbkxvY2FsZS5zdGFydHNXaXRoKGxvYy5sb2NhbGUpXG4gICk7XG4gIGlmIChsb2NhbGl6ZWRMYWJlbCkgcmV0dXJuIDw+e2xvY2FsaXplZExhYmVsLnZhbHVlfTwvPjtcbiAgaWYgKHByb3BzLmRlZmF1bHRMYWJlbCkgcmV0dXJuIDw+e3Byb3BzLmRlZmF1bHRMYWJlbH08Lz47XG4gIHJldHVybiA8PntOT19WQUxVRV9GQUxMQkFDS308Lz47XG59O1xuXG50eXBlIFROYXZCYXJMYXlvdXRQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbn07XG5jb25zdCBOYXZCYXJMYXlvdXQgPSBmb3J3YXJkUmVmPEhUTUxFbGVtZW50LCBUTmF2QmFyTGF5b3V0UHJvcHM+KFxuICAocHJvcHMsIHJlZikgPT4gKFxuICAgIDw+XG4gICAgICA8R2xvYmFsXG4gICAgICAgIHN0eWxlcz17Y3NzYFxuICAgICAgICAgICR7Y29tcGlsZWRTdHlsZXMuZ2xvYmFsfVxuICAgICAgICBgfVxuICAgICAgLz5cbiAgICAgIDxuYXZcbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIGNsYXNzTmFtZT17c3R5bGVzWydsZWZ0LW5hdmlnYXRpb24nXX1cbiAgICAgICAgZGF0YS10ZXN0PVwibGVmdC1uYXZpZ2F0aW9uXCJcbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJsZWZ0LW5hdmlnYXRpb25cIlxuICAgICAgPlxuICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICA8L25hdj5cbiAgICA8Lz5cbiAgKVxuKTtcbk5hdkJhckxheW91dC5kaXNwbGF5TmFtZSA9ICdOYXZCYXJMYXlvdXQnO1xuXG50eXBlIEl0ZW1Db250YWluZXJQcm9wcyA9IHtcbiAgbGFiZWxBbGxMb2NhbGVzOiBUTG9jYWxpemVkRmllbGRbXTtcbiAgZGVmYXVsdExhYmVsPzogc3RyaW5nO1xuICBhcHBsaWNhdGlvbkxvY2FsZTogc3RyaW5nO1xuICBpY29uOiBzdHJpbmc7XG4gIGlzTWVudU9wZW4/OiBib29sZWFuO1xufTtcblxuY29uc3QgSXRlbUNvbnRhaW5lciA9IChwcm9wczogSXRlbUNvbnRhaW5lclByb3BzKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snaXRlbS1pY29uLXRleHQnXX0+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydpY29uLWNvbnRhaW5lciddfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5pY29ufT5cbiAgICAgICAgICA8SWNvblN3aXRjaGVyIGljb249e3Byb3BzLmljb259IHNpemU9XCJzY2FsZVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICB7cHJvcHMuaXNNZW51T3BlbiA/IChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy50aXRsZX0+XG4gICAgICAgICAgPE1lbnVMYWJlbFxuICAgICAgICAgICAgbGFiZWxBbGxMb2NhbGVzPXtwcm9wcy5sYWJlbEFsbExvY2FsZXN9XG4gICAgICAgICAgICBkZWZhdWx0TGFiZWw9e3Byb3BzLmRlZmF1bHRMYWJlbH1cbiAgICAgICAgICAgIGFwcGxpY2F0aW9uTG9jYWxlPXtwcm9wcy5hcHBsaWNhdGlvbkxvY2FsZX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICkgOiBudWxsfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuSXRlbUNvbnRhaW5lci5kaXNwbGF5TmFtZSA9ICdJdGVtQ29udGFpbmVyJztcblxuZXhwb3J0IHtcbiAgUmVzdHJpY3RlZE1lbnVJdGVtLFxuICBNZW51SXRlbSxcbiAgTWVudUl0ZW1MaW5rLFxuICBJY29uU3dpdGNoZXIsXG4gIE1lbnVHcm91cCxcbiAgTWVudUxhYmVsLFxuICBNZW51RXhwYW5kZXIsXG4gIEZhZGVkLFxuICBOYXZCYXJMYXlvdXQsXG4gIEl0ZW1Db250YWluZXIsXG59O1xuIl19 */",
279
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1
280
+ };
281
+ const MenuGroup = /*#__PURE__*/react.forwardRef((props, ref) => {
282
+ if (props.isExpanded && (props.level === 2 && !props.hasSubmenu || props.level === 2 && !props.isActive)) {
283
+ return null;
284
+ }
285
+ const isSublistActiveWhileIsMenuExpanded = props.level === 2 && props.isActive && props.isExpanded;
286
+ const isSublistActiveWhileIsMenuCollapsed = props.level === 2 && props.isActive && !props.isExpanded;
287
+ return jsxRuntime.jsx("ul", {
288
+ ref: ref && props.level === 2 ? ref : null,
289
+ css: /*#__PURE__*/react$1.css(getSubmenuPositionBasedOnMenuItemPosition(props.isSubmenuAboveMenuItem, props.submenuVerticalPosition), ";", props.submenuVerticalPosition === 0 && _ref, "::before{", getContainerPositionBasedOnMenuItemPosition(props.isSubmenuAboveMenuItem, isSublistActiveWhileIsMenuExpanded, isSublistActiveWhileIsMenuCollapsed), ";}" + (process.env.NODE_ENV === "production" ? "" : ";label:MenuGroup;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUtaXRlbXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtPYyIsImZpbGUiOiJtZW51LWl0ZW1zLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGZvcndhcmRSZWYsXG4gIGxhenksXG4gIHR5cGUgTW91c2VFdmVudEhhbmRsZXIsXG4gIHR5cGUgRm9jdXNFdmVudEhhbmRsZXIsXG4gIHR5cGUgTW91c2VFdmVudCxcbiAgdHlwZSBLZXlib2FyZEV2ZW50LFxuICB0eXBlIFJlYWN0Tm9kZSxcbiAgdHlwZSBTeW50aGV0aWNFdmVudCxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgR2xvYmFsLCBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB1c2VGbGFnVmFyaWF0aW9uIH0gZnJvbSAnQGZsb3BmbGlwL3JlYWN0LWJyb2FkY2FzdCc7XG5pbXBvcnQgdHlwZSB7IFRGbGFnVmFyaWF0aW9uIH0gZnJvbSAnQGZsb3BmbGlwL3R5cGVzJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgTmF2TGluayB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHR5cGUge1xuICBUTm9ybWFsaXplZE1lbnVWaXNpYmlsaXRpZXMsXG4gIFROb3JtYWxpemVkUGVybWlzc2lvbnMsXG4gIFROb3JtYWxpemVkQWN0aW9uUmlnaHRzLFxuICBUTm9ybWFsaXplZERhdGFGZW5jZXMsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IE1pc3NpbmdJbWFnZVN2ZyBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hc3NldHMvaW1hZ2VzL2RpYWdvbmFsLWxpbmUuc3ZnJztcbmltcG9ydCB7IE5PX1ZBTFVFX0ZBTExCQUNLIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7IFJlc3RyaWN0ZWRCeVBlcm1pc3Npb25zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvcGVybWlzc2lvbnMnO1xuaW1wb3J0IHtcbiAgQmFja0ljb24sXG4gIFNpZGViYXJFeHBhbmRJY29uLFxuICBTaWRlYmFyQ29sbGFwc2VJY29uLFxufSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pY29ucyc7XG5pbXBvcnQgSW5saW5lU3ZnIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2ljb25zL2lubGluZS1zdmcnO1xuaW1wb3J0IHsgRElNRU5TSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIFREYXRhRmVuY2UsXG4gIFRBY3Rpb25SaWdodCxcbiAgVExvY2FsaXplZEZpZWxkLFxufSBmcm9tICcuLi8uLi90eXBlcy9nZW5lcmF0ZWQvcHJveHknO1xuaW1wb3J0IHsgbG9jYXRpb24gfSBmcm9tICcuLi8uLi91dGlscy9sb2NhdGlvbic7XG4vLyBodHRwczovL2JhYmVsanMuaW8vYmxvZy8yMDE3LzA5LzExL3plcm8tY29uZmlnLXdpdGgtYmFiZWwtbWFjcm9zXG5pbXBvcnQgY29tcGlsZWRTdHlsZXMgZnJvbSAvKiBwcmV2YWwgKi8gJy4vbmF2YmFyLnN0eWxlcyc7XG5cbmNvbnN0IHN0eWxlcyA9IGNvbXBpbGVkU3R5bGVzLmpzb25NYXA7XG5cbnR5cGUgVFByb2plY3RQZXJtaXNzaW9ucyA9IHtcbiAgcGVybWlzc2lvbnM6IFROb3JtYWxpemVkUGVybWlzc2lvbnMgfCBudWxsO1xuICBhY3Rpb25SaWdodHM6IFROb3JtYWxpemVkQWN0aW9uUmlnaHRzIHwgbnVsbDtcbiAgZGF0YUZlbmNlczogVE5vcm1hbGl6ZWREYXRhRmVuY2VzIHwgbnVsbDtcbn07XG5cbmNvbnN0IEhlYXJ0SWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9oZWFydCcpKTtcbmNvbnN0IFBhcGVyY2xpcEljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvcGFwZXJjbGlwJykpO1xuY29uc3QgUGx1Z2luSWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9wbHVnaW4nKSk7XG5jb25zdCBSb2NrZXRJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3JvY2tldCcpKTtcbmNvbnN0IFN0YXJJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3N0YXInKSk7XG5jb25zdCBDb25uZWN0ZWRTcXVhcmVJY29uID0gbGF6eShcbiAgKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9jb25uZWN0ZWQtc3F1YXJlJylcbik7XG5jb25zdCBXb3JsZEljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvd29ybGQnKSk7XG5jb25zdCBUcmVlU3RydWN0dXJlSWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy90cmVlLXN0cnVjdHVyZScpKTtcbmNvbnN0IFVzZXJGaWxsZWRJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3VzZXItZmlsbGVkJykpO1xuY29uc3QgU3BlZWRvbWV0ZXJJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3NwZWVkb21ldGVyJykpO1xuY29uc3QgVGFnTXVsdGlJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3RhZy1tdWx0aScpKTtcbmNvbnN0IENhcnRJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2NhcnQnKSk7XG5jb25zdCBCb3hJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2JveCcpKTtcbmNvbnN0IEdlYXJJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2dlYXInKSk7XG5jb25zdCBMaXN0V2l0aFNlYXJjaEljb24gPSBsYXp5KFxuICAoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2xpc3Qtd2l0aC1zZWFyY2gnKVxuKTtcblxudHlwZSBJY29uUHJvcHMgPSBQYXJhbWV0ZXJzPHR5cGVvZiBCYWNrSWNvbj5bMF07XG50eXBlIEljb25Td2l0Y2hlclByb3BzID0geyBpY29uOiBzdHJpbmcgfSAmIEljb25Qcm9wcztcbi8vIFRoZSBpY29uIGlzIGV4cGVjdGVkIHRvIGJlIHRoZSBgc3ZnYCBkb2N1bWVudCBhcyBhIHN0cmluZy5cbi8vIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBwdXJwb3Nlcywgd2Ugc3RpbGwgc3VwcG9ydCB0aGUgbGVnYWN5IFwiaWNvbiBuYW1lXCIsXG4vLyB3aGljaCB3ZSB0aGVuIG1hcCB0byBvbmUgb2YgdGhlIHByZS1kZWZpbmVkIGljb25zLlxuLy8gRXZlbnR1YWxseSwgd2Ugd2FudCB0byBnZXQgcmlkIG9mIHRoaXMgXCJzd2l0Y2hcIiBsb2dpYy5cbmNvbnN0IEljb25Td2l0Y2hlciA9ICh7IGljb24sIC4uLmljb25Qcm9wcyB9OiBJY29uU3dpdGNoZXJQcm9wcykgPT4ge1xuICBpZiAoaWNvbi5pbmNsdWRlcygnPHN2ZycpKSB7XG4gICAgcmV0dXJuIDxJbmxpbmVTdmcgZGF0YT17aWNvbn0gey4uLmljb25Qcm9wc30gLz47XG4gIH1cbiAgLy8gQmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZm9yIGFwcHMgdXNpbmcgdGhlIFwiaWNvbiBuYW1lXCIuXG4gIHN3aXRjaCAoaWNvbikge1xuICAgIC8vIExlZ2FjeSBhcHBsaWNhdGlvbiBpY29uc1xuICAgIC8vIFRPRE86IFRvIGJlIHJlbW92ZWQgb25jZSBNQyBhcHBsaWNhdGlvbnMgaWNvbnMgdXBkYXRlcyBhcmUgcHVibGlzaGVkXG4gICAgY2FzZSAnVHJlZVN0cnVjdHVyZUljb24nOlxuICAgICAgcmV0dXJuIDxUcmVlU3RydWN0dXJlSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdVc2VyRmlsbGVkSWNvbic6XG4gICAgICByZXR1cm4gPFVzZXJGaWxsZWRJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1NwZWVkb21ldGVySWNvbic6XG4gICAgICByZXR1cm4gPFNwZWVkb21ldGVySWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdUYWdNdWx0aUljb24nOlxuICAgICAgcmV0dXJuIDxUYWdNdWx0aUljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnQ2FydEljb24nOlxuICAgICAgcmV0dXJuIDxDYXJ0SWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdCb3hJY29uJzpcbiAgICAgIHJldHVybiA8Qm94SWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdHZWFySWNvbic6XG4gICAgICByZXR1cm4gPEdlYXJJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ0xpc3RXaXRoU2VhcmNoSWNvbic6XG4gICAgICByZXR1cm4gPExpc3RXaXRoU2VhcmNoSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcblxuICAgIC8vIEN1c3RvbSBhcHBsaWNhdGlvbiBpY29ucyBzZXRcbiAgICBjYXNlICdIZWFydEljb24nOlxuICAgICAgcmV0dXJuIDxIZWFydEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnUGFwZXJjbGlwSWNvbic6XG4gICAgICByZXR1cm4gPFBhcGVyY2xpcEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnUGx1Z2luSWNvbic6XG4gICAgICByZXR1cm4gPFBsdWdpbkljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnUm9ja2V0SWNvbic6XG4gICAgICByZXR1cm4gPFJvY2tldEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnU3Rhckljb24nOlxuICAgICAgcmV0dXJuIDxTdGFySWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdDb25uZWN0ZWRTcXVhcmVJY29uJzpcbiAgICAgIHJldHVybiA8Q29ubmVjdGVkU3F1YXJlSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICAvLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICBjYXNlICdXb3JsZEljb24nOlxuICAgICAgcmV0dXJuIDxXb3JsZEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiA8aW1nIHNyYz17TWlzc2luZ0ltYWdlU3ZnfSBhbHQ9XCJtaXNzaW5nIGljb25cIiAvPjtcbiAgfVxufTtcbkljb25Td2l0Y2hlci5kaXNwbGF5TmFtZSA9ICdJY29uU3dpdGNoZXInO1xuXG50eXBlIE1lbnVFeHBhbmRlclByb3BzID0ge1xuICBpc1Zpc2libGU6IGJvb2xlYW47XG4gIG9uQ2xpY2s6IChcbiAgICBlOiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PiB8IEtleWJvYXJkRXZlbnQ8SFRNTERpdkVsZW1lbnQ+XG4gICkgPT4gdm9pZDtcbiAgaXNNZW51T3BlbjogYm9vbGVhbjtcbn07XG5cbmNvbnN0IGdldEljb24gPSAoeyBpc01lbnVPcGVuIH06IE1lbnVFeHBhbmRlclByb3BzKSA9PiB7XG4gIGNvbnN0IEljb24gPSBpc01lbnVPcGVuID8gU2lkZWJhckNvbGxhcHNlSWNvbiA6IFNpZGViYXJFeHBhbmRJY29uO1xuICByZXR1cm4gPEljb24gY29sb3I9XCJzdXJmYWNlXCIgc2l6ZT1cImJpZ1wiIC8+O1xufTtcblxuY29uc3QgTWVudUV4cGFuZGVyID0gKHByb3BzOiBNZW51RXhwYW5kZXJQcm9wcykgPT4ge1xuICByZXR1cm4gKFxuICAgIDxsaVxuICAgICAga2V5PVwiZXhwYW5kZXJcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKHN0eWxlcy5leHBhbmRlciwge1xuICAgICAgICBbc3R5bGVzLmhpZGRlbl06ICFwcm9wcy5pc1Zpc2libGUsXG4gICAgICB9KX1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIG9uQ2xpY2s9e3Byb3BzLm9uQ2xpY2t9XG4gICAgICAgIG9uS2V5RG93bj17KGUpID0+IHtcbiAgICAgICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgIHByb3BzLm9uQ2xpY2soZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbJ2V4cGFuZC1pY29uJ119XG4gICAgICAgIGRhdGEtdGVzdGlkPVwibWVudS1leHBhbmRlclwiXG4gICAgICA+XG4gICAgICAgIHtnZXRJY29uKHByb3BzKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvbGk+XG4gICk7XG59O1xuTWVudUV4cGFuZGVyLmRpc3BsYXlOYW1lID0gJ01lbnVFeHBhbmRlcic7XG5cbmNvbnN0IEZhZGVkID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0zMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDE1MywgMTM1LCAwKSAwJSwgIzAwYjM5ZSAxMDAlKTtcbiAgei1pbmRleDogMTtcbmA7XG5cbnR5cGUgTWVudUdyb3VwUHJvcHMgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIGxldmVsOiAxIHwgMjtcbiAgaXNBY3RpdmU/OiBib29sZWFuO1xuICBpc0V4cGFuZGVkPzogYm9vbGVhbjtcbiAgaGFzU3VibWVudT86IGJvb2xlYW47XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xuICBzdWJtZW51VmVydGljYWxQb3NpdGlvbj86IG51bWJlcjtcbiAgaXNTdWJtZW51QWJvdmVNZW51SXRlbT86IGJvb2xlYW47XG59O1xuXG5jb25zdCBnZXRTdWJtZW51UG9zaXRpb25CYXNlZE9uTWVudUl0ZW1Qb3NpdGlvbiA9IChcbiAgaXNTdWJtZW51QWJvdmVNZW51SXRlbT86IGJvb2xlYW4sXG4gIHN1Ym1lbnVWZXJ0aWNhbFBvc2l0aW9uPzogbnVtYmVyXG4pID0+IGNzc2BcbiAgJHtpc1N1Ym1lbnVBYm92ZU1lbnVJdGVtID8gJ2JvdHRvbScgOiAndG9wJ306ICR7c3VibWVudVZlcnRpY2FsUG9zaXRpb259cHhcbmA7XG5cbmNvbnN0IGdldENvbnRhaW5lclBvc2l0aW9uQmFzZWRPbk1lbnVJdGVtUG9zaXRpb24gPSAoXG4gIGlzU3VibWVudUFib3ZlTWVudUl0ZW0/OiBib29sZWFuLFxuICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUV4cGFuZGVkPzogYm9vbGVhbixcbiAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQ/OiBib29sZWFuXG4pID0+IFtcbiAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQgJiZcbiAgICBjc3NgXG4gICAgICAke2lzU3VibWVudUFib3ZlTWVudUl0ZW1cbiAgICAgICAgPyAnYm90dG9tJ1xuICAgICAgICA6ICd0b3AnfTogLSR7RElNRU5TSU9OUy5uYXZNZW51SXRlbUhlaWdodH07XG4gICAgYCxcbiAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCAmJlxuICAgIGlzU3VibWVudUFib3ZlTWVudUl0ZW0gJiZcbiAgICBjc3NgXG4gICAgICBib3R0b206IDA7XG4gICAgYCxcbiAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCAmJlxuICAgICFpc1N1Ym1lbnVBYm92ZU1lbnVJdGVtICYmXG4gICAgY3NzYFxuICAgICAgdG9wOiAwO1xuICAgIGAsXG5dO1xuXG5jb25zdCBNZW51R3JvdXAgPSBmb3J3YXJkUmVmPEhUTUxVTGlzdEVsZW1lbnQsIE1lbnVHcm91cFByb3BzPigocHJvcHMsIHJlZikgPT4ge1xuICBpZiAoXG4gICAgcHJvcHMuaXNFeHBhbmRlZCAmJlxuICAgICgocHJvcHMubGV2ZWwgPT09IDIgJiYgIXByb3BzLmhhc1N1Ym1lbnUpIHx8XG4gICAgICAocHJvcHMubGV2ZWwgPT09IDIgJiYgIXByb3BzLmlzQWN0aXZlKSlcbiAgKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCA9XG4gICAgcHJvcHMubGV2ZWwgPT09IDIgJiYgcHJvcHMuaXNBY3RpdmUgJiYgcHJvcHMuaXNFeHBhbmRlZDtcbiAgY29uc3QgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQgPVxuICAgIHByb3BzLmxldmVsID09PSAyICYmIHByb3BzLmlzQWN0aXZlICYmICFwcm9wcy5pc0V4cGFuZGVkO1xuICByZXR1cm4gKFxuICAgIDx1bFxuICAgICAgcmVmPXtyZWYgJiYgcHJvcHMubGV2ZWwgPT09IDIgPyByZWYgOiBudWxsfVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgICR7Z2V0U3VibWVudVBvc2l0aW9uQmFzZWRPbk1lbnVJdGVtUG9zaXRpb24oXG4gICAgICAgICAgcHJvcHMuaXNTdWJtZW51QWJvdmVNZW51SXRlbSxcbiAgICAgICAgICBwcm9wcy5zdWJtZW51VmVydGljYWxQb3NpdGlvblxuICAgICAgICApfTtcbiAgICAgIFxuICAgICAgLy8gcHJldmVudCBnbGl0Y2h5IGJlaGF2aW9yIGR1cmluZyB0aGUgaW5pdGlhbCByZW5kZXIgd2hlbiB0aGUgc3VibWVudSdzIHZlcnRpY2FsIHBvc2l0aW9uIGlzIGV2YWx1YXRlZCBhcyAwXG4gICAgICAke1xuICAgICAgICBwcm9wcy5zdWJtZW51VmVydGljYWxQb3NpdGlvbiA9PT0gMCAmJlxuICAgICAgICBjc3NgXG4gICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICBgXG4gICAgICB9XG5cbiAgICAgICAgLy8gYWRkaXRpb25hbCBzdHlsaW5nIG9mIHRoZSBwc2V1ZG8tZWxlbWVudCBlbmFibGluZyBzbW9vdGggY291cnNvciBtb3ZlbWVudFxuICAgICAgICA6OmJlZm9yZSB7XG4gICAgICAgICAgJHtnZXRDb250YWluZXJQb3NpdGlvbkJhc2VkT25NZW51SXRlbVBvc2l0aW9uKFxuICAgICAgICAgICAgcHJvcHMuaXNTdWJtZW51QWJvdmVNZW51SXRlbSxcbiAgICAgICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51RXhwYW5kZWQsXG4gICAgICAgICAgICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUNvbGxhcHNlZFxuICAgICAgICAgICl9XG4gICAgICBgfVxuICAgICAgaWQ9e2Bncm91cC0ke3Byb3BzLmlkfWB9XG4gICAgICBkYXRhLXRlc3RpZD17YGdyb3VwLSR7cHJvcHMuaWR9YH1cbiAgICAgIHJvbGU9XCJtZW51XCJcbiAgICAgIGFyaWEtZXhwYW5kZWQ9e1xuICAgICAgICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUV4cGFuZGVkIHx8XG4gICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkXG4gICAgICB9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoXG4gICAgICAgIHsgW3N0eWxlcy5saXN0XTogcHJvcHMubGV2ZWwgPT09IDEgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXNbJ3N1Ymxpc3QnXV06IHByb3BzLmxldmVsID09PSAyLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlc1snc3VibGlzdC1leHBhbmRlZF9fYWN0aXZlJ11dOlxuICAgICAgICAgICAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXNbJ3N1Ymxpc3QtY29sbGFwc2VkX19lbXB0eSddXTpcbiAgICAgICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkICYmICFwcm9wcy5oYXNTdWJtZW51LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlc1snc3VibGlzdC1jb2xsYXBzZWRfX2FjdGl2ZSddXTpcbiAgICAgICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkICYmXG4gICAgICAgICAgICAhcHJvcHMuaXNTdWJtZW51QWJvdmVNZW51SXRlbSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXNbJ3N1Ymxpc3QtY29sbGFwc2VkX19hY3RpdmVfX2Fib3ZlJ11dOlxuICAgICAgICAgICAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQgJiYgcHJvcHMuaXNTdWJtZW51QWJvdmVNZW51SXRlbSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMuc3VibGlzdF9faW5hY3RpdmVdOiAhaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQsXG4gICAgICAgIH1cbiAgICAgICl9XG4gICAgPlxuICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgIDwvdWw+XG4gICk7XG59KTtcbk1lbnVHcm91cC5kaXNwbGF5TmFtZSA9ICdNZW51R3JvdXAnO1xuXG50eXBlIE1lbnVJdGVtUHJvcHMgPSB7XG4gIGhhc1N1Ym1lbnU6IGJvb2xlYW47XG4gIGlzQWN0aXZlOiBib29sZWFuO1xuICBpc01haW5NZW51Um91dGVBY3RpdmU/OiBib29sZWFuO1xuICBpc01lbnVPcGVuOiBib29sZWFuO1xuICBvbkNsaWNrOiBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD47XG4gIG9uTW91c2VFbnRlcj86XG4gICAgfCBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD5cbiAgICB8IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxFbGVtZW50PjtcbiAgb25Nb3VzZUxlYXZlPzpcbiAgICB8IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxFbGVtZW50PlxuICAgIHwgRm9jdXNFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+O1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBpZGVudGlmaWVyPzogc3RyaW5nO1xufTtcbmNvbnN0IE1lbnVJdGVtID0gKHByb3BzOiBNZW51SXRlbVByb3BzKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGxpXG4gICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKHN0eWxlc1snbGlzdC1pdGVtJ10sIHtcbiAgICAgICAgW3N0eWxlcy5pdGVtX19hY3RpdmVdOiBwcm9wcy5pc0FjdGl2ZSxcbiAgICAgICAgW3N0eWxlc1snaXRlbV9tZW51X19hY3RpdmUnXV06IHByb3BzLmlzTWFpbk1lbnVSb3V0ZUFjdGl2ZSA/PyBmYWxzZSxcbiAgICAgICAgW3N0eWxlc1snaXRlbV9tZW51LWNvbGxhcHNlZCddXTogIXByb3BzLmlzTWVudU9wZW4sXG4gICAgICB9KX1cbiAgICAgIG9uQ2xpY2s9e3Byb3BzLm9uQ2xpY2t9XG4gICAgICBvbk1vdXNlRW50ZXI9e3Byb3BzLm9uTW91c2VFbnRlciBhcyBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD59XG4gICAgICBvbk1vdXNlTGVhdmU9e3Byb3BzLm9uTW91c2VMZWF2ZSBhcyBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD59XG4gICAgICBvbkZvY3VzPXtwcm9wcy5vbk1vdXNlRW50ZXIgYXMgRm9jdXNFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+fVxuICAgICAgb25CbHVyPXtwcm9wcy5vbk1vdXNlTGVhdmUgYXMgRm9jdXNFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+fVxuICAgICAgZGF0YS1tZW51aXRlbT17cHJvcHMuaWRlbnRpZmllcn1cbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydpdGVtLWxpbmsnXX0+e3Byb3BzLmNoaWxkcmVufTwvZGl2PlxuICAgIDwvbGk+XG4gICk7XG59O1xuXG5NZW51SXRlbS5kaXNwbGF5TmFtZSA9ICdNZW51SXRlbSc7XG5cbmV4cG9ydCB0eXBlIE1lbnVJdGVtTGlua1Byb3BzID0ge1xuICBsaW5rVG8/OiBzdHJpbmc7XG4gIGV4YWN0TWF0Y2g6IGJvb2xlYW47XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIG9uQ2xpY2s/OiAoZXZlbnQ6IFN5bnRoZXRpY0V2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4gdm9pZDtcbiAgdXNlRnVsbFJlZGlyZWN0c0ZvckxpbmtzPzogYm9vbGVhbjtcbiAgaXNTdWJtZW51TGluaz86IGJvb2xlYW47XG59O1xuY29uc3QgbWVudUl0ZW1MaW5rRGVmYXVsdFByb3BzOiBQaWNrPE1lbnVJdGVtTGlua1Byb3BzLCAnZXhhY3RNYXRjaCc+ID0ge1xuICBleGFjdE1hdGNoOiBmYWxzZSxcbn07XG5jb25zdCBOYXZMaW5rV3JhcHBlciA9IChwcm9wczogTWVudUl0ZW1MaW5rUHJvcHMpID0+IHtcbiAgaWYgKHByb3BzLmlzU3VibWVudUxpbmspIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1sndGV4dC1saW5rLXN1Ymxpc3Qtd3JhcHBlciddfT5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuICByZXR1cm4gPD57cHJvcHMuY2hpbGRyZW59PC8+O1xufTtcbmNvbnN0IE5hdkxpbmtDbGlja2FibGVDb250ZW50V3JhcHBlciA9IChwcm9wczogTWVudUl0ZW1MaW5rUHJvcHMpID0+IHtcbiAgaWYgKHByb3BzLmlzU3VibWVudUxpbmspIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snbmF2bGluay1jbGlja2FibGUtY29udGVudCddfT5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuICByZXR1cm4gPD57cHJvcHMuY2hpbGRyZW59PC8+O1xufTtcblxuY29uc3QgTWVudUl0ZW1MaW5rID0gKHByb3BzOiBNZW51SXRlbUxpbmtQcm9wcykgPT4ge1xuICBjb25zdCByZWRpcmVjdFRvID0gKHRhcmdldFVybDogc3RyaW5nKSA9PiBsb2NhdGlvbi5yZXBsYWNlKHRhcmdldFVybCk7XG4gIGlmIChwcm9wcy5saW5rVG8pIHtcbiAgICBjb25zdCBsaW5rTGV2ZWwgPSBwcm9wcy5pc1N1Ym1lbnVMaW5rID8gJ3RleHQtbGluay1zdWJsaXN0JyA6ICd0ZXh0LWxpbmsnO1xuICAgIHJldHVybiAoXG4gICAgICA8TmF2TGlua1dyYXBwZXIgey4uLnByb3BzfT5cbiAgICAgICAgPE5hdkxpbmtcbiAgICAgICAgICB0bz17cHJvcHMubGlua1RvfVxuICAgICAgICAgIGV4YWN0PXtwcm9wcy5leGFjdE1hdGNofVxuICAgICAgICAgIGFjdGl2ZUNsYXNzTmFtZT17c3R5bGVzLmhpZ2hsaWdodGVkfVxuICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW2xpbmtMZXZlbF19XG4gICAgICAgICAgZGF0YS1saW5rLWxldmVsPXtsaW5rTGV2ZWx9XG4gICAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAocHJvcHMubGlua1RvICYmIHByb3BzLnVzZUZ1bGxSZWRpcmVjdHNGb3JMaW5rcykge1xuICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICByZWRpcmVjdFRvKHByb3BzLmxpbmtUbyk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHByb3BzLm9uQ2xpY2spIHtcbiAgICAgICAgICAgICAgZXZlbnQucGVyc2lzdCgpO1xuICAgICAgICAgICAgICBwcm9wcy5vbkNsaWNrKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPE5hdkxpbmtDbGlja2FibGVDb250ZW50V3JhcHBlciB7Li4ucHJvcHN9PlxuICAgICAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgICAgIDwvTmF2TGlua0NsaWNrYWJsZUNvbnRlbnRXcmFwcGVyPlxuICAgICAgICA8L05hdkxpbms+XG4gICAgICA8L05hdkxpbmtXcmFwcGVyPlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIDw+e3Byb3BzLmNoaWxkcmVufTwvPjtcbn07XG5NZW51SXRlbUxpbmsuZGlzcGxheU5hbWUgPSAnTWVudUl0ZW1MaW5rJztcbk1lbnVJdGVtTGluay5kZWZhdWx0UHJvcHMgPSBtZW51SXRlbUxpbmtEZWZhdWx0UHJvcHM7XG5cbmNvbnN0IGlzRXZlcnlNZW51VmlzaWJpbGl0eVNldFRvSGlkZGVuID0gKFxuICBtZW51VmlzaWJpbGl0aWVzPzogVE5vcm1hbGl6ZWRNZW51VmlzaWJpbGl0aWVzIHwgbnVsbCxcbiAgbmFtZXNPZk1lbnVWaXNpYmlsaXRpZXM/OiBzdHJpbmdbXVxuKSA9PlxuICBBcnJheS5pc0FycmF5KG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzKSAmJlxuICBuYW1lc09mTWVudVZpc2liaWxpdGllcy5sZW5ndGggPiAwICYmXG4gIG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzLmV2ZXJ5KFxuICAgIChuYW1lT2ZNZW51VmlzaWJpbGl0eSkgPT5cbiAgICAgIG1lbnVWaXNpYmlsaXRpZXMgJiYgbWVudVZpc2liaWxpdGllc1tuYW1lT2ZNZW51VmlzaWJpbGl0eV0gPT09IHRydWVcbiAgKTtcblxudHlwZSBSZXN0cmljdGVkTWVudUl0ZW1Qcm9wcyA9IHtcbiAgZmVhdHVyZVRvZ2dsZT86IHN0cmluZztcbiAgbmFtZXNPZk1lbnVWaXNpYmlsaXRpZXM/OiBzdHJpbmdbXTtcbiAgcHJvamVjdFBlcm1pc3Npb25zOiBUUHJvamVjdFBlcm1pc3Npb25zO1xuICBtZW51VmlzaWJpbGl0aWVzOiBUTm9ybWFsaXplZE1lbnVWaXNpYmlsaXRpZXMgfCBudWxsO1xuICBrZXlPZk1lbnVJdGVtOiBzdHJpbmc7XG4gIHBlcm1pc3Npb25zOiBzdHJpbmdbXTtcbiAgYWN0aW9uUmlnaHRzPzogVEFjdGlvblJpZ2h0W107XG4gIGRhdGFGZW5jZXM/OiBURGF0YUZlbmNlW107XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG59O1xudHlwZSBUTG9uZ0xpdmVkRmxhZyA9IHtcbiAgdmFsdWU6IGJvb2xlYW47XG4gIHJlYXNvbj86IHN0cmluZztcbn07XG5jb25zdCByZXN0cmljdGVkTWVudUl0ZW1EZWZhdWx0UHJvcHM6IFBpY2s8XG4gIFJlc3RyaWN0ZWRNZW51SXRlbVByb3BzLFxuICAncGVybWlzc2lvbnMnXG4+ID0ge1xuICBwZXJtaXNzaW9uczogW10sXG59O1xuZnVuY3Rpb24gaXNMb25nTGl2ZWRGbGFnKFxuICBmbGFnOiBURmxhZ1ZhcmlhdGlvbiB8IFRMb25nTGl2ZWRGbGFnXG4pOiBmbGFnIGlzIFRMb25nTGl2ZWRGbGFnIHtcbiAgcmV0dXJuIHR5cGVvZiAoZmxhZyBhcyBUTG9uZ0xpdmVkRmxhZyk/LnZhbHVlID09PSAnYm9vbGVhbic7XG59XG5jb25zdCBSZXN0cmljdGVkTWVudUl0ZW0gPSAocHJvcHM6IFJlc3RyaWN0ZWRNZW51SXRlbVByb3BzKSA9PiB7XG4gIC8vIE5PVEU6IEN1c3RvbSBhcHBsaWNhdGlvbiBhcmUgYWN0aXZhdGVkL2RlYWN0aXZhdGVkIHdoaWxlIHRoZWlyXG4gIC8vIHZpc2liaWxpdHkgaXMgbm90IGNvbnRyb2xsZWQgdmlhIGEgdmlzaWJpaWxpdHkgb3ZlcndyaXRlLlxuICBjb25zdCBmbGFnVmFyaWF0aW9uID0gdXNlRmxhZ1ZhcmlhdGlvbihwcm9wcy5mZWF0dXJlVG9nZ2xlKTtcbiAgaWYgKFxuICAgIGlzRXZlcnlNZW51VmlzaWJpbGl0eVNldFRvSGlkZGVuKFxuICAgICAgcHJvcHMubWVudVZpc2liaWxpdGllcyxcbiAgICAgIHByb3BzLm5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzXG4gICAgKVxuICApXG4gICAgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgcGVybWlzc2lvbnNXcmFwcGVyID1cbiAgICAoQXJyYXkuaXNBcnJheShwcm9wcy5wZXJtaXNzaW9ucykgJiYgcHJvcHMucGVybWlzc2lvbnMubGVuZ3RoID4gMCkgfHxcbiAgICAoQXJyYXkuaXNBcnJheShwcm9wcy5kYXRhRmVuY2VzKSAmJiBwcm9wcy5kYXRhRmVuY2VzLmxlbmd0aCA+IDApID8gKFxuICAgICAgPFJlc3RyaWN0ZWRCeVBlcm1pc3Npb25zXG4gICAgICAgIHBlcm1pc3Npb25zPXtwcm9wcy5wZXJtaXNzaW9uc31cbiAgICAgICAgYWN0aW9uUmlnaHRzPXtwcm9wcy5hY3Rpb25SaWdodHN9XG4gICAgICAgIGRhdGFGZW5jZXM9e3Byb3BzLmRhdGFGZW5jZXN9XG4gICAgICAgIHNlbGVjdERhdGFGZW5jZURhdGE9eyhkZW1hbmRlZERhdGFGZW5jZSkgPT4ge1xuICAgICAgICAgIHN3aXRjaCAoZGVtYW5kZWREYXRhRmVuY2UudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnc3RvcmUnOlxuICAgICAgICAgICAgICByZXR1cm4gZGVtYW5kZWREYXRhRmVuY2UuYWN0dWFsRGF0YUZlbmNlVmFsdWVzO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICAvLyBBbHdheXMgY2hlY2sgdGhhdCBzb21lIG9mIHRoZSBnaXZlbiBwZXJtaXNzaW9ucyBtYXRjaC5cbiAgICAgICAgc2hvdWxkTWF0Y2hTb21lUGVybWlzc2lvbnM9e3RydWV9XG4gICAgICAgIHByb2plY3RQZXJtaXNzaW9ucz17cHJvcHMucHJvamVjdFBlcm1pc3Npb25zfVxuICAgICAgPlxuICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICA8L1Jlc3RyaWN0ZWRCeVBlcm1pc3Npb25zPlxuICAgICkgOiAoXG4gICAgICA8Pntwcm9wcy5jaGlsZHJlbn08Lz5cbiAgICApO1xuXG4gIGlmIChwcm9wcy5mZWF0dXJlVG9nZ2xlKSB7XG4gICAgLy8gQSByZWd1bGFyIHNob3J0LWxpdmVkIGZlYXR1cmUgdG9nZ2xlXG4gICAgaWYgKGZsYWdWYXJpYXRpb24gPT09IHRydWUpIHJldHVybiBwZXJtaXNzaW9uc1dyYXBwZXI7XG4gICAgLy8gQSBsb25nLWxpdmVkIGZlYXR1cmUgdG9nZ2xlIHdpdGggYHsgdmFsdWU6IGJvb2xlYW4sIHN0cmluZzogcmVhc29uIH1gXG4gICAgaWYgKGlzTG9uZ0xpdmVkRmxhZyhmbGFnVmFyaWF0aW9uKSAmJiBmbGFnVmFyaWF0aW9uLnZhbHVlID09PSB0cnVlKVxuICAgICAgcmV0dXJuIHBlcm1pc3Npb25zV3JhcHBlcjtcblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHBlcm1pc3Npb25zV3JhcHBlcjtcbn07XG5SZXN0cmljdGVkTWVudUl0ZW0uZGlzcGxheU5hbWUgPSAnUmVzdHJpY3RlZE1lbnVJdGVtJztcblJlc3RyaWN0ZWRNZW51SXRlbS5kZWZhdWx0UHJvcHMgPSByZXN0cmljdGVkTWVudUl0ZW1EZWZhdWx0UHJvcHM7XG5cbnR5cGUgTWVudUxhYmVsUHJvcHMgPSB7XG4gIGxhYmVsQWxsTG9jYWxlczogVExvY2FsaXplZEZpZWxkW107XG4gIGRlZmF1bHRMYWJlbD86IHN0cmluZztcbiAgYXBwbGljYXRpb25Mb2NhbGU6IHN0cmluZztcbn07XG5jb25zdCBNZW51TGFiZWwgPSAocHJvcHM6IE1lbnVMYWJlbFByb3BzKSA9PiB7XG4gIGNvbnN0IGxvY2FsaXplZExhYmVsID0gcHJvcHMubGFiZWxBbGxMb2NhbGVzLmZpbmQoKGxvYykgPT5cbiAgICBwcm9wcy5hcHBsaWNhdGlvbkxvY2FsZS5zdGFydHNXaXRoKGxvYy5sb2NhbGUpXG4gICk7XG4gIGlmIChsb2NhbGl6ZWRMYWJlbCkgcmV0dXJuIDw+e2xvY2FsaXplZExhYmVsLnZhbHVlfTwvPjtcbiAgaWYgKHByb3BzLmRlZmF1bHRMYWJlbCkgcmV0dXJuIDw+e3Byb3BzLmRlZmF1bHRMYWJlbH08Lz47XG4gIHJldHVybiA8PntOT19WQUxVRV9GQUxMQkFDS308Lz47XG59O1xuXG50eXBlIFROYXZCYXJMYXlvdXRQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbn07XG5jb25zdCBOYXZCYXJMYXlvdXQgPSBmb3J3YXJkUmVmPEhUTUxFbGVtZW50LCBUTmF2QmFyTGF5b3V0UHJvcHM+KFxuICAocHJvcHMsIHJlZikgPT4gKFxuICAgIDw+XG4gICAgICA8R2xvYmFsXG4gICAgICAgIHN0eWxlcz17Y3NzYFxuICAgICAgICAgICR7Y29tcGlsZWRTdHlsZXMuZ2xvYmFsfVxuICAgICAgICBgfVxuICAgICAgLz5cbiAgICAgIDxuYXZcbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIGNsYXNzTmFtZT17c3R5bGVzWydsZWZ0LW5hdmlnYXRpb24nXX1cbiAgICAgICAgZGF0YS10ZXN0PVwibGVmdC1uYXZpZ2F0aW9uXCJcbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJsZWZ0LW5hdmlnYXRpb25cIlxuICAgICAgPlxuICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICA8L25hdj5cbiAgICA8Lz5cbiAgKVxuKTtcbk5hdkJhckxheW91dC5kaXNwbGF5TmFtZSA9ICdOYXZCYXJMYXlvdXQnO1xuXG50eXBlIEl0ZW1Db250YWluZXJQcm9wcyA9IHtcbiAgbGFiZWxBbGxMb2NhbGVzOiBUTG9jYWxpemVkRmllbGRbXTtcbiAgZGVmYXVsdExhYmVsPzogc3RyaW5nO1xuICBhcHBsaWNhdGlvbkxvY2FsZTogc3RyaW5nO1xuICBpY29uOiBzdHJpbmc7XG4gIGlzTWVudU9wZW4/OiBib29sZWFuO1xufTtcblxuY29uc3QgSXRlbUNvbnRhaW5lciA9IChwcm9wczogSXRlbUNvbnRhaW5lclByb3BzKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snaXRlbS1pY29uLXRleHQnXX0+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydpY29uLWNvbnRhaW5lciddfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5pY29ufT5cbiAgICAgICAgICA8SWNvblN3aXRjaGVyIGljb249e3Byb3BzLmljb259IHNpemU9XCJzY2FsZVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICB7cHJvcHMuaXNNZW51T3BlbiA/IChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy50aXRsZX0+XG4gICAgICAgICAgPE1lbnVMYWJlbFxuICAgICAgICAgICAgbGFiZWxBbGxMb2NhbGVzPXtwcm9wcy5sYWJlbEFsbExvY2FsZXN9XG4gICAgICAgICAgICBkZWZhdWx0TGFiZWw9e3Byb3BzLmRlZmF1bHRMYWJlbH1cbiAgICAgICAgICAgIGFwcGxpY2F0aW9uTG9jYWxlPXtwcm9wcy5hcHBsaWNhdGlvbkxvY2FsZX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICkgOiBudWxsfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuSXRlbUNvbnRhaW5lci5kaXNwbGF5TmFtZSA9ICdJdGVtQ29udGFpbmVyJztcblxuZXhwb3J0IHtcbiAgUmVzdHJpY3RlZE1lbnVJdGVtLFxuICBNZW51SXRlbSxcbiAgTWVudUl0ZW1MaW5rLFxuICBJY29uU3dpdGNoZXIsXG4gIE1lbnVHcm91cCxcbiAgTWVudUxhYmVsLFxuICBNZW51RXhwYW5kZXIsXG4gIEZhZGVkLFxuICBOYXZCYXJMYXlvdXQsXG4gIEl0ZW1Db250YWluZXIsXG59O1xuIl19 */"),
290
+ id: "group-".concat(props.id),
291
+ "data-testid": "group-".concat(props.id),
292
+ role: "menu",
293
+ "aria-expanded": isSublistActiveWhileIsMenuExpanded || isSublistActiveWhileIsMenuCollapsed,
294
+ className: classnames__default["default"]({
295
+ [styles$1.list]: props.level === 1
296
+ }, {
297
+ [styles$1['sublist']]: props.level === 2
298
+ }, {
299
+ [styles$1['sublist-expanded__active']]: isSublistActiveWhileIsMenuExpanded
300
+ }, {
301
+ [styles$1['sublist-collapsed__empty']]: isSublistActiveWhileIsMenuCollapsed && !props.hasSubmenu
302
+ }, {
303
+ [styles$1['sublist-collapsed__active']]: isSublistActiveWhileIsMenuCollapsed && !props.isSubmenuAboveMenuItem
304
+ }, {
305
+ [styles$1['sublist-collapsed__active__above']]: isSublistActiveWhileIsMenuCollapsed && props.isSubmenuAboveMenuItem
306
+ }, {
307
+ [styles$1.sublist__inactive]: !isSublistActiveWhileIsMenuCollapsed
308
+ }),
309
+ children: props.children
310
+ });
311
+ });
312
+ MenuGroup.displayName = 'MenuGroup';
313
+ const MenuItem$1 = props => {
314
+ var _props$isMainMenuRout;
315
+ return jsxRuntime.jsx("li", {
316
+ role: "menuitem",
317
+ className: classnames__default["default"](styles$1['list-item'], {
318
+ [styles$1.item__active]: props.isActive,
319
+ [styles$1['item_menu__active']]: (_props$isMainMenuRout = props.isMainMenuRouteActive) !== null && _props$isMainMenuRout !== void 0 ? _props$isMainMenuRout : false,
320
+ [styles$1['item_menu-collapsed']]: !props.isMenuOpen
321
+ }),
322
+ onClick: props.onClick,
323
+ onMouseEnter: props.onMouseEnter,
324
+ onMouseLeave: props.onMouseLeave,
325
+ onFocus: props.onMouseEnter,
326
+ onBlur: props.onMouseLeave,
327
+ "data-menuitem": props.identifier,
328
+ children: jsxRuntime.jsx("div", {
329
+ className: styles$1['item-link'],
330
+ children: props.children
331
+ })
332
+ });
333
+ };
334
+ MenuItem$1.propTypes = process.env.NODE_ENV !== "production" ? {
335
+ hasSubmenu: _pt__default["default"].bool.isRequired,
336
+ isActive: _pt__default["default"].bool.isRequired,
337
+ isMainMenuRouteActive: _pt__default["default"].bool,
338
+ isMenuOpen: _pt__default["default"].bool.isRequired,
339
+ onClick: _pt__default["default"].func.isRequired,
340
+ onMouseEnter: _pt__default["default"].oneOfType([_pt__default["default"].func, _pt__default["default"].func]),
341
+ onMouseLeave: _pt__default["default"].oneOfType([_pt__default["default"].func, _pt__default["default"].func]),
342
+ children: _pt__default["default"].node.isRequired,
343
+ identifier: _pt__default["default"].string
344
+ } : {};
345
+ MenuItem$1.displayName = 'MenuItem';
346
+ const menuItemLinkDefaultProps = {
347
+ exactMatch: false
348
+ };
349
+ const NavLinkWrapper = props => {
350
+ if (props.isSubmenuLink) {
351
+ return jsxRuntime.jsx("div", {
352
+ className: styles$1['text-link-sublist-wrapper'],
353
+ children: props.children
354
+ });
355
+ }
356
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
357
+ children: props.children
358
+ });
359
+ };
360
+ NavLinkWrapper.propTypes = process.env.NODE_ENV !== "production" ? {
361
+ linkTo: _pt__default["default"].string,
362
+ exactMatch: _pt__default["default"].bool.isRequired,
363
+ children: _pt__default["default"].node.isRequired,
364
+ onClick: _pt__default["default"].func,
365
+ useFullRedirectsForLinks: _pt__default["default"].bool,
366
+ isSubmenuLink: _pt__default["default"].bool
367
+ } : {};
368
+ const NavLinkClickableContentWrapper = props => {
369
+ if (props.isSubmenuLink) {
370
+ return jsxRuntime.jsx("div", {
371
+ className: styles$1['navlink-clickable-content'],
372
+ children: props.children
373
+ });
374
+ }
375
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
376
+ children: props.children
377
+ });
378
+ };
379
+ NavLinkClickableContentWrapper.propTypes = process.env.NODE_ENV !== "production" ? {
380
+ linkTo: _pt__default["default"].string,
381
+ exactMatch: _pt__default["default"].bool.isRequired,
382
+ children: _pt__default["default"].node.isRequired,
383
+ onClick: _pt__default["default"].func,
384
+ useFullRedirectsForLinks: _pt__default["default"].bool,
385
+ isSubmenuLink: _pt__default["default"].bool
386
+ } : {};
387
+ const MenuItemLink = props => {
388
+ const redirectTo = targetUrl => useIsServedByProxy.location.replace(targetUrl);
389
+ if (props.linkTo) {
390
+ const linkLevel = props.isSubmenuLink ? 'text-link-sublist' : 'text-link';
391
+ return jsxRuntime.jsx(NavLinkWrapper, _objectSpread$2(_objectSpread$2({}, props), {}, {
392
+ children: jsxRuntime.jsx(reactRouterDom.NavLink, {
393
+ to: props.linkTo,
394
+ exact: props.exactMatch,
395
+ activeClassName: styles$1.highlighted,
396
+ className: styles$1[linkLevel],
397
+ "data-link-level": linkLevel,
398
+ onClick: event => {
399
+ if (props.linkTo && props.useFullRedirectsForLinks) {
400
+ event.preventDefault();
401
+ redirectTo(props.linkTo);
402
+ } else if (props.onClick) {
403
+ event.persist();
404
+ props.onClick(event);
405
+ }
406
+ },
407
+ children: jsxRuntime.jsx(NavLinkClickableContentWrapper, _objectSpread$2(_objectSpread$2({}, props), {}, {
408
+ children: props.children
409
+ }))
410
+ })
411
+ }));
412
+ }
413
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
414
+ children: props.children
415
+ });
416
+ };
417
+ MenuItemLink.propTypes = process.env.NODE_ENV !== "production" ? {
418
+ linkTo: _pt__default["default"].string,
419
+ exactMatch: _pt__default["default"].bool.isRequired,
420
+ children: _pt__default["default"].node.isRequired,
421
+ onClick: _pt__default["default"].func,
422
+ useFullRedirectsForLinks: _pt__default["default"].bool,
423
+ isSubmenuLink: _pt__default["default"].bool
424
+ } : {};
425
+ MenuItemLink.displayName = 'MenuItemLink';
426
+ MenuItemLink.defaultProps = menuItemLinkDefaultProps;
427
+ const isEveryMenuVisibilitySetToHidden = (menuVisibilities, namesOfMenuVisibilities) => _Array$isArray__default["default"](namesOfMenuVisibilities) && namesOfMenuVisibilities.length > 0 && _everyInstanceProperty__default["default"](namesOfMenuVisibilities).call(namesOfMenuVisibilities, nameOfMenuVisibility => menuVisibilities && menuVisibilities[nameOfMenuVisibility] === true);
428
+ const restrictedMenuItemDefaultProps = {
429
+ permissions: []
430
+ };
431
+ function isLongLivedFlag(flag) {
432
+ return typeof (flag === null || flag === void 0 ? void 0 : flag.value) === 'boolean';
433
+ }
434
+ const RestrictedMenuItem = props => {
435
+ // NOTE: Custom application are activated/deactivated while their
436
+ // visibility is not controlled via a visibiility overwrite.
437
+ const flagVariation = reactBroadcast.useFlagVariation(props.featureToggle);
438
+ if (isEveryMenuVisibilitySetToHidden(props.menuVisibilities, props.namesOfMenuVisibilities)) return null;
439
+ const permissionsWrapper = _Array$isArray__default["default"](props.permissions) && props.permissions.length > 0 || _Array$isArray__default["default"](props.dataFences) && props.dataFences.length > 0 ? jsxRuntime.jsx(permissions.RestrictedByPermissions, {
440
+ permissions: props.permissions,
441
+ actionRights: props.actionRights,
442
+ dataFences: props.dataFences,
443
+ selectDataFenceData: demandedDataFence => {
444
+ switch (demandedDataFence.type) {
445
+ case 'store':
446
+ return demandedDataFence.actualDataFenceValues;
447
+ default:
448
+ return null;
449
+ }
450
+ }
451
+ // Always check that some of the given permissions match.
452
+ ,
453
+ shouldMatchSomePermissions: true,
454
+ projectPermissions: props.projectPermissions,
455
+ children: props.children
456
+ }) : jsxRuntime.jsx(jsxRuntime.Fragment, {
457
+ children: props.children
458
+ });
459
+ if (props.featureToggle) {
460
+ // A regular short-lived feature toggle
461
+ if (flagVariation === true) return permissionsWrapper;
462
+ // A long-lived feature toggle with `{ value: boolean, string: reason }`
463
+ if (isLongLivedFlag(flagVariation) && flagVariation.value === true) return permissionsWrapper;
464
+ return null;
465
+ }
466
+ return permissionsWrapper;
467
+ };
468
+ RestrictedMenuItem.propTypes = process.env.NODE_ENV !== "production" ? {
469
+ featureToggle: _pt__default["default"].string,
470
+ namesOfMenuVisibilities: _pt__default["default"].arrayOf(_pt__default["default"].string),
471
+ projectPermissions: _pt__default["default"].shape({
472
+ permissions: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].oneOf([null])]),
473
+ actionRights: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].oneOf([null])]),
474
+ dataFences: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].oneOf([null])])
475
+ }).isRequired,
476
+ menuVisibilities: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].oneOf([null])]),
477
+ keyOfMenuItem: _pt__default["default"].string.isRequired,
478
+ permissions: _pt__default["default"].arrayOf(_pt__default["default"].string).isRequired,
479
+ actionRights: _pt__default["default"].arrayOf(_pt__default["default"].any),
480
+ dataFences: _pt__default["default"].arrayOf(_pt__default["default"].any),
481
+ children: _pt__default["default"].node.isRequired
482
+ } : {};
483
+ RestrictedMenuItem.displayName = 'RestrictedMenuItem';
484
+ RestrictedMenuItem.defaultProps = restrictedMenuItemDefaultProps;
485
+ const MenuLabel = props => {
486
+ var _context;
487
+ const localizedLabel = _findInstanceProperty__default["default"](_context = props.labelAllLocales).call(_context, loc => {
488
+ var _context2;
489
+ return _startsWithInstanceProperty__default["default"](_context2 = props.applicationLocale).call(_context2, loc.locale);
490
+ });
491
+ if (localizedLabel) return jsxRuntime.jsx(jsxRuntime.Fragment, {
492
+ children: localizedLabel.value
493
+ });
494
+ if (props.defaultLabel) return jsxRuntime.jsx(jsxRuntime.Fragment, {
495
+ children: props.defaultLabel
496
+ });
497
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
498
+ children: constants.NO_VALUE_FALLBACK
499
+ });
500
+ };
501
+ MenuLabel.propTypes = {
502
+ labelAllLocales: _pt__default["default"].arrayOf(_pt__default["default"].any).isRequired,
503
+ defaultLabel: _pt__default["default"].string,
504
+ applicationLocale: _pt__default["default"].string.isRequired
505
+ };
506
+ const NavBarLayout$1 = /*#__PURE__*/react.forwardRef((props, ref) => jsxRuntime.jsxs(jsxRuntime.Fragment, {
507
+ children: [jsxRuntime.jsx(react$1.Global, {
508
+ styles: /*#__PURE__*/react$1.css(compiledStyles$1.global, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:NavBarLayout;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUtaXRlbXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNmbUIiLCJmaWxlIjoibWVudS1pdGVtcy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBmb3J3YXJkUmVmLFxuICBsYXp5LFxuICB0eXBlIE1vdXNlRXZlbnRIYW5kbGVyLFxuICB0eXBlIEZvY3VzRXZlbnRIYW5kbGVyLFxuICB0eXBlIE1vdXNlRXZlbnQsXG4gIHR5cGUgS2V5Ym9hcmRFdmVudCxcbiAgdHlwZSBSZWFjdE5vZGUsXG4gIHR5cGUgU3ludGhldGljRXZlbnQsXG59IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEdsb2JhbCwgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgdXNlRmxhZ1ZhcmlhdGlvbiB9IGZyb20gJ0BmbG9wZmxpcC9yZWFjdC1icm9hZGNhc3QnO1xuaW1wb3J0IHR5cGUgeyBURmxhZ1ZhcmlhdGlvbiB9IGZyb20gJ0BmbG9wZmxpcC90eXBlcyc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IE5hdkxpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB0eXBlIHtcbiAgVE5vcm1hbGl6ZWRNZW51VmlzaWJpbGl0aWVzLFxuICBUTm9ybWFsaXplZFBlcm1pc3Npb25zLFxuICBUTm9ybWFsaXplZEFjdGlvblJpZ2h0cyxcbiAgVE5vcm1hbGl6ZWREYXRhRmVuY2VzLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1zaGVsbC1jb25uZWN0b3JzJztcbmltcG9ydCBNaXNzaW5nSW1hZ2VTdmcgZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvYXNzZXRzL2ltYWdlcy9kaWFnb25hbC1saW5lLnN2Zyc7XG5pbXBvcnQgeyBOT19WQUxVRV9GQUxMQkFDSyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBSZXN0cmljdGVkQnlQZXJtaXNzaW9ucyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL3Blcm1pc3Npb25zJztcbmltcG9ydCB7XG4gIEJhY2tJY29uLFxuICBTaWRlYmFyRXhwYW5kSWNvbixcbiAgU2lkZWJhckNvbGxhcHNlSWNvbixcbn0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvaWNvbnMnO1xuaW1wb3J0IElubGluZVN2ZyBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pY29ucy9pbmxpbmUtc3ZnJztcbmltcG9ydCB7IERJTUVOU0lPTlMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUge1xuICBURGF0YUZlbmNlLFxuICBUQWN0aW9uUmlnaHQsXG4gIFRMb2NhbGl6ZWRGaWVsZCxcbn0gZnJvbSAnLi4vLi4vdHlwZXMvZ2VuZXJhdGVkL3Byb3h5JztcbmltcG9ydCB7IGxvY2F0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9jYXRpb24nO1xuLy8gaHR0cHM6Ly9iYWJlbGpzLmlvL2Jsb2cvMjAxNy8wOS8xMS96ZXJvLWNvbmZpZy13aXRoLWJhYmVsLW1hY3Jvc1xuaW1wb3J0IGNvbXBpbGVkU3R5bGVzIGZyb20gLyogcHJldmFsICovICcuL25hdmJhci5zdHlsZXMnO1xuXG5jb25zdCBzdHlsZXMgPSBjb21waWxlZFN0eWxlcy5qc29uTWFwO1xuXG50eXBlIFRQcm9qZWN0UGVybWlzc2lvbnMgPSB7XG4gIHBlcm1pc3Npb25zOiBUTm9ybWFsaXplZFBlcm1pc3Npb25zIHwgbnVsbDtcbiAgYWN0aW9uUmlnaHRzOiBUTm9ybWFsaXplZEFjdGlvblJpZ2h0cyB8IG51bGw7XG4gIGRhdGFGZW5jZXM6IFROb3JtYWxpemVkRGF0YUZlbmNlcyB8IG51bGw7XG59O1xuXG5jb25zdCBIZWFydEljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvaGVhcnQnKSk7XG5jb25zdCBQYXBlcmNsaXBJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3BhcGVyY2xpcCcpKTtcbmNvbnN0IFBsdWdpbkljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvcGx1Z2luJykpO1xuY29uc3QgUm9ja2V0SWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9yb2NrZXQnKSk7XG5jb25zdCBTdGFySWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9zdGFyJykpO1xuY29uc3QgQ29ubmVjdGVkU3F1YXJlSWNvbiA9IGxhenkoXG4gICgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvY29ubmVjdGVkLXNxdWFyZScpXG4pO1xuY29uc3QgV29ybGRJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3dvcmxkJykpO1xuY29uc3QgVHJlZVN0cnVjdHVyZUljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvdHJlZS1zdHJ1Y3R1cmUnKSk7XG5jb25zdCBVc2VyRmlsbGVkSWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy91c2VyLWZpbGxlZCcpKTtcbmNvbnN0IFNwZWVkb21ldGVySWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9zcGVlZG9tZXRlcicpKTtcbmNvbnN0IFRhZ011bHRpSWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy90YWctbXVsdGknKSk7XG5jb25zdCBDYXJ0SWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9jYXJ0JykpO1xuY29uc3QgQm94SWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9ib3gnKSk7XG5jb25zdCBHZWFySWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9nZWFyJykpO1xuY29uc3QgTGlzdFdpdGhTZWFyY2hJY29uID0gbGF6eShcbiAgKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9saXN0LXdpdGgtc2VhcmNoJylcbik7XG5cbnR5cGUgSWNvblByb3BzID0gUGFyYW1ldGVyczx0eXBlb2YgQmFja0ljb24+WzBdO1xudHlwZSBJY29uU3dpdGNoZXJQcm9wcyA9IHsgaWNvbjogc3RyaW5nIH0gJiBJY29uUHJvcHM7XG4vLyBUaGUgaWNvbiBpcyBleHBlY3RlZCB0byBiZSB0aGUgYHN2Z2AgZG9jdW1lbnQgYXMgYSBzdHJpbmcuXG4vLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgcHVycG9zZXMsIHdlIHN0aWxsIHN1cHBvcnQgdGhlIGxlZ2FjeSBcImljb24gbmFtZVwiLFxuLy8gd2hpY2ggd2UgdGhlbiBtYXAgdG8gb25lIG9mIHRoZSBwcmUtZGVmaW5lZCBpY29ucy5cbi8vIEV2ZW50dWFsbHksIHdlIHdhbnQgdG8gZ2V0IHJpZCBvZiB0aGlzIFwic3dpdGNoXCIgbG9naWMuXG5jb25zdCBJY29uU3dpdGNoZXIgPSAoeyBpY29uLCAuLi5pY29uUHJvcHMgfTogSWNvblN3aXRjaGVyUHJvcHMpID0+IHtcbiAgaWYgKGljb24uaW5jbHVkZXMoJzxzdmcnKSkge1xuICAgIHJldHVybiA8SW5saW5lU3ZnIGRhdGE9e2ljb259IHsuLi5pY29uUHJvcHN9IC8+O1xuICB9XG4gIC8vIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGZvciBhcHBzIHVzaW5nIHRoZSBcImljb24gbmFtZVwiLlxuICBzd2l0Y2ggKGljb24pIHtcbiAgICAvLyBMZWdhY3kgYXBwbGljYXRpb24gaWNvbnNcbiAgICAvLyBUT0RPOiBUbyBiZSByZW1vdmVkIG9uY2UgTUMgYXBwbGljYXRpb25zIGljb25zIHVwZGF0ZXMgYXJlIHB1Ymxpc2hlZFxuICAgIGNhc2UgJ1RyZWVTdHJ1Y3R1cmVJY29uJzpcbiAgICAgIHJldHVybiA8VHJlZVN0cnVjdHVyZUljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnVXNlckZpbGxlZEljb24nOlxuICAgICAgcmV0dXJuIDxVc2VyRmlsbGVkSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdTcGVlZG9tZXRlckljb24nOlxuICAgICAgcmV0dXJuIDxTcGVlZG9tZXRlckljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnVGFnTXVsdGlJY29uJzpcbiAgICAgIHJldHVybiA8VGFnTXVsdGlJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ0NhcnRJY29uJzpcbiAgICAgIHJldHVybiA8Q2FydEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnQm94SWNvbic6XG4gICAgICByZXR1cm4gPEJveEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnR2Vhckljb24nOlxuICAgICAgcmV0dXJuIDxHZWFySWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdMaXN0V2l0aFNlYXJjaEljb24nOlxuICAgICAgcmV0dXJuIDxMaXN0V2l0aFNlYXJjaEljb24gey4uLmljb25Qcm9wc30gLz47XG5cbiAgICAvLyBDdXN0b20gYXBwbGljYXRpb24gaWNvbnMgc2V0XG4gICAgY2FzZSAnSGVhcnRJY29uJzpcbiAgICAgIHJldHVybiA8SGVhcnRJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1BhcGVyY2xpcEljb24nOlxuICAgICAgcmV0dXJuIDxQYXBlcmNsaXBJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1BsdWdpbkljb24nOlxuICAgICAgcmV0dXJuIDxQbHVnaW5JY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1JvY2tldEljb24nOlxuICAgICAgcmV0dXJuIDxSb2NrZXRJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1N0YXJJY29uJzpcbiAgICAgIHJldHVybiA8U3Rhckljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnQ29ubmVjdGVkU3F1YXJlSWNvbic6XG4gICAgICByZXR1cm4gPENvbm5lY3RlZFNxdWFyZUljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgLy8gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgY2FzZSAnV29ybGRJY29uJzpcbiAgICAgIHJldHVybiA8V29ybGRJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gPGltZyBzcmM9e01pc3NpbmdJbWFnZVN2Z30gYWx0PVwibWlzc2luZyBpY29uXCIgLz47XG4gIH1cbn07XG5JY29uU3dpdGNoZXIuZGlzcGxheU5hbWUgPSAnSWNvblN3aXRjaGVyJztcblxudHlwZSBNZW51RXhwYW5kZXJQcm9wcyA9IHtcbiAgaXNWaXNpYmxlOiBib29sZWFuO1xuICBvbkNsaWNrOiAoXG4gICAgZTogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4gfCBLZXlib2FyZEV2ZW50PEhUTUxEaXZFbGVtZW50PlxuICApID0+IHZvaWQ7XG4gIGlzTWVudU9wZW46IGJvb2xlYW47XG59O1xuXG5jb25zdCBnZXRJY29uID0gKHsgaXNNZW51T3BlbiB9OiBNZW51RXhwYW5kZXJQcm9wcykgPT4ge1xuICBjb25zdCBJY29uID0gaXNNZW51T3BlbiA/IFNpZGViYXJDb2xsYXBzZUljb24gOiBTaWRlYmFyRXhwYW5kSWNvbjtcbiAgcmV0dXJuIDxJY29uIGNvbG9yPVwic3VyZmFjZVwiIHNpemU9XCJiaWdcIiAvPjtcbn07XG5cbmNvbnN0IE1lbnVFeHBhbmRlciA9IChwcm9wczogTWVudUV4cGFuZGVyUHJvcHMpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8bGlcbiAgICAgIGtleT1cImV4cGFuZGVyXCJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcyhzdHlsZXMuZXhwYW5kZXIsIHtcbiAgICAgICAgW3N0eWxlcy5oaWRkZW5dOiAhcHJvcHMuaXNWaXNpYmxlLFxuICAgICAgfSl9XG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBvbkNsaWNrPXtwcm9wcy5vbkNsaWNrfVxuICAgICAgICBvbktleURvd249eyhlKSA9PiB7XG4gICAgICAgICAgaWYgKGUua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICBwcm9wcy5vbkNsaWNrKGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgIGNsYXNzTmFtZT17c3R5bGVzWydleHBhbmQtaWNvbiddfVxuICAgICAgICBkYXRhLXRlc3RpZD1cIm1lbnUtZXhwYW5kZXJcIlxuICAgICAgPlxuICAgICAgICB7Z2V0SWNvbihwcm9wcyl9XG4gICAgICA8L2Rpdj5cbiAgICA8L2xpPlxuICApO1xufTtcbk1lbnVFeHBhbmRlci5kaXNwbGF5TmFtZSA9ICdNZW51RXhwYW5kZXInO1xuXG5jb25zdCBGYWRlZCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgwLCAxNTMsIDEzNSwgMCkgMCUsICMwMGIzOWUgMTAwJSk7XG4gIHotaW5kZXg6IDE7XG5gO1xuXG50eXBlIE1lbnVHcm91cFByb3BzID0ge1xuICBpZDogc3RyaW5nO1xuICBsZXZlbDogMSB8IDI7XG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcbiAgaXNFeHBhbmRlZD86IGJvb2xlYW47XG4gIGhhc1N1Ym1lbnU/OiBib29sZWFuO1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbiAgc3VibWVudVZlcnRpY2FsUG9zaXRpb24/OiBudW1iZXI7XG4gIGlzU3VibWVudUFib3ZlTWVudUl0ZW0/OiBib29sZWFuO1xufTtcblxuY29uc3QgZ2V0U3VibWVudVBvc2l0aW9uQmFzZWRPbk1lbnVJdGVtUG9zaXRpb24gPSAoXG4gIGlzU3VibWVudUFib3ZlTWVudUl0ZW0/OiBib29sZWFuLFxuICBzdWJtZW51VmVydGljYWxQb3NpdGlvbj86IG51bWJlclxuKSA9PiBjc3NgXG4gICR7aXNTdWJtZW51QWJvdmVNZW51SXRlbSA/ICdib3R0b20nIDogJ3RvcCd9OiAke3N1Ym1lbnVWZXJ0aWNhbFBvc2l0aW9ufXB4XG5gO1xuXG5jb25zdCBnZXRDb250YWluZXJQb3NpdGlvbkJhc2VkT25NZW51SXRlbVBvc2l0aW9uID0gKFxuICBpc1N1Ym1lbnVBYm92ZU1lbnVJdGVtPzogYm9vbGVhbixcbiAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZD86IGJvb2xlYW4sXG4gIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkPzogYm9vbGVhblxuKSA9PiBbXG4gIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkICYmXG4gICAgY3NzYFxuICAgICAgJHtpc1N1Ym1lbnVBYm92ZU1lbnVJdGVtXG4gICAgICAgID8gJ2JvdHRvbSdcbiAgICAgICAgOiAndG9wJ306IC0ke0RJTUVOU0lPTlMubmF2TWVudUl0ZW1IZWlnaHR9O1xuICAgIGAsXG4gIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51RXhwYW5kZWQgJiZcbiAgICBpc1N1Ym1lbnVBYm92ZU1lbnVJdGVtICYmXG4gICAgY3NzYFxuICAgICAgYm90dG9tOiAwO1xuICAgIGAsXG4gIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51RXhwYW5kZWQgJiZcbiAgICAhaXNTdWJtZW51QWJvdmVNZW51SXRlbSAmJlxuICAgIGNzc2BcbiAgICAgIHRvcDogMDtcbiAgICBgLFxuXTtcblxuY29uc3QgTWVudUdyb3VwID0gZm9yd2FyZFJlZjxIVE1MVUxpc3RFbGVtZW50LCBNZW51R3JvdXBQcm9wcz4oKHByb3BzLCByZWYpID0+IHtcbiAgaWYgKFxuICAgIHByb3BzLmlzRXhwYW5kZWQgJiZcbiAgICAoKHByb3BzLmxldmVsID09PSAyICYmICFwcm9wcy5oYXNTdWJtZW51KSB8fFxuICAgICAgKHByb3BzLmxldmVsID09PSAyICYmICFwcm9wcy5pc0FjdGl2ZSkpXG4gICkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNvbnN0IGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51RXhwYW5kZWQgPVxuICAgIHByb3BzLmxldmVsID09PSAyICYmIHByb3BzLmlzQWN0aXZlICYmIHByb3BzLmlzRXhwYW5kZWQ7XG4gIGNvbnN0IGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkID1cbiAgICBwcm9wcy5sZXZlbCA9PT0gMiAmJiBwcm9wcy5pc0FjdGl2ZSAmJiAhcHJvcHMuaXNFeHBhbmRlZDtcbiAgcmV0dXJuIChcbiAgICA8dWxcbiAgICAgIHJlZj17cmVmICYmIHByb3BzLmxldmVsID09PSAyID8gcmVmIDogbnVsbH1cbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICAke2dldFN1Ym1lbnVQb3NpdGlvbkJhc2VkT25NZW51SXRlbVBvc2l0aW9uKFxuICAgICAgICAgIHByb3BzLmlzU3VibWVudUFib3ZlTWVudUl0ZW0sXG4gICAgICAgICAgcHJvcHMuc3VibWVudVZlcnRpY2FsUG9zaXRpb25cbiAgICAgICAgKX07XG4gICAgICBcbiAgICAgIC8vIHByZXZlbnQgZ2xpdGNoeSBiZWhhdmlvciBkdXJpbmcgdGhlIGluaXRpYWwgcmVuZGVyIHdoZW4gdGhlIHN1Ym1lbnUncyB2ZXJ0aWNhbCBwb3NpdGlvbiBpcyBldmFsdWF0ZWQgYXMgMFxuICAgICAgJHtcbiAgICAgICAgcHJvcHMuc3VibWVudVZlcnRpY2FsUG9zaXRpb24gPT09IDAgJiZcbiAgICAgICAgY3NzYFxuICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgYFxuICAgICAgfVxuXG4gICAgICAgIC8vIGFkZGl0aW9uYWwgc3R5bGluZyBvZiB0aGUgcHNldWRvLWVsZW1lbnQgZW5hYmxpbmcgc21vb3RoIGNvdXJzb3IgbW92ZW1lbnRcbiAgICAgICAgOjpiZWZvcmUge1xuICAgICAgICAgICR7Z2V0Q29udGFpbmVyUG9zaXRpb25CYXNlZE9uTWVudUl0ZW1Qb3NpdGlvbihcbiAgICAgICAgICAgIHByb3BzLmlzU3VibWVudUFib3ZlTWVudUl0ZW0sXG4gICAgICAgICAgICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUV4cGFuZGVkLFxuICAgICAgICAgICAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWRcbiAgICAgICAgICApfVxuICAgICAgYH1cbiAgICAgIGlkPXtgZ3JvdXAtJHtwcm9wcy5pZH1gfVxuICAgICAgZGF0YS10ZXN0aWQ9e2Bncm91cC0ke3Byb3BzLmlkfWB9XG4gICAgICByb2xlPVwibWVudVwiXG4gICAgICBhcmlhLWV4cGFuZGVkPXtcbiAgICAgICAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCB8fFxuICAgICAgICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUNvbGxhcHNlZFxuICAgICAgfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKFxuICAgICAgICB7IFtzdHlsZXMubGlzdF06IHByb3BzLmxldmVsID09PSAxIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzWydzdWJsaXN0J11dOiBwcm9wcy5sZXZlbCA9PT0gMixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXNbJ3N1Ymxpc3QtZXhwYW5kZWRfX2FjdGl2ZSddXTpcbiAgICAgICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51RXhwYW5kZWQsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzWydzdWJsaXN0LWNvbGxhcHNlZF9fZW1wdHknXV06XG4gICAgICAgICAgICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUNvbGxhcHNlZCAmJiAhcHJvcHMuaGFzU3VibWVudSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXNbJ3N1Ymxpc3QtY29sbGFwc2VkX19hY3RpdmUnXV06XG4gICAgICAgICAgICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUNvbGxhcHNlZCAmJlxuICAgICAgICAgICAgIXByb3BzLmlzU3VibWVudUFib3ZlTWVudUl0ZW0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzWydzdWJsaXN0LWNvbGxhcHNlZF9fYWN0aXZlX19hYm92ZSddXTpcbiAgICAgICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkICYmIHByb3BzLmlzU3VibWVudUFib3ZlTWVudUl0ZW0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzLnN1Ymxpc3RfX2luYWN0aXZlXTogIWlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkLFxuICAgICAgICB9XG4gICAgICApfVxuICAgID5cbiAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICA8L3VsPlxuICApO1xufSk7XG5NZW51R3JvdXAuZGlzcGxheU5hbWUgPSAnTWVudUdyb3VwJztcblxudHlwZSBNZW51SXRlbVByb3BzID0ge1xuICBoYXNTdWJtZW51OiBib29sZWFuO1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgaXNNYWluTWVudVJvdXRlQWN0aXZlPzogYm9vbGVhbjtcbiAgaXNNZW51T3BlbjogYm9vbGVhbjtcbiAgb25DbGljazogTW91c2VFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+O1xuICBvbk1vdXNlRW50ZXI/OlxuICAgIHwgTW91c2VFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+XG4gICAgfCBGb2N1c0V2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD47XG4gIG9uTW91c2VMZWF2ZT86XG4gICAgfCBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD5cbiAgICB8IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxFbGVtZW50PjtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgaWRlbnRpZmllcj86IHN0cmluZztcbn07XG5jb25zdCBNZW51SXRlbSA9IChwcm9wczogTWVudUl0ZW1Qcm9wcykgPT4ge1xuICByZXR1cm4gKFxuICAgIDxsaVxuICAgICAgcm9sZT1cIm1lbnVpdGVtXCJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcyhzdHlsZXNbJ2xpc3QtaXRlbSddLCB7XG4gICAgICAgIFtzdHlsZXMuaXRlbV9fYWN0aXZlXTogcHJvcHMuaXNBY3RpdmUsXG4gICAgICAgIFtzdHlsZXNbJ2l0ZW1fbWVudV9fYWN0aXZlJ11dOiBwcm9wcy5pc01haW5NZW51Um91dGVBY3RpdmUgPz8gZmFsc2UsXG4gICAgICAgIFtzdHlsZXNbJ2l0ZW1fbWVudS1jb2xsYXBzZWQnXV06ICFwcm9wcy5pc01lbnVPcGVuLFxuICAgICAgfSl9XG4gICAgICBvbkNsaWNrPXtwcm9wcy5vbkNsaWNrfVxuICAgICAgb25Nb3VzZUVudGVyPXtwcm9wcy5vbk1vdXNlRW50ZXIgYXMgTW91c2VFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+fVxuICAgICAgb25Nb3VzZUxlYXZlPXtwcm9wcy5vbk1vdXNlTGVhdmUgYXMgTW91c2VFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+fVxuICAgICAgb25Gb2N1cz17cHJvcHMub25Nb3VzZUVudGVyIGFzIEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxFbGVtZW50Pn1cbiAgICAgIG9uQmx1cj17cHJvcHMub25Nb3VzZUxlYXZlIGFzIEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxFbGVtZW50Pn1cbiAgICAgIGRhdGEtbWVudWl0ZW09e3Byb3BzLmlkZW50aWZpZXJ9XG4gICAgPlxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snaXRlbS1saW5rJ119Pntwcm9wcy5jaGlsZHJlbn08L2Rpdj5cbiAgICA8L2xpPlxuICApO1xufTtcblxuTWVudUl0ZW0uZGlzcGxheU5hbWUgPSAnTWVudUl0ZW0nO1xuXG5leHBvcnQgdHlwZSBNZW51SXRlbUxpbmtQcm9wcyA9IHtcbiAgbGlua1RvPzogc3RyaW5nO1xuICBleGFjdE1hdGNoOiBib29sZWFuO1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBvbkNsaWNrPzogKGV2ZW50OiBTeW50aGV0aWNFdmVudDxIVE1MQW5jaG9yRWxlbWVudD4pID0+IHZvaWQ7XG4gIHVzZUZ1bGxSZWRpcmVjdHNGb3JMaW5rcz86IGJvb2xlYW47XG4gIGlzU3VibWVudUxpbms/OiBib29sZWFuO1xufTtcbmNvbnN0IG1lbnVJdGVtTGlua0RlZmF1bHRQcm9wczogUGljazxNZW51SXRlbUxpbmtQcm9wcywgJ2V4YWN0TWF0Y2gnPiA9IHtcbiAgZXhhY3RNYXRjaDogZmFsc2UsXG59O1xuY29uc3QgTmF2TGlua1dyYXBwZXIgPSAocHJvcHM6IE1lbnVJdGVtTGlua1Byb3BzKSA9PiB7XG4gIGlmIChwcm9wcy5pc1N1Ym1lbnVMaW5rKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbJ3RleHQtbGluay1zdWJsaXN0LXdyYXBwZXInXX0+XG4gICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIDw+e3Byb3BzLmNoaWxkcmVufTwvPjtcbn07XG5jb25zdCBOYXZMaW5rQ2xpY2thYmxlQ29udGVudFdyYXBwZXIgPSAocHJvcHM6IE1lbnVJdGVtTGlua1Byb3BzKSA9PiB7XG4gIGlmIChwcm9wcy5pc1N1Ym1lbnVMaW5rKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbJ25hdmxpbmstY2xpY2thYmxlLWNvbnRlbnQnXX0+XG4gICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIDw+e3Byb3BzLmNoaWxkcmVufTwvPjtcbn07XG5cbmNvbnN0IE1lbnVJdGVtTGluayA9IChwcm9wczogTWVudUl0ZW1MaW5rUHJvcHMpID0+IHtcbiAgY29uc3QgcmVkaXJlY3RUbyA9ICh0YXJnZXRVcmw6IHN0cmluZykgPT4gbG9jYXRpb24ucmVwbGFjZSh0YXJnZXRVcmwpO1xuICBpZiAocHJvcHMubGlua1RvKSB7XG4gICAgY29uc3QgbGlua0xldmVsID0gcHJvcHMuaXNTdWJtZW51TGluayA/ICd0ZXh0LWxpbmstc3VibGlzdCcgOiAndGV4dC1saW5rJztcbiAgICByZXR1cm4gKFxuICAgICAgPE5hdkxpbmtXcmFwcGVyIHsuLi5wcm9wc30+XG4gICAgICAgIDxOYXZMaW5rXG4gICAgICAgICAgdG89e3Byb3BzLmxpbmtUb31cbiAgICAgICAgICBleGFjdD17cHJvcHMuZXhhY3RNYXRjaH1cbiAgICAgICAgICBhY3RpdmVDbGFzc05hbWU9e3N0eWxlcy5oaWdobGlnaHRlZH1cbiAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tsaW5rTGV2ZWxdfVxuICAgICAgICAgIGRhdGEtbGluay1sZXZlbD17bGlua0xldmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKHByb3BzLmxpbmtUbyAmJiBwcm9wcy51c2VGdWxsUmVkaXJlY3RzRm9yTGlua3MpIHtcbiAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgcmVkaXJlY3RUbyhwcm9wcy5saW5rVG8pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9wcy5vbkNsaWNrKSB7XG4gICAgICAgICAgICAgIGV2ZW50LnBlcnNpc3QoKTtcbiAgICAgICAgICAgICAgcHJvcHMub25DbGljayhldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxOYXZMaW5rQ2xpY2thYmxlQ29udGVudFdyYXBwZXIgey4uLnByb3BzfT5cbiAgICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgICA8L05hdkxpbmtDbGlja2FibGVDb250ZW50V3JhcHBlcj5cbiAgICAgICAgPC9OYXZMaW5rPlxuICAgICAgPC9OYXZMaW5rV3JhcHBlcj5cbiAgICApO1xuICB9XG4gIHJldHVybiA8Pntwcm9wcy5jaGlsZHJlbn08Lz47XG59O1xuTWVudUl0ZW1MaW5rLmRpc3BsYXlOYW1lID0gJ01lbnVJdGVtTGluayc7XG5NZW51SXRlbUxpbmsuZGVmYXVsdFByb3BzID0gbWVudUl0ZW1MaW5rRGVmYXVsdFByb3BzO1xuXG5jb25zdCBpc0V2ZXJ5TWVudVZpc2liaWxpdHlTZXRUb0hpZGRlbiA9IChcbiAgbWVudVZpc2liaWxpdGllcz86IFROb3JtYWxpemVkTWVudVZpc2liaWxpdGllcyB8IG51bGwsXG4gIG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzPzogc3RyaW5nW11cbikgPT5cbiAgQXJyYXkuaXNBcnJheShuYW1lc09mTWVudVZpc2liaWxpdGllcykgJiZcbiAgbmFtZXNPZk1lbnVWaXNpYmlsaXRpZXMubGVuZ3RoID4gMCAmJlxuICBuYW1lc09mTWVudVZpc2liaWxpdGllcy5ldmVyeShcbiAgICAobmFtZU9mTWVudVZpc2liaWxpdHkpID0+XG4gICAgICBtZW51VmlzaWJpbGl0aWVzICYmIG1lbnVWaXNpYmlsaXRpZXNbbmFtZU9mTWVudVZpc2liaWxpdHldID09PSB0cnVlXG4gICk7XG5cbnR5cGUgUmVzdHJpY3RlZE1lbnVJdGVtUHJvcHMgPSB7XG4gIGZlYXR1cmVUb2dnbGU/OiBzdHJpbmc7XG4gIG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzPzogc3RyaW5nW107XG4gIHByb2plY3RQZXJtaXNzaW9uczogVFByb2plY3RQZXJtaXNzaW9ucztcbiAgbWVudVZpc2liaWxpdGllczogVE5vcm1hbGl6ZWRNZW51VmlzaWJpbGl0aWVzIHwgbnVsbDtcbiAga2V5T2ZNZW51SXRlbTogc3RyaW5nO1xuICBwZXJtaXNzaW9uczogc3RyaW5nW107XG4gIGFjdGlvblJpZ2h0cz86IFRBY3Rpb25SaWdodFtdO1xuICBkYXRhRmVuY2VzPzogVERhdGFGZW5jZVtdO1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xufTtcbnR5cGUgVExvbmdMaXZlZEZsYWcgPSB7XG4gIHZhbHVlOiBib29sZWFuO1xuICByZWFzb24/OiBzdHJpbmc7XG59O1xuY29uc3QgcmVzdHJpY3RlZE1lbnVJdGVtRGVmYXVsdFByb3BzOiBQaWNrPFxuICBSZXN0cmljdGVkTWVudUl0ZW1Qcm9wcyxcbiAgJ3Blcm1pc3Npb25zJ1xuPiA9IHtcbiAgcGVybWlzc2lvbnM6IFtdLFxufTtcbmZ1bmN0aW9uIGlzTG9uZ0xpdmVkRmxhZyhcbiAgZmxhZzogVEZsYWdWYXJpYXRpb24gfCBUTG9uZ0xpdmVkRmxhZ1xuKTogZmxhZyBpcyBUTG9uZ0xpdmVkRmxhZyB7XG4gIHJldHVybiB0eXBlb2YgKGZsYWcgYXMgVExvbmdMaXZlZEZsYWcpPy52YWx1ZSA9PT0gJ2Jvb2xlYW4nO1xufVxuY29uc3QgUmVzdHJpY3RlZE1lbnVJdGVtID0gKHByb3BzOiBSZXN0cmljdGVkTWVudUl0ZW1Qcm9wcykgPT4ge1xuICAvLyBOT1RFOiBDdXN0b20gYXBwbGljYXRpb24gYXJlIGFjdGl2YXRlZC9kZWFjdGl2YXRlZCB3aGlsZSB0aGVpclxuICAvLyB2aXNpYmlsaXR5IGlzIG5vdCBjb250cm9sbGVkIHZpYSBhIHZpc2liaWlsaXR5IG92ZXJ3cml0ZS5cbiAgY29uc3QgZmxhZ1ZhcmlhdGlvbiA9IHVzZUZsYWdWYXJpYXRpb24ocHJvcHMuZmVhdHVyZVRvZ2dsZSk7XG4gIGlmIChcbiAgICBpc0V2ZXJ5TWVudVZpc2liaWxpdHlTZXRUb0hpZGRlbihcbiAgICAgIHByb3BzLm1lbnVWaXNpYmlsaXRpZXMsXG4gICAgICBwcm9wcy5uYW1lc09mTWVudVZpc2liaWxpdGllc1xuICAgIClcbiAgKVxuICAgIHJldHVybiBudWxsO1xuXG4gIGNvbnN0IHBlcm1pc3Npb25zV3JhcHBlciA9XG4gICAgKEFycmF5LmlzQXJyYXkocHJvcHMucGVybWlzc2lvbnMpICYmIHByb3BzLnBlcm1pc3Npb25zLmxlbmd0aCA+IDApIHx8XG4gICAgKEFycmF5LmlzQXJyYXkocHJvcHMuZGF0YUZlbmNlcykgJiYgcHJvcHMuZGF0YUZlbmNlcy5sZW5ndGggPiAwKSA/IChcbiAgICAgIDxSZXN0cmljdGVkQnlQZXJtaXNzaW9uc1xuICAgICAgICBwZXJtaXNzaW9ucz17cHJvcHMucGVybWlzc2lvbnN9XG4gICAgICAgIGFjdGlvblJpZ2h0cz17cHJvcHMuYWN0aW9uUmlnaHRzfVxuICAgICAgICBkYXRhRmVuY2VzPXtwcm9wcy5kYXRhRmVuY2VzfVxuICAgICAgICBzZWxlY3REYXRhRmVuY2VEYXRhPXsoZGVtYW5kZWREYXRhRmVuY2UpID0+IHtcbiAgICAgICAgICBzd2l0Y2ggKGRlbWFuZGVkRGF0YUZlbmNlLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3N0b3JlJzpcbiAgICAgICAgICAgICAgcmV0dXJuIGRlbWFuZGVkRGF0YUZlbmNlLmFjdHVhbERhdGFGZW5jZVZhbHVlcztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgLy8gQWx3YXlzIGNoZWNrIHRoYXQgc29tZSBvZiB0aGUgZ2l2ZW4gcGVybWlzc2lvbnMgbWF0Y2guXG4gICAgICAgIHNob3VsZE1hdGNoU29tZVBlcm1pc3Npb25zPXt0cnVlfVxuICAgICAgICBwcm9qZWN0UGVybWlzc2lvbnM9e3Byb3BzLnByb2plY3RQZXJtaXNzaW9uc31cbiAgICAgID5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9SZXN0cmljdGVkQnlQZXJtaXNzaW9ucz5cbiAgICApIDogKFxuICAgICAgPD57cHJvcHMuY2hpbGRyZW59PC8+XG4gICAgKTtcblxuICBpZiAocHJvcHMuZmVhdHVyZVRvZ2dsZSkge1xuICAgIC8vIEEgcmVndWxhciBzaG9ydC1saXZlZCBmZWF0dXJlIHRvZ2dsZVxuICAgIGlmIChmbGFnVmFyaWF0aW9uID09PSB0cnVlKSByZXR1cm4gcGVybWlzc2lvbnNXcmFwcGVyO1xuICAgIC8vIEEgbG9uZy1saXZlZCBmZWF0dXJlIHRvZ2dsZSB3aXRoIGB7IHZhbHVlOiBib29sZWFuLCBzdHJpbmc6IHJlYXNvbiB9YFxuICAgIGlmIChpc0xvbmdMaXZlZEZsYWcoZmxhZ1ZhcmlhdGlvbikgJiYgZmxhZ1ZhcmlhdGlvbi52YWx1ZSA9PT0gdHJ1ZSlcbiAgICAgIHJldHVybiBwZXJtaXNzaW9uc1dyYXBwZXI7XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBwZXJtaXNzaW9uc1dyYXBwZXI7XG59O1xuUmVzdHJpY3RlZE1lbnVJdGVtLmRpc3BsYXlOYW1lID0gJ1Jlc3RyaWN0ZWRNZW51SXRlbSc7XG5SZXN0cmljdGVkTWVudUl0ZW0uZGVmYXVsdFByb3BzID0gcmVzdHJpY3RlZE1lbnVJdGVtRGVmYXVsdFByb3BzO1xuXG50eXBlIE1lbnVMYWJlbFByb3BzID0ge1xuICBsYWJlbEFsbExvY2FsZXM6IFRMb2NhbGl6ZWRGaWVsZFtdO1xuICBkZWZhdWx0TGFiZWw/OiBzdHJpbmc7XG4gIGFwcGxpY2F0aW9uTG9jYWxlOiBzdHJpbmc7XG59O1xuY29uc3QgTWVudUxhYmVsID0gKHByb3BzOiBNZW51TGFiZWxQcm9wcykgPT4ge1xuICBjb25zdCBsb2NhbGl6ZWRMYWJlbCA9IHByb3BzLmxhYmVsQWxsTG9jYWxlcy5maW5kKChsb2MpID0+XG4gICAgcHJvcHMuYXBwbGljYXRpb25Mb2NhbGUuc3RhcnRzV2l0aChsb2MubG9jYWxlKVxuICApO1xuICBpZiAobG9jYWxpemVkTGFiZWwpIHJldHVybiA8Pntsb2NhbGl6ZWRMYWJlbC52YWx1ZX08Lz47XG4gIGlmIChwcm9wcy5kZWZhdWx0TGFiZWwpIHJldHVybiA8Pntwcm9wcy5kZWZhdWx0TGFiZWx9PC8+O1xuICByZXR1cm4gPD57Tk9fVkFMVUVfRkFMTEJBQ0t9PC8+O1xufTtcblxudHlwZSBUTmF2QmFyTGF5b3V0UHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG59O1xuY29uc3QgTmF2QmFyTGF5b3V0ID0gZm9yd2FyZFJlZjxIVE1MRWxlbWVudCwgVE5hdkJhckxheW91dFByb3BzPihcbiAgKHByb3BzLCByZWYpID0+IChcbiAgICA8PlxuICAgICAgPEdsb2JhbFxuICAgICAgICBzdHlsZXM9e2Nzc2BcbiAgICAgICAgICAke2NvbXBpbGVkU3R5bGVzLmdsb2JhbH1cbiAgICAgICAgYH1cbiAgICAgIC8+XG4gICAgICA8bmF2XG4gICAgICAgIHJlZj17cmVmfVxuICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1snbGVmdC1uYXZpZ2F0aW9uJ119XG4gICAgICAgIGRhdGEtdGVzdD1cImxlZnQtbmF2aWdhdGlvblwiXG4gICAgICAgIGRhdGEtdGVzdGlkPVwibGVmdC1uYXZpZ2F0aW9uXCJcbiAgICAgID5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9uYXY+XG4gICAgPC8+XG4gIClcbik7XG5OYXZCYXJMYXlvdXQuZGlzcGxheU5hbWUgPSAnTmF2QmFyTGF5b3V0JztcblxudHlwZSBJdGVtQ29udGFpbmVyUHJvcHMgPSB7XG4gIGxhYmVsQWxsTG9jYWxlczogVExvY2FsaXplZEZpZWxkW107XG4gIGRlZmF1bHRMYWJlbD86IHN0cmluZztcbiAgYXBwbGljYXRpb25Mb2NhbGU6IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xuICBpc01lbnVPcGVuPzogYm9vbGVhbjtcbn07XG5cbmNvbnN0IEl0ZW1Db250YWluZXIgPSAocHJvcHM6IEl0ZW1Db250YWluZXJQcm9wcykgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbJ2l0ZW0taWNvbi10ZXh0J119PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snaWNvbi1jb250YWluZXInXX0+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuaWNvbn0+XG4gICAgICAgICAgPEljb25Td2l0Y2hlciBpY29uPXtwcm9wcy5pY29ufSBzaXplPVwic2NhbGVcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAge3Byb3BzLmlzTWVudU9wZW4gPyAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMudGl0bGV9PlxuICAgICAgICAgIDxNZW51TGFiZWxcbiAgICAgICAgICAgIGxhYmVsQWxsTG9jYWxlcz17cHJvcHMubGFiZWxBbGxMb2NhbGVzfVxuICAgICAgICAgICAgZGVmYXVsdExhYmVsPXtwcm9wcy5kZWZhdWx0TGFiZWx9XG4gICAgICAgICAgICBhcHBsaWNhdGlvbkxvY2FsZT17cHJvcHMuYXBwbGljYXRpb25Mb2NhbGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICApIDogbnVsbH1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbkl0ZW1Db250YWluZXIuZGlzcGxheU5hbWUgPSAnSXRlbUNvbnRhaW5lcic7XG5cbmV4cG9ydCB7XG4gIFJlc3RyaWN0ZWRNZW51SXRlbSxcbiAgTWVudUl0ZW0sXG4gIE1lbnVJdGVtTGluayxcbiAgSWNvblN3aXRjaGVyLFxuICBNZW51R3JvdXAsXG4gIE1lbnVMYWJlbCxcbiAgTWVudUV4cGFuZGVyLFxuICBGYWRlZCxcbiAgTmF2QmFyTGF5b3V0LFxuICBJdGVtQ29udGFpbmVyLFxufTtcbiJdfQ== */")
509
+ }), jsxRuntime.jsx("nav", {
510
+ ref: ref,
511
+ className: styles$1['left-navigation'],
512
+ "data-test": "left-navigation",
513
+ "data-testid": "left-navigation",
514
+ children: props.children
515
+ })]
516
+ }));
517
+ NavBarLayout$1.displayName = 'NavBarLayout';
518
+ const ItemContainer = props => {
519
+ return jsxRuntime.jsxs("div", {
520
+ className: styles$1['item-icon-text'],
521
+ children: [jsxRuntime.jsx("div", {
522
+ className: styles$1['icon-container'],
523
+ children: jsxRuntime.jsx("div", {
524
+ className: styles$1.icon,
525
+ children: jsxRuntime.jsx(IconSwitcher, {
526
+ icon: props.icon,
527
+ size: "scale"
528
+ })
529
+ })
530
+ }), props.isMenuOpen ? jsxRuntime.jsx("div", {
531
+ className: styles$1.title,
532
+ children: jsxRuntime.jsx(MenuLabel, {
533
+ labelAllLocales: props.labelAllLocales,
534
+ defaultLabel: props.defaultLabel,
535
+ applicationLocale: props.applicationLocale
536
+ })
537
+ }) : null]
538
+ });
539
+ };
540
+ ItemContainer.propTypes = process.env.NODE_ENV !== "production" ? {
541
+ labelAllLocales: _pt__default["default"].arrayOf(_pt__default["default"].any).isRequired,
542
+ defaultLabel: _pt__default["default"].string,
543
+ applicationLocale: _pt__default["default"].string.isRequired,
544
+ icon: _pt__default["default"].string.isRequired,
545
+ isMenuOpen: _pt__default["default"].bool
546
+ } : {};
547
+ ItemContainer.displayName = 'ItemContainer';
548
+
549
+ var messages = reactIntl.defineMessages({
550
+ 'NavBar.MCSupport.title': {
551
+ id: 'NavBar.MCSupport.title',
552
+ defaultMessage: 'Support'
553
+ }
554
+ });
555
+
556
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
557
+ const NavBarLayout = props => {
558
+ return jsxRuntime.jsx("nav", {
559
+ "aria-busy": true,
560
+ css: /*#__PURE__*/react$1.css("display:flex;flex-direction:column;height:100%;width:", props.isExpanded ? '256px' : '80px', ";" + (process.env.NODE_ENV === "production" ? "" : ";label:NavBarLayout;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5hdmJhci1za2VsZXRvbi5zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9CYyIsImZpbGUiOiJuYXZiYXItc2tlbGV0b24uc3R5bGVzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5pbXBvcnQgeyBESU1FTlNJT05TIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcblxudHlwZSBUTmF2QmFyU2tlbGV0b25Qcm9wcyA9IHtcbiAgaXNFeHBhbmRlZDogYm9vbGVhbjtcbn07XG5cbnR5cGUgVE1lbnVJdGVtUHJvcHMgPSB7XG4gIGNvbnRlbnRXaWR0aDogJ3dpZGUnIHwgJ25hcnJvdyc7XG59O1xuXG5jb25zdCBOYXZCYXJMYXlvdXQgPSAoXG4gIHByb3BzOiBUTmF2QmFyU2tlbGV0b25Qcm9wcyAmIHsgY2hpbGRyZW46IFJlYWN0Tm9kZSB9XG4pID0+IHtcbiAgcmV0dXJuIChcbiAgICA8bmF2XG4gICAgICBhcmlhLWJ1c3k9e3RydWV9XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogJHtwcm9wcy5pc0V4cGFuZGVkID8gJzI1NnB4JyA6ICc4MHB4J307XG4gICAgICBgfVxuICAgID5cbiAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICA8L25hdj5cbiAgKTtcbn07XG5cbmNvbnN0IE5hdkJhckhlYWRlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAke2Rlc2lnblRva2Vucy5zcGFjaW5nMzB9O1xuICBoZWlnaHQ6ICR7RElNRU5TSU9OUy5oZWFkZXJ9O1xuICBiYWNrZ3JvdW5kOiAke2Rlc2lnblRva2Vucy5jb2xvckFjY2VudDEwfTtcbmA7XG5cbmNvbnN0IE5hdkJhckJvZHkgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAxO1xuICBwYWRkaW5nOiAke2Rlc2lnblRva2Vucy5zcGFjaW5nMzB9O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiAke2Rlc2lnblRva2Vucy5zcGFjaW5nNDB9O1xuICBmbGV4LXNocmluazogMDtcbiAgYmFja2dyb3VuZDogIzAwOTk4NzsgLy8gVE9ETzogdXNlIG5ldyBkZXNpZ24gdG9rZW4gY29sb3ItcHJpbWFyeS0zMFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLy8gYm90dG9tIGdyYWRpZW50XG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGhlaWdodDogMzZweDtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMiAqICR7ZGVzaWduVG9rZW5zLnNwYWNpbmczMH0pO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMCwgMTUzLCAxMzUsIDApIDAlLCAjMDA5OTg3IDEwMCUpO1xuICB9XG5gO1xuXG5jb25zdCBOYXZCYXJGb290ZXIgPSBzdHlsZWQuZGl2PFROYXZCYXJTa2VsZXRvblByb3BzPmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzAwOTk4NyAwJSwgIzAwNGQ0NCAxMDAlKTtcbiAgcGFkZGluZzogJHtkZXNpZ25Ub2tlbnMuc3BhY2luZzMwfVxuICAgICR7KHByb3BzKSA9PiAocHJvcHMuaXNFeHBhbmRlZCA/ICc1OHB4JyA6ICcwcHgnKX07XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIC8vIGRpdmlkZXJcbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGhlaWdodDogMXB4O1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyICogJHtkZXNpZ25Ub2tlbnMuc3BhY2luZzMwfSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICB9XG5gO1xuXG5jb25zdCBFeHBhbmRJY29uID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgYm9yZGVyLXJhZGl1czogJHtkZXNpZ25Ub2tlbnMuYm9yZGVyUmFkaXVzNH07XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbmA7XG5cbmNvbnN0IE1lbnVJdGVtQ29udGFpbmVyID0gc3R5bGVkLmRpdjxUTWVudUl0ZW1Qcm9wcyAmIFROYXZCYXJTa2VsZXRvblByb3BzPmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogMTJweDtcbiAgcGFkZGluZzogJHsocHJvcHMpID0+XG4gICAgcHJvcHMuY29udGVudFdpZHRoID09PSAnd2lkZScgfHwgIXByb3BzLmlzRXhwYW5kZWQgPyAnMTJweCcgOiAnMTJweCAyOHB4J307XG4gIGhlaWdodDogNDhweDtcbmA7XG5cbmNvbnN0IE1lbnVJdGVtSWNvbiA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJvcmRlci1yYWRpdXM6ICR7ZGVzaWduVG9rZW5zLmJvcmRlclJhZGl1czR9O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG5gO1xuXG5jb25zdCBNZW51SXRlbVRpdGxlID0gc3R5bGVkLmRpdmBcbiAgYm9yZGVyLXJhZGl1czogJHtkZXNpZ25Ub2tlbnMuYm9yZGVyUmFkaXVzNH07XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgZmxleDogMTtcbiAgaGVpZ2h0OiAxOHB4O1xuYDtcblxuY29uc3QgTWVudUl0ZW1Hcm91cCA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuYDtcblxuZXhwb3J0IHtcbiAgTmF2QmFyTGF5b3V0LFxuICBOYXZCYXJIZWFkZXIsXG4gIE5hdkJhckJvZHksXG4gIE5hdkJhckZvb3RlcixcbiAgRXhwYW5kSWNvbixcbiAgTWVudUl0ZW1Db250YWluZXIsXG4gIE1lbnVJdGVtSWNvbixcbiAgTWVudUl0ZW1UaXRsZSxcbiAgTWVudUl0ZW1Hcm91cCxcbiAgdHlwZSBUTmF2QmFyU2tlbGV0b25Qcm9wcyxcbiAgdHlwZSBUTWVudUl0ZW1Qcm9wcyxcbn07XG4iXX0= */"),
561
+ children: props.children
562
+ });
563
+ };
564
+ NavBarLayout.propTypes = process.env.NODE_ENV !== "production" ? {
565
+ isExpanded: _pt__default["default"].bool.isRequired
566
+ } : {};
567
+ const NavBarHeader = /*#__PURE__*/_styled__default["default"]("div", process.env.NODE_ENV === "production" ? {
568
+ target: "epfjvz37"
569
+ } : {
570
+ target: "epfjvz37",
571
+ label: "NavBarHeader"
572
+ })("display:flex;justify-content:center;align-items:center;padding:", designSystem.designTokens.spacing30, ";height:", oidc.DIMENSIONS.header, ";background:", designSystem.designTokens.colorAccent10, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5hdmJhci1za2VsZXRvbi5zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdDK0IiLCJmaWxlIjoibmF2YmFyLXNrZWxldG9uLnN0eWxlcy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGRlc2lnblRva2VucyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2Rlc2lnbi1zeXN0ZW0nO1xuaW1wb3J0IHsgRElNRU5TSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbnR5cGUgVE5hdkJhclNrZWxldG9uUHJvcHMgPSB7XG4gIGlzRXhwYW5kZWQ6IGJvb2xlYW47XG59O1xuXG50eXBlIFRNZW51SXRlbVByb3BzID0ge1xuICBjb250ZW50V2lkdGg6ICd3aWRlJyB8ICduYXJyb3cnO1xufTtcblxuY29uc3QgTmF2QmFyTGF5b3V0ID0gKFxuICBwcm9wczogVE5hdkJhclNrZWxldG9uUHJvcHMgJiB7IGNoaWxkcmVuOiBSZWFjdE5vZGUgfVxuKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPG5hdlxuICAgICAgYXJpYS1idXN5PXt0cnVlfVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6ICR7cHJvcHMuaXNFeHBhbmRlZCA/ICcyNTZweCcgOiAnODBweCd9O1xuICAgICAgYH1cbiAgICA+XG4gICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgPC9uYXY+XG4gICk7XG59O1xuXG5jb25zdCBOYXZCYXJIZWFkZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogJHtkZXNpZ25Ub2tlbnMuc3BhY2luZzMwfTtcbiAgaGVpZ2h0OiAke0RJTUVOU0lPTlMuaGVhZGVyfTtcbiAgYmFja2dyb3VuZDogJHtkZXNpZ25Ub2tlbnMuY29sb3JBY2NlbnQxMH07XG5gO1xuXG5jb25zdCBOYXZCYXJCb2R5ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMTtcbiAgcGFkZGluZzogJHtkZXNpZ25Ub2tlbnMuc3BhY2luZzMwfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogJHtkZXNpZ25Ub2tlbnMuc3BhY2luZzQwfTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJhY2tncm91bmQ6ICMwMDk5ODc7IC8vIFRPRE86IHVzZSBuZXcgZGVzaWduIHRva2VuIGNvbG9yLXByaW1hcnktMzBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vIGJvdHRvbSBncmFkaWVudFxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDIgKiAke2Rlc2lnblRva2Vucy5zcGFjaW5nMzB9KTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDE1MywgMTM1LCAwKSAwJSwgIzAwOTk4NyAxMDAlKTtcbiAgfVxuYDtcblxuY29uc3QgTmF2QmFyRm9vdGVyID0gc3R5bGVkLmRpdjxUTmF2QmFyU2tlbGV0b25Qcm9wcz5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMwMDk5ODcgMCUsICMwMDRkNDQgMTAwJSk7XG4gIHBhZGRpbmc6ICR7ZGVzaWduVG9rZW5zLnNwYWNpbmczMH1cbiAgICAkeyhwcm9wcykgPT4gKHByb3BzLmlzRXhwYW5kZWQgPyAnNThweCcgOiAnMHB4Jyl9O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAvLyBkaXZpZGVyXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMiAqICR7ZGVzaWduVG9rZW5zLnNwYWNpbmczMH0pO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgfVxuYDtcblxuY29uc3QgRXhwYW5kSWNvbiA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJvcmRlci1yYWRpdXM6ICR7ZGVzaWduVG9rZW5zLmJvcmRlclJhZGl1czR9O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG5gO1xuXG5jb25zdCBNZW51SXRlbUNvbnRhaW5lciA9IHN0eWxlZC5kaXY8VE1lbnVJdGVtUHJvcHMgJiBUTmF2QmFyU2tlbGV0b25Qcm9wcz5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIHBhZGRpbmc6ICR7KHByb3BzKSA9PlxuICAgIHByb3BzLmNvbnRlbnRXaWR0aCA9PT0gJ3dpZGUnIHx8ICFwcm9wcy5pc0V4cGFuZGVkID8gJzEycHgnIDogJzEycHggMjhweCd9O1xuICBoZWlnaHQ6IDQ4cHg7XG5gO1xuXG5jb25zdCBNZW51SXRlbUljb24gPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBib3JkZXItcmFkaXVzOiAke2Rlc2lnblRva2Vucy5ib3JkZXJSYWRpdXM0fTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuYDtcblxuY29uc3QgTWVudUl0ZW1UaXRsZSA9IHN0eWxlZC5kaXZgXG4gIGJvcmRlci1yYWRpdXM6ICR7ZGVzaWduVG9rZW5zLmJvcmRlclJhZGl1czR9O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gIGZsZXg6IDE7XG4gIGhlaWdodDogMThweDtcbmA7XG5cbmNvbnN0IE1lbnVJdGVtR3JvdXAgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbmA7XG5cbmV4cG9ydCB7XG4gIE5hdkJhckxheW91dCxcbiAgTmF2QmFySGVhZGVyLFxuICBOYXZCYXJCb2R5LFxuICBOYXZCYXJGb290ZXIsXG4gIEV4cGFuZEljb24sXG4gIE1lbnVJdGVtQ29udGFpbmVyLFxuICBNZW51SXRlbUljb24sXG4gIE1lbnVJdGVtVGl0bGUsXG4gIE1lbnVJdGVtR3JvdXAsXG4gIHR5cGUgVE5hdkJhclNrZWxldG9uUHJvcHMsXG4gIHR5cGUgVE1lbnVJdGVtUHJvcHMsXG59O1xuIl19 */"));
573
+ const NavBarBody = /*#__PURE__*/_styled__default["default"]("div", process.env.NODE_ENV === "production" ? {
574
+ target: "epfjvz36"
575
+ } : {
576
+ target: "epfjvz36",
577
+ label: "NavBarBody"
578
+ })("display:flex;flex:1;padding:", designSystem.designTokens.spacing30, ";flex-direction:column;align-items:flex-start;gap:", designSystem.designTokens.spacing40, ";flex-shrink:0;background:#009987;position:relative;&::after{content:'';position:absolute;bottom:0;height:36px;width:calc(100% - 2 * ", designSystem.designTokens.spacing30, ");background:linear-gradient(180deg, rgba(0, 153, 135, 0) 0%, #009987 100%);}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5hdmJhci1za2VsZXRvbi5zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlDNkIiLCJmaWxlIjoibmF2YmFyLXNrZWxldG9uLnN0eWxlcy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGRlc2lnblRva2VucyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2Rlc2lnbi1zeXN0ZW0nO1xuaW1wb3J0IHsgRElNRU5TSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbnR5cGUgVE5hdkJhclNrZWxldG9uUHJvcHMgPSB7XG4gIGlzRXhwYW5kZWQ6IGJvb2xlYW47XG59O1xuXG50eXBlIFRNZW51SXRlbVByb3BzID0ge1xuICBjb250ZW50V2lkdGg6ICd3aWRlJyB8ICduYXJyb3cnO1xufTtcblxuY29uc3QgTmF2QmFyTGF5b3V0ID0gKFxuICBwcm9wczogVE5hdkJhclNrZWxldG9uUHJvcHMgJiB7IGNoaWxkcmVuOiBSZWFjdE5vZGUgfVxuKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPG5hdlxuICAgICAgYXJpYS1idXN5PXt0cnVlfVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6ICR7cHJvcHMuaXNFeHBhbmRlZCA/ICcyNTZweCcgOiAnODBweCd9O1xuICAgICAgYH1cbiAgICA+XG4gICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgPC9uYXY+XG4gICk7XG59O1xuXG5jb25zdCBOYXZCYXJIZWFkZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogJHtkZXNpZ25Ub2tlbnMuc3BhY2luZzMwfTtcbiAgaGVpZ2h0OiAke0RJTUVOU0lPTlMuaGVhZGVyfTtcbiAgYmFja2dyb3VuZDogJHtkZXNpZ25Ub2tlbnMuY29sb3JBY2NlbnQxMH07XG5gO1xuXG5jb25zdCBOYXZCYXJCb2R5ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMTtcbiAgcGFkZGluZzogJHtkZXNpZ25Ub2tlbnMuc3BhY2luZzMwfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogJHtkZXNpZ25Ub2tlbnMuc3BhY2luZzQwfTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJhY2tncm91bmQ6ICMwMDk5ODc7IC8vIFRPRE86IHVzZSBuZXcgZGVzaWduIHRva2VuIGNvbG9yLXByaW1hcnktMzBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vIGJvdHRvbSBncmFkaWVudFxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDIgKiAke2Rlc2lnblRva2Vucy5zcGFjaW5nMzB9KTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDE1MywgMTM1LCAwKSAwJSwgIzAwOTk4NyAxMDAlKTtcbiAgfVxuYDtcblxuY29uc3QgTmF2QmFyRm9vdGVyID0gc3R5bGVkLmRpdjxUTmF2QmFyU2tlbGV0b25Qcm9wcz5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMwMDk5ODcgMCUsICMwMDRkNDQgMTAwJSk7XG4gIHBhZGRpbmc6ICR7ZGVzaWduVG9rZW5zLnNwYWNpbmczMH1cbiAgICAkeyhwcm9wcykgPT4gKHByb3BzLmlzRXhwYW5kZWQgPyAnNThweCcgOiAnMHB4Jyl9O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAvLyBkaXZpZGVyXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMiAqICR7ZGVzaWduVG9rZW5zLnNwYWNpbmczMH0pO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgfVxuYDtcblxuY29uc3QgRXhwYW5kSWNvbiA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJvcmRlci1yYWRpdXM6ICR7ZGVzaWduVG9rZW5zLmJvcmRlclJhZGl1czR9O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG5gO1xuXG5jb25zdCBNZW51SXRlbUNvbnRhaW5lciA9IHN0eWxlZC5kaXY8VE1lbnVJdGVtUHJvcHMgJiBUTmF2QmFyU2tlbGV0b25Qcm9wcz5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIHBhZGRpbmc6ICR7KHByb3BzKSA9PlxuICAgIHByb3BzLmNvbnRlbnRXaWR0aCA9PT0gJ3dpZGUnIHx8ICFwcm9wcy5pc0V4cGFuZGVkID8gJzEycHgnIDogJzEycHggMjhweCd9O1xuICBoZWlnaHQ6IDQ4cHg7XG5gO1xuXG5jb25zdCBNZW51SXRlbUljb24gPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBib3JkZXItcmFkaXVzOiAke2Rlc2lnblRva2Vucy5ib3JkZXJSYWRpdXM0fTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuYDtcblxuY29uc3QgTWVudUl0ZW1UaXRsZSA9IHN0eWxlZC5kaXZgXG4gIGJvcmRlci1yYWRpdXM6ICR7ZGVzaWduVG9rZW5zLmJvcmRlclJhZGl1czR9O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gIGZsZXg6IDE7XG4gIGhlaWdodDogMThweDtcbmA7XG5cbmNvbnN0IE1lbnVJdGVtR3JvdXAgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbmA7XG5cbmV4cG9ydCB7XG4gIE5hdkJhckxheW91dCxcbiAgTmF2QmFySGVhZGVyLFxuICBOYXZCYXJCb2R5LFxuICBOYXZCYXJGb290ZXIsXG4gIEV4cGFuZEljb24sXG4gIE1lbnVJdGVtQ29udGFpbmVyLFxuICBNZW51SXRlbUljb24sXG4gIE1lbnVJdGVtVGl0bGUsXG4gIE1lbnVJdGVtR3JvdXAsXG4gIHR5cGUgVE5hdkJhclNrZWxldG9uUHJvcHMsXG4gIHR5cGUgVE1lbnVJdGVtUHJvcHMsXG59O1xuIl19 */"));
579
+ const NavBarFooter = /*#__PURE__*/_styled__default["default"]("div", process.env.NODE_ENV === "production" ? {
580
+ target: "epfjvz35"
581
+ } : {
582
+ target: "epfjvz35",
583
+ label: "NavBarFooter"
584
+ })("position:relative;display:flex;width:100%;flex-direction:column;background:linear-gradient(180deg, #009987 0%, #004d44 100%);padding:", designSystem.designTokens.spacing30, " ", props => props.isExpanded ? '58px' : '0px', ";justify-content:center;align-items:center;&::before{content:'';position:absolute;top:0;height:1px;width:calc(100% - 2 * ", designSystem.designTokens.spacing30, ");background:rgba(255, 255, 255, 0.5);}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5hdmJhci1za2VsZXRvbi5zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStEcUQiLCJmaWxlIjoibmF2YmFyLXNrZWxldG9uLnN0eWxlcy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGRlc2lnblRva2VucyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2Rlc2lnbi1zeXN0ZW0nO1xuaW1wb3J0IHsgRElNRU5TSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbnR5cGUgVE5hdkJhclNrZWxldG9uUHJvcHMgPSB7XG4gIGlzRXhwYW5kZWQ6IGJvb2xlYW47XG59O1xuXG50eXBlIFRNZW51SXRlbVByb3BzID0ge1xuICBjb250ZW50V2lkdGg6ICd3aWRlJyB8ICduYXJyb3cnO1xufTtcblxuY29uc3QgTmF2QmFyTGF5b3V0ID0gKFxuICBwcm9wczogVE5hdkJhclNrZWxldG9uUHJvcHMgJiB7IGNoaWxkcmVuOiBSZWFjdE5vZGUgfVxuKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPG5hdlxuICAgICAgYXJpYS1idXN5PXt0cnVlfVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6ICR7cHJvcHMuaXNFeHBhbmRlZCA/ICcyNTZweCcgOiAnODBweCd9O1xuICAgICAgYH1cbiAgICA+XG4gICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgPC9uYXY+XG4gICk7XG59O1xuXG5jb25zdCBOYXZCYXJIZWFkZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogJHtkZXNpZ25Ub2tlbnMuc3BhY2luZzMwfTtcbiAgaGVpZ2h0OiAke0RJTUVOU0lPTlMuaGVhZGVyfTtcbiAgYmFja2dyb3VuZDogJHtkZXNpZ25Ub2tlbnMuY29sb3JBY2NlbnQxMH07XG5gO1xuXG5jb25zdCBOYXZCYXJCb2R5ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMTtcbiAgcGFkZGluZzogJHtkZXNpZ25Ub2tlbnMuc3BhY2luZzMwfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogJHtkZXNpZ25Ub2tlbnMuc3BhY2luZzQwfTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJhY2tncm91bmQ6ICMwMDk5ODc7IC8vIFRPRE86IHVzZSBuZXcgZGVzaWduIHRva2VuIGNvbG9yLXByaW1hcnktMzBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vIGJvdHRvbSBncmFkaWVudFxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDIgKiAke2Rlc2lnblRva2Vucy5zcGFjaW5nMzB9KTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDE1MywgMTM1LCAwKSAwJSwgIzAwOTk4NyAxMDAlKTtcbiAgfVxuYDtcblxuY29uc3QgTmF2QmFyRm9vdGVyID0gc3R5bGVkLmRpdjxUTmF2QmFyU2tlbGV0b25Qcm9wcz5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMwMDk5ODcgMCUsICMwMDRkNDQgMTAwJSk7XG4gIHBhZGRpbmc6ICR7ZGVzaWduVG9rZW5zLnNwYWNpbmczMH1cbiAgICAkeyhwcm9wcykgPT4gKHByb3BzLmlzRXhwYW5kZWQgPyAnNThweCcgOiAnMHB4Jyl9O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAvLyBkaXZpZGVyXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMiAqICR7ZGVzaWduVG9rZW5zLnNwYWNpbmczMH0pO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgfVxuYDtcblxuY29uc3QgRXhwYW5kSWNvbiA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJvcmRlci1yYWRpdXM6ICR7ZGVzaWduVG9rZW5zLmJvcmRlclJhZGl1czR9O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG5gO1xuXG5jb25zdCBNZW51SXRlbUNvbnRhaW5lciA9IHN0eWxlZC5kaXY8VE1lbnVJdGVtUHJvcHMgJiBUTmF2QmFyU2tlbGV0b25Qcm9wcz5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIHBhZGRpbmc6ICR7KHByb3BzKSA9PlxuICAgIHByb3BzLmNvbnRlbnRXaWR0aCA9PT0gJ3dpZGUnIHx8ICFwcm9wcy5pc0V4cGFuZGVkID8gJzEycHgnIDogJzEycHggMjhweCd9O1xuICBoZWlnaHQ6IDQ4cHg7XG5gO1xuXG5jb25zdCBNZW51SXRlbUljb24gPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBib3JkZXItcmFkaXVzOiAke2Rlc2lnblRva2Vucy5ib3JkZXJSYWRpdXM0fTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuYDtcblxuY29uc3QgTWVudUl0ZW1UaXRsZSA9IHN0eWxlZC5kaXZgXG4gIGJvcmRlci1yYWRpdXM6ICR7ZGVzaWduVG9rZW5zLmJvcmRlclJhZGl1czR9O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gIGZsZXg6IDE7XG4gIGhlaWdodDogMThweDtcbmA7XG5cbmNvbnN0IE1lbnVJdGVtR3JvdXAgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbmA7XG5cbmV4cG9ydCB7XG4gIE5hdkJhckxheW91dCxcbiAgTmF2QmFySGVhZGVyLFxuICBOYXZCYXJCb2R5LFxuICBOYXZCYXJGb290ZXIsXG4gIEV4cGFuZEljb24sXG4gIE1lbnVJdGVtQ29udGFpbmVyLFxuICBNZW51SXRlbUljb24sXG4gIE1lbnVJdGVtVGl0bGUsXG4gIE1lbnVJdGVtR3JvdXAsXG4gIHR5cGUgVE5hdkJhclNrZWxldG9uUHJvcHMsXG4gIHR5cGUgVE1lbnVJdGVtUHJvcHMsXG59O1xuIl19 */"));
585
+ const ExpandIcon = /*#__PURE__*/_styled__default["default"]("div", process.env.NODE_ENV === "production" ? {
586
+ target: "epfjvz34"
587
+ } : {
588
+ target: "epfjvz34",
589
+ label: "ExpandIcon"
590
+ })("width:40px;height:40px;border-radius:", designSystem.designTokens.borderRadius4, ";background:rgba(255, 255, 255, 0.2);" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5hdmJhci1za2VsZXRvbi5zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFGNkIiLCJmaWxlIjoibmF2YmFyLXNrZWxldG9uLnN0eWxlcy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGRlc2lnblRva2VucyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2Rlc2lnbi1zeXN0ZW0nO1xuaW1wb3J0IHsgRElNRU5TSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbnR5cGUgVE5hdkJhclNrZWxldG9uUHJvcHMgPSB7XG4gIGlzRXhwYW5kZWQ6IGJvb2xlYW47XG59O1xuXG50eXBlIFRNZW51SXRlbVByb3BzID0ge1xuICBjb250ZW50V2lkdGg6ICd3aWRlJyB8ICduYXJyb3cnO1xufTtcblxuY29uc3QgTmF2QmFyTGF5b3V0ID0gKFxuICBwcm9wczogVE5hdkJhclNrZWxldG9uUHJvcHMgJiB7IGNoaWxkcmVuOiBSZWFjdE5vZGUgfVxuKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPG5hdlxuICAgICAgYXJpYS1idXN5PXt0cnVlfVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6ICR7cHJvcHMuaXNFeHBhbmRlZCA/ICcyNTZweCcgOiAnODBweCd9O1xuICAgICAgYH1cbiAgICA+XG4gICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgPC9uYXY+XG4gICk7XG59O1xuXG5jb25zdCBOYXZCYXJIZWFkZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogJHtkZXNpZ25Ub2tlbnMuc3BhY2luZzMwfTtcbiAgaGVpZ2h0OiAke0RJTUVOU0lPTlMuaGVhZGVyfTtcbiAgYmFja2dyb3VuZDogJHtkZXNpZ25Ub2tlbnMuY29sb3JBY2NlbnQxMH07XG5gO1xuXG5jb25zdCBOYXZCYXJCb2R5ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMTtcbiAgcGFkZGluZzogJHtkZXNpZ25Ub2tlbnMuc3BhY2luZzMwfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogJHtkZXNpZ25Ub2tlbnMuc3BhY2luZzQwfTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJhY2tncm91bmQ6ICMwMDk5ODc7IC8vIFRPRE86IHVzZSBuZXcgZGVzaWduIHRva2VuIGNvbG9yLXByaW1hcnktMzBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vIGJvdHRvbSBncmFkaWVudFxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDIgKiAke2Rlc2lnblRva2Vucy5zcGFjaW5nMzB9KTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDE1MywgMTM1LCAwKSAwJSwgIzAwOTk4NyAxMDAlKTtcbiAgfVxuYDtcblxuY29uc3QgTmF2QmFyRm9vdGVyID0gc3R5bGVkLmRpdjxUTmF2QmFyU2tlbGV0b25Qcm9wcz5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMwMDk5ODcgMCUsICMwMDRkNDQgMTAwJSk7XG4gIHBhZGRpbmc6ICR7ZGVzaWduVG9rZW5zLnNwYWNpbmczMH1cbiAgICAkeyhwcm9wcykgPT4gKHByb3BzLmlzRXhwYW5kZWQgPyAnNThweCcgOiAnMHB4Jyl9O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAvLyBkaXZpZGVyXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMiAqICR7ZGVzaWduVG9rZW5zLnNwYWNpbmczMH0pO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgfVxuYDtcblxuY29uc3QgRXhwYW5kSWNvbiA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJvcmRlci1yYWRpdXM6ICR7ZGVzaWduVG9rZW5zLmJvcmRlclJhZGl1czR9O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG5gO1xuXG5jb25zdCBNZW51SXRlbUNvbnRhaW5lciA9IHN0eWxlZC5kaXY8VE1lbnVJdGVtUHJvcHMgJiBUTmF2QmFyU2tlbGV0b25Qcm9wcz5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIHBhZGRpbmc6ICR7KHByb3BzKSA9PlxuICAgIHByb3BzLmNvbnRlbnRXaWR0aCA9PT0gJ3dpZGUnIHx8ICFwcm9wcy5pc0V4cGFuZGVkID8gJzEycHgnIDogJzEycHggMjhweCd9O1xuICBoZWlnaHQ6IDQ4cHg7XG5gO1xuXG5jb25zdCBNZW51SXRlbUljb24gPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBib3JkZXItcmFkaXVzOiAke2Rlc2lnblRva2Vucy5ib3JkZXJSYWRpdXM0fTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuYDtcblxuY29uc3QgTWVudUl0ZW1UaXRsZSA9IHN0eWxlZC5kaXZgXG4gIGJvcmRlci1yYWRpdXM6ICR7ZGVzaWduVG9rZW5zLmJvcmRlclJhZGl1czR9O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gIGZsZXg6IDE7XG4gIGhlaWdodDogMThweDtcbmA7XG5cbmNvbnN0IE1lbnVJdGVtR3JvdXAgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbmA7XG5cbmV4cG9ydCB7XG4gIE5hdkJhckxheW91dCxcbiAgTmF2QmFySGVhZGVyLFxuICBOYXZCYXJCb2R5LFxuICBOYXZCYXJGb290ZXIsXG4gIEV4cGFuZEljb24sXG4gIE1lbnVJdGVtQ29udGFpbmVyLFxuICBNZW51SXRlbUljb24sXG4gIE1lbnVJdGVtVGl0bGUsXG4gIE1lbnVJdGVtR3JvdXAsXG4gIHR5cGUgVE5hdkJhclNrZWxldG9uUHJvcHMsXG4gIHR5cGUgVE1lbnVJdGVtUHJvcHMsXG59O1xuIl19 */"));
591
+ const MenuItemContainer = /*#__PURE__*/_styled__default["default"]("div", process.env.NODE_ENV === "production" ? {
592
+ target: "epfjvz33"
593
+ } : {
594
+ target: "epfjvz33",
595
+ label: "MenuItemContainer"
596
+ })("display:flex;align-items:center;justify-content:center;gap:12px;padding:", props => props.contentWidth === 'wide' || !props.isExpanded ? '12px' : '12px 28px', ";height:48px;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5hdmJhci1za2VsZXRvbi5zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRGMkUiLCJmaWxlIjoibmF2YmFyLXNrZWxldG9uLnN0eWxlcy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGRlc2lnblRva2VucyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2Rlc2lnbi1zeXN0ZW0nO1xuaW1wb3J0IHsgRElNRU5TSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbnR5cGUgVE5hdkJhclNrZWxldG9uUHJvcHMgPSB7XG4gIGlzRXhwYW5kZWQ6IGJvb2xlYW47XG59O1xuXG50eXBlIFRNZW51SXRlbVByb3BzID0ge1xuICBjb250ZW50V2lkdGg6ICd3aWRlJyB8ICduYXJyb3cnO1xufTtcblxuY29uc3QgTmF2QmFyTGF5b3V0ID0gKFxuICBwcm9wczogVE5hdkJhclNrZWxldG9uUHJvcHMgJiB7IGNoaWxkcmVuOiBSZWFjdE5vZGUgfVxuKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPG5hdlxuICAgICAgYXJpYS1idXN5PXt0cnVlfVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6ICR7cHJvcHMuaXNFeHBhbmRlZCA/ICcyNTZweCcgOiAnODBweCd9O1xuICAgICAgYH1cbiAgICA+XG4gICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgPC9uYXY+XG4gICk7XG59O1xuXG5jb25zdCBOYXZCYXJIZWFkZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogJHtkZXNpZ25Ub2tlbnMuc3BhY2luZzMwfTtcbiAgaGVpZ2h0OiAke0RJTUVOU0lPTlMuaGVhZGVyfTtcbiAgYmFja2dyb3VuZDogJHtkZXNpZ25Ub2tlbnMuY29sb3JBY2NlbnQxMH07XG5gO1xuXG5jb25zdCBOYXZCYXJCb2R5ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMTtcbiAgcGFkZGluZzogJHtkZXNpZ25Ub2tlbnMuc3BhY2luZzMwfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogJHtkZXNpZ25Ub2tlbnMuc3BhY2luZzQwfTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJhY2tncm91bmQ6ICMwMDk5ODc7IC8vIFRPRE86IHVzZSBuZXcgZGVzaWduIHRva2VuIGNvbG9yLXByaW1hcnktMzBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vIGJvdHRvbSBncmFkaWVudFxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDIgKiAke2Rlc2lnblRva2Vucy5zcGFjaW5nMzB9KTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDE1MywgMTM1LCAwKSAwJSwgIzAwOTk4NyAxMDAlKTtcbiAgfVxuYDtcblxuY29uc3QgTmF2QmFyRm9vdGVyID0gc3R5bGVkLmRpdjxUTmF2QmFyU2tlbGV0b25Qcm9wcz5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMwMDk5ODcgMCUsICMwMDRkNDQgMTAwJSk7XG4gIHBhZGRpbmc6ICR7ZGVzaWduVG9rZW5zLnNwYWNpbmczMH1cbiAgICAkeyhwcm9wcykgPT4gKHByb3BzLmlzRXhwYW5kZWQgPyAnNThweCcgOiAnMHB4Jyl9O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAvLyBkaXZpZGVyXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMiAqICR7ZGVzaWduVG9rZW5zLnNwYWNpbmczMH0pO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgfVxuYDtcblxuY29uc3QgRXhwYW5kSWNvbiA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJvcmRlci1yYWRpdXM6ICR7ZGVzaWduVG9rZW5zLmJvcmRlclJhZGl1czR9O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG5gO1xuXG5jb25zdCBNZW51SXRlbUNvbnRhaW5lciA9IHN0eWxlZC5kaXY8VE1lbnVJdGVtUHJvcHMgJiBUTmF2QmFyU2tlbGV0b25Qcm9wcz5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIHBhZGRpbmc6ICR7KHByb3BzKSA9PlxuICAgIHByb3BzLmNvbnRlbnRXaWR0aCA9PT0gJ3dpZGUnIHx8ICFwcm9wcy5pc0V4cGFuZGVkID8gJzEycHgnIDogJzEycHggMjhweCd9O1xuICBoZWlnaHQ6IDQ4cHg7XG5gO1xuXG5jb25zdCBNZW51SXRlbUljb24gPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBib3JkZXItcmFkaXVzOiAke2Rlc2lnblRva2Vucy5ib3JkZXJSYWRpdXM0fTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuYDtcblxuY29uc3QgTWVudUl0ZW1UaXRsZSA9IHN0eWxlZC5kaXZgXG4gIGJvcmRlci1yYWRpdXM6ICR7ZGVzaWduVG9rZW5zLmJvcmRlclJhZGl1czR9O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gIGZsZXg6IDE7XG4gIGhlaWdodDogMThweDtcbmA7XG5cbmNvbnN0IE1lbnVJdGVtR3JvdXAgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbmA7XG5cbmV4cG9ydCB7XG4gIE5hdkJhckxheW91dCxcbiAgTmF2QmFySGVhZGVyLFxuICBOYXZCYXJCb2R5LFxuICBOYXZCYXJGb290ZXIsXG4gIEV4cGFuZEljb24sXG4gIE1lbnVJdGVtQ29udGFpbmVyLFxuICBNZW51SXRlbUljb24sXG4gIE1lbnVJdGVtVGl0bGUsXG4gIE1lbnVJdGVtR3JvdXAsXG4gIHR5cGUgVE5hdkJhclNrZWxldG9uUHJvcHMsXG4gIHR5cGUgVE1lbnVJdGVtUHJvcHMsXG59O1xuIl19 */"));
597
+ const MenuItemIcon = /*#__PURE__*/_styled__default["default"]("div", process.env.NODE_ENV === "production" ? {
598
+ target: "epfjvz32"
599
+ } : {
600
+ target: "epfjvz32",
601
+ label: "MenuItemIcon"
602
+ })("width:24px;height:24px;border-radius:", designSystem.designTokens.borderRadius4, ";background:rgba(255, 255, 255, 0.2);" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5hdmJhci1za2VsZXRvbi5zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNHK0IiLCJmaWxlIjoibmF2YmFyLXNrZWxldG9uLnN0eWxlcy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGRlc2lnblRva2VucyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2Rlc2lnbi1zeXN0ZW0nO1xuaW1wb3J0IHsgRElNRU5TSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbnR5cGUgVE5hdkJhclNrZWxldG9uUHJvcHMgPSB7XG4gIGlzRXhwYW5kZWQ6IGJvb2xlYW47XG59O1xuXG50eXBlIFRNZW51SXRlbVByb3BzID0ge1xuICBjb250ZW50V2lkdGg6ICd3aWRlJyB8ICduYXJyb3cnO1xufTtcblxuY29uc3QgTmF2QmFyTGF5b3V0ID0gKFxuICBwcm9wczogVE5hdkJhclNrZWxldG9uUHJvcHMgJiB7IGNoaWxkcmVuOiBSZWFjdE5vZGUgfVxuKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPG5hdlxuICAgICAgYXJpYS1idXN5PXt0cnVlfVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6ICR7cHJvcHMuaXNFeHBhbmRlZCA/ICcyNTZweCcgOiAnODBweCd9O1xuICAgICAgYH1cbiAgICA+XG4gICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgPC9uYXY+XG4gICk7XG59O1xuXG5jb25zdCBOYXZCYXJIZWFkZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogJHtkZXNpZ25Ub2tlbnMuc3BhY2luZzMwfTtcbiAgaGVpZ2h0OiAke0RJTUVOU0lPTlMuaGVhZGVyfTtcbiAgYmFja2dyb3VuZDogJHtkZXNpZ25Ub2tlbnMuY29sb3JBY2NlbnQxMH07XG5gO1xuXG5jb25zdCBOYXZCYXJCb2R5ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMTtcbiAgcGFkZGluZzogJHtkZXNpZ25Ub2tlbnMuc3BhY2luZzMwfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogJHtkZXNpZ25Ub2tlbnMuc3BhY2luZzQwfTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJhY2tncm91bmQ6ICMwMDk5ODc7IC8vIFRPRE86IHVzZSBuZXcgZGVzaWduIHRva2VuIGNvbG9yLXByaW1hcnktMzBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vIGJvdHRvbSBncmFkaWVudFxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDIgKiAke2Rlc2lnblRva2Vucy5zcGFjaW5nMzB9KTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDE1MywgMTM1LCAwKSAwJSwgIzAwOTk4NyAxMDAlKTtcbiAgfVxuYDtcblxuY29uc3QgTmF2QmFyRm9vdGVyID0gc3R5bGVkLmRpdjxUTmF2QmFyU2tlbGV0b25Qcm9wcz5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMwMDk5ODcgMCUsICMwMDRkNDQgMTAwJSk7XG4gIHBhZGRpbmc6ICR7ZGVzaWduVG9rZW5zLnNwYWNpbmczMH1cbiAgICAkeyhwcm9wcykgPT4gKHByb3BzLmlzRXhwYW5kZWQgPyAnNThweCcgOiAnMHB4Jyl9O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAvLyBkaXZpZGVyXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMiAqICR7ZGVzaWduVG9rZW5zLnNwYWNpbmczMH0pO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgfVxuYDtcblxuY29uc3QgRXhwYW5kSWNvbiA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJvcmRlci1yYWRpdXM6ICR7ZGVzaWduVG9rZW5zLmJvcmRlclJhZGl1czR9O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG5gO1xuXG5jb25zdCBNZW51SXRlbUNvbnRhaW5lciA9IHN0eWxlZC5kaXY8VE1lbnVJdGVtUHJvcHMgJiBUTmF2QmFyU2tlbGV0b25Qcm9wcz5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIHBhZGRpbmc6ICR7KHByb3BzKSA9PlxuICAgIHByb3BzLmNvbnRlbnRXaWR0aCA9PT0gJ3dpZGUnIHx8ICFwcm9wcy5pc0V4cGFuZGVkID8gJzEycHgnIDogJzEycHggMjhweCd9O1xuICBoZWlnaHQ6IDQ4cHg7XG5gO1xuXG5jb25zdCBNZW51SXRlbUljb24gPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBib3JkZXItcmFkaXVzOiAke2Rlc2lnblRva2Vucy5ib3JkZXJSYWRpdXM0fTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuYDtcblxuY29uc3QgTWVudUl0ZW1UaXRsZSA9IHN0eWxlZC5kaXZgXG4gIGJvcmRlci1yYWRpdXM6ICR7ZGVzaWduVG9rZW5zLmJvcmRlclJhZGl1czR9O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gIGZsZXg6IDE7XG4gIGhlaWdodDogMThweDtcbmA7XG5cbmNvbnN0IE1lbnVJdGVtR3JvdXAgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbmA7XG5cbmV4cG9ydCB7XG4gIE5hdkJhckxheW91dCxcbiAgTmF2QmFySGVhZGVyLFxuICBOYXZCYXJCb2R5LFxuICBOYXZCYXJGb290ZXIsXG4gIEV4cGFuZEljb24sXG4gIE1lbnVJdGVtQ29udGFpbmVyLFxuICBNZW51SXRlbUljb24sXG4gIE1lbnVJdGVtVGl0bGUsXG4gIE1lbnVJdGVtR3JvdXAsXG4gIHR5cGUgVE5hdkJhclNrZWxldG9uUHJvcHMsXG4gIHR5cGUgVE1lbnVJdGVtUHJvcHMsXG59O1xuIl19 */"));
603
+ const MenuItemTitle = /*#__PURE__*/_styled__default["default"]("div", process.env.NODE_ENV === "production" ? {
604
+ target: "epfjvz31"
605
+ } : {
606
+ target: "epfjvz31",
607
+ label: "MenuItemTitle"
608
+ })("border-radius:", designSystem.designTokens.borderRadius4, ";background:rgba(255, 255, 255, 0.2);flex:1;height:18px;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5hdmJhci1za2VsZXRvbi5zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZHZ0MiLCJmaWxlIjoibmF2YmFyLXNrZWxldG9uLnN0eWxlcy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGRlc2lnblRva2VucyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2Rlc2lnbi1zeXN0ZW0nO1xuaW1wb3J0IHsgRElNRU5TSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbnR5cGUgVE5hdkJhclNrZWxldG9uUHJvcHMgPSB7XG4gIGlzRXhwYW5kZWQ6IGJvb2xlYW47XG59O1xuXG50eXBlIFRNZW51SXRlbVByb3BzID0ge1xuICBjb250ZW50V2lkdGg6ICd3aWRlJyB8ICduYXJyb3cnO1xufTtcblxuY29uc3QgTmF2QmFyTGF5b3V0ID0gKFxuICBwcm9wczogVE5hdkJhclNrZWxldG9uUHJvcHMgJiB7IGNoaWxkcmVuOiBSZWFjdE5vZGUgfVxuKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPG5hdlxuICAgICAgYXJpYS1idXN5PXt0cnVlfVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6ICR7cHJvcHMuaXNFeHBhbmRlZCA/ICcyNTZweCcgOiAnODBweCd9O1xuICAgICAgYH1cbiAgICA+XG4gICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgPC9uYXY+XG4gICk7XG59O1xuXG5jb25zdCBOYXZCYXJIZWFkZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogJHtkZXNpZ25Ub2tlbnMuc3BhY2luZzMwfTtcbiAgaGVpZ2h0OiAke0RJTUVOU0lPTlMuaGVhZGVyfTtcbiAgYmFja2dyb3VuZDogJHtkZXNpZ25Ub2tlbnMuY29sb3JBY2NlbnQxMH07XG5gO1xuXG5jb25zdCBOYXZCYXJCb2R5ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMTtcbiAgcGFkZGluZzogJHtkZXNpZ25Ub2tlbnMuc3BhY2luZzMwfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogJHtkZXNpZ25Ub2tlbnMuc3BhY2luZzQwfTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJhY2tncm91bmQ6ICMwMDk5ODc7IC8vIFRPRE86IHVzZSBuZXcgZGVzaWduIHRva2VuIGNvbG9yLXByaW1hcnktMzBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vIGJvdHRvbSBncmFkaWVudFxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDIgKiAke2Rlc2lnblRva2Vucy5zcGFjaW5nMzB9KTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDE1MywgMTM1LCAwKSAwJSwgIzAwOTk4NyAxMDAlKTtcbiAgfVxuYDtcblxuY29uc3QgTmF2QmFyRm9vdGVyID0gc3R5bGVkLmRpdjxUTmF2QmFyU2tlbGV0b25Qcm9wcz5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMwMDk5ODcgMCUsICMwMDRkNDQgMTAwJSk7XG4gIHBhZGRpbmc6ICR7ZGVzaWduVG9rZW5zLnNwYWNpbmczMH1cbiAgICAkeyhwcm9wcykgPT4gKHByb3BzLmlzRXhwYW5kZWQgPyAnNThweCcgOiAnMHB4Jyl9O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAvLyBkaXZpZGVyXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMiAqICR7ZGVzaWduVG9rZW5zLnNwYWNpbmczMH0pO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgfVxuYDtcblxuY29uc3QgRXhwYW5kSWNvbiA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJvcmRlci1yYWRpdXM6ICR7ZGVzaWduVG9rZW5zLmJvcmRlclJhZGl1czR9O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG5gO1xuXG5jb25zdCBNZW51SXRlbUNvbnRhaW5lciA9IHN0eWxlZC5kaXY8VE1lbnVJdGVtUHJvcHMgJiBUTmF2QmFyU2tlbGV0b25Qcm9wcz5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIHBhZGRpbmc6ICR7KHByb3BzKSA9PlxuICAgIHByb3BzLmNvbnRlbnRXaWR0aCA9PT0gJ3dpZGUnIHx8ICFwcm9wcy5pc0V4cGFuZGVkID8gJzEycHgnIDogJzEycHggMjhweCd9O1xuICBoZWlnaHQ6IDQ4cHg7XG5gO1xuXG5jb25zdCBNZW51SXRlbUljb24gPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBib3JkZXItcmFkaXVzOiAke2Rlc2lnblRva2Vucy5ib3JkZXJSYWRpdXM0fTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuYDtcblxuY29uc3QgTWVudUl0ZW1UaXRsZSA9IHN0eWxlZC5kaXZgXG4gIGJvcmRlci1yYWRpdXM6ICR7ZGVzaWduVG9rZW5zLmJvcmRlclJhZGl1czR9O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gIGZsZXg6IDE7XG4gIGhlaWdodDogMThweDtcbmA7XG5cbmNvbnN0IE1lbnVJdGVtR3JvdXAgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbmA7XG5cbmV4cG9ydCB7XG4gIE5hdkJhckxheW91dCxcbiAgTmF2QmFySGVhZGVyLFxuICBOYXZCYXJCb2R5LFxuICBOYXZCYXJGb290ZXIsXG4gIEV4cGFuZEljb24sXG4gIE1lbnVJdGVtQ29udGFpbmVyLFxuICBNZW51SXRlbUljb24sXG4gIE1lbnVJdGVtVGl0bGUsXG4gIE1lbnVJdGVtR3JvdXAsXG4gIHR5cGUgVE5hdkJhclNrZWxldG9uUHJvcHMsXG4gIHR5cGUgVE1lbnVJdGVtUHJvcHMsXG59O1xuIl19 */"));
609
+ const MenuItemGroup = /*#__PURE__*/_styled__default["default"]("div", process.env.NODE_ENV === "production" ? {
610
+ target: "epfjvz30"
611
+ } : {
612
+ target: "epfjvz30",
613
+ label: "MenuItemGroup"
614
+ })(process.env.NODE_ENV === "production" ? {
615
+ name: "1d3w5wq",
616
+ styles: "width:100%"
617
+ } : {
618
+ name: "1d3w5wq",
619
+ styles: "width:100%",
620
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5hdmJhci1za2VsZXRvbi5zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9IZ0MiLCJmaWxlIjoibmF2YmFyLXNrZWxldG9uLnN0eWxlcy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGRlc2lnblRva2VucyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2Rlc2lnbi1zeXN0ZW0nO1xuaW1wb3J0IHsgRElNRU5TSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbnR5cGUgVE5hdkJhclNrZWxldG9uUHJvcHMgPSB7XG4gIGlzRXhwYW5kZWQ6IGJvb2xlYW47XG59O1xuXG50eXBlIFRNZW51SXRlbVByb3BzID0ge1xuICBjb250ZW50V2lkdGg6ICd3aWRlJyB8ICduYXJyb3cnO1xufTtcblxuY29uc3QgTmF2QmFyTGF5b3V0ID0gKFxuICBwcm9wczogVE5hdkJhclNrZWxldG9uUHJvcHMgJiB7IGNoaWxkcmVuOiBSZWFjdE5vZGUgfVxuKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPG5hdlxuICAgICAgYXJpYS1idXN5PXt0cnVlfVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6ICR7cHJvcHMuaXNFeHBhbmRlZCA/ICcyNTZweCcgOiAnODBweCd9O1xuICAgICAgYH1cbiAgICA+XG4gICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgPC9uYXY+XG4gICk7XG59O1xuXG5jb25zdCBOYXZCYXJIZWFkZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogJHtkZXNpZ25Ub2tlbnMuc3BhY2luZzMwfTtcbiAgaGVpZ2h0OiAke0RJTUVOU0lPTlMuaGVhZGVyfTtcbiAgYmFja2dyb3VuZDogJHtkZXNpZ25Ub2tlbnMuY29sb3JBY2NlbnQxMH07XG5gO1xuXG5jb25zdCBOYXZCYXJCb2R5ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMTtcbiAgcGFkZGluZzogJHtkZXNpZ25Ub2tlbnMuc3BhY2luZzMwfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogJHtkZXNpZ25Ub2tlbnMuc3BhY2luZzQwfTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJhY2tncm91bmQ6ICMwMDk5ODc7IC8vIFRPRE86IHVzZSBuZXcgZGVzaWduIHRva2VuIGNvbG9yLXByaW1hcnktMzBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vIGJvdHRvbSBncmFkaWVudFxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDIgKiAke2Rlc2lnblRva2Vucy5zcGFjaW5nMzB9KTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDE1MywgMTM1LCAwKSAwJSwgIzAwOTk4NyAxMDAlKTtcbiAgfVxuYDtcblxuY29uc3QgTmF2QmFyRm9vdGVyID0gc3R5bGVkLmRpdjxUTmF2QmFyU2tlbGV0b25Qcm9wcz5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMwMDk5ODcgMCUsICMwMDRkNDQgMTAwJSk7XG4gIHBhZGRpbmc6ICR7ZGVzaWduVG9rZW5zLnNwYWNpbmczMH1cbiAgICAkeyhwcm9wcykgPT4gKHByb3BzLmlzRXhwYW5kZWQgPyAnNThweCcgOiAnMHB4Jyl9O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAvLyBkaXZpZGVyXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMiAqICR7ZGVzaWduVG9rZW5zLnNwYWNpbmczMH0pO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgfVxuYDtcblxuY29uc3QgRXhwYW5kSWNvbiA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJvcmRlci1yYWRpdXM6ICR7ZGVzaWduVG9rZW5zLmJvcmRlclJhZGl1czR9O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG5gO1xuXG5jb25zdCBNZW51SXRlbUNvbnRhaW5lciA9IHN0eWxlZC5kaXY8VE1lbnVJdGVtUHJvcHMgJiBUTmF2QmFyU2tlbGV0b25Qcm9wcz5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIHBhZGRpbmc6ICR7KHByb3BzKSA9PlxuICAgIHByb3BzLmNvbnRlbnRXaWR0aCA9PT0gJ3dpZGUnIHx8ICFwcm9wcy5pc0V4cGFuZGVkID8gJzEycHgnIDogJzEycHggMjhweCd9O1xuICBoZWlnaHQ6IDQ4cHg7XG5gO1xuXG5jb25zdCBNZW51SXRlbUljb24gPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBib3JkZXItcmFkaXVzOiAke2Rlc2lnblRva2Vucy5ib3JkZXJSYWRpdXM0fTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuYDtcblxuY29uc3QgTWVudUl0ZW1UaXRsZSA9IHN0eWxlZC5kaXZgXG4gIGJvcmRlci1yYWRpdXM6ICR7ZGVzaWduVG9rZW5zLmJvcmRlclJhZGl1czR9O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gIGZsZXg6IDE7XG4gIGhlaWdodDogMThweDtcbmA7XG5cbmNvbnN0IE1lbnVJdGVtR3JvdXAgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbmA7XG5cbmV4cG9ydCB7XG4gIE5hdkJhckxheW91dCxcbiAgTmF2QmFySGVhZGVyLFxuICBOYXZCYXJCb2R5LFxuICBOYXZCYXJGb290ZXIsXG4gIEV4cGFuZEljb24sXG4gIE1lbnVJdGVtQ29udGFpbmVyLFxuICBNZW51SXRlbUljb24sXG4gIE1lbnVJdGVtVGl0bGUsXG4gIE1lbnVJdGVtR3JvdXAsXG4gIHR5cGUgVE5hdkJhclNrZWxldG9uUHJvcHMsXG4gIHR5cGUgVE1lbnVJdGVtUHJvcHMsXG59O1xuIl19 */",
621
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
622
+ });
623
+
624
+ const MenuItem = props => {
625
+ return jsxRuntime.jsxs(MenuItemContainer, {
626
+ isExpanded: props.isExpanded,
627
+ contentWidth: props.contentWidth,
628
+ children: [jsxRuntime.jsx(MenuItemIcon, {}), props.isExpanded && jsxRuntime.jsx(MenuItemTitle, {})]
629
+ });
630
+ };
631
+ MenuItem.defaultProps = {
632
+ contentWidth: 'wide'
633
+ };
634
+ const NavBarSkeleton = props => {
635
+ var _context, _context2, _context3, _context4;
636
+ return jsxRuntime.jsxs(NavBarLayout, {
637
+ isExpanded: props.isExpanded,
638
+ children: [jsxRuntime.jsx(NavBarHeader, {
639
+ children: jsxRuntime.jsx(MenuItemGroup, {
640
+ children: jsxRuntime.jsx(MenuItem, {
641
+ contentWidth: "narrow",
642
+ isExpanded: props.isExpanded
643
+ })
644
+ })
645
+ }), jsxRuntime.jsxs(NavBarBody, {
646
+ children: [jsxRuntime.jsx(MenuItemGroup, {
647
+ children: _mapInstanceProperty__default["default"](_context = [..._keysInstanceProperty__default["default"](_context2 = Array(2)).call(_context2)]).call(_context, index => jsxRuntime.jsx(MenuItem, {
648
+ isExpanded: props.isExpanded
649
+ }, index))
650
+ }), jsxRuntime.jsx(MenuItemGroup, {
651
+ children: _mapInstanceProperty__default["default"](_context3 = [..._keysInstanceProperty__default["default"](_context4 = Array(10)).call(_context4)]).call(_context3, index => jsxRuntime.jsx(MenuItem, {
652
+ isExpanded: props.isExpanded
653
+ }, index))
654
+ }), jsxRuntime.jsx(MenuItemGroup, {
655
+ children: jsxRuntime.jsx(MenuItem, {
656
+ isExpanded: props.isExpanded
657
+ })
658
+ })]
659
+ }), jsxRuntime.jsx(NavBarFooter, {
660
+ isExpanded: props.isExpanded,
661
+ children: jsxRuntime.jsx(ExpandIcon, {})
662
+ })]
663
+ });
664
+ };
665
+ NavBarSkeleton.displayName = 'NavBarSkeleton';
666
+
667
+ // Type guard to help with filtering arrays for nullish elements.
668
+ function nonNullable(value) {
669
+ return value !== null && value !== undefined;
670
+ }
671
+
672
+ function ownKeys$1(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
673
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var _context6, _context7; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context6 = ownKeys$1(Object(t), !0)).call(_context6, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context7 = ownKeys$1(Object(t))).call(_context7, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
674
+ var FetchProjectExtensionsNavbar = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "FetchProjectExtensionsNavbar" }, variableDefinitions: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "projectExtension" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "installedApplications" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "application" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "entryPointUriPath" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "icon" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "mainMenuLink" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "permissions" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "defaultLabel" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "labelAllLocales" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "locale" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }] } }, { kind: "Field", name: { kind: "Name", value: "submenuLinks" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "uriPath" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "permissions" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "defaultLabel" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "labelAllLocales" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "locale" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }] } }] } }] } }] } }] } }], loc: { start: 0, end: 537, source: { body: "query FetchProjectExtensionsNavbar {\n projectExtension {\n id\n installedApplications {\n application {\n id\n entryPointUriPath\n icon\n mainMenuLink {\n id\n permissions\n defaultLabel\n labelAllLocales {\n locale\n value\n }\n }\n submenuLinks {\n id\n uriPath\n permissions\n defaultLabel\n labelAllLocales {\n locale\n value\n }\n }\n }\n }\n }\n}\n", name: "GraphQL request", locationOffset: { line: 1, column: 1 } } } };
675
+ const getInitialState = isForcedMenuOpen => ({
676
+ isExpanderVisible: true,
677
+ isMenuOpen: isNil__default["default"](isForcedMenuOpen) ? false : isForcedMenuOpen
678
+ });
679
+ const isForcedMenuOpenDefaultValue = false;
680
+ const reducer = (state, action) => {
681
+ switch (action.type) {
682
+ case 'setActiveItemIndex':
683
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
684
+ activeItemIndex: action.payload
685
+ });
686
+ case 'unsetActiveItemIndex':
687
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
688
+ activeItemIndex: undefined
689
+ });
690
+ case 'setIsExpanderVisible':
691
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
692
+ isExpanderVisible: true
693
+ });
694
+ case 'toggleIsMenuOpen':
695
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
696
+ isMenuOpen: !state.isMenuOpen
697
+ });
698
+ case 'setIsMenuOpenAndMakeExpanderVisible':
699
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
700
+ isExpanderVisible: true,
701
+ isMenuOpen: action.payload
702
+ });
703
+ case 'reset':
704
+ return {
705
+ isExpanderVisible: false,
706
+ isMenuOpen: false
707
+ };
708
+ default:
709
+ return state;
710
+ }
711
+ };
712
+ const isFocusOutEventCalledBySubmenuItem = event => {
713
+ var _event$relatedTarget, _event$target;
714
+ return (
715
+ // a case when a submenu item loses focus
716
+ event.type === 'focusout' && ( // element receiving focus
717
+ (_event$relatedTarget = event.relatedTarget) === null || _event$relatedTarget === void 0 ? void 0 : _event$relatedTarget.matches('a[data-link-level="text-link"]')) && ( // element losing focus
718
+ (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.matches('a[data-link-level="text-link-sublist"]'))
719
+ );
720
+ };
721
+ const useNavbarStateManager = props => {
722
+ var _context, _context2, _context4, _context5;
723
+ const navBarNode = react.useRef(null);
724
+ const applicationsNavBarMenuGroups = useApplicationsMenu.useApplicationsMenu('navBarGroups', {
725
+ queryOptions: {
726
+ onError: sentry.reportErrorToSentry
727
+ },
728
+ environment: props.environment
729
+ });
730
+ const _useMcQuery = applicationShellConnectors.useMcQuery(FetchProjectExtensionsNavbar, {
731
+ skip: !props.environment.servedByProxy,
732
+ context: {
733
+ target: constants.GRAPHQL_TARGETS.SETTINGS_SERVICE
734
+ },
735
+ fetchPolicy: 'cache-and-network',
736
+ onError: sentry.reportErrorToSentry
737
+ }),
738
+ projectExtensionsQuery = _useMcQuery.data;
739
+ const allCustomApplicationsNavbarMenu = projectExtensionsQuery && projectExtensionsQuery.projectExtension && projectExtensionsQuery.projectExtension.installedApplications ? _filterInstanceProperty__default["default"](_context = _mapInstanceProperty__default["default"](_context2 = projectExtensionsQuery.projectExtension.installedApplications).call(_context2, installedApplication => {
740
+ var _context3;
741
+ const application = installedApplication.application;
742
+ // Map the menu properties to match the one from the proxy schema.
743
+ // This is to ensure that the menu object is the same from the proxy
744
+ // config and the custom apps config, thus allowing them to be
745
+ // concatenated and rendered the same way.
746
+ return {
747
+ key: application.id,
748
+ uriPath: application.entryPointUriPath,
749
+ labelAllLocales: application.mainMenuLink.labelAllLocales || [],
750
+ icon: application.icon,
751
+ permissions: application.mainMenuLink.permissions,
752
+ defaultLabel: application.mainMenuLink.defaultLabel,
753
+ featureToggle: undefined,
754
+ menuVisibility: undefined,
755
+ actionRights: undefined,
756
+ dataFences: undefined,
757
+ submenu: _mapInstanceProperty__default["default"](_context3 = application.submenuLinks || []).call(_context3, submenuLink => ({
758
+ key: submenuLink.id,
759
+ uriPath: submenuLink.uriPath,
760
+ labelAllLocales: submenuLink.labelAllLocales || [],
761
+ permissions: submenuLink.permissions,
762
+ defaultLabel: submenuLink.defaultLabel,
763
+ featureToggle: undefined,
764
+ menuVisibility: undefined,
765
+ actionRights: undefined,
766
+ dataFences: undefined
767
+ }))
768
+ };
769
+ })).call(_context, nonNullable) : [];
770
+ const cachedIsForcedMenuOpen = window.localStorage.getItem(constants.STORAGE_KEYS.IS_FORCED_MENU_OPEN);
771
+ const isForcedMenuOpen = isNil__default["default"](cachedIsForcedMenuOpen) ? isForcedMenuOpenDefaultValue : JSON.parse(cachedIsForcedMenuOpen);
772
+ if (isNil__default["default"](cachedIsForcedMenuOpen)) {
773
+ window.localStorage.setItem(constants.STORAGE_KEYS.IS_FORCED_MENU_OPEN, String(isForcedMenuOpen));
774
+ }
775
+ const _useReducer = react.useReducer(reducer, getInitialState(isForcedMenuOpen)),
776
+ _useReducer2 = _slicedToArray(_useReducer, 2),
777
+ state = _useReducer2[0],
778
+ dispatch = _useReducer2[1];
779
+ const checkSize = react.useCallback(throttle__default["default"](() => {
780
+ const shouldOpen = window.innerWidth > oidc.WINDOW_SIZES.STANDARD;
781
+ const canExpandMenu = window.innerWidth > oidc.WINDOW_SIZES.WIDE;
782
+
783
+ // If the screen is small, we should always keep the menu closed,
784
+ // no matter the settings.
785
+ if (!canExpandMenu) {
786
+ if (state.isMenuOpen || state.isExpanderVisible) {
787
+ // and resets the state to avoid conflicts
788
+ dispatch({
789
+ type: 'reset'
790
+ });
791
+ }
792
+ } else if (isForcedMenuOpen) {
793
+ dispatch({
794
+ type: 'setIsMenuOpenAndMakeExpanderVisible',
795
+ payload: true
796
+ });
797
+ } else if (canExpandMenu && state.isExpanderVisible !== true) {
798
+ dispatch({
799
+ type: 'setIsExpanderVisible'
800
+ });
801
+ } else if (isNil__default["default"](isForcedMenuOpen) && state.isMenuOpen !== shouldOpen) {
802
+ // User has no settings yet (this.props.isForcedMenuOpen === null)
803
+ // We check the viewport size and:
804
+ // - if screen is big, we open the menu
805
+ // - if screen is small we close it
806
+ dispatch({
807
+ type: 'setIsMenuOpenAndMakeExpanderVisible',
808
+ payload: shouldOpen
809
+ });
810
+ } else if (!isNil__default["default"](isForcedMenuOpen) && state.isMenuOpen !== isForcedMenuOpen) {
811
+ // User has setting, we should use that and ignore the screen size.
812
+ // Note: if viewport size is small, we should ignore the user settings.
813
+ dispatch({
814
+ type: 'setIsMenuOpenAndMakeExpanderVisible',
815
+ payload: isForcedMenuOpen
816
+ });
817
+ }
818
+ }, 100), [isForcedMenuOpen, state.isExpanderVisible, state.isMenuOpen]);
819
+ const shouldCloseMenuFly = react.useCallback(event => {
820
+ var _navBarNode$current;
821
+ if (!(navBarNode !== null && navBarNode !== void 0 && (_navBarNode$current = navBarNode.current) !== null && _navBarNode$current !== void 0 && _navBarNode$current.contains(event.target)) && !state.isMenuOpen) {
822
+ dispatch({
823
+ type: 'unsetActiveItemIndex'
824
+ });
825
+ } else if (event.type === 'mouseleave') {
826
+ dispatch({
827
+ type: 'unsetActiveItemIndex'
828
+ });
829
+ } else if (isFocusOutEventCalledBySubmenuItem(event)) {
830
+ dispatch({
831
+ type: 'unsetActiveItemIndex'
832
+ });
833
+ }
834
+ }, [state.isMenuOpen]);
835
+ react.useEffect(() => {
836
+ window.addEventListener('resize', checkSize);
837
+ window.addEventListener('click', shouldCloseMenuFly, true);
838
+ window.addEventListener('focusout', shouldCloseMenuFly, true);
839
+ return () => {
840
+ window.removeEventListener('resize', checkSize);
841
+ window.removeEventListener('click', shouldCloseMenuFly, true);
842
+ window.removeEventListener('focusout', shouldCloseMenuFly, true);
843
+ };
844
+ }, [checkSize, shouldCloseMenuFly]);
845
+ react.useEffect(() => {
846
+ checkSize();
847
+ // eslint-disable-next-line react-hooks/exhaustive-deps
848
+ }, []); // <-- run this only once!!
849
+
850
+ react.useLayoutEffect(() => {
851
+ if (state.isMenuOpen) document.body.classList.add('body__menu-open');
852
+ if (!state.isMenuOpen) document.body.classList.remove('body__menu-open');
853
+ }, [state.isMenuOpen]);
854
+ const handleToggleItem = react.useCallback(nextActiveItemIndex => {
855
+ if (state.activeItemIndex !== nextActiveItemIndex) dispatch({
856
+ type: 'setActiveItemIndex',
857
+ payload: nextActiveItemIndex
858
+ });
859
+ }, [state.activeItemIndex]);
860
+ const handleToggleMenu = react.useCallback(() => {
861
+ if (state.isMenuOpen && state.activeItemIndex) {
862
+ dispatch({
863
+ type: 'unsetActiveItemIndex'
864
+ });
865
+ }
866
+ dispatch({
867
+ type: 'toggleIsMenuOpen'
868
+ });
869
+ // Synchronize the menu state with local storage.
870
+ window.localStorage.setItem(constants.STORAGE_KEYS.IS_FORCED_MENU_OPEN, String(!state.isMenuOpen));
871
+ }, [state.activeItemIndex, state.isMenuOpen]);
872
+ const allApplicationsNavbarMenuGroups = _sortInstanceProperty__default["default"](_context4 = _mapInstanceProperty__default["default"](_context5 = applicationsNavBarMenuGroups || []).call(_context5, navbarMenuGroup => navbarMenuGroup.key === '2' && allCustomApplicationsNavbarMenu.length > 0 ? {
873
+ key: navbarMenuGroup.key,
874
+ items: [...navbarMenuGroup.items, ...allCustomApplicationsNavbarMenu]
875
+ } : navbarMenuGroup)).call(_context4, (navBarMenuGroupA, navBarMenuGroupB) => Number(navBarMenuGroupA === null || navBarMenuGroupA === void 0 ? void 0 : navBarMenuGroupA.key) - Number(navBarMenuGroupB === null || navBarMenuGroupB === void 0 ? void 0 : navBarMenuGroupB.key));
876
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
877
+ navBarNode,
878
+ handleToggleItem,
879
+ handleToggleMenu,
880
+ shouldCloseMenuFly,
881
+ allApplicationsNavbarMenuGroups
882
+ });
883
+ };
884
+
885
+ function ownKeys(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
886
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context10, _context11; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context10 = ownKeys(Object(t), !0)).call(_context10, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context11 = ownKeys(Object(t))).call(_context11, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
887
+ const compiledStyles = {
888
+ "global": ":root {\n\n /* Left navigation */\n}\n\n@keyframes navbar-mod__visible___AKV1b {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n/* Left Nav */\n\n.navbar-mod__left-navigation___n7yUt {\n display: grid;\n width: 80px;\n background: var(--color-primary);\n height: 100%;\n grid-template-rows: 56px 1fr;\n transition: all 150ms cubic-bezier(1, 0, 0.58, 1);\n}\n\n.navbar-mod__navigation-header___Z6fOr {\n background-color: var(--color-accent-10);\n color: var(--color-surface);\n display: flex;\n justify-content: center;\n flex-direction: row;\n align-items: center;\n padding: var(--spacing-30);\n}\n\n.navbar-mod__navigation-header___Z6fOr .navbar-mod__icon-container___w3FtA {\n width: auto;\n display: flex;\n justify-content: center;\n}\n\n.navbar-mod__navigation-header___Z6fOr .navbar-mod__title___eRWUj {\n font-weight: 600;\n margin-left: var(--spacing-20);\n transition: all 150ms cubic-bezier(1, 0, 0.58, 1);\n animation: navbar-mod__visible___AKV1b 150ms cubic-bezier(1, 0, 0.58, 1);\n}\n\n.navbar-mod__navigation-header___Z6fOr .navbar-mod__icon___bLsep {\n width: 24px;\n height: 24px;\n}\n\n.navbar-mod__list___RCV3J {\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n min-height: 0;\n flex: 1 1 0;\n}\n\n.navbar-mod__list-item___MjK6t {\n min-height: 48px;\n background: var(--color-primary);\n margin: 0;\n list-style: none;\n cursor: pointer;\n}\n\n.navbar-mod__item-link___X2Ina {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link);\n width: 48px;\n position: relative;\n display: block;\n}\n\n.body__menu-open .navbar-mod__item-link___X2Ina {\n width: 100%;\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__item-icon-text___a-8JY {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__icon___bLsep {\n width: 24px;\n height: 24px;\n transition: all 150ms cubic-bezier(1, 0, 0.58, 1);\n}\n\n.navbar-mod__list-item___MjK6t:hover .navbar-mod__icon___bLsep,\n.navbar-mod__list-item___MjK6t:focus-within .navbar-mod__icon___bLsep {\n /* 1.16 is roughly the ratio of icon-size-hover to --icon-size */\n transform: scale(1.2);\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__icon___bLsep > svg *:not([fill='none']) {\n fill: var(--color-surface);\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__title___eRWUj {\n flex: 1;\n font-weight: 600;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n line-height: var(--line-height-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link);\n opacity: 0;\n transition: all 150ms cubic-bezier(1, 0, 0.58, 1);\n text-align: left;\n text-decoration: none;\n z-index: 1;\n}\n\n.navbar-mod__expander___jyAUi {\n display: flex;\n align-items: center;\n justify-content: center;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background: linear-gradient(\n 180deg,\n var(--color-primary) 0%,\n var(--color-primary-25) 100%\n );\n padding: var(--spacing-30) var(--spacing-25);\n}\n\n.navbar-mod__expander___jyAUi:hover,\n.navbar-mod__expander___jyAUi:focus {\n background-color: var(--color-primary-40);\n}\n\n/* divider */\n\n.navbar-mod__expander___jyAUi::before {\n content: '';\n position: absolute;\n top: 56px;\n height: 1px;\n background: rgba(255, 255, 255, 0.5);\n width: calc(100% - 2 * var(--spacing-30));\n}\n\n.navbar-mod__expand-icon___BtmRa {\n height: 40px;\n width: 40px;\n border-radius: var(--border-radius-4);\n padding: var(--spacing-20);\n background: rgba(255, 255, 255, 0.2);\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.navbar-mod__expand-icon___BtmRa:hover,\n.navbar-mod__expand-icon___BtmRa:focus {\n background: rgba(255, 255, 255, 0.3);\n cursor: pointer;\n}\n\n.navbar-mod__item--bottom___eW7nh {\n position: absolute;\n bottom: 50px;\n}\n\n.navbar-mod__list-item___MjK6t:not(.navbar-mod__item_menu__active___5xFRw):hover,\n.navbar-mod__list-item___MjK6t:not(.navbar-mod__item_menu__active___5xFRw):focus-within {\n background-color: var(--color-primary-40);\n border-radius: var(--border-radius-8);\n}\n\n.navbar-mod__item_menu-open___zk0zh {\n height: auto !important;\n}\n\n.navbar-mod__item_menu-collapsed___cluyY .navbar-mod__item-link___X2Ina {\n text-align: center;\n}\n\n.body__menu-open .navbar-mod__left-navigation___n7yUt {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n box-shadow: var(--shadow-for-navbar);\n transition: all 150ms cubic-bezier(1, 0, 0.58, 1);\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t {\n height: auto;\n min-height: 48px;\n width: 100%;\n}\n\n.body__menu-open .navbar-mod__left-navigation___n7yUt {\n width: 256px;\n transition: all 150ms cubic-bezier(1, 0, 0.58, 1);\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t .navbar-mod__title___eRWUj {\n opacity: 1;\n margin-left: var(--spacing-25);\n color: var(--color-surface);\n transition: all 150ms cubic-bezier(1, 0, 0.58, 1);\n animation: navbar-mod__visible___AKV1b 150ms cubic-bezier(1, 0, 0.58, 1);\n}\n\n.navbar-mod__list-item___MjK6t:hover .navbar-mod__title___eRWUj,\n.navbar-mod__list-item___MjK6t:focus-within .navbar-mod__title___eRWUj {\n margin-left: calc(var(--spacing-25) + 2px);\n}\n\n.navbar-mod__list-item___MjK6t:not(.navbar-mod__item__active___lo1sr):hover .navbar-mod__icon___bLsep > svg *:not([fill='none']),\n.navbar-mod__list-item___MjK6t:not(.navbar-mod__item__active___lo1sr):focus-within .navbar-mod__icon___bLsep > svg *:not([fill='none']) {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n fill: var(--color-for-navbar-icon-when-active);\n}\n\n.navbar-mod__list-item___MjK6t:not(.navbar-mod__item__active___lo1sr):hover .navbar-mod__title___eRWUj,\n.navbar-mod__list-item___MjK6t:not(.navbar-mod__item__active___lo1sr):focus-within .navbar-mod__title___eRWUj {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link-when-hovered);\n}\n\n.body__menu-open .navbar-mod__item__active___lo1sr {\n max-height: 500px;\n transition: max-height 0.25s ease-in;\n}\n\n/* Second level menu */\n\n.navbar-mod__sublist___os1s7 {\n padding: var(--spacing-30);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background-color: var(--background-color-for-navbar);\n left: 72px;\n z-index: -1;\n list-style: none;\n position: fixed;\n display: none;\n}\n\n/* This pseudo-element is required to enable smooth coursor movement from the main menu item to submenu items with the gap in between */\n\n.navbar-mod__sublist-expanded__active___240JK::before,\n.navbar-mod__sublist-collapsed__active___-9vYh::before,\n.navbar-mod__sublist-collapsed__active__above___BXCeM::before {\n content: '';\n position: absolute;\n display: block;\n width: calc(253px + var(--spacing-20));\n height: 48px;\n left: calc(-1 * var(--spacing-20));\n}\n\n.navbar-mod__sublist__inactive___kJvf- {\n /* empty block */\n}\n\n.navbar-mod__sublist-item___gafkS {\n display: flex;\n align-items: center;\n align-self: stretch;\n}\n\n.navbar-mod__sublist-item__active___QC6pa {\n border-radius: var(--border-radius-4);\n background: var(--color-accent-30);\n}\n\n.navbar-mod__sublist-item___gafkS:not(.navbar-mod__sublist-item__active___QC6pa):hover,\n.navbar-mod__sublist-item___gafkS:not(.navbar-mod__sublist-item__active___QC6pa):focus-within {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link-when-hovered);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link-when-hovered);\n border-radius: var(--border-radius-4);\n background: var(--color-primary-95);\n}\n\n.navbar-mod__text___ccHEu {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n line-height: var(--line-height-for-navbar-link);\n width: 100%;\n height: 100%;\n}\n\n.navbar-mod__text-link___dhtj6 {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link);\n text-decoration: none;\n display: flex;\n padding: var(--spacing-25);\n align-items: center;\n justify-content: center;\n}\n\n.body__menu-open .navbar-mod__text-link___dhtj6 {\n justify-content: start;\n}\n\n.navbar-mod__text-link-sublist-wrapper___1JN4x {\n display: flex;\n flex-direction: column;\n position: relative;\n min-height: 0;\n}\n\n.navbar-mod__text-link-sublist___AoIpU {\n /* stylelint-disable-next-line value-no-vendor-prefix */\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n color: var(--color-solid);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link-when-hovered);\n text-decoration: none;\n flex: 1;\n padding: var(--spacing-25) var(--spacing-25) var(--spacing-25)\n var(--spacing-30);\n transition: padding 150ms ease-out;\n}\n\n.navbar-mod__sublist-item___gafkS:not(.navbar-mod__sublist-item__active___QC6pa):hover .navbar-mod__text-link-sublist___AoIpU,\n.navbar-mod__sublist-item___gafkS:not(.navbar-mod__sublist-item__active___QC6pa):focus-within .navbar-mod__text-link-sublist___AoIpU {\n /* additional left padding on hover and focus */\n padding: var(--spacing-25) var(--spacing-25) var(--spacing-25)\n calc(var(--spacing-30) + var(--spacing-20));\n}\n\n.navbar-mod__navlink-clickable-content___bzddC {\n height: 100%;\n width: 100%;\n}\n\n/* Item active */\n\n.navbar-mod__item__active___lo1sr,\n.navbar-mod__item_menu__active___5xFRw,\n.navbar-mod__item_menu__active___5xFRw:focus-within .navbar-mod__list-item___MjK6t {\n background: var(--color-accent-30);\n border-radius: var(--border-radius-8);\n}\n\n.navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY {\n justify-content: flex-start;\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__icon-container___w3FtA {\n width: auto;\n display: flex;\n justify-content: center;\n align-self: flex-start;\n}\n\n.navbar-mod__fixed-menu___42tD9 .navbar-mod__list-item___MjK6t .navbar-mod__item-icon-text___a-8JY {\n justify-content: center;\n display: flex;\n width: 100%;\n}\n\n.navbar-mod__support-menu___fi5Ka {\n padding: var(--spacing-10) var(--spacing-30) var(--spacing-20)\n var(--spacing-30);\n height: calc(48px + var(--spacing-20));\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY {\n position: relative;\n width: auto;\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY {\n margin-left: 0;\n}\n\n.navbar-mod__tooltip-container___iJYyi {\n position: absolute;\n left: 0;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n height: 48px;\n visibility: visible;\n}\n\n.navbar-mod__tooltip___1ID3j {\n padding: var(--spacing-10) calc(var(--spacing-20) + var(--spacing-10));\n /* stylelint-disable-next-line value-no-vendor-prefix */\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n border-radius: var(--border-radius-4);\n background: var(--color-accent-10);\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.25);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n line-height: var(--line-height-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link);\n color: var(--color-surface);\n max-height: 48px;\n visibility: inherit;\n}\n\n.navbar-mod__sublist-expanded__active___240JK,\n.navbar-mod__sublist-collapsed__active___-9vYh,\n.navbar-mod__sublist-collapsed__active__above___BXCeM {\n opacity: 1;\n display: none;\n text-align: left;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background-color: var(--background-color-for-navbar-when-active);\n}\n\n.navbar-mod__item-link___X2Ina:hover .navbar-mod__sublist-collapsed__active___-9vYh,\n.navbar-mod__item-link___X2Ina:hover .navbar-mod__sublist-collapsed__active__above___BXCeM,\n.navbar-mod__item-link___X2Ina:hover .navbar-mod__sublist-expanded__active___240JK,\n.navbar-mod__item-link___X2Ina:focus-within .navbar-mod__sublist-collapsed__active___-9vYh,\n.navbar-mod__item-link___X2Ina:focus-within .navbar-mod__sublist-collapsed__active__above___BXCeM,\n.navbar-mod__item-link___X2Ina:focus-within .navbar-mod__sublist-expanded__active___240JK {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background-color: var(--color-surface);\n /* TODO: add design tokens instead hard-coded values */\n min-height: 50px;\n width: 253px;\n border-radius: var(--border-radius-8);\n /* z-index value must be higher than AppBar's z-index */\n z-index: 20001;\n box-shadow: -2px 4px 25px 0 rgba(89, 89, 89, 0.5);\n}\n\n.navbar-mod__item-link___X2Ina:hover .navbar-mod__sublist-collapsed__active___-9vYh.navbar-mod__sublist-collapsed__empty___FBUli,\n.navbar-mod__item-link___X2Ina:hover .navbar-mod__sublist-collapsed__active__above___BXCeM.navbar-mod__sublist-collapsed__empty___FBUli,\n.navbar-mod__item-link___X2Ina:focus-within .navbar-mod__sublist-collapsed__active___-9vYh.navbar-mod__sublist-collapsed__empty___FBUli,\n.navbar-mod__item-link___X2Ina:focus-within\n .navbar-mod__sublist-collapsed__active__above___BXCeM.navbar-mod__sublist-collapsed__empty___FBUli {\n visibility: hidden;\n}\n\n.navbar-mod__item-link___X2Ina:hover .navbar-mod__sublist-expanded__active___240JK,\n.navbar-mod__item-link___X2Ina:focus-within .navbar-mod__sublist-expanded__active___240JK {\n left: 248px;\n}\n\n.navbar-mod__highlighted___oJWkA,\n.navbar-mod__highlighted___oJWkA .navbar-mod__title___eRWUj {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link-when-active) !important;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link-when-active);\n}\n\n.navbar-mod__hidden___TQLSs {\n display: none;\n}\n\n.navbar-mod__divider___TpVzu {\n border-top: 1px solid var(--color-neutral-40);\n}\n\n.navbar-mod__loading-dot-container___G2LVb {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.navbar-mod__scrollable-menu___64pxJ {\n flex: 1 1 0;\n overflow-x: hidden;\n overflow-y: hidden;\n padding: var(--spacing-30) var(--spacing-30) 48px;\n width: 80px;\n box-sizing: border-box;\n /* For Firefox */\n scrollbar-width: thin;\n scrollbar-color: var(--color-primary-40) transparent;\n}\n\n.body__menu-open .navbar-mod__scrollable-menu___64pxJ {\n width: 256px;\n}\n\n.navbar-mod__scrollable-menu___64pxJ:hover {\n overflow-y: scroll;\n padding-right: 8px;\n}\n\n.navbar-mod__scrollable-menu___64pxJ::-webkit-scrollbar {\n width: 8px;\n}\n\n.navbar-mod__scrollable-menu___64pxJ::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.navbar-mod__scrollable-menu___64pxJ::-webkit-scrollbar-thumb {\n background-color: var(--color-primary-40);\n border-radius: var(--border-radius-8);\n}\n\n.navbar-mod__fixed-menu___42tD9 {\n position: relative;\n width: 80px;\n}\n\n.body__menu-open .navbar-mod__fixed-menu___42tD9 {\n width: 256px;\n}\n",
889
+ "jsonMap": {
890
+ "left-navigation": "navbar-mod__left-navigation___n7yUt",
891
+ "navigation-header": "navbar-mod__navigation-header___Z6fOr",
892
+ "icon-container": "navbar-mod__icon-container___w3FtA",
893
+ "title": "navbar-mod__title___eRWUj",
894
+ "visible": "navbar-mod__visible___AKV1b",
895
+ "icon": "navbar-mod__icon___bLsep",
896
+ "list": "navbar-mod__list___RCV3J",
897
+ "list-item": "navbar-mod__list-item___MjK6t",
898
+ "item-link": "navbar-mod__item-link___X2Ina",
899
+ "item-icon-text": "navbar-mod__item-icon-text___a-8JY",
900
+ "expander": "navbar-mod__expander___jyAUi",
901
+ "expand-icon": "navbar-mod__expand-icon___BtmRa",
902
+ "item--bottom": "navbar-mod__item--bottom___eW7nh",
903
+ "item_menu__active": "navbar-mod__item_menu__active___5xFRw",
904
+ "item_menu-open": "navbar-mod__item_menu-open___zk0zh",
905
+ "item_menu-collapsed": "navbar-mod__item_menu-collapsed___cluyY",
906
+ "item__active": "navbar-mod__item__active___lo1sr",
907
+ "sublist": "navbar-mod__sublist___os1s7",
908
+ "sublist-expanded__active": "navbar-mod__sublist-expanded__active___240JK",
909
+ "sublist-collapsed__active": "navbar-mod__sublist-collapsed__active___-9vYh",
910
+ "sublist-collapsed__active__above": "navbar-mod__sublist-collapsed__active__above___BXCeM",
911
+ "sublist__inactive": "navbar-mod__sublist__inactive___kJvf-",
912
+ "sublist-item": "navbar-mod__sublist-item___gafkS",
913
+ "sublist-item__active": "navbar-mod__sublist-item__active___QC6pa",
914
+ "text": "navbar-mod__text___ccHEu",
915
+ "text-link": "navbar-mod__text-link___dhtj6",
916
+ "text-link-sublist-wrapper": "navbar-mod__text-link-sublist-wrapper___1JN4x",
917
+ "text-link-sublist": "navbar-mod__text-link-sublist___AoIpU",
918
+ "navlink-clickable-content": "navbar-mod__navlink-clickable-content___bzddC",
919
+ "fixed-menu": "navbar-mod__fixed-menu___42tD9",
920
+ "support-menu": "navbar-mod__support-menu___fi5Ka",
921
+ "tooltip-container": "navbar-mod__tooltip-container___iJYyi",
922
+ "tooltip": "navbar-mod__tooltip___1ID3j",
923
+ "sublist-collapsed__empty": "navbar-mod__sublist-collapsed__empty___FBUli",
924
+ "highlighted": "navbar-mod__highlighted___oJWkA",
925
+ "hidden": "navbar-mod__hidden___TQLSs",
926
+ "divider": "navbar-mod__divider___TpVzu",
927
+ "loading-dot-container": "navbar-mod__loading-dot-container___G2LVb",
928
+ "scrollable-menu": "navbar-mod__scrollable-menu___64pxJ"
929
+ }
930
+ }; // https://babeljs.io/blog/2017/09/11/zero-config-with-babel-macros
931
+ const styles = compiledStyles.jsonMap;
932
+ const getMenuVisibilitiesOfSubmenus = menu => {
933
+ var _context, _context2;
934
+ return _filterInstanceProperty__default["default"](_context = _mapInstanceProperty__default["default"](_context2 = menu.submenu).call(_context2, submenu => submenu.menuVisibility)).call(_context, nonNullable);
935
+ };
936
+ const getMenuVisibilityOfMainmenu = menu => menu.menuVisibility ? [menu.menuVisibility] : [];
937
+ const getIsSubmenuRouteActive = (uriPath, props) => {
938
+ var _context3;
939
+ return Boolean(reactRouterDom.matchPath(props.location.pathname, {
940
+ path: _concatInstanceProperty__default["default"](_context3 = "/".concat(props.projectKey, "/")).call(_context3, uriPath),
941
+ exact: true,
942
+ strict: false
943
+ }));
944
+ };
945
+ const ApplicationMenu = props => {
946
+ var _context4, _props$menu$featureTo, _props$menu$actionRig, _props$menu$dataFence, _context5, _context6;
947
+ const _useState = react.useState(0),
948
+ _useState2 = _slicedToArray(_useState, 2),
949
+ submenuVerticalPosition = _useState2[0],
950
+ setSubmenuVerticalPosition = _useState2[1];
951
+ const _useState3 = react.useState(false),
952
+ _useState4 = _slicedToArray(_useState3, 2),
953
+ isSubmenuAboveMenuItem = _useState4[0],
954
+ setIsSubmenuAboveMenuItem = _useState4[1];
955
+ const submenuRef = react.useRef(null);
956
+ const hasSubmenu = _Array$isArray__default["default"](props.menu.submenu) && props.menu.submenu.length > 0;
957
+ const menuItemIdentifier = snakeCase__default["default"](props.menu.key);
958
+ const callbackFn = react.useCallback(entries => {
959
+ var _document$querySelect;
960
+ const menuItemBoundingClientRect = (_document$querySelect = document.querySelector("[data-menuitem=\"".concat(menuItemIdentifier, "\"]"))) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.getBoundingClientRect();
961
+ const menuItemTop = (menuItemBoundingClientRect === null || menuItemBoundingClientRect === void 0 ? void 0 : menuItemBoundingClientRect.top) || 0;
962
+ const menuItemBottom = (menuItemBoundingClientRect === null || menuItemBoundingClientRect === void 0 ? void 0 : menuItemBoundingClientRect.bottom) || 0;
963
+ const _entries = _slicedToArray(entries, 1),
964
+ entry = _entries[0];
965
+ const doesSubmenuFitWithinViewportBelowMenuItem = entry.boundingClientRect.height + (props.isMenuOpen ? menuItemTop : menuItemBottom) > window.innerHeight;
966
+ // if the submenu does not fit at the bottom of the viewport (below the menu item)
967
+ if (doesSubmenuFitWithinViewportBelowMenuItem) {
968
+ setIsSubmenuAboveMenuItem(true);
969
+ setSubmenuVerticalPosition(window.innerHeight - (props.isMenuOpen ? menuItemBottom : menuItemTop));
970
+ // show the submenu above the menu item
971
+ } else {
972
+ setIsSubmenuAboveMenuItem(false);
973
+ setSubmenuVerticalPosition(props.isMenuOpen ? menuItemTop : menuItemBottom);
974
+ }
975
+ }, [menuItemIdentifier, props.isMenuOpen]);
976
+ const observerRef = react.useRef(null);
977
+ react.useLayoutEffect(() => {
978
+ observerRef.current = new IntersectionObserver(callbackFn, {
979
+ rootMargin: '-100% 0px 0px 0px' // we want to observe if the submenu crosses the bottom line of the viewport - therefore we set the root element top margin to -100% of the viewport height
980
+ });
981
+
982
+ return () => {
983
+ var _observerRef$current;
984
+ return (_observerRef$current = observerRef.current) === null || _observerRef$current === void 0 ? void 0 : _observerRef$current.disconnect();
985
+ };
986
+ }, [callbackFn, props.isMenuOpen]);
987
+ react.useLayoutEffect(() => {
988
+ const currentSubmenuRef = submenuRef.current;
989
+ const observer = observerRef.current;
990
+ if (!currentSubmenuRef) return;
991
+ if (observer && currentSubmenuRef) {
992
+ observer.observe(currentSubmenuRef);
993
+ }
994
+ return () => observer === null || observer === void 0 ? void 0 : observer.disconnect();
995
+ }, [menuItemIdentifier, props.isMenuOpen, props.handleToggleItem, callbackFn]);
996
+ const isMainMenuRouteActive = Boolean(reactRouterDom.matchPath(props.location.pathname, {
997
+ path: _concatInstanceProperty__default["default"](_context4 = "/".concat(props.projectKey, "/")).call(_context4, props.menu.uriPath),
998
+ exact: false,
999
+ strict: false
1000
+ }));
1001
+ react.useEffect(() => {
1002
+ // On first render, check which menu is active for the current application and expand
1003
+ // the submenu automatically unless the all navbar is collapsed or there are no submenu links.
1004
+ if (props.isMenuOpen && isMainMenuRouteActive && hasSubmenu) {
1005
+ props.handleToggleItem();
1006
+ }
1007
+ // eslint-disable-next-line react-hooks/exhaustive-deps
1008
+ }, [props.isMenuOpen]); // <-- (re)run this only when the all menu expands
1009
+
1010
+ const namesOfMenuVisibilitiesOfAllSubmenus = hasSubmenu ? getMenuVisibilitiesOfSubmenus(props.menu) : getMenuVisibilityOfMainmenu(props.menu);
1011
+ return jsxRuntime.jsx(RestrictedMenuItem, {
1012
+ keyOfMenuItem: props.menu.key,
1013
+ featureToggle: (_props$menu$featureTo = props.menu.featureToggle) !== null && _props$menu$featureTo !== void 0 ? _props$menu$featureTo : undefined,
1014
+ permissions: props.menu.permissions,
1015
+ actionRights: (_props$menu$actionRig = props.menu.actionRights) !== null && _props$menu$actionRig !== void 0 ? _props$menu$actionRig : undefined,
1016
+ dataFences: (_props$menu$dataFence = props.menu.dataFences) !== null && _props$menu$dataFence !== void 0 ? _props$menu$dataFence : undefined,
1017
+ projectPermissions: props.projectPermissions,
1018
+ menuVisibilities: props.menuVisibilities,
1019
+ namesOfMenuVisibilities: namesOfMenuVisibilitiesOfAllSubmenus,
1020
+ children: jsxRuntime.jsxs(MenuItem$1, {
1021
+ hasSubmenu: hasSubmenu,
1022
+ isActive: props.isActive,
1023
+ isMainMenuRouteActive: isMainMenuRouteActive,
1024
+ isMenuOpen: props.isMenuOpen,
1025
+ onClick: props.handleToggleItem,
1026
+ onMouseEnter: props.handleToggleItem,
1027
+ onMouseLeave: props.shouldCloseMenuFly,
1028
+ identifier: menuItemIdentifier,
1029
+ children: [jsxRuntime.jsx(MenuItemLink, {
1030
+ linkTo: _concatInstanceProperty__default["default"](_context5 = "/".concat(props.projectKey, "/")).call(_context5, props.menu.uriPath),
1031
+ useFullRedirectsForLinks: props.useFullRedirectsForLinks,
1032
+ onClick: props.onMenuItemClick,
1033
+ children: jsxRuntime.jsx(ItemContainer, {
1034
+ labelAllLocales: props.menu.labelAllLocales,
1035
+ defaultLabel: props.menu.defaultLabel,
1036
+ applicationLocale: props.applicationLocale,
1037
+ icon: props.menu.icon,
1038
+ isMenuOpen: props.isMenuOpen
1039
+ })
1040
+ }), jsxRuntime.jsxs(MenuGroup, {
1041
+ id: "group-".concat(props.menu.key),
1042
+ level: 2,
1043
+ isActive: props.isActive,
1044
+ isExpanded: props.isMenuOpen,
1045
+ hasSubmenu: hasSubmenu,
1046
+ submenuVerticalPosition: submenuVerticalPosition,
1047
+ isSubmenuAboveMenuItem: isSubmenuAboveMenuItem,
1048
+ ref: submenuRef,
1049
+ children: [!props.isMenuOpen && jsxRuntime.jsx("div", {
1050
+ className: styles['tooltip-container'],
1051
+ css: /*#__PURE__*/react$1.css(isSubmenuAboveMenuItem ? 'bottom' : 'top', ":-", oidc.DIMENSIONS.navMenuItemHeight, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:ApplicationMenu;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5hdmJhci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBK09zQiIsImZpbGUiOiJuYXZiYXIudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBNb3VzZUV2ZW50SGFuZGxlcixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTGF5b3V0RWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbiAgdXNlUmVmLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBzbmFrZUNhc2UgZnJvbSAnbG9kYXNoL3NuYWtlQ2FzZSc7XG5pbXBvcnQgeyBGb3JtYXR0ZWRNZXNzYWdlIH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQgeyBtYXRjaFBhdGgsIHVzZUxvY2F0aW9uIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgdHlwZSB7IFJvdXRlQ29tcG9uZW50UHJvcHMgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIG5vcm1hbGl6ZUFsbEFwcGxpZWRBY3Rpb25SaWdodHMsXG4gIG5vcm1hbGl6ZUFsbEFwcGxpZWREYXRhRmVuY2VzLFxuICBub3JtYWxpemVBbGxBcHBsaWVkTWVudVZpc2liaWxpdGllcyxcbiAgbm9ybWFsaXplQWxsQXBwbGllZFBlcm1pc3Npb25zLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1zaGVsbC1jb25uZWN0b3JzJztcbmltcG9ydCB0eXBlIHtcbiAgVEFwcGxpY2F0aW9uQ29udGV4dCxcbiAgVE5vcm1hbGl6ZWRNZW51VmlzaWJpbGl0aWVzLFxuICBUTm9ybWFsaXplZFBlcm1pc3Npb25zLFxuICBUTm9ybWFsaXplZEFjdGlvblJpZ2h0cyxcbiAgVE5vcm1hbGl6ZWREYXRhRmVuY2VzLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1zaGVsbC1jb25uZWN0b3JzJztcbmltcG9ydCBMb2dvU1ZHIGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2Fzc2V0cy9sb2dvcy9jb21tZXJjZXRvb2xzX3NtYWxsLWxvZ28uc3ZnJztcbmltcG9ydCB7IFNVUFBPUlRfUE9SVEFMX1VSTCB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBTdXBwb3J0SWNvbiB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2ljb25zJztcbmltcG9ydCBTcGFjaW5ncyBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9zcGFjaW5ncyc7XG5pbXBvcnQgeyBESU1FTlNJT05TIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB0eXBlIHsgVEZldGNoUHJvamVjdFF1ZXJ5IH0gZnJvbSAnLi4vLi4vdHlwZXMvZ2VuZXJhdGVkL21jJztcbmltcG9ydCB0eXBlIHsgVE5hdmJhck1lbnUsIFRCYXNlTWVudSB9IGZyb20gJy4uLy4uL3R5cGVzL2dlbmVyYXRlZC9wcm94eSc7XG5pbXBvcnQge1xuICB0eXBlIE1lbnVJdGVtTGlua1Byb3BzLFxuICBSZXN0cmljdGVkTWVudUl0ZW0sXG4gIE1lbnVJdGVtLFxuICBNZW51SXRlbUxpbmssXG4gIE1lbnVHcm91cCxcbiAgTWVudUxhYmVsLFxuICBJdGVtQ29udGFpbmVyLFxuICBGYWRlZCxcbiAgTWVudUV4cGFuZGVyLFxuICBOYXZCYXJMYXlvdXQsXG59IGZyb20gJy4vbWVudS1pdGVtcyc7XG5pbXBvcnQgbWVzc2FnZXMgZnJvbSAnLi9tZXNzYWdlcyc7XG5pbXBvcnQgTmF2QmFyU2tlbGV0b24gZnJvbSAnLi9uYXZiYXItc2tlbGV0b24nO1xuaW1wb3J0IGNvbXBpbGVkU3R5bGVzIGZyb20gLyogcHJldmFsICovICcuL25hdmJhci5zdHlsZXMnO1xuXG4vLyBodHRwczovL2JhYmVsanMuaW8vYmxvZy8yMDE3LzA5LzExL3plcm8tY29uZmlnLXdpdGgtYmFiZWwtbWFjcm9zXG5pbXBvcnQgbm9uTnVsbGFibGUgZnJvbSAnLi9ub24tbnVsbGFibGUnO1xuaW1wb3J0IHVzZU5hdmJhclN0YXRlTWFuYWdlciBmcm9tICcuL3VzZS1uYXZiYXItc3RhdGUtbWFuYWdlcic7XG5cbmNvbnN0IHN0eWxlcyA9IGNvbXBpbGVkU3R5bGVzLmpzb25NYXA7XG5cbnR5cGUgVFByb2plY3RQZXJtaXNzaW9ucyA9IHtcbiAgcGVybWlzc2lvbnM6IFROb3JtYWxpemVkUGVybWlzc2lvbnMgfCBudWxsO1xuICBhY3Rpb25SaWdodHM6IFROb3JtYWxpemVkQWN0aW9uUmlnaHRzIHwgbnVsbDtcbiAgZGF0YUZlbmNlczogVE5vcm1hbGl6ZWREYXRhRmVuY2VzIHwgbnVsbDtcbn07XG5cbnR5cGUgVE1lbnVXaXRoRGVmYXVsdExhYmVsID0gVE5hdmJhck1lbnUgJiB7XG4gIC8vIGRlcml2ZXMgZnJvbSBgcHJvamVjdEV4dGVuc2lvbnNRdWVyeS5pbnN0YWxsZWRBcHBsaWNhdGlvbnMuYXBwbGljYXRpb24ubWFpbk1lbnVMaW5rYFxuICBkZWZhdWx0TGFiZWw/OiBzdHJpbmc7XG59O1xudHlwZSBUU3VibWVudVdpdGhEZWZhdWx0TGFiZWwgPSBUQmFzZU1lbnUgJiB7XG4gIC8vIGRlcml2ZXMgZnJvbSBgcHJvamVjdEV4dGVuc2lvbnNRdWVyeS5pbnN0YWxsZWRBcHBsaWNhdGlvbnMuYXBwbGljYXRpb24ubWFpbk1lbnVMaW5rYFxuICBkZWZhdWx0TGFiZWw/OiBzdHJpbmc7XG59O1xuXG50eXBlIEFwcGxpY2F0aW9uTWVudVByb3BzID0ge1xuICBsb2NhdGlvbjogUm91dGVDb21wb25lbnRQcm9wc1snbG9jYXRpb24nXTtcbiAgbWVudTogVE1lbnVXaXRoRGVmYXVsdExhYmVsO1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgaXNNZW51T3BlbjogYm9vbGVhbjtcbiAgc2hvdWxkQ2xvc2VNZW51Rmx5OiBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD47XG4gIHByb2plY3RQZXJtaXNzaW9uczogVFByb2plY3RQZXJtaXNzaW9ucztcbiAgbWVudVZpc2liaWxpdGllczogVE5vcm1hbGl6ZWRNZW51VmlzaWJpbGl0aWVzIHwgbnVsbDtcbiAgaGFuZGxlVG9nZ2xlSXRlbTogKCkgPT4gdm9pZDtcbiAgYXBwbGljYXRpb25Mb2NhbGU6IHN0cmluZztcbiAgcHJvamVjdEtleTogc3RyaW5nO1xuICB1c2VGdWxsUmVkaXJlY3RzRm9yTGlua3M6IGJvb2xlYW47XG4gIG9uTWVudUl0ZW1DbGljaz86IE1lbnVJdGVtTGlua1Byb3BzWydvbkNsaWNrJ107XG59O1xuXG5jb25zdCBnZXRNZW51VmlzaWJpbGl0aWVzT2ZTdWJtZW51cyA9IChtZW51OiBUTmF2YmFyTWVudSkgPT5cbiAgbWVudS5zdWJtZW51Lm1hcCgoc3VibWVudSkgPT4gc3VibWVudS5tZW51VmlzaWJpbGl0eSkuZmlsdGVyKG5vbk51bGxhYmxlKTtcbmNvbnN0IGdldE1lbnVWaXNpYmlsaXR5T2ZNYWlubWVudSA9IChtZW51OiBUTmF2YmFyTWVudSkgPT5cbiAgbWVudS5tZW51VmlzaWJpbGl0eSA/IFttZW51Lm1lbnVWaXNpYmlsaXR5XSA6IFtdO1xuXG5jb25zdCBnZXRJc1N1Ym1lbnVSb3V0ZUFjdGl2ZSA9IChcbiAgdXJpUGF0aDogQXBwbGljYXRpb25NZW51UHJvcHNbJ21lbnUnXVsnc3VibWVudSddW251bWJlcl1bJ3VyaVBhdGgnXSxcbiAgcHJvcHM6IEFwcGxpY2F0aW9uTWVudVByb3BzXG4pID0+XG4gIEJvb2xlYW4oXG4gICAgbWF0Y2hQYXRoKHByb3BzLmxvY2F0aW9uLnBhdGhuYW1lLCB7XG4gICAgICBwYXRoOiBgLyR7cHJvcHMucHJvamVjdEtleX0vJHt1cmlQYXRofWAsXG4gICAgICBleGFjdDogdHJ1ZSxcbiAgICAgIHN0cmljdDogZmFsc2UsXG4gICAgfSlcbiAgKTtcblxuZXhwb3J0IGNvbnN0IEFwcGxpY2F0aW9uTWVudSA9IChwcm9wczogQXBwbGljYXRpb25NZW51UHJvcHMpID0+IHtcbiAgY29uc3QgW3N1Ym1lbnVWZXJ0aWNhbFBvc2l0aW9uLCBzZXRTdWJtZW51VmVydGljYWxQb3NpdGlvbl0gPSB1c2VTdGF0ZSgwKTtcbiAgY29uc3QgW2lzU3VibWVudUFib3ZlTWVudUl0ZW0sIHNldElzU3VibWVudUFib3ZlTWVudUl0ZW1dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBzdWJtZW51UmVmID0gdXNlUmVmPEhUTUxVTGlzdEVsZW1lbnQ+KG51bGwpO1xuXG4gIGNvbnN0IGhhc1N1Ym1lbnUgPVxuICAgIEFycmF5LmlzQXJyYXkocHJvcHMubWVudS5zdWJtZW51KSAmJiBwcm9wcy5tZW51LnN1Ym1lbnUubGVuZ3RoID4gMDtcblxuICBjb25zdCBtZW51SXRlbUlkZW50aWZpZXIgPSBzbmFrZUNhc2UocHJvcHMubWVudS5rZXkpO1xuXG4gIGNvbnN0IGNhbGxiYWNrRm46IEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2sgPSB1c2VDYWxsYmFjayhcbiAgICAoZW50cmllcykgPT4ge1xuICAgICAgY29uc3QgbWVudUl0ZW1Cb3VuZGluZ0NsaWVudFJlY3QgPSBkb2N1bWVudFxuICAgICAgICAucXVlcnlTZWxlY3RvcihgW2RhdGEtbWVudWl0ZW09XCIke21lbnVJdGVtSWRlbnRpZmllcn1cIl1gKVxuICAgICAgICA/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgbWVudUl0ZW1Ub3AgPSBtZW51SXRlbUJvdW5kaW5nQ2xpZW50UmVjdD8udG9wIHx8IDA7XG4gICAgICBjb25zdCBtZW51SXRlbUJvdHRvbSA9IG1lbnVJdGVtQm91bmRpbmdDbGllbnRSZWN0Py5ib3R0b20gfHwgMDtcblxuICAgICAgY29uc3QgW2VudHJ5XSA9IGVudHJpZXM7XG5cbiAgICAgIGNvbnN0IGRvZXNTdWJtZW51Rml0V2l0aGluVmlld3BvcnRCZWxvd01lbnVJdGVtID1cbiAgICAgICAgZW50cnkuYm91bmRpbmdDbGllbnRSZWN0LmhlaWdodCArXG4gICAgICAgICAgKHByb3BzLmlzTWVudU9wZW4gPyBtZW51SXRlbVRvcCA6IG1lbnVJdGVtQm90dG9tKSA+XG4gICAgICAgIHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICAgIC8vIGlmIHRoZSBzdWJtZW51IGRvZXMgbm90IGZpdCBhdCB0aGUgYm90dG9tIG9mIHRoZSB2aWV3cG9ydCAoYmVsb3cgdGhlIG1lbnUgaXRlbSlcbiAgICAgIGlmIChkb2VzU3VibWVudUZpdFdpdGhpblZpZXdwb3J0QmVsb3dNZW51SXRlbSkge1xuICAgICAgICBzZXRJc1N1Ym1lbnVBYm92ZU1lbnVJdGVtKHRydWUpO1xuICAgICAgICBzZXRTdWJtZW51VmVydGljYWxQb3NpdGlvbihcbiAgICAgICAgICB3aW5kb3cuaW5uZXJIZWlnaHQgLSAocHJvcHMuaXNNZW51T3BlbiA/IG1lbnVJdGVtQm90dG9tIDogbWVudUl0ZW1Ub3ApXG4gICAgICAgICk7XG4gICAgICAgIC8vIHNob3cgdGhlIHN1Ym1lbnUgYWJvdmUgdGhlIG1lbnUgaXRlbVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0SXNTdWJtZW51QWJvdmVNZW51SXRlbShmYWxzZSk7XG4gICAgICAgIHNldFN1Ym1lbnVWZXJ0aWNhbFBvc2l0aW9uKFxuICAgICAgICAgIHByb3BzLmlzTWVudU9wZW4gPyBtZW51SXRlbVRvcCA6IG1lbnVJdGVtQm90dG9tXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbbWVudUl0ZW1JZGVudGlmaWVyLCBwcm9wcy5pc01lbnVPcGVuXVxuICApO1xuXG4gIGNvbnN0IG9ic2VydmVyUmVmID0gdXNlUmVmPEludGVyc2VjdGlvbk9ic2VydmVyIHwgbnVsbD4obnVsbCk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBvYnNlcnZlclJlZi5jdXJyZW50ID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGNhbGxiYWNrRm4sIHtcbiAgICAgIHJvb3RNYXJnaW46ICctMTAwJSAwcHggMHB4IDBweCcsIC8vIHdlIHdhbnQgdG8gb2JzZXJ2ZSBpZiB0aGUgc3VibWVudSBjcm9zc2VzIHRoZSBib3R0b20gbGluZSBvZiB0aGUgdmlld3BvcnQgLSB0aGVyZWZvcmUgd2Ugc2V0IHRoZSByb290IGVsZW1lbnQgdG9wIG1hcmdpbiB0byAtMTAwJSBvZiB0aGUgdmlld3BvcnQgaGVpZ2h0XG4gICAgfSk7XG4gICAgcmV0dXJuICgpID0+IG9ic2VydmVyUmVmLmN1cnJlbnQ/LmRpc2Nvbm5lY3QoKTtcbiAgfSwgW2NhbGxiYWNrRm4sIHByb3BzLmlzTWVudU9wZW5dKTtcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRTdWJtZW51UmVmID0gc3VibWVudVJlZi5jdXJyZW50O1xuICAgIGNvbnN0IG9ic2VydmVyID0gb2JzZXJ2ZXJSZWYuY3VycmVudDtcbiAgICBpZiAoIWN1cnJlbnRTdWJtZW51UmVmKSByZXR1cm47XG5cbiAgICBpZiAob2JzZXJ2ZXIgJiYgY3VycmVudFN1Ym1lbnVSZWYpIHtcbiAgICAgIG9ic2VydmVyLm9ic2VydmUoY3VycmVudFN1Ym1lbnVSZWYpO1xuICAgIH1cbiAgICByZXR1cm4gKCkgPT4gb2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgfSwgW1xuICAgIG1lbnVJdGVtSWRlbnRpZmllcixcbiAgICBwcm9wcy5pc01lbnVPcGVuLFxuICAgIHByb3BzLmhhbmRsZVRvZ2dsZUl0ZW0sXG4gICAgY2FsbGJhY2tGbixcbiAgXSk7XG5cbiAgY29uc3QgaXNNYWluTWVudVJvdXRlQWN0aXZlID0gQm9vbGVhbihcbiAgICBtYXRjaFBhdGgocHJvcHMubG9jYXRpb24ucGF0aG5hbWUsIHtcbiAgICAgIHBhdGg6IGAvJHtwcm9wcy5wcm9qZWN0S2V5fS8ke3Byb3BzLm1lbnUudXJpUGF0aH1gLFxuICAgICAgZXhhY3Q6IGZhbHNlLFxuICAgICAgc3RyaWN0OiBmYWxzZSxcbiAgICB9KVxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gT24gZmlyc3QgcmVuZGVyLCBjaGVjayB3aGljaCBtZW51IGlzIGFjdGl2ZSBmb3IgdGhlIGN1cnJlbnQgYXBwbGljYXRpb24gYW5kIGV4cGFuZFxuICAgIC8vIHRoZSBzdWJtZW51IGF1dG9tYXRpY2FsbHkgdW5sZXNzIHRoZSBhbGwgbmF2YmFyIGlzIGNvbGxhcHNlZCBvciB0aGVyZSBhcmUgbm8gc3VibWVudSBsaW5rcy5cbiAgICBpZiAocHJvcHMuaXNNZW51T3BlbiAmJiBpc01haW5NZW51Um91dGVBY3RpdmUgJiYgaGFzU3VibWVudSkge1xuICAgICAgcHJvcHMuaGFuZGxlVG9nZ2xlSXRlbSgpO1xuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gIH0sIFtwcm9wcy5pc01lbnVPcGVuXSk7IC8vIDwtLSAocmUpcnVuIHRoaXMgb25seSB3aGVuIHRoZSBhbGwgbWVudSBleHBhbmRzXG5cbiAgY29uc3QgbmFtZXNPZk1lbnVWaXNpYmlsaXRpZXNPZkFsbFN1Ym1lbnVzID0gaGFzU3VibWVudVxuICAgID8gZ2V0TWVudVZpc2liaWxpdGllc09mU3VibWVudXMocHJvcHMubWVudSlcbiAgICA6IGdldE1lbnVWaXNpYmlsaXR5T2ZNYWlubWVudShwcm9wcy5tZW51KTtcblxuICByZXR1cm4gKFxuICAgIDxSZXN0cmljdGVkTWVudUl0ZW1cbiAgICAgIGtleT17cHJvcHMubWVudS5rZXl9XG4gICAgICBrZXlPZk1lbnVJdGVtPXtwcm9wcy5tZW51LmtleX1cbiAgICAgIGZlYXR1cmVUb2dnbGU9e3Byb3BzLm1lbnUuZmVhdHVyZVRvZ2dsZSA/PyB1bmRlZmluZWR9XG4gICAgICBwZXJtaXNzaW9ucz17cHJvcHMubWVudS5wZXJtaXNzaW9uc31cbiAgICAgIGFjdGlvblJpZ2h0cz17cHJvcHMubWVudS5hY3Rpb25SaWdodHMgPz8gdW5kZWZpbmVkfVxuICAgICAgZGF0YUZlbmNlcz17cHJvcHMubWVudS5kYXRhRmVuY2VzID8/IHVuZGVmaW5lZH1cbiAgICAgIHByb2plY3RQZXJtaXNzaW9ucz17cHJvcHMucHJvamVjdFBlcm1pc3Npb25zfVxuICAgICAgbWVudVZpc2liaWxpdGllcz17cHJvcHMubWVudVZpc2liaWxpdGllc31cbiAgICAgIG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzPXtuYW1lc09mTWVudVZpc2liaWxpdGllc09mQWxsU3VibWVudXN9XG4gICAgPlxuICAgICAgPE1lbnVJdGVtXG4gICAgICAgIGhhc1N1Ym1lbnU9e2hhc1N1Ym1lbnV9XG4gICAgICAgIGlzQWN0aXZlPXtwcm9wcy5pc0FjdGl2ZX1cbiAgICAgICAgaXNNYWluTWVudVJvdXRlQWN0aXZlPXtpc01haW5NZW51Um91dGVBY3RpdmV9XG4gICAgICAgIGlzTWVudU9wZW49e3Byb3BzLmlzTWVudU9wZW59XG4gICAgICAgIG9uQ2xpY2s9e3Byb3BzLmhhbmRsZVRvZ2dsZUl0ZW19XG4gICAgICAgIG9uTW91c2VFbnRlcj17cHJvcHMuaGFuZGxlVG9nZ2xlSXRlbX1cbiAgICAgICAgb25Nb3VzZUxlYXZlPXtwcm9wcy5zaG91bGRDbG9zZU1lbnVGbHl9XG4gICAgICAgIGlkZW50aWZpZXI9e21lbnVJdGVtSWRlbnRpZmllcn1cbiAgICAgID5cbiAgICAgICAgPE1lbnVJdGVtTGlua1xuICAgICAgICAgIGxpbmtUbz17YC8ke3Byb3BzLnByb2plY3RLZXl9LyR7cHJvcHMubWVudS51cmlQYXRofWB9XG4gICAgICAgICAgdXNlRnVsbFJlZGlyZWN0c0ZvckxpbmtzPXtwcm9wcy51c2VGdWxsUmVkaXJlY3RzRm9yTGlua3N9XG4gICAgICAgICAgb25DbGljaz17cHJvcHMub25NZW51SXRlbUNsaWNrfVxuICAgICAgICA+XG4gICAgICAgICAgPEl0ZW1Db250YWluZXJcbiAgICAgICAgICAgIGxhYmVsQWxsTG9jYWxlcz17cHJvcHMubWVudS5sYWJlbEFsbExvY2FsZXN9XG4gICAgICAgICAgICBkZWZhdWx0TGFiZWw9e3Byb3BzLm1lbnUuZGVmYXVsdExhYmVsfVxuICAgICAgICAgICAgYXBwbGljYXRpb25Mb2NhbGU9e3Byb3BzLmFwcGxpY2F0aW9uTG9jYWxlfVxuICAgICAgICAgICAgaWNvbj17cHJvcHMubWVudS5pY29ufVxuICAgICAgICAgICAgaXNNZW51T3Blbj17cHJvcHMuaXNNZW51T3Blbn1cbiAgICAgICAgICAvPlxuICAgICAgICA8L01lbnVJdGVtTGluaz5cbiAgICAgICAgPE1lbnVHcm91cFxuICAgICAgICAgIGlkPXtgZ3JvdXAtJHtwcm9wcy5tZW51LmtleX1gfVxuICAgICAgICAgIGxldmVsPXsyfVxuICAgICAgICAgIGlzQWN0aXZlPXtwcm9wcy5pc0FjdGl2ZX1cbiAgICAgICAgICBpc0V4cGFuZGVkPXtwcm9wcy5pc01lbnVPcGVufVxuICAgICAgICAgIGhhc1N1Ym1lbnU9e2hhc1N1Ym1lbnV9XG4gICAgICAgICAgc3VibWVudVZlcnRpY2FsUG9zaXRpb249e3N1Ym1lbnVWZXJ0aWNhbFBvc2l0aW9ufVxuICAgICAgICAgIGlzU3VibWVudUFib3ZlTWVudUl0ZW09e2lzU3VibWVudUFib3ZlTWVudUl0ZW19XG4gICAgICAgICAgcmVmPXtzdWJtZW51UmVmfVxuICAgICAgICA+XG4gICAgICAgICAgeyFwcm9wcy5pc01lbnVPcGVuICYmIChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbJ3Rvb2x0aXAtY29udGFpbmVyJ119XG4gICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICR7aXNTdWJtZW51QWJvdmVNZW51SXRlbVxuICAgICAgICAgICAgICAgICAgPyAnYm90dG9tJ1xuICAgICAgICAgICAgICAgICAgOiAndG9wJ306IC0ke0RJTUVOU0lPTlMubmF2TWVudUl0ZW1IZWlnaHR9O1xuICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbJ3Rvb2x0aXAnXX1cbiAgICAgICAgICAgICAgICBhcmlhLW93bnM9e2Bncm91cC0ke3Byb3BzLm1lbnUua2V5fWB9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8TWVudUxhYmVsXG4gICAgICAgICAgICAgICAgICBsYWJlbEFsbExvY2FsZXM9e3Byb3BzLm1lbnUubGFiZWxBbGxMb2NhbGVzfVxuICAgICAgICAgICAgICAgICAgZGVmYXVsdExhYmVsPXtwcm9wcy5tZW51LmRlZmF1bHRMYWJlbH1cbiAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTG9jYWxlPXtwcm9wcy5hcHBsaWNhdGlvbkxvY2FsZX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgICAge2hhc1N1Ym1lbnVcbiAgICAgICAgICAgID8gcHJvcHMubWVudS5zdWJtZW51Lm1hcCgoc3VibWVudTogVFN1Ym1lbnVXaXRoRGVmYXVsdExhYmVsKSA9PiAoXG4gICAgICAgICAgICAgICAgPFJlc3RyaWN0ZWRNZW51SXRlbVxuICAgICAgICAgICAgICAgICAga2V5PXtgJHtwcm9wcy5tZW51LmtleX0tc3VibWVudS0ke3N1Ym1lbnUua2V5fWB9XG4gICAgICAgICAgICAgICAgICBrZXlPZk1lbnVJdGVtPXtzdWJtZW51LmtleX1cbiAgICAgICAgICAgICAgICAgIGZlYXR1cmVUb2dnbGU9e3N1Ym1lbnUuZmVhdHVyZVRvZ2dsZSA/PyB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgICBwZXJtaXNzaW9ucz17c3VibWVudS5wZXJtaXNzaW9uc31cbiAgICAgICAgICAgICAgICAgIGFjdGlvblJpZ2h0cz17c3VibWVudS5hY3Rpb25SaWdodHMgPz8gdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgZGF0YUZlbmNlcz17c3VibWVudS5kYXRhRmVuY2VzID8/IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgIHByb2plY3RQZXJtaXNzaW9ucz17cHJvcHMucHJvamVjdFBlcm1pc3Npb25zfVxuICAgICAgICAgICAgICAgICAgbWVudVZpc2liaWxpdGllcz17cHJvcHMubWVudVZpc2liaWxpdGllc31cbiAgICAgICAgICAgICAgICAgIG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzPXtcbiAgICAgICAgICAgICAgICAgICAgc3VibWVudS5tZW51VmlzaWJpbGl0eVxuICAgICAgICAgICAgICAgICAgICAgID8gW3N1Ym1lbnUubWVudVZpc2liaWxpdHldXG4gICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKHN0eWxlc1snc3VibGlzdC1pdGVtJ10sIHtcbiAgICAgICAgICAgICAgICAgICAgICBbc3R5bGVzWydzdWJsaXN0LWl0ZW1fX2FjdGl2ZSddXTogZ2V0SXNTdWJtZW51Um91dGVBY3RpdmUoXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJtZW51LnVyaVBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wc1xuICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLnRleHR9PlxuICAgICAgICAgICAgICAgICAgICAgIDxNZW51SXRlbUxpbmtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtUbz17YC8ke3Byb3BzLnByb2plY3RLZXl9LyR7c3VibWVudS51cmlQYXRofWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSB3YW50IHRvIHVzZSBhbiBleGFjdCBtYXRjaGluZyBzdHJhdGVneSB0byBhdm9pZCBtdWx0aXBsZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGlua3MgbWF0Y2hpbmcgc3ViLXJvdXRlcy5cbiAgICAgICAgICAgICAgICAgICAgICAgIGV4YWN0TWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZUZ1bGxSZWRpcmVjdHNGb3JMaW5rcz17XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLnVzZUZ1bGxSZWRpcmVjdHNGb3JMaW5rc1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17cHJvcHMub25NZW51SXRlbUNsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgaXNTdWJtZW51TGlua1xuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxNZW51TGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxBbGxMb2NhbGVzPXtzdWJtZW51LmxhYmVsQWxsTG9jYWxlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdExhYmVsPXtzdWJtZW51LmRlZmF1bHRMYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25Mb2NhbGU9e3Byb3BzLmFwcGxpY2F0aW9uTG9jYWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L01lbnVJdGVtTGluaz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvUmVzdHJpY3RlZE1lbnVJdGVtPlxuICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgOiBudWxsfVxuICAgICAgICA8L01lbnVHcm91cD5cbiAgICAgIDwvTWVudUl0ZW0+XG4gICAgPC9SZXN0cmljdGVkTWVudUl0ZW0+XG4gICk7XG59O1xuQXBwbGljYXRpb25NZW51LmRpc3BsYXlOYW1lID0gJ0FwcGxpY2F0aW9uTWVudSc7XG5cbmV4cG9ydCB0eXBlIFROYXZiYXJQcm9wcyA9IHtcbiAgYXBwbGljYXRpb25Mb2NhbGU/OiBzdHJpbmc7XG4gIHByb2plY3RLZXk6IHN0cmluZztcbiAgZW52aXJvbm1lbnQ6IFRBcHBsaWNhdGlvbkNvbnRleHQ8e1xuICAgIHVzZUZ1bGxSZWRpcmVjdHNGb3JMaW5rcz86IGJvb2xlYW47XG4gIH0+WydlbnZpcm9ubWVudCddO1xuICBwcm9qZWN0OiBURmV0Y2hQcm9qZWN0UXVlcnlbJ3Byb2plY3QnXTtcbiAgb25NZW51SXRlbUNsaWNrPzogTWVudUl0ZW1MaW5rUHJvcHNbJ29uQ2xpY2snXTtcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xufTtcbmNvbnN0IE5hdkJhciA9IChwcm9wczogVE5hdmJhclByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBuYXZCYXJOb2RlLFxuICAgIGlzTWVudU9wZW4sXG4gICAgaXNFeHBhbmRlclZpc2libGUsXG4gICAgYWN0aXZlSXRlbUluZGV4LFxuICAgIGhhbmRsZVRvZ2dsZUl0ZW0sXG4gICAgaGFuZGxlVG9nZ2xlTWVudSxcbiAgICBzaG91bGRDbG9zZU1lbnVGbHksXG4gICAgYWxsQXBwbGljYXRpb25zTmF2YmFyTWVudUdyb3VwcyxcbiAgfSA9IHVzZU5hdmJhclN0YXRlTWFuYWdlcih7XG4gICAgZW52aXJvbm1lbnQ6IHByb3BzLmVudmlyb25tZW50LFxuICB9KTtcbiAgY29uc3QgdXNlRnVsbFJlZGlyZWN0c0ZvckxpbmtzID0gQm9vbGVhbihcbiAgICBwcm9wcy5lbnZpcm9ubWVudC51c2VGdWxsUmVkaXJlY3RzRm9yTGlua3NcbiAgKTtcbiAgY29uc3QgbG9jYXRpb24gPSB1c2VMb2NhdGlvbigpO1xuXG4gIGNvbnN0IHByb2plY3RQZXJtaXNzaW9uczogVFByb2plY3RQZXJtaXNzaW9ucyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIHBlcm1pc3Npb25zOiBub3JtYWxpemVBbGxBcHBsaWVkUGVybWlzc2lvbnMoXG4gICAgICAgIHByb3BzLnByb2plY3Q/LmFsbFBlcm1pc3Npb25zRm9yQWxsQXBwbGljYXRpb25zLmFsbEFwcGxpZWRQZXJtaXNzaW9uc1xuICAgICAgKSxcbiAgICAgIGFjdGlvblJpZ2h0czogbm9ybWFsaXplQWxsQXBwbGllZEFjdGlvblJpZ2h0cyhcbiAgICAgICAgcHJvcHMucHJvamVjdD8uYWxsUGVybWlzc2lvbnNGb3JBbGxBcHBsaWNhdGlvbnMuYWxsQXBwbGllZEFjdGlvblJpZ2h0c1xuICAgICAgKSxcbiAgICAgIGRhdGFGZW5jZXM6IG5vcm1hbGl6ZUFsbEFwcGxpZWREYXRhRmVuY2VzKFxuICAgICAgICBwcm9wcy5wcm9qZWN0Py5hbGxQZXJtaXNzaW9uc0ZvckFsbEFwcGxpY2F0aW9ucy5hbGxBcHBsaWVkRGF0YUZlbmNlc1xuICAgICAgKSxcbiAgICB9KSxcbiAgICBbcHJvcHMucHJvamVjdF1cbiAgKTtcbiAgY29uc3QgbWVudVZpc2liaWxpdGllcyA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIG5vcm1hbGl6ZUFsbEFwcGxpZWRNZW51VmlzaWJpbGl0aWVzKFxuICAgICAgICBwcm9wcy5wcm9qZWN0Py5hbGxQZXJtaXNzaW9uc0ZvckFsbEFwcGxpY2F0aW9uc1xuICAgICAgICAgIC5hbGxBcHBsaWVkTWVudVZpc2liaWxpdGllc1xuICAgICAgKSxcbiAgICBbcHJvcHMucHJvamVjdF1cbiAgKTtcblxuICBjb25zdCBhcHBsaWNhdGlvbkxvY2FsZSA9IHByb3BzLmFwcGxpY2F0aW9uTG9jYWxlO1xuXG4gIC8vIFJlbmRlciB0aGUgbG9hZGluZyBuYXZiYXIgYXMgbG9uZyBhcyBhbGwgdGhlIGRhdGFcbiAgLy8gaGFzbid0IGJlZW4gbG9hZGVkLCBvciBpZiB0aGUgcHJvamVjdCBkb2VzIG5vdCBleGlzdC5cbiAgaWYgKHByb3BzLmlzTG9hZGluZyB8fCB0eXBlb2YgYXBwbGljYXRpb25Mb2NhbGUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIDxOYXZCYXJTa2VsZXRvbiBpc0V4cGFuZGVkPXtpc01lbnVPcGVufSAvPjtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPE5hdkJhckxheW91dCByZWY9e25hdkJhck5vZGV9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snbmF2aWdhdGlvbi1oZWFkZXInXX0+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbJ2ljb24tY29udGFpbmVyJ119PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbJ2ljb24nXX0+XG4gICAgICAgICAgICA8aW1nIHNyYz17TG9nb1NWR30gd2lkdGg9XCIxMDAlXCIgYWx0PVwiTG9nb1wiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7aXNNZW51T3BlbiA/IChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWyd0aXRsZSddfT5NZXJjaGFudCBDZW50ZXI8L2Rpdj5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxNZW51R3JvdXAgaWQ9XCJtYWluXCIgbGV2ZWw9ezF9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydzY3JvbGxhYmxlLW1lbnUnXX0+XG4gICAgICAgICAgPFNwYWNpbmdzLlN0YWNrIHNjYWxlPVwibFwiPlxuICAgICAgICAgICAge2FsbEFwcGxpY2F0aW9uc05hdmJhck1lbnVHcm91cHMubWFwKChuYXZiYXJNZW51R3JvdXApID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8ZGl2IGtleT17bmF2YmFyTWVudUdyb3VwLmtleX0+XG4gICAgICAgICAgICAgICAgICB7bmF2YmFyTWVudUdyb3VwLml0ZW1zLm1hcCgobWVudSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtZW51VHlwZSA9ICdzY3JvbGxhYmxlJztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gYCR7bWVudVR5cGV9LSR7bWVudS5rZXl9YDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICA8QXBwbGljYXRpb25NZW51XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e21lbnUua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb249e2xvY2F0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgbWVudT17bWVudX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlzQWN0aXZlPXthY3RpdmVJdGVtSW5kZXggPT09IGl0ZW1JbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVRvZ2dsZUl0ZW09eygpID0+IGhhbmRsZVRvZ2dsZUl0ZW0oaXRlbUluZGV4KX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlzTWVudU9wZW49e2lzTWVudU9wZW59XG4gICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRDbG9zZU1lbnVGbHk9e3Nob3VsZENsb3NlTWVudUZseX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RQZXJtaXNzaW9ucz17cHJvamVjdFBlcm1pc3Npb25zfVxuICAgICAgICAgICAgICAgICAgICAgICAgbWVudVZpc2liaWxpdGllcz17bWVudVZpc2liaWxpdGllc31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTG9jYWxlPXthcHBsaWNhdGlvbkxvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXk9e3Byb3BzLnByb2plY3RLZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VGdWxsUmVkaXJlY3RzRm9yTGlua3M9e3VzZUZ1bGxSZWRpcmVjdHNGb3JMaW5rc31cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uTWVudUl0ZW1DbGljaz17cHJvcHMub25NZW51SXRlbUNsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvU3BhY2luZ3MuU3RhY2s+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydmaXhlZC1tZW51J119PlxuICAgICAgICAgIDxGYWRlZCAvPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbJ3N1cHBvcnQtbWVudSddfT5cbiAgICAgICAgICAgIDxNZW51SXRlbVxuICAgICAgICAgICAgICBoYXNTdWJtZW51PXtmYWxzZX1cbiAgICAgICAgICAgICAgaXNBY3RpdmU9e2ZhbHNlfVxuICAgICAgICAgICAgICBpc01lbnVPcGVuPXtpc01lbnVPcGVufVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgaGFuZGxlVG9nZ2xlSXRlbSgnZml4ZWQtc3VwcG9ydCcpO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI9e1xuICAgICAgICAgICAgICAgIGlzTWVudU9wZW4gPyB1bmRlZmluZWQgOiAoKSA9PiBoYW5kbGVUb2dnbGVJdGVtKCdmaXhlZC1zdXBwb3J0JylcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBvbk1vdXNlTGVhdmU9e2lzTWVudU9wZW4gPyB1bmRlZmluZWQgOiBzaG91bGRDbG9zZU1lbnVGbHl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgaHJlZj17U1VQUE9SVF9QT1JUQUxfVVJMfVxuICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbJ3RleHQtbGluayddfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snaXRlbS1pY29uLXRleHQnXX0+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydpY29uLWNvbnRhaW5lciddfT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snaWNvbiddfT5cbiAgICAgICAgICAgICAgICAgICAgICA8U3VwcG9ydEljb24gc2l6ZT1cInNjYWxlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIHtpc01lbnVPcGVuID8gKFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLnRpdGxlfT5cbiAgICAgICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICAgICAgey4uLm1lc3NhZ2VzWydOYXZCYXIuTUNTdXBwb3J0LnRpdGxlJ119XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9NZW51SXRlbT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8TWVudUV4cGFuZGVyXG4gICAgICAgICAgICBpc1Zpc2libGU9e2lzRXhwYW5kZXJWaXNpYmxlfVxuICAgICAgICAgICAgb25DbGljaz17aGFuZGxlVG9nZ2xlTWVudX1cbiAgICAgICAgICAgIGlzTWVudU9wZW49e2lzTWVudU9wZW59XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L01lbnVHcm91cD5cbiAgICA8L05hdkJhckxheW91dD5cbiAgKTtcbn07XG5OYXZCYXIuZGlzcGxheU5hbWUgPSAnTmF2QmFyJztcblxuZXhwb3J0IGRlZmF1bHQgTmF2QmFyO1xuIl19 */"),
1052
+ children: jsxRuntime.jsx("div", {
1053
+ className: styles['tooltip'],
1054
+ "aria-owns": "group-".concat(props.menu.key),
1055
+ children: jsxRuntime.jsx(MenuLabel, {
1056
+ labelAllLocales: props.menu.labelAllLocales,
1057
+ defaultLabel: props.menu.defaultLabel,
1058
+ applicationLocale: props.applicationLocale
1059
+ })
1060
+ })
1061
+ }), hasSubmenu ? _mapInstanceProperty__default["default"](_context6 = props.menu.submenu).call(_context6, submenu => {
1062
+ var _context7, _submenu$featureToggl, _submenu$actionRights, _submenu$dataFences, _context8;
1063
+ return jsxRuntime.jsx(RestrictedMenuItem, {
1064
+ keyOfMenuItem: submenu.key,
1065
+ featureToggle: (_submenu$featureToggl = submenu.featureToggle) !== null && _submenu$featureToggl !== void 0 ? _submenu$featureToggl : undefined,
1066
+ permissions: submenu.permissions,
1067
+ actionRights: (_submenu$actionRights = submenu.actionRights) !== null && _submenu$actionRights !== void 0 ? _submenu$actionRights : undefined,
1068
+ dataFences: (_submenu$dataFences = submenu.dataFences) !== null && _submenu$dataFences !== void 0 ? _submenu$dataFences : undefined,
1069
+ projectPermissions: props.projectPermissions,
1070
+ menuVisibilities: props.menuVisibilities,
1071
+ namesOfMenuVisibilities: submenu.menuVisibility ? [submenu.menuVisibility] : undefined,
1072
+ children: jsxRuntime.jsx("li", {
1073
+ className: classnames__default["default"](styles['sublist-item'], {
1074
+ [styles['sublist-item__active']]: getIsSubmenuRouteActive(submenu.uriPath, props)
1075
+ }),
1076
+ children: jsxRuntime.jsx("div", {
1077
+ className: styles.text,
1078
+ children: jsxRuntime.jsx(MenuItemLink, {
1079
+ linkTo: _concatInstanceProperty__default["default"](_context8 = "/".concat(props.projectKey, "/")).call(_context8, submenu.uriPath)
1080
+ // We want to use an exact matching strategy to avoid multiple
1081
+ // links matching sub-routes.
1082
+ ,
1083
+ exactMatch: true,
1084
+ useFullRedirectsForLinks: props.useFullRedirectsForLinks,
1085
+ onClick: props.onMenuItemClick,
1086
+ isSubmenuLink: true,
1087
+ children: jsxRuntime.jsx(MenuLabel, {
1088
+ labelAllLocales: submenu.labelAllLocales,
1089
+ defaultLabel: submenu.defaultLabel,
1090
+ applicationLocale: props.applicationLocale
1091
+ })
1092
+ })
1093
+ })
1094
+ })
1095
+ }, _concatInstanceProperty__default["default"](_context7 = "".concat(props.menu.key, "-submenu-")).call(_context7, submenu.key));
1096
+ }) : null]
1097
+ })]
1098
+ })
1099
+ }, props.menu.key);
1100
+ };
1101
+ ApplicationMenu.propTypes = process.env.NODE_ENV !== "production" ? {
1102
+ menu: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].shape({
1103
+ defaultLabel: _pt__default["default"].string
1104
+ })]).isRequired,
1105
+ isActive: _pt__default["default"].bool.isRequired,
1106
+ isMenuOpen: _pt__default["default"].bool.isRequired,
1107
+ shouldCloseMenuFly: _pt__default["default"].func.isRequired,
1108
+ projectPermissions: _pt__default["default"].shape({
1109
+ permissions: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].oneOf([null])]),
1110
+ actionRights: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].oneOf([null])]),
1111
+ dataFences: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].oneOf([null])])
1112
+ }).isRequired,
1113
+ menuVisibilities: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].oneOf([null])]),
1114
+ handleToggleItem: _pt__default["default"].func.isRequired,
1115
+ applicationLocale: _pt__default["default"].string.isRequired,
1116
+ projectKey: _pt__default["default"].string.isRequired,
1117
+ useFullRedirectsForLinks: _pt__default["default"].bool.isRequired
1118
+ } : {};
1119
+ ApplicationMenu.displayName = 'ApplicationMenu';
1120
+ const NavBar = props => {
1121
+ const _useNavbarStateManage = useNavbarStateManager({
1122
+ environment: props.environment
1123
+ }),
1124
+ navBarNode = _useNavbarStateManage.navBarNode,
1125
+ isMenuOpen = _useNavbarStateManage.isMenuOpen,
1126
+ isExpanderVisible = _useNavbarStateManage.isExpanderVisible,
1127
+ activeItemIndex = _useNavbarStateManage.activeItemIndex,
1128
+ handleToggleItem = _useNavbarStateManage.handleToggleItem,
1129
+ handleToggleMenu = _useNavbarStateManage.handleToggleMenu,
1130
+ shouldCloseMenuFly = _useNavbarStateManage.shouldCloseMenuFly,
1131
+ allApplicationsNavbarMenuGroups = _useNavbarStateManage.allApplicationsNavbarMenuGroups;
1132
+ const useFullRedirectsForLinks = Boolean(props.environment.useFullRedirectsForLinks);
1133
+ const location = reactRouterDom.useLocation();
1134
+ const projectPermissions = react.useMemo(() => {
1135
+ var _props$project, _props$project2, _props$project3;
1136
+ return {
1137
+ permissions: applicationShellConnectors.normalizeAllAppliedPermissions((_props$project = props.project) === null || _props$project === void 0 ? void 0 : _props$project.allPermissionsForAllApplications.allAppliedPermissions),
1138
+ actionRights: applicationShellConnectors.normalizeAllAppliedActionRights((_props$project2 = props.project) === null || _props$project2 === void 0 ? void 0 : _props$project2.allPermissionsForAllApplications.allAppliedActionRights),
1139
+ dataFences: applicationShellConnectors.normalizeAllAppliedDataFences((_props$project3 = props.project) === null || _props$project3 === void 0 ? void 0 : _props$project3.allPermissionsForAllApplications.allAppliedDataFences)
1140
+ };
1141
+ }, [props.project]);
1142
+ const menuVisibilities = react.useMemo(() => {
1143
+ var _props$project4;
1144
+ return applicationShellConnectors.normalizeAllAppliedMenuVisibilities((_props$project4 = props.project) === null || _props$project4 === void 0 ? void 0 : _props$project4.allPermissionsForAllApplications.allAppliedMenuVisibilities);
1145
+ }, [props.project]);
1146
+ const applicationLocale = props.applicationLocale;
1147
+
1148
+ // Render the loading navbar as long as all the data
1149
+ // hasn't been loaded, or if the project does not exist.
1150
+ if (props.isLoading || typeof applicationLocale === 'undefined') {
1151
+ return jsxRuntime.jsx(NavBarSkeleton, {
1152
+ isExpanded: isMenuOpen
1153
+ });
1154
+ }
1155
+ return jsxRuntime.jsxs(NavBarLayout$1, {
1156
+ ref: navBarNode,
1157
+ children: [jsxRuntime.jsxs("div", {
1158
+ className: styles['navigation-header'],
1159
+ children: [jsxRuntime.jsx("div", {
1160
+ className: styles['icon-container'],
1161
+ children: jsxRuntime.jsx("div", {
1162
+ className: styles['icon'],
1163
+ children: jsxRuntime.jsx("img", {
1164
+ src: LogoSVG__default["default"],
1165
+ width: "100%",
1166
+ alt: "Logo"
1167
+ })
1168
+ })
1169
+ }), isMenuOpen ? jsxRuntime.jsx("div", {
1170
+ className: styles['title'],
1171
+ children: "Merchant Center"
1172
+ }) : null]
1173
+ }), jsxRuntime.jsxs(MenuGroup, {
1174
+ id: "main",
1175
+ level: 1,
1176
+ children: [jsxRuntime.jsx("div", {
1177
+ className: styles['scrollable-menu'],
1178
+ children: jsxRuntime.jsx(Spacings__default["default"].Stack, {
1179
+ scale: "l",
1180
+ children: _mapInstanceProperty__default["default"](allApplicationsNavbarMenuGroups).call(allApplicationsNavbarMenuGroups, navbarMenuGroup => {
1181
+ var _context9;
1182
+ return jsxRuntime.jsx("div", {
1183
+ children: _mapInstanceProperty__default["default"](_context9 = navbarMenuGroup.items).call(_context9, menu => {
1184
+ const menuType = 'scrollable';
1185
+ const itemIndex = "".concat(menuType, "-").concat(menu.key);
1186
+ return jsxRuntime.jsx(ApplicationMenu, {
1187
+ location: location,
1188
+ menu: menu,
1189
+ isActive: activeItemIndex === itemIndex,
1190
+ handleToggleItem: () => handleToggleItem(itemIndex),
1191
+ isMenuOpen: isMenuOpen,
1192
+ shouldCloseMenuFly: shouldCloseMenuFly,
1193
+ projectPermissions: projectPermissions,
1194
+ menuVisibilities: menuVisibilities,
1195
+ applicationLocale: applicationLocale,
1196
+ projectKey: props.projectKey,
1197
+ useFullRedirectsForLinks: useFullRedirectsForLinks,
1198
+ onMenuItemClick: props.onMenuItemClick
1199
+ }, menu.key);
1200
+ })
1201
+ }, navbarMenuGroup.key);
1202
+ })
1203
+ })
1204
+ }), jsxRuntime.jsxs("div", {
1205
+ className: styles['fixed-menu'],
1206
+ children: [jsxRuntime.jsx(Faded, {}), jsxRuntime.jsx("div", {
1207
+ className: styles['support-menu'],
1208
+ children: jsxRuntime.jsx(MenuItem$1, {
1209
+ hasSubmenu: false,
1210
+ isActive: false,
1211
+ isMenuOpen: isMenuOpen,
1212
+ onClick: () => {
1213
+ handleToggleItem('fixed-support');
1214
+ },
1215
+ onMouseEnter: isMenuOpen ? undefined : () => handleToggleItem('fixed-support'),
1216
+ onMouseLeave: isMenuOpen ? undefined : shouldCloseMenuFly,
1217
+ children: jsxRuntime.jsx("a", {
1218
+ href: constants.SUPPORT_PORTAL_URL,
1219
+ rel: "noopener noreferrer",
1220
+ target: "_blank",
1221
+ className: styles['text-link'],
1222
+ children: jsxRuntime.jsxs("div", {
1223
+ className: styles['item-icon-text'],
1224
+ children: [jsxRuntime.jsx("div", {
1225
+ className: styles['icon-container'],
1226
+ children: jsxRuntime.jsx("div", {
1227
+ className: styles['icon'],
1228
+ children: jsxRuntime.jsx(icons.SupportIcon, {
1229
+ size: "scale"
1230
+ })
1231
+ })
1232
+ }), isMenuOpen ? jsxRuntime.jsx("div", {
1233
+ className: styles.title,
1234
+ children: jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread({}, messages['NavBar.MCSupport.title']))
1235
+ }) : null]
1236
+ })
1237
+ })
1238
+ })
1239
+ }), jsxRuntime.jsx(MenuExpander, {
1240
+ isVisible: isExpanderVisible,
1241
+ onClick: handleToggleMenu,
1242
+ isMenuOpen: isMenuOpen
1243
+ })]
1244
+ })]
1245
+ })]
1246
+ });
1247
+ };
1248
+ NavBar.propTypes = process.env.NODE_ENV !== "production" ? {
1249
+ applicationLocale: _pt__default["default"].string,
1250
+ projectKey: _pt__default["default"].string.isRequired,
1251
+ isLoading: _pt__default["default"].bool.isRequired
1252
+ } : {};
1253
+ NavBar.displayName = 'NavBar';
1254
+
1255
+ exports.ApplicationMenu = ApplicationMenu;
1256
+ exports["default"] = NavBar;