@commercetools-frontend/application-shell 22.10.0 → 22.12.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 (94) hide show
  1. package/dist/commercetools-frontend-application-shell.cjs.dev.js +5 -5
  2. package/dist/commercetools-frontend-application-shell.cjs.prod.js +5 -5
  3. package/dist/commercetools-frontend-application-shell.esm.js +5 -5
  4. package/dist/{custom-view-dev-host-cb49959d.esm.js → custom-view-dev-host-97825f04.esm.js} +5 -5
  5. package/dist/{custom-view-dev-host-379d3461.cjs.dev.js → custom-view-dev-host-ab602e4b.cjs.dev.js} +5 -5
  6. package/dist/declarations/src/components/app-bar/app-bar.d.ts +0 -1
  7. package/dist/declarations/src/components/application-shell/application-shell.d.ts +1 -0
  8. package/dist/declarations/src/components/application-shell-authenticated/application-shell-authenticated.d.ts +1 -4
  9. package/dist/declarations/src/components/custom-view-shell/custom-view-shell.d.ts +3 -0
  10. package/dist/declarations/src/components/locale-switcher/locale-switcher.d.ts +1 -4
  11. package/dist/declarations/src/components/navbar/compiled/navbar.css.json.d.ts +3 -0
  12. package/dist/declarations/src/components/navbar/index.d.ts +1 -3
  13. package/dist/declarations/src/components/navbar/{navbar-new/menu-items.d.ts → menu-items.d.ts} +1 -1
  14. package/dist/declarations/src/components/navbar/navbar.d.ts +43 -4
  15. package/dist/declarations/src/components/navbar/use-navbar-state-manager.d.ts +0 -1
  16. package/dist/declarations/src/components/project-switcher/project-switcher.d.ts +1 -4
  17. package/dist/declarations/src/constants.d.ts +2 -6
  18. package/dist/declarations/src/test-utils/custom-views-utils.d.ts +10 -1
  19. package/dist/declarations/src/types/generated/settings.d.ts +114 -1
  20. package/dist/index-090350e1.esm.js +2017 -0
  21. package/dist/index-4f10b4f6.cjs.dev.js +2077 -0
  22. package/dist/{index-1d3e351d.cjs.prod.js → index-d1be72d3.cjs.prod.js} +278 -304
  23. package/dist/navbar-10252888.cjs.prod.js +1096 -0
  24. package/dist/navbar-948abeab.cjs.dev.js +1230 -0
  25. package/dist/navbar-ba4b5961.esm.js +1199 -0
  26. package/dist/{oidc-b2ac8a92.cjs.prod.js → oidc-088842ab.cjs.prod.js} +3 -7
  27. package/dist/{oidc-0c6ca06c.cjs.dev.js → oidc-b577ced5.cjs.dev.js} +3 -7
  28. package/dist/{oidc-95696f7b.esm.js → oidc-beeb911e.esm.js} +3 -7
  29. package/dist/{oidc-callback-23a07314.esm.js → oidc-callback-0c55b52a.esm.js} +5 -5
  30. package/dist/{oidc-callback-d8c66ca9.cjs.dev.js → oidc-callback-79de3285.cjs.dev.js} +5 -5
  31. package/dist/{oidc-callback-c3d56a4a.cjs.prod.js → oidc-callback-fd6fc3cb.cjs.prod.js} +5 -5
  32. package/dist/{project-container-216869fc.cjs.prod.js → project-container-d6ef4f95.cjs.prod.js} +22 -19
  33. package/dist/project-container-d7e433b2.cjs.dev.js +341 -0
  34. package/dist/project-container-dc6a77c1.esm.js +322 -0
  35. package/dist/{project-expired-112eb293.esm.js → project-expired-15d1e2ad.esm.js} +6 -6
  36. package/dist/{project-expired-4015d379.cjs.prod.js → project-expired-5f27a7e0.cjs.prod.js} +6 -6
  37. package/dist/{project-expired-94a0f5f7.cjs.dev.js → project-expired-cd8490b4.cjs.dev.js} +6 -6
  38. package/dist/{project-not-found-fcfed135.cjs.dev.js → project-not-found-1c22a5d3.cjs.dev.js} +6 -6
  39. package/dist/{project-not-found-9aee8dfd.esm.js → project-not-found-343dd667.esm.js} +6 -6
  40. package/dist/{project-not-found-9ac24482.cjs.prod.js → project-not-found-c43387f6.cjs.prod.js} +6 -6
  41. package/dist/{project-not-initialized-5624fe32.cjs.prod.js → project-not-initialized-6294cbc3.cjs.prod.js} +6 -6
  42. package/dist/{project-not-initialized-814ee00a.cjs.dev.js → project-not-initialized-e2dec8e0.cjs.dev.js} +6 -6
  43. package/dist/{project-not-initialized-51df89c0.esm.js → project-not-initialized-f3c58ee4.esm.js} +6 -6
  44. package/dist/{project-suspended-0a013a7f.cjs.prod.js → project-suspended-10846838.cjs.prod.js} +6 -6
  45. package/dist/{project-suspended-10fa0f61.cjs.dev.js → project-suspended-8ce7ddfc.cjs.dev.js} +6 -6
  46. package/dist/{project-suspended-e30818a8.esm.js → project-suspended-ab6c0490.esm.js} +6 -6
  47. package/dist/{quick-access-d5863124.esm.js → quick-access-51aa3d25.esm.js} +5 -5
  48. package/dist/{quick-access-9613aac7.cjs.dev.js → quick-access-5f0de0db.cjs.dev.js} +5 -5
  49. package/dist/{quick-access-a2d6f564.cjs.prod.js → quick-access-6a5e691d.cjs.prod.js} +5 -5
  50. package/dist/{redirect-to-login-aa538da2.cjs.dev.js → redirect-to-login-0a3097b7.cjs.dev.js} +1 -1
  51. package/dist/{redirect-to-login-9535ddbc.esm.js → redirect-to-login-238fc787.esm.js} +1 -1
  52. package/dist/{redirect-to-login-ee9f3801.cjs.prod.js → redirect-to-login-d261e811.cjs.prod.js} +1 -1
  53. package/dist/{redirect-to-logout-4889145e.cjs.prod.js → redirect-to-logout-469ef788.cjs.prod.js} +5 -5
  54. package/dist/{redirect-to-logout-9a89f5d8.esm.js → redirect-to-logout-799ffcc9.esm.js} +5 -5
  55. package/dist/{redirect-to-logout-202a372c.cjs.dev.js → redirect-to-logout-a0f22525.cjs.dev.js} +5 -5
  56. package/dist/{requests-in-flight-loader-697dd557.esm.js → requests-in-flight-loader-24dd0f9b.esm.js} +5 -5
  57. package/dist/{requests-in-flight-loader-9bc6935e.cjs.prod.js → requests-in-flight-loader-3929ce45.cjs.prod.js} +5 -5
  58. package/dist/{requests-in-flight-loader-55be9493.cjs.dev.js → requests-in-flight-loader-d5fb3a86.cjs.dev.js} +5 -5
  59. package/dist/{service-page-project-switcher-e3896261.cjs.prod.js → service-page-project-switcher-38212a13.cjs.prod.js} +1 -1
  60. package/dist/{service-page-project-switcher-ef2835a1.cjs.dev.js → service-page-project-switcher-9bb9d702.cjs.dev.js} +1 -1
  61. package/dist/{service-page-project-switcher-4bc59464.esm.js → service-page-project-switcher-ce8f6d34.esm.js} +1 -1
  62. package/dist/{user-settings-menu-59dbf5d2.cjs.dev.js → user-settings-menu-1b68d2f1.cjs.dev.js} +1 -1
  63. package/dist/{user-settings-menu-70751be9.cjs.prod.js → user-settings-menu-4e010c39.cjs.prod.js} +1 -1
  64. package/dist/{user-settings-menu-5841d422.esm.js → user-settings-menu-622c7fad.esm.js} +1 -1
  65. package/dist/{version-tracker-d1c9e71c.esm.js → version-tracker-219aff77.esm.js} +5 -5
  66. package/dist/{version-tracker-df0e6378.cjs.dev.js → version-tracker-3a534278.cjs.dev.js} +5 -5
  67. package/dist/{version-tracker-ea617837.cjs.prod.js → version-tracker-420ad591.cjs.prod.js} +5 -5
  68. package/package.json +21 -21
  69. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.dev.js +1 -1
  70. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.prod.js +1 -1
  71. package/ssr/dist/commercetools-frontend-application-shell-ssr.esm.js +1 -1
  72. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.dev.js +8 -2
  73. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.prod.js +8 -2
  74. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.esm.js +9 -3
  75. package/dist/declarations/src/components/application-shell-authenticated/new-main-navigation-flag-wrapper.d.ts +0 -9
  76. package/dist/declarations/src/components/navbar/navbar-new/compiled/navbar.css.json.d.ts +0 -3
  77. package/dist/declarations/src/components/navbar/navbar-new/navbar.d.ts +0 -48
  78. package/dist/declarations/src/components/navbar/navbar-old/compiled/navbar.css.json.d.ts +0 -3
  79. package/dist/declarations/src/components/navbar/navbar-old/loading-navbar.d.ts +0 -5
  80. package/dist/declarations/src/components/navbar/navbar-old/menu-items.d.ts +0 -100
  81. package/dist/declarations/src/components/navbar/navbar-old/navbar.d.ts +0 -48
  82. package/dist/declarations/src/components/navbar/navbar-old/navbar.styles.d.ts +0 -7
  83. package/dist/declarations/src/components/navbar/use-loading-menu-layout-effect.d.ts +0 -2
  84. package/dist/declarations/src/feature-toggles.d.ts +0 -4
  85. package/dist/index-8c459700.cjs.dev.js +0 -2079
  86. package/dist/index-b87860b8.esm.js +0 -2017
  87. package/dist/navbar-117d6a67.esm.js +0 -2006
  88. package/dist/navbar-4dc84744.cjs.prod.js +0 -1834
  89. package/dist/navbar-a4e4bff2.cjs.dev.js +0 -2037
  90. package/dist/project-container-41ab7c8c.esm.js +0 -321
  91. package/dist/project-container-61346ae8.cjs.dev.js +0 -340
  92. /package/dist/declarations/src/components/navbar/{navbar-new/navbar-skeleton.d.ts → navbar-skeleton.d.ts} +0 -0
  93. /package/dist/declarations/src/components/navbar/{navbar-new/navbar-skeleton.styles.d.ts → navbar-skeleton.styles.d.ts} +0 -0
  94. /package/dist/declarations/src/components/navbar/{navbar-new/navbar.styles.d.ts → navbar.styles.d.ts} +0 -0
@@ -1,2079 +0,0 @@
1
- 'use strict';
2
-
3
- var _pt = require('prop-types');
4
- var react = require('react');
5
- var reactRouterDom = require('react-router-dom');
6
- var index = require('./index-37a25e51.cjs.dev.js');
7
- var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
8
- var _styled = require('@emotion/styled/base');
9
- var _findInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/find');
10
- var _includesInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/includes');
11
- var _Array$isArray = require('@babel/runtime-corejs3/core-js-stable/array/is-array');
12
- var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
13
- var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols');
14
- var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/filter');
15
- var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor');
16
- var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
17
- var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors');
18
- var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
19
- var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/object/define-property');
20
- var react$1 = require('@emotion/react');
21
- var applicationComponents = require('@commercetools-frontend/application-components');
22
- var applicationShellConnectors = require('@commercetools-frontend/application-shell-connectors');
23
- var constants = require('@commercetools-frontend/constants');
24
- var i18n = require('@commercetools-frontend/i18n');
25
- var reactNotifications = require('@commercetools-frontend/react-notifications');
26
- var sentry = require('@commercetools-frontend/sentry');
27
- var oidc = require('./oidc-0c6ca06c.cjs.dev.js');
28
- require('@babel/runtime-corejs3/core-js-stable/url');
29
- var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
30
- var LogoSVG = require('@commercetools-frontend/assets/images/logo.svg');
31
- var designSystem = require('@commercetools-uikit/design-system');
32
- var Spacings = require('@commercetools-uikit/spacings');
33
- var reactIntl = require('react-intl');
34
- var FlatButton = require('@commercetools-uikit/flat-button');
35
- var icons = require('@commercetools-uikit/icons');
36
- var useIsServedByProxy = require('./use-is-served-by-proxy-ed411f45.cjs.dev.js');
37
- var jsxRuntime = require('@emotion/react/jsx-runtime');
38
- var _taggedTemplateLiteral = require('@babel/runtime-corejs3/helpers/taggedTemplateLiteral');
39
- var _objectWithoutProperties = require('@babel/runtime-corejs3/helpers/objectWithoutProperties');
40
- var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
41
- var memoize = require('memoize-one');
42
- var AccessibleHidden = require('@commercetools-uikit/accessible-hidden');
43
- var SelectInput = require('@commercetools-uikit/select-input');
44
- var CTLogoSVG = require('@commercetools-frontend/assets/images/ct-logo.svg');
45
- var LoadingSpinner = require('@commercetools-uikit/loading-spinner');
46
- var history = require('@commercetools-frontend/browser-history');
47
- var l10n = require('@commercetools-frontend/l10n');
48
- var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
49
- var _Reflect$construct = require('@babel/runtime-corejs3/core-js-stable/reflect/construct');
50
- var _classCallCheck = require('@babel/runtime-corejs3/helpers/classCallCheck');
51
- var _createClass = require('@babel/runtime-corejs3/helpers/createClass');
52
- var _inherits = require('@babel/runtime-corejs3/helpers/inherits');
53
- var _possibleConstructorReturn = require('@babel/runtime-corejs3/helpers/possibleConstructorReturn');
54
- var _getPrototypeOf = require('@babel/runtime-corejs3/helpers/getPrototypeOf');
55
- require('@babel/runtime-corejs3/core-js-stable/instance/index-of');
56
- var _sliceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/slice');
57
- var _Object$fromEntries = require('@babel/runtime-corejs3/core-js-stable/object/from-entries');
58
- var _flagsInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/flags');
59
- var react$2 = require('@apollo/client/react');
60
- var combineAdapters = require('@flopflip/combine-adapters');
61
- var httpAdapter = require('@flopflip/http-adapter');
62
- var ldAdapter = require('@flopflip/launchdarkly-adapter');
63
- var reactBroadcast = require('@flopflip/react-broadcast');
64
- var _reduceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
65
- var types = require('@flopflip/types');
66
- var reactRedux = require('react-redux');
67
- var upperFirst = require('lodash/upperFirst');
68
- var _startsWithInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/starts-with');
69
- require('@commercetools-uikit/design-system/materials/resets.css');
70
- var ssr = require('@commercetools-frontend/application-config/ssr');
71
- var permissions = require('@commercetools-frontend/permissions');
72
- var _JSON$stringify = require('@babel/runtime-corejs3/core-js-stable/json/stringify');
73
- var _someInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/some');
74
- var actionsGlobal = require('@commercetools-frontend/actions-global');
75
-
76
- function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
77
-
78
- var _pt__default = /*#__PURE__*/_interopDefault(_pt);
79
- var _styled__default = /*#__PURE__*/_interopDefault(_styled);
80
- var _findInstanceProperty__default = /*#__PURE__*/_interopDefault(_findInstanceProperty);
81
- var _includesInstanceProperty__default = /*#__PURE__*/_interopDefault(_includesInstanceProperty);
82
- var _Array$isArray__default = /*#__PURE__*/_interopDefault(_Array$isArray);
83
- var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
84
- var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
85
- var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
86
- var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptor);
87
- var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachInstanceProperty);
88
- var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptors);
89
- var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$defineProperties);
90
- var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
91
- var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
92
- var LogoSVG__default = /*#__PURE__*/_interopDefault(LogoSVG);
93
- var Spacings__default = /*#__PURE__*/_interopDefault(Spacings);
94
- var FlatButton__default = /*#__PURE__*/_interopDefault(FlatButton);
95
- var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
96
- var memoize__default = /*#__PURE__*/_interopDefault(memoize);
97
- var AccessibleHidden__default = /*#__PURE__*/_interopDefault(AccessibleHidden);
98
- var SelectInput__default = /*#__PURE__*/_interopDefault(SelectInput);
99
- var CTLogoSVG__default = /*#__PURE__*/_interopDefault(CTLogoSVG);
100
- var LoadingSpinner__default = /*#__PURE__*/_interopDefault(LoadingSpinner);
101
- var history__default = /*#__PURE__*/_interopDefault(history);
102
- var _Reflect$construct__default = /*#__PURE__*/_interopDefault(_Reflect$construct);
103
- var _sliceInstanceProperty__default = /*#__PURE__*/_interopDefault(_sliceInstanceProperty);
104
- var _Object$fromEntries__default = /*#__PURE__*/_interopDefault(_Object$fromEntries);
105
- var _flagsInstanceProperty__default = /*#__PURE__*/_interopDefault(_flagsInstanceProperty);
106
- var combineAdapters__default = /*#__PURE__*/_interopDefault(combineAdapters);
107
- var httpAdapter__default = /*#__PURE__*/_interopDefault(httpAdapter);
108
- var ldAdapter__default = /*#__PURE__*/_interopDefault(ldAdapter);
109
- var _reduceInstanceProperty__default = /*#__PURE__*/_interopDefault(_reduceInstanceProperty);
110
- var upperFirst__default = /*#__PURE__*/_interopDefault(upperFirst);
111
- var _startsWithInstanceProperty__default = /*#__PURE__*/_interopDefault(_startsWithInstanceProperty);
112
- var _JSON$stringify__default = /*#__PURE__*/_interopDefault(_JSON$stringify);
113
- var _someInstanceProperty__default = /*#__PURE__*/_interopDefault(_someInstanceProperty);
114
-
115
- // NOTE: This string will be replaced on build time with the package version.
116
- var applicationShellVersion = "22.10.0";
117
-
118
- const RequestsInFlightLoader = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./requests-in-flight-loader-55be9493.cjs.dev.js' /* webpackChunkName: "requests-in-flight-loader" */); }));
119
-
120
- // Attempt to load the `projectKey` from localStorage
121
- function selectProjectKeyFromLocalStorage() {
122
- return window.localStorage.getItem(constants.STORAGE_KEYS.ACTIVE_PROJECT_KEY);
123
- }
124
-
125
- const getPreviousProjectKey = defaultProjectKeyOfUser => {
126
- const previouslyUsedProjectKeyFromLocalStorage = selectProjectKeyFromLocalStorage();
127
- if (previouslyUsedProjectKeyFromLocalStorage) return previouslyUsedProjectKeyFromLocalStorage;
128
- if (defaultProjectKeyOfUser) return defaultProjectKeyOfUser;
129
- return;
130
- };
131
-
132
- var messages$1 = reactIntl.defineMessages({
133
- backToProjectLink: {
134
- id: 'AppBar.backToProjectLink',
135
- defaultMessage: 'Back to project'
136
- }
137
- });
138
-
139
- /**
140
- * Note:
141
- * A full page reload is needed as the user's project may have changed (deletions and/or additions).
142
- * As a result the project and user queries need refetching.
143
- */
144
- const redirectToProject = key => useIsServedByProxy.location.replace("/".concat(key));
145
- const BackToProject = props => {
146
- const intl = reactIntl.useIntl();
147
- return jsxRuntime.jsx(FlatButton__default["default"], {
148
- onClick: () => redirectToProject(props.projectKey || ''),
149
- icon: jsxRuntime.jsx(icons.AngleLeftIcon, {}),
150
- label: intl.formatMessage(messages$1.backToProjectLink)
151
- });
152
- };
153
- BackToProject.displayName = 'BackToProject';
154
-
155
- var _templateObject;
156
- const animationPulse = react$1.keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n 0% {\n background-color: ", ";\n }\n 100% {\n background-color: ", ";\n }\n"])), designSystem.customProperties.colorNeutral, designSystem.customProperties.colorNeutral95);
157
- const getWidthBySize = props => {
158
- switch (props.shape) {
159
- case 'dot':
160
- switch (props.size) {
161
- case 's':
162
- return designSystem.customProperties.spacingS;
163
- case 'm':
164
- return designSystem.customProperties.spacingM;
165
- case 'l':
166
- return designSystem.customProperties.spacingL;
167
- case 'xl':
168
- return designSystem.customProperties.spacingXl;
169
- default:
170
- return 'auto';
171
- }
172
- case 'rect':
173
- switch (props.size) {
174
- case 's':
175
- return '150px';
176
- case 'm':
177
- return '300px';
178
- case 'l':
179
- return '450px';
180
- case 'xl':
181
- return '600px';
182
- default:
183
- return 'auto';
184
- }
185
- default:
186
- return 'auto';
187
- }
188
- };
189
- const getHeightBySize = props => {
190
- switch (props.shape) {
191
- case 'dot':
192
- return getWidthBySize(props);
193
- case 'rect':
194
- return '32px';
195
- default:
196
- return 'auto';
197
- }
198
- };
199
- const getRadiusBySize = props => {
200
- switch (props.shape) {
201
- case 'dot':
202
- switch (props.size) {
203
- case 's':
204
- return designSystem.customProperties.borderRadius4;
205
- case 'm':
206
- return '8px';
207
- case 'l':
208
- return '12px';
209
- case 'xl':
210
- return '16px';
211
- default:
212
- return 'none';
213
- }
214
- case 'rect':
215
- return designSystem.customProperties.borderRadius4;
216
- default:
217
- return 'none';
218
- }
219
- };
220
- const LoadingPlaceholder = /*#__PURE__*/_styled__default["default"]("div", process.env.NODE_ENV === "production" ? {
221
- target: "e4c5pm00"
222
- } : {
223
- target: "e4c5pm00",
224
- label: "LoadingPlaceholder"
225
- })("background-color:", designSystem.customProperties.colorNeutral, ";animation-name:", animationPulse, ";animation-duration:1s;animation-timing-function:ease-out;animation-delay:0;animation-direction:alternate;animation-iteration-count:infinite;width:", getWidthBySize, ";height:", getHeightBySize, ";border-radius:", getRadiusBySize, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxvYWRpbmctcGxhY2Vob2xkZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtGNEMiLCJmaWxlIjoibG9hZGluZy1wbGFjZWhvbGRlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBrZXlmcmFtZXMgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBjdXN0b21Qcm9wZXJ0aWVzIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHNoYXBlOiAnZG90JyB8ICdyZWN0JztcbiAgc2l6ZTogJ3MnIHwgJ20nIHwgJ2wnIHwgJ3hsJztcbn07XG5cbmNvbnN0IGFuaW1hdGlvblB1bHNlID0ga2V5ZnJhbWVzYFxuICAwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjdXN0b21Qcm9wZXJ0aWVzLmNvbG9yTmV1dHJhbH07XG4gIH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjdXN0b21Qcm9wZXJ0aWVzLmNvbG9yTmV1dHJhbDk1fTtcbiAgfVxuYDtcblxuY29uc3QgZ2V0V2lkdGhCeVNpemUgPSAocHJvcHM6IFByb3BzKSA9PiB7XG4gIHN3aXRjaCAocHJvcHMuc2hhcGUpIHtcbiAgICBjYXNlICdkb3QnOlxuICAgICAgc3dpdGNoIChwcm9wcy5zaXplKSB7XG4gICAgICAgIGNhc2UgJ3MnOlxuICAgICAgICAgIHJldHVybiBjdXN0b21Qcm9wZXJ0aWVzLnNwYWNpbmdTO1xuICAgICAgICBjYXNlICdtJzpcbiAgICAgICAgICByZXR1cm4gY3VzdG9tUHJvcGVydGllcy5zcGFjaW5nTTtcbiAgICAgICAgY2FzZSAnbCc6XG4gICAgICAgICAgcmV0dXJuIGN1c3RvbVByb3BlcnRpZXMuc3BhY2luZ0w7XG4gICAgICAgIGNhc2UgJ3hsJzpcbiAgICAgICAgICByZXR1cm4gY3VzdG9tUHJvcGVydGllcy5zcGFjaW5nWGw7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuICdhdXRvJztcbiAgICAgIH1cbiAgICBjYXNlICdyZWN0JzpcbiAgICAgIHN3aXRjaCAocHJvcHMuc2l6ZSkge1xuICAgICAgICBjYXNlICdzJzpcbiAgICAgICAgICByZXR1cm4gJzE1MHB4JztcbiAgICAgICAgY2FzZSAnbSc6XG4gICAgICAgICAgcmV0dXJuICczMDBweCc7XG4gICAgICAgIGNhc2UgJ2wnOlxuICAgICAgICAgIHJldHVybiAnNDUwcHgnO1xuICAgICAgICBjYXNlICd4bCc6XG4gICAgICAgICAgcmV0dXJuICc2MDBweCc7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuICdhdXRvJztcbiAgICAgIH1cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuICdhdXRvJztcbiAgfVxufTtcbmNvbnN0IGdldEhlaWdodEJ5U2l6ZSA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgc3dpdGNoIChwcm9wcy5zaGFwZSkge1xuICAgIGNhc2UgJ2RvdCc6XG4gICAgICByZXR1cm4gZ2V0V2lkdGhCeVNpemUocHJvcHMpO1xuICAgIGNhc2UgJ3JlY3QnOlxuICAgICAgcmV0dXJuICczMnB4JztcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuICdhdXRvJztcbiAgfVxufTtcbmNvbnN0IGdldFJhZGl1c0J5U2l6ZSA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgc3dpdGNoIChwcm9wcy5zaGFwZSkge1xuICAgIGNhc2UgJ2RvdCc6XG4gICAgICBzd2l0Y2ggKHByb3BzLnNpemUpIHtcbiAgICAgICAgY2FzZSAncyc6XG4gICAgICAgICAgcmV0dXJuIGN1c3RvbVByb3BlcnRpZXMuYm9yZGVyUmFkaXVzNDtcbiAgICAgICAgY2FzZSAnbSc6XG4gICAgICAgICAgcmV0dXJuICc4cHgnO1xuICAgICAgICBjYXNlICdsJzpcbiAgICAgICAgICByZXR1cm4gJzEycHgnO1xuICAgICAgICBjYXNlICd4bCc6XG4gICAgICAgICAgcmV0dXJuICcxNnB4JztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gJ25vbmUnO1xuICAgICAgfVxuICAgIGNhc2UgJ3JlY3QnOlxuICAgICAgcmV0dXJuIGN1c3RvbVByb3BlcnRpZXMuYm9yZGVyUmFkaXVzNDtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuICdub25lJztcbiAgfVxufTtcblxuY29uc3QgTG9hZGluZ1BsYWNlaG9sZGVyID0gc3R5bGVkLmRpdjxQcm9wcz5gXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y3VzdG9tUHJvcGVydGllcy5jb2xvck5ldXRyYWx9O1xuICBhbmltYXRpb24tbmFtZTogJHthbmltYXRpb25QdWxzZX07XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICBhbmltYXRpb24tZGVsYXk6IDA7XG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZTtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG5cbiAgd2lkdGg6ICR7Z2V0V2lkdGhCeVNpemV9O1xuICBoZWlnaHQ6ICR7Z2V0SGVpZ2h0QnlTaXplfTtcbiAgYm9yZGVyLXJhZGl1czogJHtnZXRSYWRpdXNCeVNpemV9O1xuYDtcbkxvYWRpbmdQbGFjZWhvbGRlci5kaXNwbGF5TmFtZSA9ICdMb2FkaW5nUGxhY2Vob2xkZXInO1xuXG5leHBvcnQgZGVmYXVsdCBMb2FkaW5nUGxhY2Vob2xkZXI7XG4iXX0= */"));
226
- LoadingPlaceholder.displayName = 'LoadingPlaceholder';
227
-
228
- var messages = reactIntl.defineMessages({
229
- projectsLabel: {
230
- id: 'ProjectSwitcher.projectsLabel',
231
- description: 'The label for project dropdown switcher',
232
- defaultMessage: 'Projects menu'
233
- },
234
- searchPlaceholder: {
235
- id: 'ProjectSwitcher.searchPlaceholder',
236
- description: 'Projects filter search input placeholder',
237
- defaultMessage: 'Search for a project'
238
- },
239
- noResults: {
240
- id: 'ProjectSwitcher.noResults',
241
- description: 'Projects filter no results text',
242
- defaultMessage: 'Sorry, but there are no projects that match your search.'
243
- },
244
- suspended: {
245
- id: 'ProjectSwitcher.suspended',
246
- description: 'Label for a suspended project',
247
- defaultMessage: 'Suspended'
248
- },
249
- expired: {
250
- id: 'ProjectSwitcher.expired',
251
- description: 'Label for a suspended project',
252
- defaultMessage: 'Expired'
253
- }
254
- });
255
-
256
- const _excluded = ["projectCount"];
257
- function ownKeys$8(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; }
258
- function _objectSpread$8(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$8(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$8(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
259
- function _EMOTION_STRINGIFIED_CSS_ERROR__$4() { 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)."; }
260
- var ProjectsQuery = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "FetchUserProjects" }, variableDefinitions: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", alias: { kind: "Name", value: "user" }, name: { kind: "Name", value: "me" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "projects" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "results" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "key" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "suspension" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "isActive" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "expiry" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "isActive" }, arguments: [], directives: [] }] } }] } }] } }] } }] } }], loc: { start: 0, end: 218, source: { body: "query FetchUserProjects {\n user: me {\n id\n projects {\n results {\n name\n key\n suspension {\n isActive\n }\n expiry {\n isActive\n }\n }\n }\n }\n}\n", name: "GraphQL request", locationOffset: { line: 1, column: 1 } } } };
261
- const PROJECT_SWITCHER_LABEL_ID = 'project-switcher-label';
262
- var _ref3 = process.env.NODE_ENV === "production" ? {
263
- name: "82a6rk",
264
- styles: "flex:1"
265
- } : {
266
- name: "1j7riad-ProjectSwitcherValueContainer",
267
- styles: "flex:1;label:ProjectSwitcherValueContainer;",
268
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3Qtc3dpdGNoZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1EZ0IiLCJmaWxlIjoicHJvamVjdC1zd2l0Y2hlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgbWVtb2l6ZSBmcm9tICdtZW1vaXplLW9uZSc7XG5pbXBvcnQgeyBGb3JtYXR0ZWRNZXNzYWdlLCB1c2VJbnRsIH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQgdHlwZSB7IE9wdGlvblByb3BzLCBWYWx1ZUNvbnRhaW5lclByb3BzIH0gZnJvbSAncmVhY3Qtc2VsZWN0JztcbmltcG9ydCB7XG4gIHVzZU1jUXVlcnksXG4gIG9pZGNTdG9yYWdlLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1zaGVsbC1jb25uZWN0b3JzJztcbmltcG9ydCB0eXBlIHsgQXBwbGljYXRpb25XaW5kb3cgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9jb25zdGFudHMnO1xuaW1wb3J0IHsgR1JBUEhRTF9UQVJHRVRTIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7IHJlcG9ydEVycm9yVG9TZW50cnkgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9zZW50cnknO1xuaW1wb3J0IEFjY2Vzc2libGVIaWRkZW4gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvYWNjZXNzaWJsZS1oaWRkZW4nO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5pbXBvcnQgeyBFcnJvckljb24gfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pY29ucyc7XG5pbXBvcnQgU2VsZWN0SW5wdXQgZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvc2VsZWN0LWlucHV0JztcbmltcG9ydCB0eXBlIHtcbiAgVFByb2plY3QsXG4gIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5LFxuICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeVZhcmlhYmxlcyxcbn0gZnJvbSAnLi4vLi4vdHlwZXMvZ2VuZXJhdGVkL21jJztcbmltcG9ydCB7IGxvY2F0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9jYXRpb24nO1xuaW1wb3J0IG1lc3NhZ2VzIGZyb20gJy4vbWVzc2FnZXMnO1xuaW1wb3J0IFByb2plY3RzUXVlcnkgZnJvbSAnLi9wcm9qZWN0LXN3aXRjaGVyLm1jLmdyYXBocWwnO1xuXG5kZWNsYXJlIGxldCB3aW5kb3c6IEFwcGxpY2F0aW9uV2luZG93O1xuXG50eXBlIFByb3BzID0ge1xuICBwcm9qZWN0S2V5Pzogc3RyaW5nO1xufTtcbnR5cGUgT3B0aW9uVHlwZSA9IFBpY2s8VFByb2plY3QsICdrZXknIHwgJ25hbWUnIHwgJ3N1c3BlbnNpb24nIHwgJ2V4cGlyeSc+ICYge1xuICBsYWJlbDogc3RyaW5nO1xufTtcbnR5cGUgQ3VzdG9tVmFsdWVDb250YWluZXJQcm9wcyA9IFZhbHVlQ29udGFpbmVyUHJvcHMgJiB7XG4gIHByb2plY3RDb3VudDogbnVtYmVyO1xufTtcblxuY29uc3QgUFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRCA9ICdwcm9qZWN0LXN3aXRjaGVyLWxhYmVsJztcblxuZXhwb3J0IGNvbnN0IFByb2plY3RTd2l0Y2hlclZhbHVlQ29udGFpbmVyID0gKHtcbiAgcHJvamVjdENvdW50LFxuICAuLi5yZXN0UHJvcHNcbn06IEN1c3RvbVZhbHVlQ29udGFpbmVyUHJvcHMpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGB9XG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICBgfVxuICAgICAgPlxuICAgICAgICA8U2VsZWN0SW5wdXQuVmFsdWVDb250YWluZXIgey4uLnJlc3RQcm9wc30+XG4gICAgICAgICAge3Jlc3RQcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgPC9TZWxlY3RJbnB1dC5WYWx1ZUNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNwYW5cbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgd2lkdGg6IDI2cHg7XG4gICAgICAgICAgaGVpZ2h0OiAyNnB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHtkZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsfTtcbiAgICAgICAgICBjb2xvcjogJHtkZXNpZ25Ub2tlbnMuY29sb3JTdXJmYWNlfTtcbiAgICAgICAgICBmb250LXNpemU6ICR7ZGVzaWduVG9rZW5zLmZvbnRTaXplMzB9O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYH1cbiAgICAgID5cbiAgICAgICAge3Byb2plY3RDb3VudH1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBQcm9qZWN0U3dpdGNoZXJPcHRpb24gPSAocHJvcHM6IE9wdGlvblByb3BzKSA9PiB7XG4gIGNvbnN0IHByb2plY3QgPSBwcm9wcy5kYXRhIGFzIE9wdGlvblR5cGU7XG4gIHJldHVybiAoXG4gICAgPFNlbGVjdElucHV0Lk9wdGlvbiB7Li4ucHJvcHN9PlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgIGNvbG9yOiAke3Byb3BzLmlzRGlzYWJsZWRcbiAgICAgICAgICAgICAgPyBkZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsXG4gICAgICAgICAgICAgIDogZGVzaWduVG9rZW5zLmNvbG9yQWNjZW50fTtcbiAgICAgICAgICBgfVxuICAgICAgICA+XG4gICAgICAgICAge3Byb2plY3QubmFtZX1cbiAgICAgICAgICB7cHJvcHMuaXNEaXNhYmxlZCAmJiAoXG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8RXJyb3JJY29uIHNpemU9XCJtZWRpdW1cIiAvPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICBjb2xvcjogJHtwcm9wcy5pc0Rpc2FibGVkID8gZGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbCA6ICdpbmhlcml0J307XG4gICAgICAgICAgYH1cbiAgICAgICAgPlxuICAgICAgICAgIHtwcm9qZWN0LmtleX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHtwcm9qZWN0LnN1c3BlbnNpb24gJiYgcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlICYmIChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICAgICAgICBjb2xvcjogJHtkZXNpZ25Ub2tlbnMuY29sb3JFcnJvcn07XG4gICAgICAgICAgICBgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIHsuLi5tZXNzYWdlcy5zdXNwZW5kZWR9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIHtwcm9qZWN0LmV4cGlyeSAmJiBwcm9qZWN0LmV4cGlyeS5pc0FjdGl2ZSAmJiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgICAgY29sb3I6ICR7ZGVzaWduVG9rZW5zLmNvbG9yRXJyb3J9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMuZXhwaXJlZH0gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvU2VsZWN0SW5wdXQuT3B0aW9uPlxuICApO1xufTtcblxuY29uc3QgbWFwUHJvamVjdHNUb09wdGlvbnMgPSBtZW1vaXplKChwcm9qZWN0cykgPT5cbiAgcHJvamVjdHMubWFwKChwcm9qZWN0OiBUUHJvamVjdCkgPT4gKHtcbiAgICBrZXk6IHByb2plY3Qua2V5LFxuICAgIG5hbWU6IHByb2plY3QubmFtZSxcbiAgICBsYWJlbDogcHJvamVjdC5uYW1lLFxuICAgIHZhbHVlOiBwcm9qZWN0LmtleSxcbiAgICBzdXNwZW5zaW9uOiBwcm9qZWN0LnN1c3BlbnNpb24sXG4gICAgZXhwaXJ5OiBwcm9qZWN0LmV4cGlyeSxcbiAgfSkpXG4pO1xuXG5jb25zdCByZWRpcmVjdFRvID0gKHRhcmdldFVybDogc3RyaW5nKSA9PiBsb2NhdGlvbi5yZXBsYWNlKHRhcmdldFVybCk7XG5cbmNvbnN0IFByb2plY3RTd2l0Y2hlciA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcbiAgY29uc3QgeyBsb2FkaW5nLCBkYXRhIH0gPSB1c2VNY1F1ZXJ5PFxuICAgIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5LFxuICAgIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5VmFyaWFibGVzXG4gID4oUHJvamVjdHNRdWVyeSwge1xuICAgIG9uRXJyb3I6IHJlcG9ydEVycm9yVG9TZW50cnksXG4gICAgY29udGV4dDoge1xuICAgICAgdGFyZ2V0OiBHUkFQSFFMX1RBUkdFVFMuTUVSQ0hBTlRfQ0VOVEVSX0JBQ0tFTkQsXG4gICAgfSxcbiAgfSk7XG5cbiAgaWYgKGxvYWRpbmcpIHJldHVybiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIHdpZHRoOiAke2Rlc2lnblRva2Vucy5jb25zdHJhaW50Nn07XG4gICAgICBgfVxuICAgID5cbiAgICAgIDxBY2Nlc3NpYmxlSGlkZGVuPlxuICAgICAgICA8c3BhbiBpZD17UFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRH0+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLnByb2plY3RzTGFiZWx9IC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvQWNjZXNzaWJsZUhpZGRlbj5cbiAgICAgIDxTZWxlY3RJbnB1dFxuICAgICAgICB2YWx1ZT17cHJvcHMucHJvamVjdEtleSB8fCAnJ31cbiAgICAgICAgbmFtZT1cInByb2plY3Qtc3dpdGNoZXJcIlxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e1BST0pFQ1RfU1dJVENIRVJfTEFCRUxfSUR9XG4gICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZFByb2plY3RLZXkgPSBldmVudC50YXJnZXQudmFsdWUgYXMgc3RyaW5nO1xuICAgICAgICAgIGlmIChzZWxlY3RlZFByb2plY3RLZXkgIT09IHByb3BzLnByb2plY3RLZXkpIHtcbiAgICAgICAgICAgIGlmICh3aW5kb3cuYXBwLl9fREVWRUxPUE1FTlRfXz8ub2lkYz8uYXV0aG9yaXplVXJsKSB7XG4gICAgICAgICAgICAgIG9pZGNTdG9yYWdlLnNldEFjdGl2ZVByb2plY3RLZXkoc2VsZWN0ZWRQcm9qZWN0S2V5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gV2Ugc2ltcGx5IHJlZGlyZWN0IHRvIGEgXCJuZXdcIiBicm93c2VyIHBhZ2UsIGluc3RlYWQgb2YgdXNpbmcgdGhlXG4gICAgICAgICAgICAvLyBoaXN0b3J5IHJvdXRlci4gVGhpcyB3aWxsIHNpbXBsaWZ5IGEgbG90IG9mIHRoaW5ncyBhbmQgYXZvaWQgcG9zc2libGVcbiAgICAgICAgICAgIC8vIHByb2JsZW1zIGxpa2UgZS5nLiByZXNldHRpbmcgdGhlIHN0b3JlL3N0YXRlLlxuICAgICAgICAgICAgcmVkaXJlY3RUbyhgLyR7c2VsZWN0ZWRQcm9qZWN0S2V5fWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgb3B0aW9ucz17XG4gICAgICAgICAgZGF0YSAmJiBkYXRhLnVzZXIgJiYgbWFwUHJvamVjdHNUb09wdGlvbnMoZGF0YS51c2VyLnByb2plY3RzLnJlc3VsdHMpXG4gICAgICAgIH1cbiAgICAgICAgaXNPcHRpb25EaXNhYmxlZD17KG9wdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb2plY3QgPSBvcHRpb24gYXMgT3B0aW9uVHlwZTtcbiAgICAgICAgICByZXR1cm4gcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlIHx8IHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlO1xuICAgICAgICB9fVxuICAgICAgICBjb21wb25lbnRzPXt7XG4gICAgICAgICAgT3B0aW9uOiBQcm9qZWN0U3dpdGNoZXJPcHRpb24sXG4gICAgICAgICAgVmFsdWVDb250YWluZXI6ICh2YWx1ZUNvbnRhaW5lclByb3BzKSA9PiAoXG4gICAgICAgICAgICA8UHJvamVjdFN3aXRjaGVyVmFsdWVDb250YWluZXJcbiAgICAgICAgICAgICAgey4uLnZhbHVlQ29udGFpbmVyUHJvcHN9XG4gICAgICAgICAgICAgIHByb2plY3RDb3VudD17XG4gICAgICAgICAgICAgICAgKGRhdGEgJiYgZGF0YS51c2VyICYmIGRhdGEudXNlci5wcm9qZWN0cy5yZXN1bHRzLmxlbmd0aCkgfHwgMFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICksXG4gICAgICAgIH19XG4gICAgICAgIGlzQ2xlYXJhYmxlPXtmYWxzZX1cbiAgICAgICAgYmFja3NwYWNlUmVtb3Zlc1ZhbHVlPXtmYWxzZX1cbiAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5zZWFyY2hQbGFjZWhvbGRlcil9XG4gICAgICAgIG5vT3B0aW9uc01lc3NhZ2U9eygpID0+IGludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5ub1Jlc3VsdHMpfVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5Qcm9qZWN0U3dpdGNoZXIuZGlzcGxheU5hbWUgPSAnUHJvamVjdFN3aXRjaGVyJztcblxuZXhwb3J0IGRlZmF1bHQgUHJvamVjdFN3aXRjaGVyO1xuIl19 */",
269
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__$4
270
- };
271
- var _ref4 = process.env.NODE_ENV === "production" ? {
272
- name: "zol16h",
273
- styles: "display:flex;flex:1;align-items:center"
274
- } : {
275
- name: "6c3nin-ProjectSwitcherValueContainer",
276
- styles: "display:flex;flex:1;align-items:center;label:ProjectSwitcherValueContainer;",
277
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3Qtc3dpdGNoZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRDYyIsImZpbGUiOiJwcm9qZWN0LXN3aXRjaGVyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBtZW1vaXplIGZyb20gJ21lbW9pemUtb25lJztcbmltcG9ydCB7IEZvcm1hdHRlZE1lc3NhZ2UsIHVzZUludGwgfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB0eXBlIHsgT3B0aW9uUHJvcHMsIFZhbHVlQ29udGFpbmVyUHJvcHMgfSBmcm9tICdyZWFjdC1zZWxlY3QnO1xuaW1wb3J0IHtcbiAgdXNlTWNRdWVyeSxcbiAgb2lkY1N0b3JhZ2UsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHR5cGUgeyBBcHBsaWNhdGlvbldpbmRvdyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBHUkFQSFFMX1RBUkdFVFMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9jb25zdGFudHMnO1xuaW1wb3J0IHsgcmVwb3J0RXJyb3JUb1NlbnRyeSB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL3NlbnRyeSc7XG5pbXBvcnQgQWNjZXNzaWJsZUhpZGRlbiBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9hY2Nlc3NpYmxlLWhpZGRlbic7XG5pbXBvcnQgeyBkZXNpZ25Ub2tlbnMgfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9kZXNpZ24tc3lzdGVtJztcbmltcG9ydCB7IEVycm9ySWNvbiB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2ljb25zJztcbmltcG9ydCBTZWxlY3RJbnB1dCBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9zZWxlY3QtaW5wdXQnO1xuaW1wb3J0IHR5cGUge1xuICBUUHJvamVjdCxcbiAgVEZldGNoVXNlclByb2plY3RzUXVlcnksXG4gIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5VmFyaWFibGVzLFxufSBmcm9tICcuLi8uLi90eXBlcy9nZW5lcmF0ZWQvbWMnO1xuaW1wb3J0IHsgbG9jYXRpb24gfSBmcm9tICcuLi8uLi91dGlscy9sb2NhdGlvbic7XG5pbXBvcnQgbWVzc2FnZXMgZnJvbSAnLi9tZXNzYWdlcyc7XG5pbXBvcnQgUHJvamVjdHNRdWVyeSBmcm9tICcuL3Byb2plY3Qtc3dpdGNoZXIubWMuZ3JhcGhxbCc7XG5cbmRlY2xhcmUgbGV0IHdpbmRvdzogQXBwbGljYXRpb25XaW5kb3c7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHByb2plY3RLZXk/OiBzdHJpbmc7XG59O1xudHlwZSBPcHRpb25UeXBlID0gUGljazxUUHJvamVjdCwgJ2tleScgfCAnbmFtZScgfCAnc3VzcGVuc2lvbicgfCAnZXhwaXJ5Jz4gJiB7XG4gIGxhYmVsOiBzdHJpbmc7XG59O1xudHlwZSBDdXN0b21WYWx1ZUNvbnRhaW5lclByb3BzID0gVmFsdWVDb250YWluZXJQcm9wcyAmIHtcbiAgcHJvamVjdENvdW50OiBudW1iZXI7XG59O1xuXG5jb25zdCBQUk9KRUNUX1NXSVRDSEVSX0xBQkVMX0lEID0gJ3Byb2plY3Qtc3dpdGNoZXItbGFiZWwnO1xuXG5leHBvcnQgY29uc3QgUHJvamVjdFN3aXRjaGVyVmFsdWVDb250YWluZXIgPSAoe1xuICBwcm9qZWN0Q291bnQsXG4gIC4uLnJlc3RQcm9wc1xufTogQ3VzdG9tVmFsdWVDb250YWluZXJQcm9wcykgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgYH1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxTZWxlY3RJbnB1dC5WYWx1ZUNvbnRhaW5lciB7Li4ucmVzdFByb3BzfT5cbiAgICAgICAgICB7cmVzdFByb3BzLmNoaWxkcmVufVxuICAgICAgICA8L1NlbGVjdElucHV0LlZhbHVlQ29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8c3BhblxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICB3aWR0aDogMjZweDtcbiAgICAgICAgICBoZWlnaHQ6IDI2cHg7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2Rlc2lnblRva2Vucy5jb2xvck5ldXRyYWx9O1xuICAgICAgICAgIGNvbG9yOiAke2Rlc2lnblRva2Vucy5jb2xvclN1cmZhY2V9O1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHtkZXNpZ25Ub2tlbnMuZm9udFNpemUzMH07XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBgfVxuICAgICAgPlxuICAgICAgICB7cHJvamVjdENvdW50fVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IFByb2plY3RTd2l0Y2hlck9wdGlvbiA9IChwcm9wczogT3B0aW9uUHJvcHMpID0+IHtcbiAgY29uc3QgcHJvamVjdCA9IHByb3BzLmRhdGEgYXMgT3B0aW9uVHlwZTtcbiAgcmV0dXJuIChcbiAgICA8U2VsZWN0SW5wdXQuT3B0aW9uIHsuLi5wcm9wc30+XG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgYH1cbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgY29sb3I6ICR7cHJvcHMuaXNEaXNhYmxlZFxuICAgICAgICAgICAgICA/IGRlc2lnblRva2Vucy5jb2xvck5ldXRyYWxcbiAgICAgICAgICAgICAgOiBkZXNpZ25Ub2tlbnMuY29sb3JBY2NlbnR9O1xuICAgICAgICAgIGB9XG4gICAgICAgID5cbiAgICAgICAgICB7cHJvamVjdC5uYW1lfVxuICAgICAgICAgIHtwcm9wcy5pc0Rpc2FibGVkICYmIChcbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxFcnJvckljb24gc2l6ZT1cIm1lZGl1bVwiIC8+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgIGNvbG9yOiAke3Byb3BzLmlzRGlzYWJsZWQgPyBkZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsIDogJ2luaGVyaXQnfTtcbiAgICAgICAgICBgfVxuICAgICAgICA+XG4gICAgICAgICAge3Byb2plY3Qua2V5fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge3Byb2plY3Quc3VzcGVuc2lvbiAmJiBwcm9qZWN0LnN1c3BlbnNpb24uaXNBY3RpdmUgJiYgKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICAgIGNvbG9yOiAke2Rlc2lnblRva2Vucy5jb2xvckVycm9yfTtcbiAgICAgICAgICAgIGB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLnN1c3BlbmRlZH0gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgICAge3Byb2plY3QuZXhwaXJ5ICYmIHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlICYmIChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICAgICAgICBjb2xvcjogJHtkZXNpZ25Ub2tlbnMuY29sb3JFcnJvcn07XG4gICAgICAgICAgICBgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIHsuLi5tZXNzYWdlcy5leHBpcmVkfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC9TZWxlY3RJbnB1dC5PcHRpb24+XG4gICk7XG59O1xuXG5jb25zdCBtYXBQcm9qZWN0c1RvT3B0aW9ucyA9IG1lbW9pemUoKHByb2plY3RzKSA9PlxuICBwcm9qZWN0cy5tYXAoKHByb2plY3Q6IFRQcm9qZWN0KSA9PiAoe1xuICAgIGtleTogcHJvamVjdC5rZXksXG4gICAgbmFtZTogcHJvamVjdC5uYW1lLFxuICAgIGxhYmVsOiBwcm9qZWN0Lm5hbWUsXG4gICAgdmFsdWU6IHByb2plY3Qua2V5LFxuICAgIHN1c3BlbnNpb246IHByb2plY3Quc3VzcGVuc2lvbixcbiAgICBleHBpcnk6IHByb2plY3QuZXhwaXJ5LFxuICB9KSlcbik7XG5cbmNvbnN0IHJlZGlyZWN0VG8gPSAodGFyZ2V0VXJsOiBzdHJpbmcpID0+IGxvY2F0aW9uLnJlcGxhY2UodGFyZ2V0VXJsKTtcblxuY29uc3QgUHJvamVjdFN3aXRjaGVyID0gKHByb3BzOiBQcm9wcykgPT4ge1xuICBjb25zdCBpbnRsID0gdXNlSW50bCgpO1xuICBjb25zdCB7IGxvYWRpbmcsIGRhdGEgfSA9IHVzZU1jUXVlcnk8XG4gICAgVEZldGNoVXNlclByb2plY3RzUXVlcnksXG4gICAgVEZldGNoVXNlclByb2plY3RzUXVlcnlWYXJpYWJsZXNcbiAgPihQcm9qZWN0c1F1ZXJ5LCB7XG4gICAgb25FcnJvcjogcmVwb3J0RXJyb3JUb1NlbnRyeSxcbiAgICBjb250ZXh0OiB7XG4gICAgICB0YXJnZXQ6IEdSQVBIUUxfVEFSR0VUUy5NRVJDSEFOVF9DRU5URVJfQkFDS0VORCxcbiAgICB9LFxuICB9KTtcblxuICBpZiAobG9hZGluZykgcmV0dXJuIG51bGw7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgd2lkdGg6ICR7ZGVzaWduVG9rZW5zLmNvbnN0cmFpbnQ2fTtcbiAgICAgIGB9XG4gICAgPlxuICAgICAgPEFjY2Vzc2libGVIaWRkZW4+XG4gICAgICAgIDxzcGFuIGlkPXtQUk9KRUNUX1NXSVRDSEVSX0xBQkVMX0lEfT5cbiAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMucHJvamVjdHNMYWJlbH0gLz5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9BY2Nlc3NpYmxlSGlkZGVuPlxuICAgICAgPFNlbGVjdElucHV0XG4gICAgICAgIHZhbHVlPXtwcm9wcy5wcm9qZWN0S2V5IHx8ICcnfVxuICAgICAgICBuYW1lPVwicHJvamVjdC1zd2l0Y2hlclwiXG4gICAgICAgIGFyaWEtbGFiZWxsZWRieT17UFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRH1cbiAgICAgICAgb25DaGFuZ2U9eyhldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUHJvamVjdEtleSA9IGV2ZW50LnRhcmdldC52YWx1ZSBhcyBzdHJpbmc7XG4gICAgICAgICAgaWYgKHNlbGVjdGVkUHJvamVjdEtleSAhPT0gcHJvcHMucHJvamVjdEtleSkge1xuICAgICAgICAgICAgaWYgKHdpbmRvdy5hcHAuX19ERVZFTE9QTUVOVF9fPy5vaWRjPy5hdXRob3JpemVVcmwpIHtcbiAgICAgICAgICAgICAgb2lkY1N0b3JhZ2Uuc2V0QWN0aXZlUHJvamVjdEtleShzZWxlY3RlZFByb2plY3RLZXkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBXZSBzaW1wbHkgcmVkaXJlY3QgdG8gYSBcIm5ld1wiIGJyb3dzZXIgcGFnZSwgaW5zdGVhZCBvZiB1c2luZyB0aGVcbiAgICAgICAgICAgIC8vIGhpc3Rvcnkgcm91dGVyLiBUaGlzIHdpbGwgc2ltcGxpZnkgYSBsb3Qgb2YgdGhpbmdzIGFuZCBhdm9pZCBwb3NzaWJsZVxuICAgICAgICAgICAgLy8gcHJvYmxlbXMgbGlrZSBlLmcuIHJlc2V0dGluZyB0aGUgc3RvcmUvc3RhdGUuXG4gICAgICAgICAgICByZWRpcmVjdFRvKGAvJHtzZWxlY3RlZFByb2plY3RLZXl9YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICBvcHRpb25zPXtcbiAgICAgICAgICBkYXRhICYmIGRhdGEudXNlciAmJiBtYXBQcm9qZWN0c1RvT3B0aW9ucyhkYXRhLnVzZXIucHJvamVjdHMucmVzdWx0cylcbiAgICAgICAgfVxuICAgICAgICBpc09wdGlvbkRpc2FibGVkPXsob3B0aW9uKSA9PiB7XG4gICAgICAgICAgY29uc3QgcHJvamVjdCA9IG9wdGlvbiBhcyBPcHRpb25UeXBlO1xuICAgICAgICAgIHJldHVybiBwcm9qZWN0LnN1c3BlbnNpb24uaXNBY3RpdmUgfHwgcHJvamVjdC5leHBpcnkuaXNBY3RpdmU7XG4gICAgICAgIH19XG4gICAgICAgIGNvbXBvbmVudHM9e3tcbiAgICAgICAgICBPcHRpb246IFByb2plY3RTd2l0Y2hlck9wdGlvbixcbiAgICAgICAgICBWYWx1ZUNvbnRhaW5lcjogKHZhbHVlQ29udGFpbmVyUHJvcHMpID0+IChcbiAgICAgICAgICAgIDxQcm9qZWN0U3dpdGNoZXJWYWx1ZUNvbnRhaW5lclxuICAgICAgICAgICAgICB7Li4udmFsdWVDb250YWluZXJQcm9wc31cbiAgICAgICAgICAgICAgcHJvamVjdENvdW50PXtcbiAgICAgICAgICAgICAgICAoZGF0YSAmJiBkYXRhLnVzZXIgJiYgZGF0YS51c2VyLnByb2plY3RzLnJlc3VsdHMubGVuZ3RoKSB8fCAwXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSxcbiAgICAgICAgfX1cbiAgICAgICAgaXNDbGVhcmFibGU9e2ZhbHNlfVxuICAgICAgICBiYWNrc3BhY2VSZW1vdmVzVmFsdWU9e2ZhbHNlfVxuICAgICAgICBwbGFjZWhvbGRlcj17aW50bC5mb3JtYXRNZXNzYWdlKG1lc3NhZ2VzLnNlYXJjaFBsYWNlaG9sZGVyKX1cbiAgICAgICAgbm9PcHRpb25zTWVzc2FnZT17KCkgPT4gaW50bC5mb3JtYXRNZXNzYWdlKG1lc3NhZ2VzLm5vUmVzdWx0cyl9XG4gICAgICAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblByb2plY3RTd2l0Y2hlci5kaXNwbGF5TmFtZSA9ICdQcm9qZWN0U3dpdGNoZXInO1xuXG5leHBvcnQgZGVmYXVsdCBQcm9qZWN0U3dpdGNoZXI7XG4iXX0= */",
278
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__$4
279
- };
280
- const ProjectSwitcherValueContainer = _ref5 => {
281
- let projectCount = _ref5.projectCount,
282
- restProps = _objectWithoutProperties(_ref5, _excluded);
283
- return jsxRuntime.jsxs("div", {
284
- css: _ref4,
285
- children: [jsxRuntime.jsx("div", {
286
- css: _ref3,
287
- children: jsxRuntime.jsx(SelectInput__default["default"].ValueContainer, _objectSpread$8(_objectSpread$8({}, restProps), {}, {
288
- children: restProps.children
289
- }))
290
- }), jsxRuntime.jsx("span", {
291
- css: /*#__PURE__*/react$1.css("width:26px;height:26px;border-radius:100%;background:", designSystem.designTokens.colorNeutral, ";color:", designSystem.designTokens.colorSurface, ";font-size:", designSystem.designTokens.fontSize30, ";display:flex;justify-content:center;align-items:center;" + (process.env.NODE_ENV === "production" ? "" : ";label:ProjectSwitcherValueContainer;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3Qtc3dpdGNoZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTREZ0IiLCJmaWxlIjoicHJvamVjdC1zd2l0Y2hlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgbWVtb2l6ZSBmcm9tICdtZW1vaXplLW9uZSc7XG5pbXBvcnQgeyBGb3JtYXR0ZWRNZXNzYWdlLCB1c2VJbnRsIH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQgdHlwZSB7IE9wdGlvblByb3BzLCBWYWx1ZUNvbnRhaW5lclByb3BzIH0gZnJvbSAncmVhY3Qtc2VsZWN0JztcbmltcG9ydCB7XG4gIHVzZU1jUXVlcnksXG4gIG9pZGNTdG9yYWdlLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1zaGVsbC1jb25uZWN0b3JzJztcbmltcG9ydCB0eXBlIHsgQXBwbGljYXRpb25XaW5kb3cgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9jb25zdGFudHMnO1xuaW1wb3J0IHsgR1JBUEhRTF9UQVJHRVRTIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7IHJlcG9ydEVycm9yVG9TZW50cnkgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9zZW50cnknO1xuaW1wb3J0IEFjY2Vzc2libGVIaWRkZW4gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvYWNjZXNzaWJsZS1oaWRkZW4nO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5pbXBvcnQgeyBFcnJvckljb24gfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pY29ucyc7XG5pbXBvcnQgU2VsZWN0SW5wdXQgZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvc2VsZWN0LWlucHV0JztcbmltcG9ydCB0eXBlIHtcbiAgVFByb2plY3QsXG4gIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5LFxuICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeVZhcmlhYmxlcyxcbn0gZnJvbSAnLi4vLi4vdHlwZXMvZ2VuZXJhdGVkL21jJztcbmltcG9ydCB7IGxvY2F0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9jYXRpb24nO1xuaW1wb3J0IG1lc3NhZ2VzIGZyb20gJy4vbWVzc2FnZXMnO1xuaW1wb3J0IFByb2plY3RzUXVlcnkgZnJvbSAnLi9wcm9qZWN0LXN3aXRjaGVyLm1jLmdyYXBocWwnO1xuXG5kZWNsYXJlIGxldCB3aW5kb3c6IEFwcGxpY2F0aW9uV2luZG93O1xuXG50eXBlIFByb3BzID0ge1xuICBwcm9qZWN0S2V5Pzogc3RyaW5nO1xufTtcbnR5cGUgT3B0aW9uVHlwZSA9IFBpY2s8VFByb2plY3QsICdrZXknIHwgJ25hbWUnIHwgJ3N1c3BlbnNpb24nIHwgJ2V4cGlyeSc+ICYge1xuICBsYWJlbDogc3RyaW5nO1xufTtcbnR5cGUgQ3VzdG9tVmFsdWVDb250YWluZXJQcm9wcyA9IFZhbHVlQ29udGFpbmVyUHJvcHMgJiB7XG4gIHByb2plY3RDb3VudDogbnVtYmVyO1xufTtcblxuY29uc3QgUFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRCA9ICdwcm9qZWN0LXN3aXRjaGVyLWxhYmVsJztcblxuZXhwb3J0IGNvbnN0IFByb2plY3RTd2l0Y2hlclZhbHVlQ29udGFpbmVyID0gKHtcbiAgcHJvamVjdENvdW50LFxuICAuLi5yZXN0UHJvcHNcbn06IEN1c3RvbVZhbHVlQ29udGFpbmVyUHJvcHMpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGB9XG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICBgfVxuICAgICAgPlxuICAgICAgICA8U2VsZWN0SW5wdXQuVmFsdWVDb250YWluZXIgey4uLnJlc3RQcm9wc30+XG4gICAgICAgICAge3Jlc3RQcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgPC9TZWxlY3RJbnB1dC5WYWx1ZUNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNwYW5cbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgd2lkdGg6IDI2cHg7XG4gICAgICAgICAgaGVpZ2h0OiAyNnB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHtkZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsfTtcbiAgICAgICAgICBjb2xvcjogJHtkZXNpZ25Ub2tlbnMuY29sb3JTdXJmYWNlfTtcbiAgICAgICAgICBmb250LXNpemU6ICR7ZGVzaWduVG9rZW5zLmZvbnRTaXplMzB9O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYH1cbiAgICAgID5cbiAgICAgICAge3Byb2plY3RDb3VudH1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBQcm9qZWN0U3dpdGNoZXJPcHRpb24gPSAocHJvcHM6IE9wdGlvblByb3BzKSA9PiB7XG4gIGNvbnN0IHByb2plY3QgPSBwcm9wcy5kYXRhIGFzIE9wdGlvblR5cGU7XG4gIHJldHVybiAoXG4gICAgPFNlbGVjdElucHV0Lk9wdGlvbiB7Li4ucHJvcHN9PlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgIGNvbG9yOiAke3Byb3BzLmlzRGlzYWJsZWRcbiAgICAgICAgICAgICAgPyBkZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsXG4gICAgICAgICAgICAgIDogZGVzaWduVG9rZW5zLmNvbG9yQWNjZW50fTtcbiAgICAgICAgICBgfVxuICAgICAgICA+XG4gICAgICAgICAge3Byb2plY3QubmFtZX1cbiAgICAgICAgICB7cHJvcHMuaXNEaXNhYmxlZCAmJiAoXG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8RXJyb3JJY29uIHNpemU9XCJtZWRpdW1cIiAvPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICBjb2xvcjogJHtwcm9wcy5pc0Rpc2FibGVkID8gZGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbCA6ICdpbmhlcml0J307XG4gICAgICAgICAgYH1cbiAgICAgICAgPlxuICAgICAgICAgIHtwcm9qZWN0LmtleX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHtwcm9qZWN0LnN1c3BlbnNpb24gJiYgcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlICYmIChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICAgICAgICBjb2xvcjogJHtkZXNpZ25Ub2tlbnMuY29sb3JFcnJvcn07XG4gICAgICAgICAgICBgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIHsuLi5tZXNzYWdlcy5zdXNwZW5kZWR9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIHtwcm9qZWN0LmV4cGlyeSAmJiBwcm9qZWN0LmV4cGlyeS5pc0FjdGl2ZSAmJiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgICAgY29sb3I6ICR7ZGVzaWduVG9rZW5zLmNvbG9yRXJyb3J9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMuZXhwaXJlZH0gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvU2VsZWN0SW5wdXQuT3B0aW9uPlxuICApO1xufTtcblxuY29uc3QgbWFwUHJvamVjdHNUb09wdGlvbnMgPSBtZW1vaXplKChwcm9qZWN0cykgPT5cbiAgcHJvamVjdHMubWFwKChwcm9qZWN0OiBUUHJvamVjdCkgPT4gKHtcbiAgICBrZXk6IHByb2plY3Qua2V5LFxuICAgIG5hbWU6IHByb2plY3QubmFtZSxcbiAgICBsYWJlbDogcHJvamVjdC5uYW1lLFxuICAgIHZhbHVlOiBwcm9qZWN0LmtleSxcbiAgICBzdXNwZW5zaW9uOiBwcm9qZWN0LnN1c3BlbnNpb24sXG4gICAgZXhwaXJ5OiBwcm9qZWN0LmV4cGlyeSxcbiAgfSkpXG4pO1xuXG5jb25zdCByZWRpcmVjdFRvID0gKHRhcmdldFVybDogc3RyaW5nKSA9PiBsb2NhdGlvbi5yZXBsYWNlKHRhcmdldFVybCk7XG5cbmNvbnN0IFByb2plY3RTd2l0Y2hlciA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcbiAgY29uc3QgeyBsb2FkaW5nLCBkYXRhIH0gPSB1c2VNY1F1ZXJ5PFxuICAgIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5LFxuICAgIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5VmFyaWFibGVzXG4gID4oUHJvamVjdHNRdWVyeSwge1xuICAgIG9uRXJyb3I6IHJlcG9ydEVycm9yVG9TZW50cnksXG4gICAgY29udGV4dDoge1xuICAgICAgdGFyZ2V0OiBHUkFQSFFMX1RBUkdFVFMuTUVSQ0hBTlRfQ0VOVEVSX0JBQ0tFTkQsXG4gICAgfSxcbiAgfSk7XG5cbiAgaWYgKGxvYWRpbmcpIHJldHVybiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIHdpZHRoOiAke2Rlc2lnblRva2Vucy5jb25zdHJhaW50Nn07XG4gICAgICBgfVxuICAgID5cbiAgICAgIDxBY2Nlc3NpYmxlSGlkZGVuPlxuICAgICAgICA8c3BhbiBpZD17UFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRH0+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLnByb2plY3RzTGFiZWx9IC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvQWNjZXNzaWJsZUhpZGRlbj5cbiAgICAgIDxTZWxlY3RJbnB1dFxuICAgICAgICB2YWx1ZT17cHJvcHMucHJvamVjdEtleSB8fCAnJ31cbiAgICAgICAgbmFtZT1cInByb2plY3Qtc3dpdGNoZXJcIlxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e1BST0pFQ1RfU1dJVENIRVJfTEFCRUxfSUR9XG4gICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZFByb2plY3RLZXkgPSBldmVudC50YXJnZXQudmFsdWUgYXMgc3RyaW5nO1xuICAgICAgICAgIGlmIChzZWxlY3RlZFByb2plY3RLZXkgIT09IHByb3BzLnByb2plY3RLZXkpIHtcbiAgICAgICAgICAgIGlmICh3aW5kb3cuYXBwLl9fREVWRUxPUE1FTlRfXz8ub2lkYz8uYXV0aG9yaXplVXJsKSB7XG4gICAgICAgICAgICAgIG9pZGNTdG9yYWdlLnNldEFjdGl2ZVByb2plY3RLZXkoc2VsZWN0ZWRQcm9qZWN0S2V5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gV2Ugc2ltcGx5IHJlZGlyZWN0IHRvIGEgXCJuZXdcIiBicm93c2VyIHBhZ2UsIGluc3RlYWQgb2YgdXNpbmcgdGhlXG4gICAgICAgICAgICAvLyBoaXN0b3J5IHJvdXRlci4gVGhpcyB3aWxsIHNpbXBsaWZ5IGEgbG90IG9mIHRoaW5ncyBhbmQgYXZvaWQgcG9zc2libGVcbiAgICAgICAgICAgIC8vIHByb2JsZW1zIGxpa2UgZS5nLiByZXNldHRpbmcgdGhlIHN0b3JlL3N0YXRlLlxuICAgICAgICAgICAgcmVkaXJlY3RUbyhgLyR7c2VsZWN0ZWRQcm9qZWN0S2V5fWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgb3B0aW9ucz17XG4gICAgICAgICAgZGF0YSAmJiBkYXRhLnVzZXIgJiYgbWFwUHJvamVjdHNUb09wdGlvbnMoZGF0YS51c2VyLnByb2plY3RzLnJlc3VsdHMpXG4gICAgICAgIH1cbiAgICAgICAgaXNPcHRpb25EaXNhYmxlZD17KG9wdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb2plY3QgPSBvcHRpb24gYXMgT3B0aW9uVHlwZTtcbiAgICAgICAgICByZXR1cm4gcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlIHx8IHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlO1xuICAgICAgICB9fVxuICAgICAgICBjb21wb25lbnRzPXt7XG4gICAgICAgICAgT3B0aW9uOiBQcm9qZWN0U3dpdGNoZXJPcHRpb24sXG4gICAgICAgICAgVmFsdWVDb250YWluZXI6ICh2YWx1ZUNvbnRhaW5lclByb3BzKSA9PiAoXG4gICAgICAgICAgICA8UHJvamVjdFN3aXRjaGVyVmFsdWVDb250YWluZXJcbiAgICAgICAgICAgICAgey4uLnZhbHVlQ29udGFpbmVyUHJvcHN9XG4gICAgICAgICAgICAgIHByb2plY3RDb3VudD17XG4gICAgICAgICAgICAgICAgKGRhdGEgJiYgZGF0YS51c2VyICYmIGRhdGEudXNlci5wcm9qZWN0cy5yZXN1bHRzLmxlbmd0aCkgfHwgMFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICksXG4gICAgICAgIH19XG4gICAgICAgIGlzQ2xlYXJhYmxlPXtmYWxzZX1cbiAgICAgICAgYmFja3NwYWNlUmVtb3Zlc1ZhbHVlPXtmYWxzZX1cbiAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5zZWFyY2hQbGFjZWhvbGRlcil9XG4gICAgICAgIG5vT3B0aW9uc01lc3NhZ2U9eygpID0+IGludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5ub1Jlc3VsdHMpfVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5Qcm9qZWN0U3dpdGNoZXIuZGlzcGxheU5hbWUgPSAnUHJvamVjdFN3aXRjaGVyJztcblxuZXhwb3J0IGRlZmF1bHQgUHJvamVjdFN3aXRjaGVyO1xuIl19 */"),
292
- children: projectCount
293
- })]
294
- });
295
- };
296
- var _ref$2 = process.env.NODE_ENV === "production" ? {
297
- name: "16lqnjx",
298
- styles: "font-size:1.5rem;display:flex"
299
- } : {
300
- name: "1nmxni5-ProjectSwitcherOption",
301
- styles: "font-size:1.5rem;display:flex;label:ProjectSwitcherOption;",
302
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3Qtc3dpdGNoZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlHc0IiLCJmaWxlIjoicHJvamVjdC1zd2l0Y2hlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgbWVtb2l6ZSBmcm9tICdtZW1vaXplLW9uZSc7XG5pbXBvcnQgeyBGb3JtYXR0ZWRNZXNzYWdlLCB1c2VJbnRsIH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQgdHlwZSB7IE9wdGlvblByb3BzLCBWYWx1ZUNvbnRhaW5lclByb3BzIH0gZnJvbSAncmVhY3Qtc2VsZWN0JztcbmltcG9ydCB7XG4gIHVzZU1jUXVlcnksXG4gIG9pZGNTdG9yYWdlLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1zaGVsbC1jb25uZWN0b3JzJztcbmltcG9ydCB0eXBlIHsgQXBwbGljYXRpb25XaW5kb3cgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9jb25zdGFudHMnO1xuaW1wb3J0IHsgR1JBUEhRTF9UQVJHRVRTIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7IHJlcG9ydEVycm9yVG9TZW50cnkgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9zZW50cnknO1xuaW1wb3J0IEFjY2Vzc2libGVIaWRkZW4gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvYWNjZXNzaWJsZS1oaWRkZW4nO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5pbXBvcnQgeyBFcnJvckljb24gfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pY29ucyc7XG5pbXBvcnQgU2VsZWN0SW5wdXQgZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvc2VsZWN0LWlucHV0JztcbmltcG9ydCB0eXBlIHtcbiAgVFByb2plY3QsXG4gIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5LFxuICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeVZhcmlhYmxlcyxcbn0gZnJvbSAnLi4vLi4vdHlwZXMvZ2VuZXJhdGVkL21jJztcbmltcG9ydCB7IGxvY2F0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9jYXRpb24nO1xuaW1wb3J0IG1lc3NhZ2VzIGZyb20gJy4vbWVzc2FnZXMnO1xuaW1wb3J0IFByb2plY3RzUXVlcnkgZnJvbSAnLi9wcm9qZWN0LXN3aXRjaGVyLm1jLmdyYXBocWwnO1xuXG5kZWNsYXJlIGxldCB3aW5kb3c6IEFwcGxpY2F0aW9uV2luZG93O1xuXG50eXBlIFByb3BzID0ge1xuICBwcm9qZWN0S2V5Pzogc3RyaW5nO1xufTtcbnR5cGUgT3B0aW9uVHlwZSA9IFBpY2s8VFByb2plY3QsICdrZXknIHwgJ25hbWUnIHwgJ3N1c3BlbnNpb24nIHwgJ2V4cGlyeSc+ICYge1xuICBsYWJlbDogc3RyaW5nO1xufTtcbnR5cGUgQ3VzdG9tVmFsdWVDb250YWluZXJQcm9wcyA9IFZhbHVlQ29udGFpbmVyUHJvcHMgJiB7XG4gIHByb2plY3RDb3VudDogbnVtYmVyO1xufTtcblxuY29uc3QgUFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRCA9ICdwcm9qZWN0LXN3aXRjaGVyLWxhYmVsJztcblxuZXhwb3J0IGNvbnN0IFByb2plY3RTd2l0Y2hlclZhbHVlQ29udGFpbmVyID0gKHtcbiAgcHJvamVjdENvdW50LFxuICAuLi5yZXN0UHJvcHNcbn06IEN1c3RvbVZhbHVlQ29udGFpbmVyUHJvcHMpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGB9XG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICBgfVxuICAgICAgPlxuICAgICAgICA8U2VsZWN0SW5wdXQuVmFsdWVDb250YWluZXIgey4uLnJlc3RQcm9wc30+XG4gICAgICAgICAge3Jlc3RQcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgPC9TZWxlY3RJbnB1dC5WYWx1ZUNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNwYW5cbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgd2lkdGg6IDI2cHg7XG4gICAgICAgICAgaGVpZ2h0OiAyNnB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHtkZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsfTtcbiAgICAgICAgICBjb2xvcjogJHtkZXNpZ25Ub2tlbnMuY29sb3JTdXJmYWNlfTtcbiAgICAgICAgICBmb250LXNpemU6ICR7ZGVzaWduVG9rZW5zLmZvbnRTaXplMzB9O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYH1cbiAgICAgID5cbiAgICAgICAge3Byb2plY3RDb3VudH1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBQcm9qZWN0U3dpdGNoZXJPcHRpb24gPSAocHJvcHM6IE9wdGlvblByb3BzKSA9PiB7XG4gIGNvbnN0IHByb2plY3QgPSBwcm9wcy5kYXRhIGFzIE9wdGlvblR5cGU7XG4gIHJldHVybiAoXG4gICAgPFNlbGVjdElucHV0Lk9wdGlvbiB7Li4ucHJvcHN9PlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgIGNvbG9yOiAke3Byb3BzLmlzRGlzYWJsZWRcbiAgICAgICAgICAgICAgPyBkZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsXG4gICAgICAgICAgICAgIDogZGVzaWduVG9rZW5zLmNvbG9yQWNjZW50fTtcbiAgICAgICAgICBgfVxuICAgICAgICA+XG4gICAgICAgICAge3Byb2plY3QubmFtZX1cbiAgICAgICAgICB7cHJvcHMuaXNEaXNhYmxlZCAmJiAoXG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8RXJyb3JJY29uIHNpemU9XCJtZWRpdW1cIiAvPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICBjb2xvcjogJHtwcm9wcy5pc0Rpc2FibGVkID8gZGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbCA6ICdpbmhlcml0J307XG4gICAgICAgICAgYH1cbiAgICAgICAgPlxuICAgICAgICAgIHtwcm9qZWN0LmtleX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHtwcm9qZWN0LnN1c3BlbnNpb24gJiYgcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlICYmIChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICAgICAgICBjb2xvcjogJHtkZXNpZ25Ub2tlbnMuY29sb3JFcnJvcn07XG4gICAgICAgICAgICBgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIHsuLi5tZXNzYWdlcy5zdXNwZW5kZWR9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIHtwcm9qZWN0LmV4cGlyeSAmJiBwcm9qZWN0LmV4cGlyeS5pc0FjdGl2ZSAmJiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgICAgY29sb3I6ICR7ZGVzaWduVG9rZW5zLmNvbG9yRXJyb3J9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMuZXhwaXJlZH0gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvU2VsZWN0SW5wdXQuT3B0aW9uPlxuICApO1xufTtcblxuY29uc3QgbWFwUHJvamVjdHNUb09wdGlvbnMgPSBtZW1vaXplKChwcm9qZWN0cykgPT5cbiAgcHJvamVjdHMubWFwKChwcm9qZWN0OiBUUHJvamVjdCkgPT4gKHtcbiAgICBrZXk6IHByb2plY3Qua2V5LFxuICAgIG5hbWU6IHByb2plY3QubmFtZSxcbiAgICBsYWJlbDogcHJvamVjdC5uYW1lLFxuICAgIHZhbHVlOiBwcm9qZWN0LmtleSxcbiAgICBzdXNwZW5zaW9uOiBwcm9qZWN0LnN1c3BlbnNpb24sXG4gICAgZXhwaXJ5OiBwcm9qZWN0LmV4cGlyeSxcbiAgfSkpXG4pO1xuXG5jb25zdCByZWRpcmVjdFRvID0gKHRhcmdldFVybDogc3RyaW5nKSA9PiBsb2NhdGlvbi5yZXBsYWNlKHRhcmdldFVybCk7XG5cbmNvbnN0IFByb2plY3RTd2l0Y2hlciA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcbiAgY29uc3QgeyBsb2FkaW5nLCBkYXRhIH0gPSB1c2VNY1F1ZXJ5PFxuICAgIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5LFxuICAgIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5VmFyaWFibGVzXG4gID4oUHJvamVjdHNRdWVyeSwge1xuICAgIG9uRXJyb3I6IHJlcG9ydEVycm9yVG9TZW50cnksXG4gICAgY29udGV4dDoge1xuICAgICAgdGFyZ2V0OiBHUkFQSFFMX1RBUkdFVFMuTUVSQ0hBTlRfQ0VOVEVSX0JBQ0tFTkQsXG4gICAgfSxcbiAgfSk7XG5cbiAgaWYgKGxvYWRpbmcpIHJldHVybiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIHdpZHRoOiAke2Rlc2lnblRva2Vucy5jb25zdHJhaW50Nn07XG4gICAgICBgfVxuICAgID5cbiAgICAgIDxBY2Nlc3NpYmxlSGlkZGVuPlxuICAgICAgICA8c3BhbiBpZD17UFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRH0+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLnByb2plY3RzTGFiZWx9IC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvQWNjZXNzaWJsZUhpZGRlbj5cbiAgICAgIDxTZWxlY3RJbnB1dFxuICAgICAgICB2YWx1ZT17cHJvcHMucHJvamVjdEtleSB8fCAnJ31cbiAgICAgICAgbmFtZT1cInByb2plY3Qtc3dpdGNoZXJcIlxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e1BST0pFQ1RfU1dJVENIRVJfTEFCRUxfSUR9XG4gICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZFByb2plY3RLZXkgPSBldmVudC50YXJnZXQudmFsdWUgYXMgc3RyaW5nO1xuICAgICAgICAgIGlmIChzZWxlY3RlZFByb2plY3RLZXkgIT09IHByb3BzLnByb2plY3RLZXkpIHtcbiAgICAgICAgICAgIGlmICh3aW5kb3cuYXBwLl9fREVWRUxPUE1FTlRfXz8ub2lkYz8uYXV0aG9yaXplVXJsKSB7XG4gICAgICAgICAgICAgIG9pZGNTdG9yYWdlLnNldEFjdGl2ZVByb2plY3RLZXkoc2VsZWN0ZWRQcm9qZWN0S2V5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gV2Ugc2ltcGx5IHJlZGlyZWN0IHRvIGEgXCJuZXdcIiBicm93c2VyIHBhZ2UsIGluc3RlYWQgb2YgdXNpbmcgdGhlXG4gICAgICAgICAgICAvLyBoaXN0b3J5IHJvdXRlci4gVGhpcyB3aWxsIHNpbXBsaWZ5IGEgbG90IG9mIHRoaW5ncyBhbmQgYXZvaWQgcG9zc2libGVcbiAgICAgICAgICAgIC8vIHByb2JsZW1zIGxpa2UgZS5nLiByZXNldHRpbmcgdGhlIHN0b3JlL3N0YXRlLlxuICAgICAgICAgICAgcmVkaXJlY3RUbyhgLyR7c2VsZWN0ZWRQcm9qZWN0S2V5fWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgb3B0aW9ucz17XG4gICAgICAgICAgZGF0YSAmJiBkYXRhLnVzZXIgJiYgbWFwUHJvamVjdHNUb09wdGlvbnMoZGF0YS51c2VyLnByb2plY3RzLnJlc3VsdHMpXG4gICAgICAgIH1cbiAgICAgICAgaXNPcHRpb25EaXNhYmxlZD17KG9wdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb2plY3QgPSBvcHRpb24gYXMgT3B0aW9uVHlwZTtcbiAgICAgICAgICByZXR1cm4gcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlIHx8IHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlO1xuICAgICAgICB9fVxuICAgICAgICBjb21wb25lbnRzPXt7XG4gICAgICAgICAgT3B0aW9uOiBQcm9qZWN0U3dpdGNoZXJPcHRpb24sXG4gICAgICAgICAgVmFsdWVDb250YWluZXI6ICh2YWx1ZUNvbnRhaW5lclByb3BzKSA9PiAoXG4gICAgICAgICAgICA8UHJvamVjdFN3aXRjaGVyVmFsdWVDb250YWluZXJcbiAgICAgICAgICAgICAgey4uLnZhbHVlQ29udGFpbmVyUHJvcHN9XG4gICAgICAgICAgICAgIHByb2plY3RDb3VudD17XG4gICAgICAgICAgICAgICAgKGRhdGEgJiYgZGF0YS51c2VyICYmIGRhdGEudXNlci5wcm9qZWN0cy5yZXN1bHRzLmxlbmd0aCkgfHwgMFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICksXG4gICAgICAgIH19XG4gICAgICAgIGlzQ2xlYXJhYmxlPXtmYWxzZX1cbiAgICAgICAgYmFja3NwYWNlUmVtb3Zlc1ZhbHVlPXtmYWxzZX1cbiAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5zZWFyY2hQbGFjZWhvbGRlcil9XG4gICAgICAgIG5vT3B0aW9uc01lc3NhZ2U9eygpID0+IGludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5ub1Jlc3VsdHMpfVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5Qcm9qZWN0U3dpdGNoZXIuZGlzcGxheU5hbWUgPSAnUHJvamVjdFN3aXRjaGVyJztcblxuZXhwb3J0IGRlZmF1bHQgUHJvamVjdFN3aXRjaGVyO1xuIl19 */",
303
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__$4
304
- };
305
- var _ref2$2 = process.env.NODE_ENV === "production" ? {
306
- name: "10s3lzp",
307
- styles: "word-wrap:break-word"
308
- } : {
309
- name: "16pedup-ProjectSwitcherOption",
310
- styles: "word-wrap:break-word;label:ProjectSwitcherOption;",
311
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3Qtc3dpdGNoZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1GZ0IiLCJmaWxlIjoicHJvamVjdC1zd2l0Y2hlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgbWVtb2l6ZSBmcm9tICdtZW1vaXplLW9uZSc7XG5pbXBvcnQgeyBGb3JtYXR0ZWRNZXNzYWdlLCB1c2VJbnRsIH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQgdHlwZSB7IE9wdGlvblByb3BzLCBWYWx1ZUNvbnRhaW5lclByb3BzIH0gZnJvbSAncmVhY3Qtc2VsZWN0JztcbmltcG9ydCB7XG4gIHVzZU1jUXVlcnksXG4gIG9pZGNTdG9yYWdlLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1zaGVsbC1jb25uZWN0b3JzJztcbmltcG9ydCB0eXBlIHsgQXBwbGljYXRpb25XaW5kb3cgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9jb25zdGFudHMnO1xuaW1wb3J0IHsgR1JBUEhRTF9UQVJHRVRTIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7IHJlcG9ydEVycm9yVG9TZW50cnkgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9zZW50cnknO1xuaW1wb3J0IEFjY2Vzc2libGVIaWRkZW4gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvYWNjZXNzaWJsZS1oaWRkZW4nO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5pbXBvcnQgeyBFcnJvckljb24gfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pY29ucyc7XG5pbXBvcnQgU2VsZWN0SW5wdXQgZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvc2VsZWN0LWlucHV0JztcbmltcG9ydCB0eXBlIHtcbiAgVFByb2plY3QsXG4gIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5LFxuICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeVZhcmlhYmxlcyxcbn0gZnJvbSAnLi4vLi4vdHlwZXMvZ2VuZXJhdGVkL21jJztcbmltcG9ydCB7IGxvY2F0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9jYXRpb24nO1xuaW1wb3J0IG1lc3NhZ2VzIGZyb20gJy4vbWVzc2FnZXMnO1xuaW1wb3J0IFByb2plY3RzUXVlcnkgZnJvbSAnLi9wcm9qZWN0LXN3aXRjaGVyLm1jLmdyYXBocWwnO1xuXG5kZWNsYXJlIGxldCB3aW5kb3c6IEFwcGxpY2F0aW9uV2luZG93O1xuXG50eXBlIFByb3BzID0ge1xuICBwcm9qZWN0S2V5Pzogc3RyaW5nO1xufTtcbnR5cGUgT3B0aW9uVHlwZSA9IFBpY2s8VFByb2plY3QsICdrZXknIHwgJ25hbWUnIHwgJ3N1c3BlbnNpb24nIHwgJ2V4cGlyeSc+ICYge1xuICBsYWJlbDogc3RyaW5nO1xufTtcbnR5cGUgQ3VzdG9tVmFsdWVDb250YWluZXJQcm9wcyA9IFZhbHVlQ29udGFpbmVyUHJvcHMgJiB7XG4gIHByb2plY3RDb3VudDogbnVtYmVyO1xufTtcblxuY29uc3QgUFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRCA9ICdwcm9qZWN0LXN3aXRjaGVyLWxhYmVsJztcblxuZXhwb3J0IGNvbnN0IFByb2plY3RTd2l0Y2hlclZhbHVlQ29udGFpbmVyID0gKHtcbiAgcHJvamVjdENvdW50LFxuICAuLi5yZXN0UHJvcHNcbn06IEN1c3RvbVZhbHVlQ29udGFpbmVyUHJvcHMpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGB9XG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICBgfVxuICAgICAgPlxuICAgICAgICA8U2VsZWN0SW5wdXQuVmFsdWVDb250YWluZXIgey4uLnJlc3RQcm9wc30+XG4gICAgICAgICAge3Jlc3RQcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgPC9TZWxlY3RJbnB1dC5WYWx1ZUNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNwYW5cbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgd2lkdGg6IDI2cHg7XG4gICAgICAgICAgaGVpZ2h0OiAyNnB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHtkZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsfTtcbiAgICAgICAgICBjb2xvcjogJHtkZXNpZ25Ub2tlbnMuY29sb3JTdXJmYWNlfTtcbiAgICAgICAgICBmb250LXNpemU6ICR7ZGVzaWduVG9rZW5zLmZvbnRTaXplMzB9O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYH1cbiAgICAgID5cbiAgICAgICAge3Byb2plY3RDb3VudH1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBQcm9qZWN0U3dpdGNoZXJPcHRpb24gPSAocHJvcHM6IE9wdGlvblByb3BzKSA9PiB7XG4gIGNvbnN0IHByb2plY3QgPSBwcm9wcy5kYXRhIGFzIE9wdGlvblR5cGU7XG4gIHJldHVybiAoXG4gICAgPFNlbGVjdElucHV0Lk9wdGlvbiB7Li4ucHJvcHN9PlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgIGNvbG9yOiAke3Byb3BzLmlzRGlzYWJsZWRcbiAgICAgICAgICAgICAgPyBkZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsXG4gICAgICAgICAgICAgIDogZGVzaWduVG9rZW5zLmNvbG9yQWNjZW50fTtcbiAgICAgICAgICBgfVxuICAgICAgICA+XG4gICAgICAgICAge3Byb2plY3QubmFtZX1cbiAgICAgICAgICB7cHJvcHMuaXNEaXNhYmxlZCAmJiAoXG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8RXJyb3JJY29uIHNpemU9XCJtZWRpdW1cIiAvPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICBjb2xvcjogJHtwcm9wcy5pc0Rpc2FibGVkID8gZGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbCA6ICdpbmhlcml0J307XG4gICAgICAgICAgYH1cbiAgICAgICAgPlxuICAgICAgICAgIHtwcm9qZWN0LmtleX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHtwcm9qZWN0LnN1c3BlbnNpb24gJiYgcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlICYmIChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICAgICAgICBjb2xvcjogJHtkZXNpZ25Ub2tlbnMuY29sb3JFcnJvcn07XG4gICAgICAgICAgICBgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIHsuLi5tZXNzYWdlcy5zdXNwZW5kZWR9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIHtwcm9qZWN0LmV4cGlyeSAmJiBwcm9qZWN0LmV4cGlyeS5pc0FjdGl2ZSAmJiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgICAgY29sb3I6ICR7ZGVzaWduVG9rZW5zLmNvbG9yRXJyb3J9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMuZXhwaXJlZH0gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvU2VsZWN0SW5wdXQuT3B0aW9uPlxuICApO1xufTtcblxuY29uc3QgbWFwUHJvamVjdHNUb09wdGlvbnMgPSBtZW1vaXplKChwcm9qZWN0cykgPT5cbiAgcHJvamVjdHMubWFwKChwcm9qZWN0OiBUUHJvamVjdCkgPT4gKHtcbiAgICBrZXk6IHByb2plY3Qua2V5LFxuICAgIG5hbWU6IHByb2plY3QubmFtZSxcbiAgICBsYWJlbDogcHJvamVjdC5uYW1lLFxuICAgIHZhbHVlOiBwcm9qZWN0LmtleSxcbiAgICBzdXNwZW5zaW9uOiBwcm9qZWN0LnN1c3BlbnNpb24sXG4gICAgZXhwaXJ5OiBwcm9qZWN0LmV4cGlyeSxcbiAgfSkpXG4pO1xuXG5jb25zdCByZWRpcmVjdFRvID0gKHRhcmdldFVybDogc3RyaW5nKSA9PiBsb2NhdGlvbi5yZXBsYWNlKHRhcmdldFVybCk7XG5cbmNvbnN0IFByb2plY3RTd2l0Y2hlciA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcbiAgY29uc3QgeyBsb2FkaW5nLCBkYXRhIH0gPSB1c2VNY1F1ZXJ5PFxuICAgIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5LFxuICAgIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5VmFyaWFibGVzXG4gID4oUHJvamVjdHNRdWVyeSwge1xuICAgIG9uRXJyb3I6IHJlcG9ydEVycm9yVG9TZW50cnksXG4gICAgY29udGV4dDoge1xuICAgICAgdGFyZ2V0OiBHUkFQSFFMX1RBUkdFVFMuTUVSQ0hBTlRfQ0VOVEVSX0JBQ0tFTkQsXG4gICAgfSxcbiAgfSk7XG5cbiAgaWYgKGxvYWRpbmcpIHJldHVybiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIHdpZHRoOiAke2Rlc2lnblRva2Vucy5jb25zdHJhaW50Nn07XG4gICAgICBgfVxuICAgID5cbiAgICAgIDxBY2Nlc3NpYmxlSGlkZGVuPlxuICAgICAgICA8c3BhbiBpZD17UFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRH0+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLnByb2plY3RzTGFiZWx9IC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvQWNjZXNzaWJsZUhpZGRlbj5cbiAgICAgIDxTZWxlY3RJbnB1dFxuICAgICAgICB2YWx1ZT17cHJvcHMucHJvamVjdEtleSB8fCAnJ31cbiAgICAgICAgbmFtZT1cInByb2plY3Qtc3dpdGNoZXJcIlxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e1BST0pFQ1RfU1dJVENIRVJfTEFCRUxfSUR9XG4gICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZFByb2plY3RLZXkgPSBldmVudC50YXJnZXQudmFsdWUgYXMgc3RyaW5nO1xuICAgICAgICAgIGlmIChzZWxlY3RlZFByb2plY3RLZXkgIT09IHByb3BzLnByb2plY3RLZXkpIHtcbiAgICAgICAgICAgIGlmICh3aW5kb3cuYXBwLl9fREVWRUxPUE1FTlRfXz8ub2lkYz8uYXV0aG9yaXplVXJsKSB7XG4gICAgICAgICAgICAgIG9pZGNTdG9yYWdlLnNldEFjdGl2ZVByb2plY3RLZXkoc2VsZWN0ZWRQcm9qZWN0S2V5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gV2Ugc2ltcGx5IHJlZGlyZWN0IHRvIGEgXCJuZXdcIiBicm93c2VyIHBhZ2UsIGluc3RlYWQgb2YgdXNpbmcgdGhlXG4gICAgICAgICAgICAvLyBoaXN0b3J5IHJvdXRlci4gVGhpcyB3aWxsIHNpbXBsaWZ5IGEgbG90IG9mIHRoaW5ncyBhbmQgYXZvaWQgcG9zc2libGVcbiAgICAgICAgICAgIC8vIHByb2JsZW1zIGxpa2UgZS5nLiByZXNldHRpbmcgdGhlIHN0b3JlL3N0YXRlLlxuICAgICAgICAgICAgcmVkaXJlY3RUbyhgLyR7c2VsZWN0ZWRQcm9qZWN0S2V5fWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgb3B0aW9ucz17XG4gICAgICAgICAgZGF0YSAmJiBkYXRhLnVzZXIgJiYgbWFwUHJvamVjdHNUb09wdGlvbnMoZGF0YS51c2VyLnByb2plY3RzLnJlc3VsdHMpXG4gICAgICAgIH1cbiAgICAgICAgaXNPcHRpb25EaXNhYmxlZD17KG9wdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb2plY3QgPSBvcHRpb24gYXMgT3B0aW9uVHlwZTtcbiAgICAgICAgICByZXR1cm4gcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlIHx8IHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlO1xuICAgICAgICB9fVxuICAgICAgICBjb21wb25lbnRzPXt7XG4gICAgICAgICAgT3B0aW9uOiBQcm9qZWN0U3dpdGNoZXJPcHRpb24sXG4gICAgICAgICAgVmFsdWVDb250YWluZXI6ICh2YWx1ZUNvbnRhaW5lclByb3BzKSA9PiAoXG4gICAgICAgICAgICA8UHJvamVjdFN3aXRjaGVyVmFsdWVDb250YWluZXJcbiAgICAgICAgICAgICAgey4uLnZhbHVlQ29udGFpbmVyUHJvcHN9XG4gICAgICAgICAgICAgIHByb2plY3RDb3VudD17XG4gICAgICAgICAgICAgICAgKGRhdGEgJiYgZGF0YS51c2VyICYmIGRhdGEudXNlci5wcm9qZWN0cy5yZXN1bHRzLmxlbmd0aCkgfHwgMFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICksXG4gICAgICAgIH19XG4gICAgICAgIGlzQ2xlYXJhYmxlPXtmYWxzZX1cbiAgICAgICAgYmFja3NwYWNlUmVtb3Zlc1ZhbHVlPXtmYWxzZX1cbiAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5zZWFyY2hQbGFjZWhvbGRlcil9XG4gICAgICAgIG5vT3B0aW9uc01lc3NhZ2U9eygpID0+IGludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5ub1Jlc3VsdHMpfVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5Qcm9qZWN0U3dpdGNoZXIuZGlzcGxheU5hbWUgPSAnUHJvamVjdFN3aXRjaGVyJztcblxuZXhwb3J0IGRlZmF1bHQgUHJvamVjdFN3aXRjaGVyO1xuIl19 */",
312
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__$4
313
- };
314
- const ProjectSwitcherOption = props => {
315
- const project = props.data;
316
- return jsxRuntime.jsx(SelectInput__default["default"].Option, _objectSpread$8(_objectSpread$8({}, props), {}, {
317
- children: jsxRuntime.jsxs("div", {
318
- css: _ref2$2,
319
- children: [jsxRuntime.jsxs("div", {
320
- css: /*#__PURE__*/react$1.css("color:", props.isDisabled ? designSystem.designTokens.colorNeutral : designSystem.designTokens.colorAccent, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:ProjectSwitcherOption;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3Qtc3dpdGNoZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdGa0IiLCJmaWxlIjoicHJvamVjdC1zd2l0Y2hlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgbWVtb2l6ZSBmcm9tICdtZW1vaXplLW9uZSc7XG5pbXBvcnQgeyBGb3JtYXR0ZWRNZXNzYWdlLCB1c2VJbnRsIH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQgdHlwZSB7IE9wdGlvblByb3BzLCBWYWx1ZUNvbnRhaW5lclByb3BzIH0gZnJvbSAncmVhY3Qtc2VsZWN0JztcbmltcG9ydCB7XG4gIHVzZU1jUXVlcnksXG4gIG9pZGNTdG9yYWdlLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1zaGVsbC1jb25uZWN0b3JzJztcbmltcG9ydCB0eXBlIHsgQXBwbGljYXRpb25XaW5kb3cgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9jb25zdGFudHMnO1xuaW1wb3J0IHsgR1JBUEhRTF9UQVJHRVRTIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7IHJlcG9ydEVycm9yVG9TZW50cnkgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9zZW50cnknO1xuaW1wb3J0IEFjY2Vzc2libGVIaWRkZW4gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvYWNjZXNzaWJsZS1oaWRkZW4nO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5pbXBvcnQgeyBFcnJvckljb24gfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pY29ucyc7XG5pbXBvcnQgU2VsZWN0SW5wdXQgZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvc2VsZWN0LWlucHV0JztcbmltcG9ydCB0eXBlIHtcbiAgVFByb2plY3QsXG4gIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5LFxuICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeVZhcmlhYmxlcyxcbn0gZnJvbSAnLi4vLi4vdHlwZXMvZ2VuZXJhdGVkL21jJztcbmltcG9ydCB7IGxvY2F0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9jYXRpb24nO1xuaW1wb3J0IG1lc3NhZ2VzIGZyb20gJy4vbWVzc2FnZXMnO1xuaW1wb3J0IFByb2plY3RzUXVlcnkgZnJvbSAnLi9wcm9qZWN0LXN3aXRjaGVyLm1jLmdyYXBocWwnO1xuXG5kZWNsYXJlIGxldCB3aW5kb3c6IEFwcGxpY2F0aW9uV2luZG93O1xuXG50eXBlIFByb3BzID0ge1xuICBwcm9qZWN0S2V5Pzogc3RyaW5nO1xufTtcbnR5cGUgT3B0aW9uVHlwZSA9IFBpY2s8VFByb2plY3QsICdrZXknIHwgJ25hbWUnIHwgJ3N1c3BlbnNpb24nIHwgJ2V4cGlyeSc+ICYge1xuICBsYWJlbDogc3RyaW5nO1xufTtcbnR5cGUgQ3VzdG9tVmFsdWVDb250YWluZXJQcm9wcyA9IFZhbHVlQ29udGFpbmVyUHJvcHMgJiB7XG4gIHByb2plY3RDb3VudDogbnVtYmVyO1xufTtcblxuY29uc3QgUFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRCA9ICdwcm9qZWN0LXN3aXRjaGVyLWxhYmVsJztcblxuZXhwb3J0IGNvbnN0IFByb2plY3RTd2l0Y2hlclZhbHVlQ29udGFpbmVyID0gKHtcbiAgcHJvamVjdENvdW50LFxuICAuLi5yZXN0UHJvcHNcbn06IEN1c3RvbVZhbHVlQ29udGFpbmVyUHJvcHMpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGB9XG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICBgfVxuICAgICAgPlxuICAgICAgICA8U2VsZWN0SW5wdXQuVmFsdWVDb250YWluZXIgey4uLnJlc3RQcm9wc30+XG4gICAgICAgICAge3Jlc3RQcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgPC9TZWxlY3RJbnB1dC5WYWx1ZUNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNwYW5cbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgd2lkdGg6IDI2cHg7XG4gICAgICAgICAgaGVpZ2h0OiAyNnB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHtkZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsfTtcbiAgICAgICAgICBjb2xvcjogJHtkZXNpZ25Ub2tlbnMuY29sb3JTdXJmYWNlfTtcbiAgICAgICAgICBmb250LXNpemU6ICR7ZGVzaWduVG9rZW5zLmZvbnRTaXplMzB9O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYH1cbiAgICAgID5cbiAgICAgICAge3Byb2plY3RDb3VudH1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBQcm9qZWN0U3dpdGNoZXJPcHRpb24gPSAocHJvcHM6IE9wdGlvblByb3BzKSA9PiB7XG4gIGNvbnN0IHByb2plY3QgPSBwcm9wcy5kYXRhIGFzIE9wdGlvblR5cGU7XG4gIHJldHVybiAoXG4gICAgPFNlbGVjdElucHV0Lk9wdGlvbiB7Li4ucHJvcHN9PlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgIGNvbG9yOiAke3Byb3BzLmlzRGlzYWJsZWRcbiAgICAgICAgICAgICAgPyBkZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsXG4gICAgICAgICAgICAgIDogZGVzaWduVG9rZW5zLmNvbG9yQWNjZW50fTtcbiAgICAgICAgICBgfVxuICAgICAgICA+XG4gICAgICAgICAge3Byb2plY3QubmFtZX1cbiAgICAgICAgICB7cHJvcHMuaXNEaXNhYmxlZCAmJiAoXG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8RXJyb3JJY29uIHNpemU9XCJtZWRpdW1cIiAvPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICBjb2xvcjogJHtwcm9wcy5pc0Rpc2FibGVkID8gZGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbCA6ICdpbmhlcml0J307XG4gICAgICAgICAgYH1cbiAgICAgICAgPlxuICAgICAgICAgIHtwcm9qZWN0LmtleX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHtwcm9qZWN0LnN1c3BlbnNpb24gJiYgcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlICYmIChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICAgICAgICBjb2xvcjogJHtkZXNpZ25Ub2tlbnMuY29sb3JFcnJvcn07XG4gICAgICAgICAgICBgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIHsuLi5tZXNzYWdlcy5zdXNwZW5kZWR9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIHtwcm9qZWN0LmV4cGlyeSAmJiBwcm9qZWN0LmV4cGlyeS5pc0FjdGl2ZSAmJiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgICAgY29sb3I6ICR7ZGVzaWduVG9rZW5zLmNvbG9yRXJyb3J9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMuZXhwaXJlZH0gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvU2VsZWN0SW5wdXQuT3B0aW9uPlxuICApO1xufTtcblxuY29uc3QgbWFwUHJvamVjdHNUb09wdGlvbnMgPSBtZW1vaXplKChwcm9qZWN0cykgPT5cbiAgcHJvamVjdHMubWFwKChwcm9qZWN0OiBUUHJvamVjdCkgPT4gKHtcbiAgICBrZXk6IHByb2plY3Qua2V5LFxuICAgIG5hbWU6IHByb2plY3QubmFtZSxcbiAgICBsYWJlbDogcHJvamVjdC5uYW1lLFxuICAgIHZhbHVlOiBwcm9qZWN0LmtleSxcbiAgICBzdXNwZW5zaW9uOiBwcm9qZWN0LnN1c3BlbnNpb24sXG4gICAgZXhwaXJ5OiBwcm9qZWN0LmV4cGlyeSxcbiAgfSkpXG4pO1xuXG5jb25zdCByZWRpcmVjdFRvID0gKHRhcmdldFVybDogc3RyaW5nKSA9PiBsb2NhdGlvbi5yZXBsYWNlKHRhcmdldFVybCk7XG5cbmNvbnN0IFByb2plY3RTd2l0Y2hlciA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcbiAgY29uc3QgeyBsb2FkaW5nLCBkYXRhIH0gPSB1c2VNY1F1ZXJ5PFxuICAgIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5LFxuICAgIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5VmFyaWFibGVzXG4gID4oUHJvamVjdHNRdWVyeSwge1xuICAgIG9uRXJyb3I6IHJlcG9ydEVycm9yVG9TZW50cnksXG4gICAgY29udGV4dDoge1xuICAgICAgdGFyZ2V0OiBHUkFQSFFMX1RBUkdFVFMuTUVSQ0hBTlRfQ0VOVEVSX0JBQ0tFTkQsXG4gICAgfSxcbiAgfSk7XG5cbiAgaWYgKGxvYWRpbmcpIHJldHVybiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIHdpZHRoOiAke2Rlc2lnblRva2Vucy5jb25zdHJhaW50Nn07XG4gICAgICBgfVxuICAgID5cbiAgICAgIDxBY2Nlc3NpYmxlSGlkZGVuPlxuICAgICAgICA8c3BhbiBpZD17UFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRH0+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLnByb2plY3RzTGFiZWx9IC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvQWNjZXNzaWJsZUhpZGRlbj5cbiAgICAgIDxTZWxlY3RJbnB1dFxuICAgICAgICB2YWx1ZT17cHJvcHMucHJvamVjdEtleSB8fCAnJ31cbiAgICAgICAgbmFtZT1cInByb2plY3Qtc3dpdGNoZXJcIlxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e1BST0pFQ1RfU1dJVENIRVJfTEFCRUxfSUR9XG4gICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZFByb2plY3RLZXkgPSBldmVudC50YXJnZXQudmFsdWUgYXMgc3RyaW5nO1xuICAgICAgICAgIGlmIChzZWxlY3RlZFByb2plY3RLZXkgIT09IHByb3BzLnByb2plY3RLZXkpIHtcbiAgICAgICAgICAgIGlmICh3aW5kb3cuYXBwLl9fREVWRUxPUE1FTlRfXz8ub2lkYz8uYXV0aG9yaXplVXJsKSB7XG4gICAgICAgICAgICAgIG9pZGNTdG9yYWdlLnNldEFjdGl2ZVByb2plY3RLZXkoc2VsZWN0ZWRQcm9qZWN0S2V5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gV2Ugc2ltcGx5IHJlZGlyZWN0IHRvIGEgXCJuZXdcIiBicm93c2VyIHBhZ2UsIGluc3RlYWQgb2YgdXNpbmcgdGhlXG4gICAgICAgICAgICAvLyBoaXN0b3J5IHJvdXRlci4gVGhpcyB3aWxsIHNpbXBsaWZ5IGEgbG90IG9mIHRoaW5ncyBhbmQgYXZvaWQgcG9zc2libGVcbiAgICAgICAgICAgIC8vIHByb2JsZW1zIGxpa2UgZS5nLiByZXNldHRpbmcgdGhlIHN0b3JlL3N0YXRlLlxuICAgICAgICAgICAgcmVkaXJlY3RUbyhgLyR7c2VsZWN0ZWRQcm9qZWN0S2V5fWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgb3B0aW9ucz17XG4gICAgICAgICAgZGF0YSAmJiBkYXRhLnVzZXIgJiYgbWFwUHJvamVjdHNUb09wdGlvbnMoZGF0YS51c2VyLnByb2plY3RzLnJlc3VsdHMpXG4gICAgICAgIH1cbiAgICAgICAgaXNPcHRpb25EaXNhYmxlZD17KG9wdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb2plY3QgPSBvcHRpb24gYXMgT3B0aW9uVHlwZTtcbiAgICAgICAgICByZXR1cm4gcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlIHx8IHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlO1xuICAgICAgICB9fVxuICAgICAgICBjb21wb25lbnRzPXt7XG4gICAgICAgICAgT3B0aW9uOiBQcm9qZWN0U3dpdGNoZXJPcHRpb24sXG4gICAgICAgICAgVmFsdWVDb250YWluZXI6ICh2YWx1ZUNvbnRhaW5lclByb3BzKSA9PiAoXG4gICAgICAgICAgICA8UHJvamVjdFN3aXRjaGVyVmFsdWVDb250YWluZXJcbiAgICAgICAgICAgICAgey4uLnZhbHVlQ29udGFpbmVyUHJvcHN9XG4gICAgICAgICAgICAgIHByb2plY3RDb3VudD17XG4gICAgICAgICAgICAgICAgKGRhdGEgJiYgZGF0YS51c2VyICYmIGRhdGEudXNlci5wcm9qZWN0cy5yZXN1bHRzLmxlbmd0aCkgfHwgMFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICksXG4gICAgICAgIH19XG4gICAgICAgIGlzQ2xlYXJhYmxlPXtmYWxzZX1cbiAgICAgICAgYmFja3NwYWNlUmVtb3Zlc1ZhbHVlPXtmYWxzZX1cbiAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5zZWFyY2hQbGFjZWhvbGRlcil9XG4gICAgICAgIG5vT3B0aW9uc01lc3NhZ2U9eygpID0+IGludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5ub1Jlc3VsdHMpfVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5Qcm9qZWN0U3dpdGNoZXIuZGlzcGxheU5hbWUgPSAnUHJvamVjdFN3aXRjaGVyJztcblxuZXhwb3J0IGRlZmF1bHQgUHJvamVjdFN3aXRjaGVyO1xuIl19 */"),
321
- children: [project.name, props.isDisabled && jsxRuntime.jsx("span", {
322
- css: _ref$2,
323
- children: jsxRuntime.jsx(icons.ErrorIcon, {
324
- size: "medium"
325
- })
326
- })]
327
- }), jsxRuntime.jsx("div", {
328
- css: /*#__PURE__*/react$1.css("font-size:11px;color:", props.isDisabled ? designSystem.designTokens.colorNeutral : 'inherit', ";" + (process.env.NODE_ENV === "production" ? "" : ";label:ProjectSwitcherOption;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3Qtc3dpdGNoZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJHa0IiLCJmaWxlIjoicHJvamVjdC1zd2l0Y2hlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgbWVtb2l6ZSBmcm9tICdtZW1vaXplLW9uZSc7XG5pbXBvcnQgeyBGb3JtYXR0ZWRNZXNzYWdlLCB1c2VJbnRsIH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQgdHlwZSB7IE9wdGlvblByb3BzLCBWYWx1ZUNvbnRhaW5lclByb3BzIH0gZnJvbSAncmVhY3Qtc2VsZWN0JztcbmltcG9ydCB7XG4gIHVzZU1jUXVlcnksXG4gIG9pZGNTdG9yYWdlLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1zaGVsbC1jb25uZWN0b3JzJztcbmltcG9ydCB0eXBlIHsgQXBwbGljYXRpb25XaW5kb3cgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9jb25zdGFudHMnO1xuaW1wb3J0IHsgR1JBUEhRTF9UQVJHRVRTIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7IHJlcG9ydEVycm9yVG9TZW50cnkgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9zZW50cnknO1xuaW1wb3J0IEFjY2Vzc2libGVIaWRkZW4gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvYWNjZXNzaWJsZS1oaWRkZW4nO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5pbXBvcnQgeyBFcnJvckljb24gfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pY29ucyc7XG5pbXBvcnQgU2VsZWN0SW5wdXQgZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvc2VsZWN0LWlucHV0JztcbmltcG9ydCB0eXBlIHtcbiAgVFByb2plY3QsXG4gIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5LFxuICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeVZhcmlhYmxlcyxcbn0gZnJvbSAnLi4vLi4vdHlwZXMvZ2VuZXJhdGVkL21jJztcbmltcG9ydCB7IGxvY2F0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9jYXRpb24nO1xuaW1wb3J0IG1lc3NhZ2VzIGZyb20gJy4vbWVzc2FnZXMnO1xuaW1wb3J0IFByb2plY3RzUXVlcnkgZnJvbSAnLi9wcm9qZWN0LXN3aXRjaGVyLm1jLmdyYXBocWwnO1xuXG5kZWNsYXJlIGxldCB3aW5kb3c6IEFwcGxpY2F0aW9uV2luZG93O1xuXG50eXBlIFByb3BzID0ge1xuICBwcm9qZWN0S2V5Pzogc3RyaW5nO1xufTtcbnR5cGUgT3B0aW9uVHlwZSA9IFBpY2s8VFByb2plY3QsICdrZXknIHwgJ25hbWUnIHwgJ3N1c3BlbnNpb24nIHwgJ2V4cGlyeSc+ICYge1xuICBsYWJlbDogc3RyaW5nO1xufTtcbnR5cGUgQ3VzdG9tVmFsdWVDb250YWluZXJQcm9wcyA9IFZhbHVlQ29udGFpbmVyUHJvcHMgJiB7XG4gIHByb2plY3RDb3VudDogbnVtYmVyO1xufTtcblxuY29uc3QgUFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRCA9ICdwcm9qZWN0LXN3aXRjaGVyLWxhYmVsJztcblxuZXhwb3J0IGNvbnN0IFByb2plY3RTd2l0Y2hlclZhbHVlQ29udGFpbmVyID0gKHtcbiAgcHJvamVjdENvdW50LFxuICAuLi5yZXN0UHJvcHNcbn06IEN1c3RvbVZhbHVlQ29udGFpbmVyUHJvcHMpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGB9XG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICBgfVxuICAgICAgPlxuICAgICAgICA8U2VsZWN0SW5wdXQuVmFsdWVDb250YWluZXIgey4uLnJlc3RQcm9wc30+XG4gICAgICAgICAge3Jlc3RQcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgPC9TZWxlY3RJbnB1dC5WYWx1ZUNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNwYW5cbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgd2lkdGg6IDI2cHg7XG4gICAgICAgICAgaGVpZ2h0OiAyNnB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHtkZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsfTtcbiAgICAgICAgICBjb2xvcjogJHtkZXNpZ25Ub2tlbnMuY29sb3JTdXJmYWNlfTtcbiAgICAgICAgICBmb250LXNpemU6ICR7ZGVzaWduVG9rZW5zLmZvbnRTaXplMzB9O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYH1cbiAgICAgID5cbiAgICAgICAge3Byb2plY3RDb3VudH1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBQcm9qZWN0U3dpdGNoZXJPcHRpb24gPSAocHJvcHM6IE9wdGlvblByb3BzKSA9PiB7XG4gIGNvbnN0IHByb2plY3QgPSBwcm9wcy5kYXRhIGFzIE9wdGlvblR5cGU7XG4gIHJldHVybiAoXG4gICAgPFNlbGVjdElucHV0Lk9wdGlvbiB7Li4ucHJvcHN9PlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgIGNvbG9yOiAke3Byb3BzLmlzRGlzYWJsZWRcbiAgICAgICAgICAgICAgPyBkZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsXG4gICAgICAgICAgICAgIDogZGVzaWduVG9rZW5zLmNvbG9yQWNjZW50fTtcbiAgICAgICAgICBgfVxuICAgICAgICA+XG4gICAgICAgICAge3Byb2plY3QubmFtZX1cbiAgICAgICAgICB7cHJvcHMuaXNEaXNhYmxlZCAmJiAoXG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8RXJyb3JJY29uIHNpemU9XCJtZWRpdW1cIiAvPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICBjb2xvcjogJHtwcm9wcy5pc0Rpc2FibGVkID8gZGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbCA6ICdpbmhlcml0J307XG4gICAgICAgICAgYH1cbiAgICAgICAgPlxuICAgICAgICAgIHtwcm9qZWN0LmtleX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHtwcm9qZWN0LnN1c3BlbnNpb24gJiYgcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlICYmIChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICAgICAgICBjb2xvcjogJHtkZXNpZ25Ub2tlbnMuY29sb3JFcnJvcn07XG4gICAgICAgICAgICBgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIHsuLi5tZXNzYWdlcy5zdXNwZW5kZWR9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIHtwcm9qZWN0LmV4cGlyeSAmJiBwcm9qZWN0LmV4cGlyeS5pc0FjdGl2ZSAmJiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgICAgY29sb3I6ICR7ZGVzaWduVG9rZW5zLmNvbG9yRXJyb3J9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMuZXhwaXJlZH0gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvU2VsZWN0SW5wdXQuT3B0aW9uPlxuICApO1xufTtcblxuY29uc3QgbWFwUHJvamVjdHNUb09wdGlvbnMgPSBtZW1vaXplKChwcm9qZWN0cykgPT5cbiAgcHJvamVjdHMubWFwKChwcm9qZWN0OiBUUHJvamVjdCkgPT4gKHtcbiAgICBrZXk6IHByb2plY3Qua2V5LFxuICAgIG5hbWU6IHByb2plY3QubmFtZSxcbiAgICBsYWJlbDogcHJvamVjdC5uYW1lLFxuICAgIHZhbHVlOiBwcm9qZWN0LmtleSxcbiAgICBzdXNwZW5zaW9uOiBwcm9qZWN0LnN1c3BlbnNpb24sXG4gICAgZXhwaXJ5OiBwcm9qZWN0LmV4cGlyeSxcbiAgfSkpXG4pO1xuXG5jb25zdCByZWRpcmVjdFRvID0gKHRhcmdldFVybDogc3RyaW5nKSA9PiBsb2NhdGlvbi5yZXBsYWNlKHRhcmdldFVybCk7XG5cbmNvbnN0IFByb2plY3RTd2l0Y2hlciA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcbiAgY29uc3QgeyBsb2FkaW5nLCBkYXRhIH0gPSB1c2VNY1F1ZXJ5PFxuICAgIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5LFxuICAgIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5VmFyaWFibGVzXG4gID4oUHJvamVjdHNRdWVyeSwge1xuICAgIG9uRXJyb3I6IHJlcG9ydEVycm9yVG9TZW50cnksXG4gICAgY29udGV4dDoge1xuICAgICAgdGFyZ2V0OiBHUkFQSFFMX1RBUkdFVFMuTUVSQ0hBTlRfQ0VOVEVSX0JBQ0tFTkQsXG4gICAgfSxcbiAgfSk7XG5cbiAgaWYgKGxvYWRpbmcpIHJldHVybiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIHdpZHRoOiAke2Rlc2lnblRva2Vucy5jb25zdHJhaW50Nn07XG4gICAgICBgfVxuICAgID5cbiAgICAgIDxBY2Nlc3NpYmxlSGlkZGVuPlxuICAgICAgICA8c3BhbiBpZD17UFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRH0+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLnByb2plY3RzTGFiZWx9IC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvQWNjZXNzaWJsZUhpZGRlbj5cbiAgICAgIDxTZWxlY3RJbnB1dFxuICAgICAgICB2YWx1ZT17cHJvcHMucHJvamVjdEtleSB8fCAnJ31cbiAgICAgICAgbmFtZT1cInByb2plY3Qtc3dpdGNoZXJcIlxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e1BST0pFQ1RfU1dJVENIRVJfTEFCRUxfSUR9XG4gICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZFByb2plY3RLZXkgPSBldmVudC50YXJnZXQudmFsdWUgYXMgc3RyaW5nO1xuICAgICAgICAgIGlmIChzZWxlY3RlZFByb2plY3RLZXkgIT09IHByb3BzLnByb2plY3RLZXkpIHtcbiAgICAgICAgICAgIGlmICh3aW5kb3cuYXBwLl9fREVWRUxPUE1FTlRfXz8ub2lkYz8uYXV0aG9yaXplVXJsKSB7XG4gICAgICAgICAgICAgIG9pZGNTdG9yYWdlLnNldEFjdGl2ZVByb2plY3RLZXkoc2VsZWN0ZWRQcm9qZWN0S2V5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gV2Ugc2ltcGx5IHJlZGlyZWN0IHRvIGEgXCJuZXdcIiBicm93c2VyIHBhZ2UsIGluc3RlYWQgb2YgdXNpbmcgdGhlXG4gICAgICAgICAgICAvLyBoaXN0b3J5IHJvdXRlci4gVGhpcyB3aWxsIHNpbXBsaWZ5IGEgbG90IG9mIHRoaW5ncyBhbmQgYXZvaWQgcG9zc2libGVcbiAgICAgICAgICAgIC8vIHByb2JsZW1zIGxpa2UgZS5nLiByZXNldHRpbmcgdGhlIHN0b3JlL3N0YXRlLlxuICAgICAgICAgICAgcmVkaXJlY3RUbyhgLyR7c2VsZWN0ZWRQcm9qZWN0S2V5fWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgb3B0aW9ucz17XG4gICAgICAgICAgZGF0YSAmJiBkYXRhLnVzZXIgJiYgbWFwUHJvamVjdHNUb09wdGlvbnMoZGF0YS51c2VyLnByb2plY3RzLnJlc3VsdHMpXG4gICAgICAgIH1cbiAgICAgICAgaXNPcHRpb25EaXNhYmxlZD17KG9wdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb2plY3QgPSBvcHRpb24gYXMgT3B0aW9uVHlwZTtcbiAgICAgICAgICByZXR1cm4gcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlIHx8IHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlO1xuICAgICAgICB9fVxuICAgICAgICBjb21wb25lbnRzPXt7XG4gICAgICAgICAgT3B0aW9uOiBQcm9qZWN0U3dpdGNoZXJPcHRpb24sXG4gICAgICAgICAgVmFsdWVDb250YWluZXI6ICh2YWx1ZUNvbnRhaW5lclByb3BzKSA9PiAoXG4gICAgICAgICAgICA8UHJvamVjdFN3aXRjaGVyVmFsdWVDb250YWluZXJcbiAgICAgICAgICAgICAgey4uLnZhbHVlQ29udGFpbmVyUHJvcHN9XG4gICAgICAgICAgICAgIHByb2plY3RDb3VudD17XG4gICAgICAgICAgICAgICAgKGRhdGEgJiYgZGF0YS51c2VyICYmIGRhdGEudXNlci5wcm9qZWN0cy5yZXN1bHRzLmxlbmd0aCkgfHwgMFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICksXG4gICAgICAgIH19XG4gICAgICAgIGlzQ2xlYXJhYmxlPXtmYWxzZX1cbiAgICAgICAgYmFja3NwYWNlUmVtb3Zlc1ZhbHVlPXtmYWxzZX1cbiAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5zZWFyY2hQbGFjZWhvbGRlcil9XG4gICAgICAgIG5vT3B0aW9uc01lc3NhZ2U9eygpID0+IGludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5ub1Jlc3VsdHMpfVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5Qcm9qZWN0U3dpdGNoZXIuZGlzcGxheU5hbWUgPSAnUHJvamVjdFN3aXRjaGVyJztcblxuZXhwb3J0IGRlZmF1bHQgUHJvamVjdFN3aXRjaGVyO1xuIl19 */"),
329
- children: project.key
330
- }), project.suspension && project.suspension.isActive && jsxRuntime.jsx("div", {
331
- css: /*#__PURE__*/react$1.css("font-size:11px;color:", designSystem.designTokens.colorError, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:ProjectSwitcherOption;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3Qtc3dpdGNoZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9Ib0IiLCJmaWxlIjoicHJvamVjdC1zd2l0Y2hlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgbWVtb2l6ZSBmcm9tICdtZW1vaXplLW9uZSc7XG5pbXBvcnQgeyBGb3JtYXR0ZWRNZXNzYWdlLCB1c2VJbnRsIH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQgdHlwZSB7IE9wdGlvblByb3BzLCBWYWx1ZUNvbnRhaW5lclByb3BzIH0gZnJvbSAncmVhY3Qtc2VsZWN0JztcbmltcG9ydCB7XG4gIHVzZU1jUXVlcnksXG4gIG9pZGNTdG9yYWdlLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1zaGVsbC1jb25uZWN0b3JzJztcbmltcG9ydCB0eXBlIHsgQXBwbGljYXRpb25XaW5kb3cgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9jb25zdGFudHMnO1xuaW1wb3J0IHsgR1JBUEhRTF9UQVJHRVRTIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7IHJlcG9ydEVycm9yVG9TZW50cnkgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9zZW50cnknO1xuaW1wb3J0IEFjY2Vzc2libGVIaWRkZW4gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvYWNjZXNzaWJsZS1oaWRkZW4nO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5pbXBvcnQgeyBFcnJvckljb24gfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pY29ucyc7XG5pbXBvcnQgU2VsZWN0SW5wdXQgZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvc2VsZWN0LWlucHV0JztcbmltcG9ydCB0eXBlIHtcbiAgVFByb2plY3QsXG4gIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5LFxuICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeVZhcmlhYmxlcyxcbn0gZnJvbSAnLi4vLi4vdHlwZXMvZ2VuZXJhdGVkL21jJztcbmltcG9ydCB7IGxvY2F0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9jYXRpb24nO1xuaW1wb3J0IG1lc3NhZ2VzIGZyb20gJy4vbWVzc2FnZXMnO1xuaW1wb3J0IFByb2plY3RzUXVlcnkgZnJvbSAnLi9wcm9qZWN0LXN3aXRjaGVyLm1jLmdyYXBocWwnO1xuXG5kZWNsYXJlIGxldCB3aW5kb3c6IEFwcGxpY2F0aW9uV2luZG93O1xuXG50eXBlIFByb3BzID0ge1xuICBwcm9qZWN0S2V5Pzogc3RyaW5nO1xufTtcbnR5cGUgT3B0aW9uVHlwZSA9IFBpY2s8VFByb2plY3QsICdrZXknIHwgJ25hbWUnIHwgJ3N1c3BlbnNpb24nIHwgJ2V4cGlyeSc+ICYge1xuICBsYWJlbDogc3RyaW5nO1xufTtcbnR5cGUgQ3VzdG9tVmFsdWVDb250YWluZXJQcm9wcyA9IFZhbHVlQ29udGFpbmVyUHJvcHMgJiB7XG4gIHByb2plY3RDb3VudDogbnVtYmVyO1xufTtcblxuY29uc3QgUFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRCA9ICdwcm9qZWN0LXN3aXRjaGVyLWxhYmVsJztcblxuZXhwb3J0IGNvbnN0IFByb2plY3RTd2l0Y2hlclZhbHVlQ29udGFpbmVyID0gKHtcbiAgcHJvamVjdENvdW50LFxuICAuLi5yZXN0UHJvcHNcbn06IEN1c3RvbVZhbHVlQ29udGFpbmVyUHJvcHMpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGB9XG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICBgfVxuICAgICAgPlxuICAgICAgICA8U2VsZWN0SW5wdXQuVmFsdWVDb250YWluZXIgey4uLnJlc3RQcm9wc30+XG4gICAgICAgICAge3Jlc3RQcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgPC9TZWxlY3RJbnB1dC5WYWx1ZUNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNwYW5cbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgd2lkdGg6IDI2cHg7XG4gICAgICAgICAgaGVpZ2h0OiAyNnB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHtkZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsfTtcbiAgICAgICAgICBjb2xvcjogJHtkZXNpZ25Ub2tlbnMuY29sb3JTdXJmYWNlfTtcbiAgICAgICAgICBmb250LXNpemU6ICR7ZGVzaWduVG9rZW5zLmZvbnRTaXplMzB9O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYH1cbiAgICAgID5cbiAgICAgICAge3Byb2plY3RDb3VudH1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBQcm9qZWN0U3dpdGNoZXJPcHRpb24gPSAocHJvcHM6IE9wdGlvblByb3BzKSA9PiB7XG4gIGNvbnN0IHByb2plY3QgPSBwcm9wcy5kYXRhIGFzIE9wdGlvblR5cGU7XG4gIHJldHVybiAoXG4gICAgPFNlbGVjdElucHV0Lk9wdGlvbiB7Li4ucHJvcHN9PlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgIGNvbG9yOiAke3Byb3BzLmlzRGlzYWJsZWRcbiAgICAgICAgICAgICAgPyBkZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsXG4gICAgICAgICAgICAgIDogZGVzaWduVG9rZW5zLmNvbG9yQWNjZW50fTtcbiAgICAgICAgICBgfVxuICAgICAgICA+XG4gICAgICAgICAge3Byb2plY3QubmFtZX1cbiAgICAgICAgICB7cHJvcHMuaXNEaXNhYmxlZCAmJiAoXG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8RXJyb3JJY29uIHNpemU9XCJtZWRpdW1cIiAvPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICBjb2xvcjogJHtwcm9wcy5pc0Rpc2FibGVkID8gZGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbCA6ICdpbmhlcml0J307XG4gICAgICAgICAgYH1cbiAgICAgICAgPlxuICAgICAgICAgIHtwcm9qZWN0LmtleX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHtwcm9qZWN0LnN1c3BlbnNpb24gJiYgcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlICYmIChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICAgICAgICBjb2xvcjogJHtkZXNpZ25Ub2tlbnMuY29sb3JFcnJvcn07XG4gICAgICAgICAgICBgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIHsuLi5tZXNzYWdlcy5zdXNwZW5kZWR9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIHtwcm9qZWN0LmV4cGlyeSAmJiBwcm9qZWN0LmV4cGlyeS5pc0FjdGl2ZSAmJiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgICAgY29sb3I6ICR7ZGVzaWduVG9rZW5zLmNvbG9yRXJyb3J9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMuZXhwaXJlZH0gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvU2VsZWN0SW5wdXQuT3B0aW9uPlxuICApO1xufTtcblxuY29uc3QgbWFwUHJvamVjdHNUb09wdGlvbnMgPSBtZW1vaXplKChwcm9qZWN0cykgPT5cbiAgcHJvamVjdHMubWFwKChwcm9qZWN0OiBUUHJvamVjdCkgPT4gKHtcbiAgICBrZXk6IHByb2plY3Qua2V5LFxuICAgIG5hbWU6IHByb2plY3QubmFtZSxcbiAgICBsYWJlbDogcHJvamVjdC5uYW1lLFxuICAgIHZhbHVlOiBwcm9qZWN0LmtleSxcbiAgICBzdXNwZW5zaW9uOiBwcm9qZWN0LnN1c3BlbnNpb24sXG4gICAgZXhwaXJ5OiBwcm9qZWN0LmV4cGlyeSxcbiAgfSkpXG4pO1xuXG5jb25zdCByZWRpcmVjdFRvID0gKHRhcmdldFVybDogc3RyaW5nKSA9PiBsb2NhdGlvbi5yZXBsYWNlKHRhcmdldFVybCk7XG5cbmNvbnN0IFByb2plY3RTd2l0Y2hlciA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcbiAgY29uc3QgeyBsb2FkaW5nLCBkYXRhIH0gPSB1c2VNY1F1ZXJ5PFxuICAgIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5LFxuICAgIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5VmFyaWFibGVzXG4gID4oUHJvamVjdHNRdWVyeSwge1xuICAgIG9uRXJyb3I6IHJlcG9ydEVycm9yVG9TZW50cnksXG4gICAgY29udGV4dDoge1xuICAgICAgdGFyZ2V0OiBHUkFQSFFMX1RBUkdFVFMuTUVSQ0hBTlRfQ0VOVEVSX0JBQ0tFTkQsXG4gICAgfSxcbiAgfSk7XG5cbiAgaWYgKGxvYWRpbmcpIHJldHVybiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIHdpZHRoOiAke2Rlc2lnblRva2Vucy5jb25zdHJhaW50Nn07XG4gICAgICBgfVxuICAgID5cbiAgICAgIDxBY2Nlc3NpYmxlSGlkZGVuPlxuICAgICAgICA8c3BhbiBpZD17UFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRH0+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLnByb2plY3RzTGFiZWx9IC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvQWNjZXNzaWJsZUhpZGRlbj5cbiAgICAgIDxTZWxlY3RJbnB1dFxuICAgICAgICB2YWx1ZT17cHJvcHMucHJvamVjdEtleSB8fCAnJ31cbiAgICAgICAgbmFtZT1cInByb2plY3Qtc3dpdGNoZXJcIlxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e1BST0pFQ1RfU1dJVENIRVJfTEFCRUxfSUR9XG4gICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZFByb2plY3RLZXkgPSBldmVudC50YXJnZXQudmFsdWUgYXMgc3RyaW5nO1xuICAgICAgICAgIGlmIChzZWxlY3RlZFByb2plY3RLZXkgIT09IHByb3BzLnByb2plY3RLZXkpIHtcbiAgICAgICAgICAgIGlmICh3aW5kb3cuYXBwLl9fREVWRUxPUE1FTlRfXz8ub2lkYz8uYXV0aG9yaXplVXJsKSB7XG4gICAgICAgICAgICAgIG9pZGNTdG9yYWdlLnNldEFjdGl2ZVByb2plY3RLZXkoc2VsZWN0ZWRQcm9qZWN0S2V5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gV2Ugc2ltcGx5IHJlZGlyZWN0IHRvIGEgXCJuZXdcIiBicm93c2VyIHBhZ2UsIGluc3RlYWQgb2YgdXNpbmcgdGhlXG4gICAgICAgICAgICAvLyBoaXN0b3J5IHJvdXRlci4gVGhpcyB3aWxsIHNpbXBsaWZ5IGEgbG90IG9mIHRoaW5ncyBhbmQgYXZvaWQgcG9zc2libGVcbiAgICAgICAgICAgIC8vIHByb2JsZW1zIGxpa2UgZS5nLiByZXNldHRpbmcgdGhlIHN0b3JlL3N0YXRlLlxuICAgICAgICAgICAgcmVkaXJlY3RUbyhgLyR7c2VsZWN0ZWRQcm9qZWN0S2V5fWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgb3B0aW9ucz17XG4gICAgICAgICAgZGF0YSAmJiBkYXRhLnVzZXIgJiYgbWFwUHJvamVjdHNUb09wdGlvbnMoZGF0YS51c2VyLnByb2plY3RzLnJlc3VsdHMpXG4gICAgICAgIH1cbiAgICAgICAgaXNPcHRpb25EaXNhYmxlZD17KG9wdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb2plY3QgPSBvcHRpb24gYXMgT3B0aW9uVHlwZTtcbiAgICAgICAgICByZXR1cm4gcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlIHx8IHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlO1xuICAgICAgICB9fVxuICAgICAgICBjb21wb25lbnRzPXt7XG4gICAgICAgICAgT3B0aW9uOiBQcm9qZWN0U3dpdGNoZXJPcHRpb24sXG4gICAgICAgICAgVmFsdWVDb250YWluZXI6ICh2YWx1ZUNvbnRhaW5lclByb3BzKSA9PiAoXG4gICAgICAgICAgICA8UHJvamVjdFN3aXRjaGVyVmFsdWVDb250YWluZXJcbiAgICAgICAgICAgICAgey4uLnZhbHVlQ29udGFpbmVyUHJvcHN9XG4gICAgICAgICAgICAgIHByb2plY3RDb3VudD17XG4gICAgICAgICAgICAgICAgKGRhdGEgJiYgZGF0YS51c2VyICYmIGRhdGEudXNlci5wcm9qZWN0cy5yZXN1bHRzLmxlbmd0aCkgfHwgMFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICksXG4gICAgICAgIH19XG4gICAgICAgIGlzQ2xlYXJhYmxlPXtmYWxzZX1cbiAgICAgICAgYmFja3NwYWNlUmVtb3Zlc1ZhbHVlPXtmYWxzZX1cbiAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5zZWFyY2hQbGFjZWhvbGRlcil9XG4gICAgICAgIG5vT3B0aW9uc01lc3NhZ2U9eygpID0+IGludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5ub1Jlc3VsdHMpfVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5Qcm9qZWN0U3dpdGNoZXIuZGlzcGxheU5hbWUgPSAnUHJvamVjdFN3aXRjaGVyJztcblxuZXhwb3J0IGRlZmF1bHQgUHJvamVjdFN3aXRjaGVyO1xuIl19 */"),
332
- children: jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$8({}, messages.suspended))
333
- }), project.expiry && project.expiry.isActive && jsxRuntime.jsx("div", {
334
- css: /*#__PURE__*/react$1.css("font-size:11px;color:", designSystem.designTokens.colorError, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:ProjectSwitcherOption;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3Qtc3dpdGNoZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThIb0IiLCJmaWxlIjoicHJvamVjdC1zd2l0Y2hlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgbWVtb2l6ZSBmcm9tICdtZW1vaXplLW9uZSc7XG5pbXBvcnQgeyBGb3JtYXR0ZWRNZXNzYWdlLCB1c2VJbnRsIH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQgdHlwZSB7IE9wdGlvblByb3BzLCBWYWx1ZUNvbnRhaW5lclByb3BzIH0gZnJvbSAncmVhY3Qtc2VsZWN0JztcbmltcG9ydCB7XG4gIHVzZU1jUXVlcnksXG4gIG9pZGNTdG9yYWdlLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1zaGVsbC1jb25uZWN0b3JzJztcbmltcG9ydCB0eXBlIHsgQXBwbGljYXRpb25XaW5kb3cgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9jb25zdGFudHMnO1xuaW1wb3J0IHsgR1JBUEhRTF9UQVJHRVRTIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7IHJlcG9ydEVycm9yVG9TZW50cnkgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9zZW50cnknO1xuaW1wb3J0IEFjY2Vzc2libGVIaWRkZW4gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvYWNjZXNzaWJsZS1oaWRkZW4nO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5pbXBvcnQgeyBFcnJvckljb24gfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pY29ucyc7XG5pbXBvcnQgU2VsZWN0SW5wdXQgZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvc2VsZWN0LWlucHV0JztcbmltcG9ydCB0eXBlIHtcbiAgVFByb2plY3QsXG4gIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5LFxuICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeVZhcmlhYmxlcyxcbn0gZnJvbSAnLi4vLi4vdHlwZXMvZ2VuZXJhdGVkL21jJztcbmltcG9ydCB7IGxvY2F0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9jYXRpb24nO1xuaW1wb3J0IG1lc3NhZ2VzIGZyb20gJy4vbWVzc2FnZXMnO1xuaW1wb3J0IFByb2plY3RzUXVlcnkgZnJvbSAnLi9wcm9qZWN0LXN3aXRjaGVyLm1jLmdyYXBocWwnO1xuXG5kZWNsYXJlIGxldCB3aW5kb3c6IEFwcGxpY2F0aW9uV2luZG93O1xuXG50eXBlIFByb3BzID0ge1xuICBwcm9qZWN0S2V5Pzogc3RyaW5nO1xufTtcbnR5cGUgT3B0aW9uVHlwZSA9IFBpY2s8VFByb2plY3QsICdrZXknIHwgJ25hbWUnIHwgJ3N1c3BlbnNpb24nIHwgJ2V4cGlyeSc+ICYge1xuICBsYWJlbDogc3RyaW5nO1xufTtcbnR5cGUgQ3VzdG9tVmFsdWVDb250YWluZXJQcm9wcyA9IFZhbHVlQ29udGFpbmVyUHJvcHMgJiB7XG4gIHByb2plY3RDb3VudDogbnVtYmVyO1xufTtcblxuY29uc3QgUFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRCA9ICdwcm9qZWN0LXN3aXRjaGVyLWxhYmVsJztcblxuZXhwb3J0IGNvbnN0IFByb2plY3RTd2l0Y2hlclZhbHVlQ29udGFpbmVyID0gKHtcbiAgcHJvamVjdENvdW50LFxuICAuLi5yZXN0UHJvcHNcbn06IEN1c3RvbVZhbHVlQ29udGFpbmVyUHJvcHMpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGB9XG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICBgfVxuICAgICAgPlxuICAgICAgICA8U2VsZWN0SW5wdXQuVmFsdWVDb250YWluZXIgey4uLnJlc3RQcm9wc30+XG4gICAgICAgICAge3Jlc3RQcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgPC9TZWxlY3RJbnB1dC5WYWx1ZUNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNwYW5cbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgd2lkdGg6IDI2cHg7XG4gICAgICAgICAgaGVpZ2h0OiAyNnB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHtkZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsfTtcbiAgICAgICAgICBjb2xvcjogJHtkZXNpZ25Ub2tlbnMuY29sb3JTdXJmYWNlfTtcbiAgICAgICAgICBmb250LXNpemU6ICR7ZGVzaWduVG9rZW5zLmZvbnRTaXplMzB9O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYH1cbiAgICAgID5cbiAgICAgICAge3Byb2plY3RDb3VudH1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBQcm9qZWN0U3dpdGNoZXJPcHRpb24gPSAocHJvcHM6IE9wdGlvblByb3BzKSA9PiB7XG4gIGNvbnN0IHByb2plY3QgPSBwcm9wcy5kYXRhIGFzIE9wdGlvblR5cGU7XG4gIHJldHVybiAoXG4gICAgPFNlbGVjdElucHV0Lk9wdGlvbiB7Li4ucHJvcHN9PlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgIGNvbG9yOiAke3Byb3BzLmlzRGlzYWJsZWRcbiAgICAgICAgICAgICAgPyBkZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsXG4gICAgICAgICAgICAgIDogZGVzaWduVG9rZW5zLmNvbG9yQWNjZW50fTtcbiAgICAgICAgICBgfVxuICAgICAgICA+XG4gICAgICAgICAge3Byb2plY3QubmFtZX1cbiAgICAgICAgICB7cHJvcHMuaXNEaXNhYmxlZCAmJiAoXG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8RXJyb3JJY29uIHNpemU9XCJtZWRpdW1cIiAvPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICBjb2xvcjogJHtwcm9wcy5pc0Rpc2FibGVkID8gZGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbCA6ICdpbmhlcml0J307XG4gICAgICAgICAgYH1cbiAgICAgICAgPlxuICAgICAgICAgIHtwcm9qZWN0LmtleX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHtwcm9qZWN0LnN1c3BlbnNpb24gJiYgcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlICYmIChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICAgICAgICBjb2xvcjogJHtkZXNpZ25Ub2tlbnMuY29sb3JFcnJvcn07XG4gICAgICAgICAgICBgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIHsuLi5tZXNzYWdlcy5zdXNwZW5kZWR9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIHtwcm9qZWN0LmV4cGlyeSAmJiBwcm9qZWN0LmV4cGlyeS5pc0FjdGl2ZSAmJiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgICAgY29sb3I6ICR7ZGVzaWduVG9rZW5zLmNvbG9yRXJyb3J9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMuZXhwaXJlZH0gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvU2VsZWN0SW5wdXQuT3B0aW9uPlxuICApO1xufTtcblxuY29uc3QgbWFwUHJvamVjdHNUb09wdGlvbnMgPSBtZW1vaXplKChwcm9qZWN0cykgPT5cbiAgcHJvamVjdHMubWFwKChwcm9qZWN0OiBUUHJvamVjdCkgPT4gKHtcbiAgICBrZXk6IHByb2plY3Qua2V5LFxuICAgIG5hbWU6IHByb2plY3QubmFtZSxcbiAgICBsYWJlbDogcHJvamVjdC5uYW1lLFxuICAgIHZhbHVlOiBwcm9qZWN0LmtleSxcbiAgICBzdXNwZW5zaW9uOiBwcm9qZWN0LnN1c3BlbnNpb24sXG4gICAgZXhwaXJ5OiBwcm9qZWN0LmV4cGlyeSxcbiAgfSkpXG4pO1xuXG5jb25zdCByZWRpcmVjdFRvID0gKHRhcmdldFVybDogc3RyaW5nKSA9PiBsb2NhdGlvbi5yZXBsYWNlKHRhcmdldFVybCk7XG5cbmNvbnN0IFByb2plY3RTd2l0Y2hlciA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcbiAgY29uc3QgeyBsb2FkaW5nLCBkYXRhIH0gPSB1c2VNY1F1ZXJ5PFxuICAgIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5LFxuICAgIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5VmFyaWFibGVzXG4gID4oUHJvamVjdHNRdWVyeSwge1xuICAgIG9uRXJyb3I6IHJlcG9ydEVycm9yVG9TZW50cnksXG4gICAgY29udGV4dDoge1xuICAgICAgdGFyZ2V0OiBHUkFQSFFMX1RBUkdFVFMuTUVSQ0hBTlRfQ0VOVEVSX0JBQ0tFTkQsXG4gICAgfSxcbiAgfSk7XG5cbiAgaWYgKGxvYWRpbmcpIHJldHVybiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIHdpZHRoOiAke2Rlc2lnblRva2Vucy5jb25zdHJhaW50Nn07XG4gICAgICBgfVxuICAgID5cbiAgICAgIDxBY2Nlc3NpYmxlSGlkZGVuPlxuICAgICAgICA8c3BhbiBpZD17UFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRH0+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLnByb2plY3RzTGFiZWx9IC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvQWNjZXNzaWJsZUhpZGRlbj5cbiAgICAgIDxTZWxlY3RJbnB1dFxuICAgICAgICB2YWx1ZT17cHJvcHMucHJvamVjdEtleSB8fCAnJ31cbiAgICAgICAgbmFtZT1cInByb2plY3Qtc3dpdGNoZXJcIlxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e1BST0pFQ1RfU1dJVENIRVJfTEFCRUxfSUR9XG4gICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZFByb2plY3RLZXkgPSBldmVudC50YXJnZXQudmFsdWUgYXMgc3RyaW5nO1xuICAgICAgICAgIGlmIChzZWxlY3RlZFByb2plY3RLZXkgIT09IHByb3BzLnByb2plY3RLZXkpIHtcbiAgICAgICAgICAgIGlmICh3aW5kb3cuYXBwLl9fREVWRUxPUE1FTlRfXz8ub2lkYz8uYXV0aG9yaXplVXJsKSB7XG4gICAgICAgICAgICAgIG9pZGNTdG9yYWdlLnNldEFjdGl2ZVByb2plY3RLZXkoc2VsZWN0ZWRQcm9qZWN0S2V5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gV2Ugc2ltcGx5IHJlZGlyZWN0IHRvIGEgXCJuZXdcIiBicm93c2VyIHBhZ2UsIGluc3RlYWQgb2YgdXNpbmcgdGhlXG4gICAgICAgICAgICAvLyBoaXN0b3J5IHJvdXRlci4gVGhpcyB3aWxsIHNpbXBsaWZ5IGEgbG90IG9mIHRoaW5ncyBhbmQgYXZvaWQgcG9zc2libGVcbiAgICAgICAgICAgIC8vIHByb2JsZW1zIGxpa2UgZS5nLiByZXNldHRpbmcgdGhlIHN0b3JlL3N0YXRlLlxuICAgICAgICAgICAgcmVkaXJlY3RUbyhgLyR7c2VsZWN0ZWRQcm9qZWN0S2V5fWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgb3B0aW9ucz17XG4gICAgICAgICAgZGF0YSAmJiBkYXRhLnVzZXIgJiYgbWFwUHJvamVjdHNUb09wdGlvbnMoZGF0YS51c2VyLnByb2plY3RzLnJlc3VsdHMpXG4gICAgICAgIH1cbiAgICAgICAgaXNPcHRpb25EaXNhYmxlZD17KG9wdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb2plY3QgPSBvcHRpb24gYXMgT3B0aW9uVHlwZTtcbiAgICAgICAgICByZXR1cm4gcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlIHx8IHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlO1xuICAgICAgICB9fVxuICAgICAgICBjb21wb25lbnRzPXt7XG4gICAgICAgICAgT3B0aW9uOiBQcm9qZWN0U3dpdGNoZXJPcHRpb24sXG4gICAgICAgICAgVmFsdWVDb250YWluZXI6ICh2YWx1ZUNvbnRhaW5lclByb3BzKSA9PiAoXG4gICAgICAgICAgICA8UHJvamVjdFN3aXRjaGVyVmFsdWVDb250YWluZXJcbiAgICAgICAgICAgICAgey4uLnZhbHVlQ29udGFpbmVyUHJvcHN9XG4gICAgICAgICAgICAgIHByb2plY3RDb3VudD17XG4gICAgICAgICAgICAgICAgKGRhdGEgJiYgZGF0YS51c2VyICYmIGRhdGEudXNlci5wcm9qZWN0cy5yZXN1bHRzLmxlbmd0aCkgfHwgMFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICksXG4gICAgICAgIH19XG4gICAgICAgIGlzQ2xlYXJhYmxlPXtmYWxzZX1cbiAgICAgICAgYmFja3NwYWNlUmVtb3Zlc1ZhbHVlPXtmYWxzZX1cbiAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5zZWFyY2hQbGFjZWhvbGRlcil9XG4gICAgICAgIG5vT3B0aW9uc01lc3NhZ2U9eygpID0+IGludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5ub1Jlc3VsdHMpfVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5Qcm9qZWN0U3dpdGNoZXIuZGlzcGxheU5hbWUgPSAnUHJvamVjdFN3aXRjaGVyJztcblxuZXhwb3J0IGRlZmF1bHQgUHJvamVjdFN3aXRjaGVyO1xuIl19 */"),
335
- children: jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$8({}, messages.expired))
336
- })]
337
- })
338
- }));
339
- };
340
- const mapProjectsToOptions = memoize__default["default"](projects => _mapInstanceProperty__default["default"](projects).call(projects, project => ({
341
- key: project.key,
342
- name: project.name,
343
- label: project.name,
344
- value: project.key,
345
- suspension: project.suspension,
346
- expiry: project.expiry
347
- })));
348
- const redirectTo = targetUrl => useIsServedByProxy.location.replace(targetUrl);
349
- const ProjectSwitcher = props => {
350
- const intl = reactIntl.useIntl();
351
- const _useMcQuery = applicationShellConnectors.useMcQuery(ProjectsQuery, {
352
- onError: sentry.reportErrorToSentry,
353
- context: {
354
- target: constants.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
355
- }
356
- }),
357
- loading = _useMcQuery.loading,
358
- data = _useMcQuery.data;
359
- if (loading) return null;
360
- return jsxRuntime.jsxs("div", {
361
- css: /*#__PURE__*/react$1.css("width:", designSystem.designTokens.constraint6, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:ProjectSwitcher;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3Qtc3dpdGNoZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdLYyIsImZpbGUiOiJwcm9qZWN0LXN3aXRjaGVyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBtZW1vaXplIGZyb20gJ21lbW9pemUtb25lJztcbmltcG9ydCB7IEZvcm1hdHRlZE1lc3NhZ2UsIHVzZUludGwgfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB0eXBlIHsgT3B0aW9uUHJvcHMsIFZhbHVlQ29udGFpbmVyUHJvcHMgfSBmcm9tICdyZWFjdC1zZWxlY3QnO1xuaW1wb3J0IHtcbiAgdXNlTWNRdWVyeSxcbiAgb2lkY1N0b3JhZ2UsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHR5cGUgeyBBcHBsaWNhdGlvbldpbmRvdyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBHUkFQSFFMX1RBUkdFVFMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9jb25zdGFudHMnO1xuaW1wb3J0IHsgcmVwb3J0RXJyb3JUb1NlbnRyeSB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL3NlbnRyeSc7XG5pbXBvcnQgQWNjZXNzaWJsZUhpZGRlbiBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9hY2Nlc3NpYmxlLWhpZGRlbic7XG5pbXBvcnQgeyBkZXNpZ25Ub2tlbnMgfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9kZXNpZ24tc3lzdGVtJztcbmltcG9ydCB7IEVycm9ySWNvbiB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2ljb25zJztcbmltcG9ydCBTZWxlY3RJbnB1dCBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9zZWxlY3QtaW5wdXQnO1xuaW1wb3J0IHR5cGUge1xuICBUUHJvamVjdCxcbiAgVEZldGNoVXNlclByb2plY3RzUXVlcnksXG4gIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5VmFyaWFibGVzLFxufSBmcm9tICcuLi8uLi90eXBlcy9nZW5lcmF0ZWQvbWMnO1xuaW1wb3J0IHsgbG9jYXRpb24gfSBmcm9tICcuLi8uLi91dGlscy9sb2NhdGlvbic7XG5pbXBvcnQgbWVzc2FnZXMgZnJvbSAnLi9tZXNzYWdlcyc7XG5pbXBvcnQgUHJvamVjdHNRdWVyeSBmcm9tICcuL3Byb2plY3Qtc3dpdGNoZXIubWMuZ3JhcGhxbCc7XG5cbmRlY2xhcmUgbGV0IHdpbmRvdzogQXBwbGljYXRpb25XaW5kb3c7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHByb2plY3RLZXk/OiBzdHJpbmc7XG59O1xudHlwZSBPcHRpb25UeXBlID0gUGljazxUUHJvamVjdCwgJ2tleScgfCAnbmFtZScgfCAnc3VzcGVuc2lvbicgfCAnZXhwaXJ5Jz4gJiB7XG4gIGxhYmVsOiBzdHJpbmc7XG59O1xudHlwZSBDdXN0b21WYWx1ZUNvbnRhaW5lclByb3BzID0gVmFsdWVDb250YWluZXJQcm9wcyAmIHtcbiAgcHJvamVjdENvdW50OiBudW1iZXI7XG59O1xuXG5jb25zdCBQUk9KRUNUX1NXSVRDSEVSX0xBQkVMX0lEID0gJ3Byb2plY3Qtc3dpdGNoZXItbGFiZWwnO1xuXG5leHBvcnQgY29uc3QgUHJvamVjdFN3aXRjaGVyVmFsdWVDb250YWluZXIgPSAoe1xuICBwcm9qZWN0Q291bnQsXG4gIC4uLnJlc3RQcm9wc1xufTogQ3VzdG9tVmFsdWVDb250YWluZXJQcm9wcykgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgYH1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxTZWxlY3RJbnB1dC5WYWx1ZUNvbnRhaW5lciB7Li4ucmVzdFByb3BzfT5cbiAgICAgICAgICB7cmVzdFByb3BzLmNoaWxkcmVufVxuICAgICAgICA8L1NlbGVjdElucHV0LlZhbHVlQ29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8c3BhblxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICB3aWR0aDogMjZweDtcbiAgICAgICAgICBoZWlnaHQ6IDI2cHg7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2Rlc2lnblRva2Vucy5jb2xvck5ldXRyYWx9O1xuICAgICAgICAgIGNvbG9yOiAke2Rlc2lnblRva2Vucy5jb2xvclN1cmZhY2V9O1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHtkZXNpZ25Ub2tlbnMuZm9udFNpemUzMH07XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBgfVxuICAgICAgPlxuICAgICAgICB7cHJvamVjdENvdW50fVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IFByb2plY3RTd2l0Y2hlck9wdGlvbiA9IChwcm9wczogT3B0aW9uUHJvcHMpID0+IHtcbiAgY29uc3QgcHJvamVjdCA9IHByb3BzLmRhdGEgYXMgT3B0aW9uVHlwZTtcbiAgcmV0dXJuIChcbiAgICA8U2VsZWN0SW5wdXQuT3B0aW9uIHsuLi5wcm9wc30+XG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgYH1cbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgY29sb3I6ICR7cHJvcHMuaXNEaXNhYmxlZFxuICAgICAgICAgICAgICA/IGRlc2lnblRva2Vucy5jb2xvck5ldXRyYWxcbiAgICAgICAgICAgICAgOiBkZXNpZ25Ub2tlbnMuY29sb3JBY2NlbnR9O1xuICAgICAgICAgIGB9XG4gICAgICAgID5cbiAgICAgICAgICB7cHJvamVjdC5uYW1lfVxuICAgICAgICAgIHtwcm9wcy5pc0Rpc2FibGVkICYmIChcbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxFcnJvckljb24gc2l6ZT1cIm1lZGl1bVwiIC8+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgIGNvbG9yOiAke3Byb3BzLmlzRGlzYWJsZWQgPyBkZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsIDogJ2luaGVyaXQnfTtcbiAgICAgICAgICBgfVxuICAgICAgICA+XG4gICAgICAgICAge3Byb2plY3Qua2V5fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge3Byb2plY3Quc3VzcGVuc2lvbiAmJiBwcm9qZWN0LnN1c3BlbnNpb24uaXNBY3RpdmUgJiYgKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICAgIGNvbG9yOiAke2Rlc2lnblRva2Vucy5jb2xvckVycm9yfTtcbiAgICAgICAgICAgIGB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLnN1c3BlbmRlZH0gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgICAge3Byb2plY3QuZXhwaXJ5ICYmIHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlICYmIChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICAgICAgICBjb2xvcjogJHtkZXNpZ25Ub2tlbnMuY29sb3JFcnJvcn07XG4gICAgICAgICAgICBgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIHsuLi5tZXNzYWdlcy5leHBpcmVkfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC9TZWxlY3RJbnB1dC5PcHRpb24+XG4gICk7XG59O1xuXG5jb25zdCBtYXBQcm9qZWN0c1RvT3B0aW9ucyA9IG1lbW9pemUoKHByb2plY3RzKSA9PlxuICBwcm9qZWN0cy5tYXAoKHByb2plY3Q6IFRQcm9qZWN0KSA9PiAoe1xuICAgIGtleTogcHJvamVjdC5rZXksXG4gICAgbmFtZTogcHJvamVjdC5uYW1lLFxuICAgIGxhYmVsOiBwcm9qZWN0Lm5hbWUsXG4gICAgdmFsdWU6IHByb2plY3Qua2V5LFxuICAgIHN1c3BlbnNpb246IHByb2plY3Quc3VzcGVuc2lvbixcbiAgICBleHBpcnk6IHByb2plY3QuZXhwaXJ5LFxuICB9KSlcbik7XG5cbmNvbnN0IHJlZGlyZWN0VG8gPSAodGFyZ2V0VXJsOiBzdHJpbmcpID0+IGxvY2F0aW9uLnJlcGxhY2UodGFyZ2V0VXJsKTtcblxuY29uc3QgUHJvamVjdFN3aXRjaGVyID0gKHByb3BzOiBQcm9wcykgPT4ge1xuICBjb25zdCBpbnRsID0gdXNlSW50bCgpO1xuICBjb25zdCB7IGxvYWRpbmcsIGRhdGEgfSA9IHVzZU1jUXVlcnk8XG4gICAgVEZldGNoVXNlclByb2plY3RzUXVlcnksXG4gICAgVEZldGNoVXNlclByb2plY3RzUXVlcnlWYXJpYWJsZXNcbiAgPihQcm9qZWN0c1F1ZXJ5LCB7XG4gICAgb25FcnJvcjogcmVwb3J0RXJyb3JUb1NlbnRyeSxcbiAgICBjb250ZXh0OiB7XG4gICAgICB0YXJnZXQ6IEdSQVBIUUxfVEFSR0VUUy5NRVJDSEFOVF9DRU5URVJfQkFDS0VORCxcbiAgICB9LFxuICB9KTtcblxuICBpZiAobG9hZGluZykgcmV0dXJuIG51bGw7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgd2lkdGg6ICR7ZGVzaWduVG9rZW5zLmNvbnN0cmFpbnQ2fTtcbiAgICAgIGB9XG4gICAgPlxuICAgICAgPEFjY2Vzc2libGVIaWRkZW4+XG4gICAgICAgIDxzcGFuIGlkPXtQUk9KRUNUX1NXSVRDSEVSX0xBQkVMX0lEfT5cbiAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMucHJvamVjdHNMYWJlbH0gLz5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9BY2Nlc3NpYmxlSGlkZGVuPlxuICAgICAgPFNlbGVjdElucHV0XG4gICAgICAgIHZhbHVlPXtwcm9wcy5wcm9qZWN0S2V5IHx8ICcnfVxuICAgICAgICBuYW1lPVwicHJvamVjdC1zd2l0Y2hlclwiXG4gICAgICAgIGFyaWEtbGFiZWxsZWRieT17UFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRH1cbiAgICAgICAgb25DaGFuZ2U9eyhldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUHJvamVjdEtleSA9IGV2ZW50LnRhcmdldC52YWx1ZSBhcyBzdHJpbmc7XG4gICAgICAgICAgaWYgKHNlbGVjdGVkUHJvamVjdEtleSAhPT0gcHJvcHMucHJvamVjdEtleSkge1xuICAgICAgICAgICAgaWYgKHdpbmRvdy5hcHAuX19ERVZFTE9QTUVOVF9fPy5vaWRjPy5hdXRob3JpemVVcmwpIHtcbiAgICAgICAgICAgICAgb2lkY1N0b3JhZ2Uuc2V0QWN0aXZlUHJvamVjdEtleShzZWxlY3RlZFByb2plY3RLZXkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBXZSBzaW1wbHkgcmVkaXJlY3QgdG8gYSBcIm5ld1wiIGJyb3dzZXIgcGFnZSwgaW5zdGVhZCBvZiB1c2luZyB0aGVcbiAgICAgICAgICAgIC8vIGhpc3Rvcnkgcm91dGVyLiBUaGlzIHdpbGwgc2ltcGxpZnkgYSBsb3Qgb2YgdGhpbmdzIGFuZCBhdm9pZCBwb3NzaWJsZVxuICAgICAgICAgICAgLy8gcHJvYmxlbXMgbGlrZSBlLmcuIHJlc2V0dGluZyB0aGUgc3RvcmUvc3RhdGUuXG4gICAgICAgICAgICByZWRpcmVjdFRvKGAvJHtzZWxlY3RlZFByb2plY3RLZXl9YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICBvcHRpb25zPXtcbiAgICAgICAgICBkYXRhICYmIGRhdGEudXNlciAmJiBtYXBQcm9qZWN0c1RvT3B0aW9ucyhkYXRhLnVzZXIucHJvamVjdHMucmVzdWx0cylcbiAgICAgICAgfVxuICAgICAgICBpc09wdGlvbkRpc2FibGVkPXsob3B0aW9uKSA9PiB7XG4gICAgICAgICAgY29uc3QgcHJvamVjdCA9IG9wdGlvbiBhcyBPcHRpb25UeXBlO1xuICAgICAgICAgIHJldHVybiBwcm9qZWN0LnN1c3BlbnNpb24uaXNBY3RpdmUgfHwgcHJvamVjdC5leHBpcnkuaXNBY3RpdmU7XG4gICAgICAgIH19XG4gICAgICAgIGNvbXBvbmVudHM9e3tcbiAgICAgICAgICBPcHRpb246IFByb2plY3RTd2l0Y2hlck9wdGlvbixcbiAgICAgICAgICBWYWx1ZUNvbnRhaW5lcjogKHZhbHVlQ29udGFpbmVyUHJvcHMpID0+IChcbiAgICAgICAgICAgIDxQcm9qZWN0U3dpdGNoZXJWYWx1ZUNvbnRhaW5lclxuICAgICAgICAgICAgICB7Li4udmFsdWVDb250YWluZXJQcm9wc31cbiAgICAgICAgICAgICAgcHJvamVjdENvdW50PXtcbiAgICAgICAgICAgICAgICAoZGF0YSAmJiBkYXRhLnVzZXIgJiYgZGF0YS51c2VyLnByb2plY3RzLnJlc3VsdHMubGVuZ3RoKSB8fCAwXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSxcbiAgICAgICAgfX1cbiAgICAgICAgaXNDbGVhcmFibGU9e2ZhbHNlfVxuICAgICAgICBiYWNrc3BhY2VSZW1vdmVzVmFsdWU9e2ZhbHNlfVxuICAgICAgICBwbGFjZWhvbGRlcj17aW50bC5mb3JtYXRNZXNzYWdlKG1lc3NhZ2VzLnNlYXJjaFBsYWNlaG9sZGVyKX1cbiAgICAgICAgbm9PcHRpb25zTWVzc2FnZT17KCkgPT4gaW50bC5mb3JtYXRNZXNzYWdlKG1lc3NhZ2VzLm5vUmVzdWx0cyl9XG4gICAgICAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblByb2plY3RTd2l0Y2hlci5kaXNwbGF5TmFtZSA9ICdQcm9qZWN0U3dpdGNoZXInO1xuXG5leHBvcnQgZGVmYXVsdCBQcm9qZWN0U3dpdGNoZXI7XG4iXX0= */"),
362
- children: [jsxRuntime.jsx(AccessibleHidden__default["default"], {
363
- children: jsxRuntime.jsx("span", {
364
- id: PROJECT_SWITCHER_LABEL_ID,
365
- children: jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$8({}, messages.projectsLabel))
366
- })
367
- }), jsxRuntime.jsx(SelectInput__default["default"], {
368
- value: props.projectKey || '',
369
- name: "project-switcher",
370
- "aria-labelledby": PROJECT_SWITCHER_LABEL_ID,
371
- onChange: event => {
372
- const selectedProjectKey = event.target.value;
373
- if (selectedProjectKey !== props.projectKey) {
374
- var _window$app$__DEVELOP;
375
- if ((_window$app$__DEVELOP = window.app.__DEVELOPMENT__) !== null && _window$app$__DEVELOP !== void 0 && (_window$app$__DEVELOP = _window$app$__DEVELOP.oidc) !== null && _window$app$__DEVELOP !== void 0 && _window$app$__DEVELOP.authorizeUrl) {
376
- applicationShellConnectors.oidcStorage.setActiveProjectKey(selectedProjectKey);
377
- }
378
-
379
- // We simply redirect to a "new" browser page, instead of using the
380
- // history router. This will simplify a lot of things and avoid possible
381
- // problems like e.g. resetting the store/state.
382
- redirectTo("/".concat(selectedProjectKey));
383
- }
384
- },
385
- options: data && data.user && mapProjectsToOptions(data.user.projects.results),
386
- isOptionDisabled: option => {
387
- const project = option;
388
- return project.suspension.isActive || project.expiry.isActive;
389
- },
390
- components: {
391
- Option: ProjectSwitcherOption,
392
- ValueContainer: valueContainerProps => jsxRuntime.jsx(ProjectSwitcherValueContainer, _objectSpread$8(_objectSpread$8({}, valueContainerProps), {}, {
393
- projectCount: data && data.user && data.user.projects.results.length || 0
394
- }))
395
- },
396
- isClearable: false,
397
- backspaceRemovesValue: false,
398
- placeholder: intl.formatMessage(messages.searchPlaceholder),
399
- noOptionsMessage: () => intl.formatMessage(messages.noResults)
400
- })]
401
- });
402
- };
403
- ProjectSwitcher.displayName = 'ProjectSwitcher';
404
-
405
- // eslint-disable-next-line import/prefer-default-export
406
- const REQUESTS_IN_FLIGHT_LOADER_DOM_ID = 'loader-for-requests-in-flight';
407
-
408
- const UserSettingsMenu = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./user-settings-menu-59dbf5d2.cjs.dev.js' /* webpackChunkName: "user-settings-menu" */); }));
409
-
410
- function _EMOTION_STRINGIFIED_CSS_ERROR__$3() { 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)."; }
411
- var _ref$1 = process.env.NODE_ENV === "production" ? {
412
- name: "36bnqj",
413
- styles: "display:flex;flex:1"
414
- } : {
415
- name: "p3e2aw-AppBar",
416
- styles: "display:flex;flex:1;label:AppBar;",
417
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC1iYXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThEa0IiLCJmaWxlIjoiYXBwLWJhci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyBkZXNpZ25Ub2tlbnMgYXMgYXBwS2l0RGVzaWduVG9rZW5zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvYXBwbGljYXRpb24tY29tcG9uZW50cyc7XG5pbXBvcnQgTG9nb1NWRyBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hc3NldHMvaW1hZ2VzL2xvZ28uc3ZnJztcbmltcG9ydCB7IGRlc2lnblRva2VucyBhcyB1aWtpdERlc2lnblRva2VucyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2Rlc2lnbi1zeXN0ZW0nO1xuaW1wb3J0IFNwYWNpbmdzIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L3NwYWNpbmdzJztcbmltcG9ydCB7IENPTlRBSU5FUlMsIERJTUVOU0lPTlMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUgeyBURmV0Y2hMb2dnZWRJblVzZXJRdWVyeSB9IGZyb20gJy4uLy4uL3R5cGVzL2dlbmVyYXRlZC9tYyc7XG5pbXBvcnQgeyBnZXRQcmV2aW91c1Byb2plY3RLZXkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgQmFja1RvUHJvamVjdCBmcm9tICcuLi9iYWNrLXRvLXByb2plY3QnO1xuaW1wb3J0IExvYWRpbmdQbGFjZWhvbGRlciBmcm9tICcuLi9sb2FkaW5nLXBsYWNlaG9sZGVyJztcbmltcG9ydCBQcm9qZWN0U3dpdGNoZXIgZnJvbSAnLi4vcHJvamVjdC1zd2l0Y2hlcic7XG5pbXBvcnQgeyBSRVFVRVNUU19JTl9GTElHSFRfTE9BREVSX0RPTV9JRCB9IGZyb20gJy4uL3JlcXVlc3RzLWluLWZsaWdodC1sb2FkZXIvY29uc3RhbnRzJztcbmltcG9ydCBVc2VyU2V0dGluZ3NNZW51IGZyb20gJy4uL3VzZXItc2V0dGluZ3MtbWVudSc7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHVzZXI6IFRGZXRjaExvZ2dlZEluVXNlclF1ZXJ5Wyd1c2VyJ107XG4gIHByb2plY3RLZXlGcm9tVXJsPzogc3RyaW5nO1xuICBpc05ld05hdmlnYXRpb25FbmFibGVkOiBib29sZWFuO1xufTtcblxuY29uc3QgQXBwQmFyID0gKHByb3BzOiBQcm9wcykgPT4ge1xuICBjb25zdCBwcmV2aW91c1Byb2plY3RLZXkgPSBnZXRQcmV2aW91c1Byb2plY3RLZXkoXG4gICAgcHJvcHMudXNlcj8uZGVmYXVsdFByb2plY3RLZXkgPz8gdW5kZWZpbmVkXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt1aWtpdERlc2lnblRva2Vucy5jb2xvclN1cmZhY2V9O1xuICAgICAgICBib3gtc2hhZG93OiAke2FwcEtpdERlc2lnblRva2Vucy5zaGFkb3dGb3JBcHBiYXJ9O1xuICAgICAgICBtaW4taGVpZ2h0OiAke0RJTUVOU0lPTlMuaGVhZGVyfTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgei1pbmRleDogMjAwMDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIGB9XG4gICAgICBkYXRhLXRlc3Q9XCJ0b3AtbmF2aWdhdGlvblwiXG4gICAgPlxuICAgICAgPFNwYWNpbmdzLklubGluZT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgICAgICAgYH1cbiAgICAgICAgPlxuICAgICAgICAgIHshcHJvcHMuaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZCAmJlxuICAgICAgICAgICAgKCFwcm9wcy51c2VyID8gKFxuICAgICAgICAgICAgICA8aW1nIHNyYz17TG9nb1NWR30gd2lkdGg9XCIxMDAlXCIgYWx0PVwiTG9nb1wiIC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8YSBocmVmPXtgLyR7cHJldmlvdXNQcm9qZWN0S2V5IHx8ICcnfWB9PlxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPXtMb2dvU1ZHfSB3aWR0aD1cIjEwMCVcIiBhbHQ9XCJMb2dvXCIgLz5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBpZD17UkVRVUVTVFNfSU5fRkxJR0hUX0xPQURFUl9ET01fSUR9XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICBgfVxuICAgICAgICAvPlxuICAgICAgPC9TcGFjaW5ncy5JbmxpbmU+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogJHthcHBLaXREZXNpZ25Ub2tlbnMubWFyZ2luUmlnaHRGb3JBcHBiYXJ9O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYH1cbiAgICAgID5cbiAgICAgICAgPFNwYWNpbmdzLklubGluZSBzY2FsZT1cIm1cIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgPFNwYWNpbmdzLklubGluZSBzY2FsZT1cIm1cIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICB7LyogVGhpcyBub2RlIGlzIHVzZWQgYnkgYSByZWFjdCBwb3J0YWwgKi99XG4gICAgICAgICAgICA8ZGl2IGlkPXtDT05UQUlORVJTLkxPQ0FMRV9TV0lUQ0hFUn0gLz5cbiAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoIXByb3BzLnVzZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gPExvYWRpbmdQbGFjZWhvbGRlciBzaGFwZT1cInJlY3RcIiBzaXplPVwic1wiIC8+O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8vIFRoZSBgPFByb2plY3RTd2l0Y2hlcj5gIHNob3VsZCBiZSByZW5kZXJlZCBvbmx5IGlmIHRoZVxuICAgICAgICAgICAgICAvLyB1c2VyIGlzIGZldGNoZWQgYW5kIHRoZSB1c2VyIGhhcyBwcm9qZWN0cyB3aGlsZSB0aGUgYXBwIHJ1bnMgaW4gYW4gcHJvamVjdCBjb250ZXh0LlxuICAgICAgICAgICAgICBpZiAocHJvcHMudXNlci5wcm9qZWN0cy50b3RhbCA+IDAgJiYgcHJvcHMucHJvamVjdEtleUZyb21VcmwpXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIDxQcm9qZWN0U3dpdGNoZXJcbiAgICAgICAgICAgICAgICAgICAgLy8gSW4gdGhpcyBjYXNlIGl0J3Mgbm90IG5lY2Vzc2FyeSB0byBjaGVjayBpZiB0aGUgYHByb2plY3RLZXlgIHBhcmFtXG4gICAgICAgICAgICAgICAgICAgIC8vIGlzIGluY2x1ZGVkIGluIHRoZSBsaXN0IG9mIHByb2plY3RzLiBJbiBzdWNoIGNhc2VcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGRyb3Bkb3duIHdpbGwgc3RpbGwgYmUgcmVuZGVyZWQgYnV0IG5vIHByb2plY3Qgd2lsbCBiZSBzZWxlY3RlZC5cbiAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBmaW5lIGJlY2FzZSB0aGUgdXNlciBoYXMgc3RpbGwgdGhlIHBvc3NpYmlsaXR5IHRvIFwic3dpdGNoXCJcbiAgICAgICAgICAgICAgICAgICAgLy8gdG8gYSBwcm9qZWN0LlxuICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9wcy5wcm9qZWN0S2V5RnJvbVVybCB8fCBwcmV2aW91c1Byb2plY3RLZXl9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGlmICghcHJvcHMudXNlci5kZWZhdWx0UHJvamVjdEtleSkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgIHJldHVybiA8QmFja1RvUHJvamVjdCBwcm9qZWN0S2V5PXtwcmV2aW91c1Byb2plY3RLZXl9IC8+O1xuICAgICAgICAgICAgfSkoKX1cbiAgICAgICAgICA8L1NwYWNpbmdzLklubGluZT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCAke3Vpa2l0RGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbDkwfSBzb2xpZDtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAke0RJTUVOU0lPTlMuaGVhZGVySXRlbURpdmlkZXJ9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHtwcm9wcy51c2VyID8gKFxuICAgICAgICAgICAgPFVzZXJTZXR0aW5nc01lbnVcbiAgICAgICAgICAgICAgbGFuZ3VhZ2U9e3Byb3BzLnVzZXIubGFuZ3VhZ2V9XG4gICAgICAgICAgICAgIGZpcnN0TmFtZT17cHJvcHMudXNlci5maXJzdE5hbWV9XG4gICAgICAgICAgICAgIGxhc3ROYW1lPXtwcm9wcy51c2VyLmxhc3ROYW1lfVxuICAgICAgICAgICAgICBncmF2YXRhckhhc2g9e3Byb3BzLnVzZXIuZ3JhdmF0YXJIYXNofVxuICAgICAgICAgICAgICBlbWFpbD17cHJvcHMudXNlci5lbWFpbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxMb2FkaW5nUGxhY2Vob2xkZXIgc2hhcGU9XCJkb3RcIiBzaXplPVwibFwiIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TcGFjaW5ncy5JbmxpbmU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5BcHBCYXIuZGlzcGxheU5hbWUgPSAnQXBwQmFyJztcblxuZXhwb3J0IGRlZmF1bHQgQXBwQmFyO1xuIl19 */",
418
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__$3
419
- };
420
- var _ref2$1 = process.env.NODE_ENV === "production" ? {
421
- name: "hlihg7",
422
- styles: "display:block;float:left;width:28px;height:32px;margin-left:20px"
423
- } : {
424
- name: "13ix1q4-AppBar",
425
- styles: "display:block;float:left;width:28px;height:32px;margin-left:20px;label:AppBar;",
426
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC1iYXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBDa0IiLCJmaWxlIjoiYXBwLWJhci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyBkZXNpZ25Ub2tlbnMgYXMgYXBwS2l0RGVzaWduVG9rZW5zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvYXBwbGljYXRpb24tY29tcG9uZW50cyc7XG5pbXBvcnQgTG9nb1NWRyBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hc3NldHMvaW1hZ2VzL2xvZ28uc3ZnJztcbmltcG9ydCB7IGRlc2lnblRva2VucyBhcyB1aWtpdERlc2lnblRva2VucyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2Rlc2lnbi1zeXN0ZW0nO1xuaW1wb3J0IFNwYWNpbmdzIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L3NwYWNpbmdzJztcbmltcG9ydCB7IENPTlRBSU5FUlMsIERJTUVOU0lPTlMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUgeyBURmV0Y2hMb2dnZWRJblVzZXJRdWVyeSB9IGZyb20gJy4uLy4uL3R5cGVzL2dlbmVyYXRlZC9tYyc7XG5pbXBvcnQgeyBnZXRQcmV2aW91c1Byb2plY3RLZXkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgQmFja1RvUHJvamVjdCBmcm9tICcuLi9iYWNrLXRvLXByb2plY3QnO1xuaW1wb3J0IExvYWRpbmdQbGFjZWhvbGRlciBmcm9tICcuLi9sb2FkaW5nLXBsYWNlaG9sZGVyJztcbmltcG9ydCBQcm9qZWN0U3dpdGNoZXIgZnJvbSAnLi4vcHJvamVjdC1zd2l0Y2hlcic7XG5pbXBvcnQgeyBSRVFVRVNUU19JTl9GTElHSFRfTE9BREVSX0RPTV9JRCB9IGZyb20gJy4uL3JlcXVlc3RzLWluLWZsaWdodC1sb2FkZXIvY29uc3RhbnRzJztcbmltcG9ydCBVc2VyU2V0dGluZ3NNZW51IGZyb20gJy4uL3VzZXItc2V0dGluZ3MtbWVudSc7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHVzZXI6IFRGZXRjaExvZ2dlZEluVXNlclF1ZXJ5Wyd1c2VyJ107XG4gIHByb2plY3RLZXlGcm9tVXJsPzogc3RyaW5nO1xuICBpc05ld05hdmlnYXRpb25FbmFibGVkOiBib29sZWFuO1xufTtcblxuY29uc3QgQXBwQmFyID0gKHByb3BzOiBQcm9wcykgPT4ge1xuICBjb25zdCBwcmV2aW91c1Byb2plY3RLZXkgPSBnZXRQcmV2aW91c1Byb2plY3RLZXkoXG4gICAgcHJvcHMudXNlcj8uZGVmYXVsdFByb2plY3RLZXkgPz8gdW5kZWZpbmVkXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt1aWtpdERlc2lnblRva2Vucy5jb2xvclN1cmZhY2V9O1xuICAgICAgICBib3gtc2hhZG93OiAke2FwcEtpdERlc2lnblRva2Vucy5zaGFkb3dGb3JBcHBiYXJ9O1xuICAgICAgICBtaW4taGVpZ2h0OiAke0RJTUVOU0lPTlMuaGVhZGVyfTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgei1pbmRleDogMjAwMDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIGB9XG4gICAgICBkYXRhLXRlc3Q9XCJ0b3AtbmF2aWdhdGlvblwiXG4gICAgPlxuICAgICAgPFNwYWNpbmdzLklubGluZT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgICAgICAgYH1cbiAgICAgICAgPlxuICAgICAgICAgIHshcHJvcHMuaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZCAmJlxuICAgICAgICAgICAgKCFwcm9wcy51c2VyID8gKFxuICAgICAgICAgICAgICA8aW1nIHNyYz17TG9nb1NWR30gd2lkdGg9XCIxMDAlXCIgYWx0PVwiTG9nb1wiIC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8YSBocmVmPXtgLyR7cHJldmlvdXNQcm9qZWN0S2V5IHx8ICcnfWB9PlxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPXtMb2dvU1ZHfSB3aWR0aD1cIjEwMCVcIiBhbHQ9XCJMb2dvXCIgLz5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBpZD17UkVRVUVTVFNfSU5fRkxJR0hUX0xPQURFUl9ET01fSUR9XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICBgfVxuICAgICAgICAvPlxuICAgICAgPC9TcGFjaW5ncy5JbmxpbmU+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogJHthcHBLaXREZXNpZ25Ub2tlbnMubWFyZ2luUmlnaHRGb3JBcHBiYXJ9O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYH1cbiAgICAgID5cbiAgICAgICAgPFNwYWNpbmdzLklubGluZSBzY2FsZT1cIm1cIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgPFNwYWNpbmdzLklubGluZSBzY2FsZT1cIm1cIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICB7LyogVGhpcyBub2RlIGlzIHVzZWQgYnkgYSByZWFjdCBwb3J0YWwgKi99XG4gICAgICAgICAgICA8ZGl2IGlkPXtDT05UQUlORVJTLkxPQ0FMRV9TV0lUQ0hFUn0gLz5cbiAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoIXByb3BzLnVzZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gPExvYWRpbmdQbGFjZWhvbGRlciBzaGFwZT1cInJlY3RcIiBzaXplPVwic1wiIC8+O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8vIFRoZSBgPFByb2plY3RTd2l0Y2hlcj5gIHNob3VsZCBiZSByZW5kZXJlZCBvbmx5IGlmIHRoZVxuICAgICAgICAgICAgICAvLyB1c2VyIGlzIGZldGNoZWQgYW5kIHRoZSB1c2VyIGhhcyBwcm9qZWN0cyB3aGlsZSB0aGUgYXBwIHJ1bnMgaW4gYW4gcHJvamVjdCBjb250ZXh0LlxuICAgICAgICAgICAgICBpZiAocHJvcHMudXNlci5wcm9qZWN0cy50b3RhbCA+IDAgJiYgcHJvcHMucHJvamVjdEtleUZyb21VcmwpXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIDxQcm9qZWN0U3dpdGNoZXJcbiAgICAgICAgICAgICAgICAgICAgLy8gSW4gdGhpcyBjYXNlIGl0J3Mgbm90IG5lY2Vzc2FyeSB0byBjaGVjayBpZiB0aGUgYHByb2plY3RLZXlgIHBhcmFtXG4gICAgICAgICAgICAgICAgICAgIC8vIGlzIGluY2x1ZGVkIGluIHRoZSBsaXN0IG9mIHByb2plY3RzLiBJbiBzdWNoIGNhc2VcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGRyb3Bkb3duIHdpbGwgc3RpbGwgYmUgcmVuZGVyZWQgYnV0IG5vIHByb2plY3Qgd2lsbCBiZSBzZWxlY3RlZC5cbiAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBmaW5lIGJlY2FzZSB0aGUgdXNlciBoYXMgc3RpbGwgdGhlIHBvc3NpYmlsaXR5IHRvIFwic3dpdGNoXCJcbiAgICAgICAgICAgICAgICAgICAgLy8gdG8gYSBwcm9qZWN0LlxuICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9wcy5wcm9qZWN0S2V5RnJvbVVybCB8fCBwcmV2aW91c1Byb2plY3RLZXl9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGlmICghcHJvcHMudXNlci5kZWZhdWx0UHJvamVjdEtleSkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgIHJldHVybiA8QmFja1RvUHJvamVjdCBwcm9qZWN0S2V5PXtwcmV2aW91c1Byb2plY3RLZXl9IC8+O1xuICAgICAgICAgICAgfSkoKX1cbiAgICAgICAgICA8L1NwYWNpbmdzLklubGluZT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCAke3Vpa2l0RGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbDkwfSBzb2xpZDtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAke0RJTUVOU0lPTlMuaGVhZGVySXRlbURpdmlkZXJ9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHtwcm9wcy51c2VyID8gKFxuICAgICAgICAgICAgPFVzZXJTZXR0aW5nc01lbnVcbiAgICAgICAgICAgICAgbGFuZ3VhZ2U9e3Byb3BzLnVzZXIubGFuZ3VhZ2V9XG4gICAgICAgICAgICAgIGZpcnN0TmFtZT17cHJvcHMudXNlci5maXJzdE5hbWV9XG4gICAgICAgICAgICAgIGxhc3ROYW1lPXtwcm9wcy51c2VyLmxhc3ROYW1lfVxuICAgICAgICAgICAgICBncmF2YXRhckhhc2g9e3Byb3BzLnVzZXIuZ3JhdmF0YXJIYXNofVxuICAgICAgICAgICAgICBlbWFpbD17cHJvcHMudXNlci5lbWFpbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxMb2FkaW5nUGxhY2Vob2xkZXIgc2hhcGU9XCJkb3RcIiBzaXplPVwibFwiIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TcGFjaW5ncy5JbmxpbmU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5BcHBCYXIuZGlzcGxheU5hbWUgPSAnQXBwQmFyJztcblxuZXhwb3J0IGRlZmF1bHQgQXBwQmFyO1xuIl19 */",
427
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__$3
428
- };
429
- const AppBar = props => {
430
- var _props$user$defaultPr, _props$user;
431
- const previousProjectKey = getPreviousProjectKey((_props$user$defaultPr = (_props$user = props.user) === null || _props$user === void 0 ? void 0 : _props$user.defaultProjectKey) !== null && _props$user$defaultPr !== void 0 ? _props$user$defaultPr : undefined);
432
- return jsxRuntime.jsxs("div", {
433
- css: /*#__PURE__*/react$1.css("background-color:", designSystem.designTokens.colorSurface, ";box-shadow:", applicationComponents.designTokens.shadowForAppbar, ";min-height:", oidc.DIMENSIONS.header, ";position:relative;width:100%;z-index:20000;display:flex;align-items:center;justify-content:space-between;" + (process.env.NODE_ENV === "production" ? "" : ";label:AppBar;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC1iYXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJCYyIsImZpbGUiOiJhcHAtYmFyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCB7IGRlc2lnblRva2VucyBhcyBhcHBLaXREZXNpZ25Ub2tlbnMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1jb21wb25lbnRzJztcbmltcG9ydCBMb2dvU1ZHIGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2Fzc2V0cy9pbWFnZXMvbG9nby5zdmcnO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zIGFzIHVpa2l0RGVzaWduVG9rZW5zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5pbXBvcnQgU3BhY2luZ3MgZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvc3BhY2luZ3MnO1xuaW1wb3J0IHsgQ09OVEFJTkVSUywgRElNRU5TSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7IFRGZXRjaExvZ2dlZEluVXNlclF1ZXJ5IH0gZnJvbSAnLi4vLi4vdHlwZXMvZ2VuZXJhdGVkL21jJztcbmltcG9ydCB7IGdldFByZXZpb3VzUHJvamVjdEtleSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCBCYWNrVG9Qcm9qZWN0IGZyb20gJy4uL2JhY2stdG8tcHJvamVjdCc7XG5pbXBvcnQgTG9hZGluZ1BsYWNlaG9sZGVyIGZyb20gJy4uL2xvYWRpbmctcGxhY2Vob2xkZXInO1xuaW1wb3J0IFByb2plY3RTd2l0Y2hlciBmcm9tICcuLi9wcm9qZWN0LXN3aXRjaGVyJztcbmltcG9ydCB7IFJFUVVFU1RTX0lOX0ZMSUdIVF9MT0FERVJfRE9NX0lEIH0gZnJvbSAnLi4vcmVxdWVzdHMtaW4tZmxpZ2h0LWxvYWRlci9jb25zdGFudHMnO1xuaW1wb3J0IFVzZXJTZXR0aW5nc01lbnUgZnJvbSAnLi4vdXNlci1zZXR0aW5ncy1tZW51JztcblxudHlwZSBQcm9wcyA9IHtcbiAgdXNlcjogVEZldGNoTG9nZ2VkSW5Vc2VyUXVlcnlbJ3VzZXInXTtcbiAgcHJvamVjdEtleUZyb21Vcmw/OiBzdHJpbmc7XG4gIGlzTmV3TmF2aWdhdGlvbkVuYWJsZWQ6IGJvb2xlYW47XG59O1xuXG5jb25zdCBBcHBCYXIgPSAocHJvcHM6IFByb3BzKSA9PiB7XG4gIGNvbnN0IHByZXZpb3VzUHJvamVjdEtleSA9IGdldFByZXZpb3VzUHJvamVjdEtleShcbiAgICBwcm9wcy51c2VyPy5kZWZhdWx0UHJvamVjdEtleSA/PyB1bmRlZmluZWRcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Vpa2l0RGVzaWduVG9rZW5zLmNvbG9yU3VyZmFjZX07XG4gICAgICAgIGJveC1zaGFkb3c6ICR7YXBwS2l0RGVzaWduVG9rZW5zLnNoYWRvd0ZvckFwcGJhcn07XG4gICAgICAgIG1pbi1oZWlnaHQ6ICR7RElNRU5TSU9OUy5oZWFkZXJ9O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB6LWluZGV4OiAyMDAwMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgYH1cbiAgICAgIGRhdGEtdGVzdD1cInRvcC1uYXZpZ2F0aW9uXCJcbiAgICA+XG4gICAgICA8U3BhY2luZ3MuSW5saW5lPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICAgICAgICBgfVxuICAgICAgICA+XG4gICAgICAgICAgeyFwcm9wcy5pc05ld05hdmlnYXRpb25FbmFibGVkICYmXG4gICAgICAgICAgICAoIXByb3BzLnVzZXIgPyAoXG4gICAgICAgICAgICAgIDxpbWcgc3JjPXtMb2dvU1ZHfSB3aWR0aD1cIjEwMCVcIiBhbHQ9XCJMb2dvXCIgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxhIGhyZWY9e2AvJHtwcmV2aW91c1Byb2plY3RLZXkgfHwgJyd9YH0+XG4gICAgICAgICAgICAgICAgPGltZyBzcmM9e0xvZ29TVkd9IHdpZHRoPVwiMTAwJVwiIGFsdD1cIkxvZ29cIiAvPlxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGlkPXtSRVFVRVNUU19JTl9GTElHSFRfTE9BREVSX0RPTV9JRH1cbiAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgIGB9XG4gICAgICAgIC8+XG4gICAgICA8L1NwYWNpbmdzLklubGluZT5cblxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAke2FwcEtpdERlc2lnblRva2Vucy5tYXJnaW5SaWdodEZvckFwcGJhcn07XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBgfVxuICAgICAgPlxuICAgICAgICA8U3BhY2luZ3MuSW5saW5lIHNjYWxlPVwibVwiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICA8U3BhY2luZ3MuSW5saW5lIHNjYWxlPVwibVwiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgIHsvKiBUaGlzIG5vZGUgaXMgdXNlZCBieSBhIHJlYWN0IHBvcnRhbCAqL31cbiAgICAgICAgICAgIDxkaXYgaWQ9e0NPTlRBSU5FUlMuTE9DQUxFX1NXSVRDSEVSfSAvPlxuICAgICAgICAgICAgeygoKSA9PiB7XG4gICAgICAgICAgICAgIGlmICghcHJvcHMudXNlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiA8TG9hZGluZ1BsYWNlaG9sZGVyIHNoYXBlPVwicmVjdFwiIHNpemU9XCJzXCIgLz47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLy8gVGhlIGA8UHJvamVjdFN3aXRjaGVyPmAgc2hvdWxkIGJlIHJlbmRlcmVkIG9ubHkgaWYgdGhlXG4gICAgICAgICAgICAgIC8vIHVzZXIgaXMgZmV0Y2hlZCBhbmQgdGhlIHVzZXIgaGFzIHByb2plY3RzIHdoaWxlIHRoZSBhcHAgcnVucyBpbiBhbiBwcm9qZWN0IGNvbnRleHQuXG4gICAgICAgICAgICAgIGlmIChwcm9wcy51c2VyLnByb2plY3RzLnRvdGFsID4gMCAmJiBwcm9wcy5wcm9qZWN0S2V5RnJvbVVybClcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPFByb2plY3RTd2l0Y2hlclxuICAgICAgICAgICAgICAgICAgICAvLyBJbiB0aGlzIGNhc2UgaXQncyBub3QgbmVjZXNzYXJ5IHRvIGNoZWNrIGlmIHRoZSBgcHJvamVjdEtleWAgcGFyYW1cbiAgICAgICAgICAgICAgICAgICAgLy8gaXMgaW5jbHVkZWQgaW4gdGhlIGxpc3Qgb2YgcHJvamVjdHMuIEluIHN1Y2ggY2FzZVxuICAgICAgICAgICAgICAgICAgICAvLyB0aGUgZHJvcGRvd24gd2lsbCBzdGlsbCBiZSByZW5kZXJlZCBidXQgbm8gcHJvamVjdCB3aWxsIGJlIHNlbGVjdGVkLlxuICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGZpbmUgYmVjYXNlIHRoZSB1c2VyIGhhcyBzdGlsbCB0aGUgcG9zc2liaWxpdHkgdG8gXCJzd2l0Y2hcIlxuICAgICAgICAgICAgICAgICAgICAvLyB0byBhIHByb2plY3QuXG4gICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXk9e3Byb3BzLnByb2plY3RLZXlGcm9tVXJsIHx8IHByZXZpb3VzUHJvamVjdEtleX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgaWYgKCFwcm9wcy51c2VyLmRlZmF1bHRQcm9qZWN0S2V5KSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgcmV0dXJuIDxCYWNrVG9Qcm9qZWN0IHByb2plY3RLZXk9e3ByZXZpb3VzUHJvamVjdEtleX0gLz47XG4gICAgICAgICAgICB9KSgpfVxuICAgICAgICAgIDwvU3BhY2luZ3MuSW5saW5lPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICBib3JkZXItbGVmdDogMXB4ICR7dWlraXREZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsOTB9IHNvbGlkO1xuICAgICAgICAgICAgICBoZWlnaHQ6ICR7RElNRU5TSU9OUy5oZWFkZXJJdGVtRGl2aWRlcn07XG4gICAgICAgICAgICBgfVxuICAgICAgICAgIC8+XG4gICAgICAgICAge3Byb3BzLnVzZXIgPyAoXG4gICAgICAgICAgICA8VXNlclNldHRpbmdzTWVudVxuICAgICAgICAgICAgICBsYW5ndWFnZT17cHJvcHMudXNlci5sYW5ndWFnZX1cbiAgICAgICAgICAgICAgZmlyc3ROYW1lPXtwcm9wcy51c2VyLmZpcnN0TmFtZX1cbiAgICAgICAgICAgICAgbGFzdE5hbWU9e3Byb3BzLnVzZXIubGFzdE5hbWV9XG4gICAgICAgICAgICAgIGdyYXZhdGFySGFzaD17cHJvcHMudXNlci5ncmF2YXRhckhhc2h9XG4gICAgICAgICAgICAgIGVtYWlsPXtwcm9wcy51c2VyLmVtYWlsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPExvYWRpbmdQbGFjZWhvbGRlciBzaGFwZT1cImRvdFwiIHNpemU9XCJsXCIgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NwYWNpbmdzLklubGluZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcbkFwcEJhci5kaXNwbGF5TmFtZSA9ICdBcHBCYXInO1xuXG5leHBvcnQgZGVmYXVsdCBBcHBCYXI7XG4iXX0= */"),
434
- "data-test": "top-navigation",
435
- children: [jsxRuntime.jsxs(Spacings__default["default"].Inline, {
436
- children: [jsxRuntime.jsx("div", {
437
- css: _ref2$1,
438
- children: !props.isNewNavigationEnabled && (!props.user ? jsxRuntime.jsx("img", {
439
- src: LogoSVG__default["default"],
440
- width: "100%",
441
- alt: "Logo"
442
- }) : jsxRuntime.jsx("a", {
443
- href: "/".concat(previousProjectKey || ''),
444
- children: jsxRuntime.jsx("img", {
445
- src: LogoSVG__default["default"],
446
- width: "100%",
447
- alt: "Logo"
448
- })
449
- }))
450
- }), jsxRuntime.jsx("div", {
451
- id: REQUESTS_IN_FLIGHT_LOADER_DOM_ID,
452
- css: _ref$1
453
- })]
454
- }), jsxRuntime.jsx("div", {
455
- css: /*#__PURE__*/react$1.css("float:right;font-weight:normal;font-size:1rem;margin-right:", applicationComponents.designTokens.marginRightForAppbar, ";display:flex;align-items:center;" + (process.env.NODE_ENV === "production" ? "" : ";label:AppBar;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC1iYXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNFZ0IiLCJmaWxlIjoiYXBwLWJhci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyBkZXNpZ25Ub2tlbnMgYXMgYXBwS2l0RGVzaWduVG9rZW5zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvYXBwbGljYXRpb24tY29tcG9uZW50cyc7XG5pbXBvcnQgTG9nb1NWRyBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hc3NldHMvaW1hZ2VzL2xvZ28uc3ZnJztcbmltcG9ydCB7IGRlc2lnblRva2VucyBhcyB1aWtpdERlc2lnblRva2VucyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2Rlc2lnbi1zeXN0ZW0nO1xuaW1wb3J0IFNwYWNpbmdzIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L3NwYWNpbmdzJztcbmltcG9ydCB7IENPTlRBSU5FUlMsIERJTUVOU0lPTlMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUgeyBURmV0Y2hMb2dnZWRJblVzZXJRdWVyeSB9IGZyb20gJy4uLy4uL3R5cGVzL2dlbmVyYXRlZC9tYyc7XG5pbXBvcnQgeyBnZXRQcmV2aW91c1Byb2plY3RLZXkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgQmFja1RvUHJvamVjdCBmcm9tICcuLi9iYWNrLXRvLXByb2plY3QnO1xuaW1wb3J0IExvYWRpbmdQbGFjZWhvbGRlciBmcm9tICcuLi9sb2FkaW5nLXBsYWNlaG9sZGVyJztcbmltcG9ydCBQcm9qZWN0U3dpdGNoZXIgZnJvbSAnLi4vcHJvamVjdC1zd2l0Y2hlcic7XG5pbXBvcnQgeyBSRVFVRVNUU19JTl9GTElHSFRfTE9BREVSX0RPTV9JRCB9IGZyb20gJy4uL3JlcXVlc3RzLWluLWZsaWdodC1sb2FkZXIvY29uc3RhbnRzJztcbmltcG9ydCBVc2VyU2V0dGluZ3NNZW51IGZyb20gJy4uL3VzZXItc2V0dGluZ3MtbWVudSc7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHVzZXI6IFRGZXRjaExvZ2dlZEluVXNlclF1ZXJ5Wyd1c2VyJ107XG4gIHByb2plY3RLZXlGcm9tVXJsPzogc3RyaW5nO1xuICBpc05ld05hdmlnYXRpb25FbmFibGVkOiBib29sZWFuO1xufTtcblxuY29uc3QgQXBwQmFyID0gKHByb3BzOiBQcm9wcykgPT4ge1xuICBjb25zdCBwcmV2aW91c1Byb2plY3RLZXkgPSBnZXRQcmV2aW91c1Byb2plY3RLZXkoXG4gICAgcHJvcHMudXNlcj8uZGVmYXVsdFByb2plY3RLZXkgPz8gdW5kZWZpbmVkXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt1aWtpdERlc2lnblRva2Vucy5jb2xvclN1cmZhY2V9O1xuICAgICAgICBib3gtc2hhZG93OiAke2FwcEtpdERlc2lnblRva2Vucy5zaGFkb3dGb3JBcHBiYXJ9O1xuICAgICAgICBtaW4taGVpZ2h0OiAke0RJTUVOU0lPTlMuaGVhZGVyfTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgei1pbmRleDogMjAwMDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIGB9XG4gICAgICBkYXRhLXRlc3Q9XCJ0b3AtbmF2aWdhdGlvblwiXG4gICAgPlxuICAgICAgPFNwYWNpbmdzLklubGluZT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgICAgICAgYH1cbiAgICAgICAgPlxuICAgICAgICAgIHshcHJvcHMuaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZCAmJlxuICAgICAgICAgICAgKCFwcm9wcy51c2VyID8gKFxuICAgICAgICAgICAgICA8aW1nIHNyYz17TG9nb1NWR30gd2lkdGg9XCIxMDAlXCIgYWx0PVwiTG9nb1wiIC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8YSBocmVmPXtgLyR7cHJldmlvdXNQcm9qZWN0S2V5IHx8ICcnfWB9PlxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPXtMb2dvU1ZHfSB3aWR0aD1cIjEwMCVcIiBhbHQ9XCJMb2dvXCIgLz5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBpZD17UkVRVUVTVFNfSU5fRkxJR0hUX0xPQURFUl9ET01fSUR9XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICBgfVxuICAgICAgICAvPlxuICAgICAgPC9TcGFjaW5ncy5JbmxpbmU+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogJHthcHBLaXREZXNpZ25Ub2tlbnMubWFyZ2luUmlnaHRGb3JBcHBiYXJ9O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYH1cbiAgICAgID5cbiAgICAgICAgPFNwYWNpbmdzLklubGluZSBzY2FsZT1cIm1cIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgPFNwYWNpbmdzLklubGluZSBzY2FsZT1cIm1cIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICB7LyogVGhpcyBub2RlIGlzIHVzZWQgYnkgYSByZWFjdCBwb3J0YWwgKi99XG4gICAgICAgICAgICA8ZGl2IGlkPXtDT05UQUlORVJTLkxPQ0FMRV9TV0lUQ0hFUn0gLz5cbiAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoIXByb3BzLnVzZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gPExvYWRpbmdQbGFjZWhvbGRlciBzaGFwZT1cInJlY3RcIiBzaXplPVwic1wiIC8+O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8vIFRoZSBgPFByb2plY3RTd2l0Y2hlcj5gIHNob3VsZCBiZSByZW5kZXJlZCBvbmx5IGlmIHRoZVxuICAgICAgICAgICAgICAvLyB1c2VyIGlzIGZldGNoZWQgYW5kIHRoZSB1c2VyIGhhcyBwcm9qZWN0cyB3aGlsZSB0aGUgYXBwIHJ1bnMgaW4gYW4gcHJvamVjdCBjb250ZXh0LlxuICAgICAgICAgICAgICBpZiAocHJvcHMudXNlci5wcm9qZWN0cy50b3RhbCA+IDAgJiYgcHJvcHMucHJvamVjdEtleUZyb21VcmwpXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIDxQcm9qZWN0U3dpdGNoZXJcbiAgICAgICAgICAgICAgICAgICAgLy8gSW4gdGhpcyBjYXNlIGl0J3Mgbm90IG5lY2Vzc2FyeSB0byBjaGVjayBpZiB0aGUgYHByb2plY3RLZXlgIHBhcmFtXG4gICAgICAgICAgICAgICAgICAgIC8vIGlzIGluY2x1ZGVkIGluIHRoZSBsaXN0IG9mIHByb2plY3RzLiBJbiBzdWNoIGNhc2VcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGRyb3Bkb3duIHdpbGwgc3RpbGwgYmUgcmVuZGVyZWQgYnV0IG5vIHByb2plY3Qgd2lsbCBiZSBzZWxlY3RlZC5cbiAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBmaW5lIGJlY2FzZSB0aGUgdXNlciBoYXMgc3RpbGwgdGhlIHBvc3NpYmlsaXR5IHRvIFwic3dpdGNoXCJcbiAgICAgICAgICAgICAgICAgICAgLy8gdG8gYSBwcm9qZWN0LlxuICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9wcy5wcm9qZWN0S2V5RnJvbVVybCB8fCBwcmV2aW91c1Byb2plY3RLZXl9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGlmICghcHJvcHMudXNlci5kZWZhdWx0UHJvamVjdEtleSkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgIHJldHVybiA8QmFja1RvUHJvamVjdCBwcm9qZWN0S2V5PXtwcmV2aW91c1Byb2plY3RLZXl9IC8+O1xuICAgICAgICAgICAgfSkoKX1cbiAgICAgICAgICA8L1NwYWNpbmdzLklubGluZT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCAke3Vpa2l0RGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbDkwfSBzb2xpZDtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAke0RJTUVOU0lPTlMuaGVhZGVySXRlbURpdmlkZXJ9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHtwcm9wcy51c2VyID8gKFxuICAgICAgICAgICAgPFVzZXJTZXR0aW5nc01lbnVcbiAgICAgICAgICAgICAgbGFuZ3VhZ2U9e3Byb3BzLnVzZXIubGFuZ3VhZ2V9XG4gICAgICAgICAgICAgIGZpcnN0TmFtZT17cHJvcHMudXNlci5maXJzdE5hbWV9XG4gICAgICAgICAgICAgIGxhc3ROYW1lPXtwcm9wcy51c2VyLmxhc3ROYW1lfVxuICAgICAgICAgICAgICBncmF2YXRhckhhc2g9e3Byb3BzLnVzZXIuZ3JhdmF0YXJIYXNofVxuICAgICAgICAgICAgICBlbWFpbD17cHJvcHMudXNlci5lbWFpbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxMb2FkaW5nUGxhY2Vob2xkZXIgc2hhcGU9XCJkb3RcIiBzaXplPVwibFwiIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TcGFjaW5ncy5JbmxpbmU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5BcHBCYXIuZGlzcGxheU5hbWUgPSAnQXBwQmFyJztcblxuZXhwb3J0IGRlZmF1bHQgQXBwQmFyO1xuIl19 */"),
456
- children: jsxRuntime.jsxs(Spacings__default["default"].Inline, {
457
- scale: "m",
458
- alignItems: "center",
459
- children: [jsxRuntime.jsxs(Spacings__default["default"].Inline, {
460
- scale: "m",
461
- alignItems: "center",
462
- children: [jsxRuntime.jsx("div", {
463
- id: oidc.CONTAINERS.LOCALE_SWITCHER
464
- }), (() => {
465
- if (!props.user) {
466
- return jsxRuntime.jsx(LoadingPlaceholder, {
467
- shape: "rect",
468
- size: "s"
469
- });
470
- }
471
- // The `<ProjectSwitcher>` should be rendered only if the
472
- // user is fetched and the user has projects while the app runs in an project context.
473
- if (props.user.projects.total > 0 && props.projectKeyFromUrl) return jsxRuntime.jsx(ProjectSwitcher
474
- // In this case it's not necessary to check if the `projectKey` param
475
- // is included in the list of projects. In such case
476
- // the dropdown will still be rendered but no project will be selected.
477
- // This is fine becase the user has still the possibility to "switch"
478
- // to a project.
479
- , {
480
- projectKey: props.projectKeyFromUrl || previousProjectKey
481
- });
482
- if (!props.user.defaultProjectKey) return null;
483
- return jsxRuntime.jsx(BackToProject, {
484
- projectKey: previousProjectKey
485
- });
486
- })()]
487
- }), jsxRuntime.jsx("div", {
488
- css: /*#__PURE__*/react$1.css("border-left:1px ", designSystem.designTokens.colorNeutral90, " solid;height:", oidc.DIMENSIONS.headerItemDivider, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:AppBar;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC1iYXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlHb0IiLCJmaWxlIjoiYXBwLWJhci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyBkZXNpZ25Ub2tlbnMgYXMgYXBwS2l0RGVzaWduVG9rZW5zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvYXBwbGljYXRpb24tY29tcG9uZW50cyc7XG5pbXBvcnQgTG9nb1NWRyBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hc3NldHMvaW1hZ2VzL2xvZ28uc3ZnJztcbmltcG9ydCB7IGRlc2lnblRva2VucyBhcyB1aWtpdERlc2lnblRva2VucyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2Rlc2lnbi1zeXN0ZW0nO1xuaW1wb3J0IFNwYWNpbmdzIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L3NwYWNpbmdzJztcbmltcG9ydCB7IENPTlRBSU5FUlMsIERJTUVOU0lPTlMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUgeyBURmV0Y2hMb2dnZWRJblVzZXJRdWVyeSB9IGZyb20gJy4uLy4uL3R5cGVzL2dlbmVyYXRlZC9tYyc7XG5pbXBvcnQgeyBnZXRQcmV2aW91c1Byb2plY3RLZXkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgQmFja1RvUHJvamVjdCBmcm9tICcuLi9iYWNrLXRvLXByb2plY3QnO1xuaW1wb3J0IExvYWRpbmdQbGFjZWhvbGRlciBmcm9tICcuLi9sb2FkaW5nLXBsYWNlaG9sZGVyJztcbmltcG9ydCBQcm9qZWN0U3dpdGNoZXIgZnJvbSAnLi4vcHJvamVjdC1zd2l0Y2hlcic7XG5pbXBvcnQgeyBSRVFVRVNUU19JTl9GTElHSFRfTE9BREVSX0RPTV9JRCB9IGZyb20gJy4uL3JlcXVlc3RzLWluLWZsaWdodC1sb2FkZXIvY29uc3RhbnRzJztcbmltcG9ydCBVc2VyU2V0dGluZ3NNZW51IGZyb20gJy4uL3VzZXItc2V0dGluZ3MtbWVudSc7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHVzZXI6IFRGZXRjaExvZ2dlZEluVXNlclF1ZXJ5Wyd1c2VyJ107XG4gIHByb2plY3RLZXlGcm9tVXJsPzogc3RyaW5nO1xuICBpc05ld05hdmlnYXRpb25FbmFibGVkOiBib29sZWFuO1xufTtcblxuY29uc3QgQXBwQmFyID0gKHByb3BzOiBQcm9wcykgPT4ge1xuICBjb25zdCBwcmV2aW91c1Byb2plY3RLZXkgPSBnZXRQcmV2aW91c1Byb2plY3RLZXkoXG4gICAgcHJvcHMudXNlcj8uZGVmYXVsdFByb2plY3RLZXkgPz8gdW5kZWZpbmVkXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt1aWtpdERlc2lnblRva2Vucy5jb2xvclN1cmZhY2V9O1xuICAgICAgICBib3gtc2hhZG93OiAke2FwcEtpdERlc2lnblRva2Vucy5zaGFkb3dGb3JBcHBiYXJ9O1xuICAgICAgICBtaW4taGVpZ2h0OiAke0RJTUVOU0lPTlMuaGVhZGVyfTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgei1pbmRleDogMjAwMDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIGB9XG4gICAgICBkYXRhLXRlc3Q9XCJ0b3AtbmF2aWdhdGlvblwiXG4gICAgPlxuICAgICAgPFNwYWNpbmdzLklubGluZT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgICAgICAgYH1cbiAgICAgICAgPlxuICAgICAgICAgIHshcHJvcHMuaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZCAmJlxuICAgICAgICAgICAgKCFwcm9wcy51c2VyID8gKFxuICAgICAgICAgICAgICA8aW1nIHNyYz17TG9nb1NWR30gd2lkdGg9XCIxMDAlXCIgYWx0PVwiTG9nb1wiIC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8YSBocmVmPXtgLyR7cHJldmlvdXNQcm9qZWN0S2V5IHx8ICcnfWB9PlxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPXtMb2dvU1ZHfSB3aWR0aD1cIjEwMCVcIiBhbHQ9XCJMb2dvXCIgLz5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBpZD17UkVRVUVTVFNfSU5fRkxJR0hUX0xPQURFUl9ET01fSUR9XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICBgfVxuICAgICAgICAvPlxuICAgICAgPC9TcGFjaW5ncy5JbmxpbmU+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogJHthcHBLaXREZXNpZ25Ub2tlbnMubWFyZ2luUmlnaHRGb3JBcHBiYXJ9O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYH1cbiAgICAgID5cbiAgICAgICAgPFNwYWNpbmdzLklubGluZSBzY2FsZT1cIm1cIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgPFNwYWNpbmdzLklubGluZSBzY2FsZT1cIm1cIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICB7LyogVGhpcyBub2RlIGlzIHVzZWQgYnkgYSByZWFjdCBwb3J0YWwgKi99XG4gICAgICAgICAgICA8ZGl2IGlkPXtDT05UQUlORVJTLkxPQ0FMRV9TV0lUQ0hFUn0gLz5cbiAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoIXByb3BzLnVzZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gPExvYWRpbmdQbGFjZWhvbGRlciBzaGFwZT1cInJlY3RcIiBzaXplPVwic1wiIC8+O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8vIFRoZSBgPFByb2plY3RTd2l0Y2hlcj5gIHNob3VsZCBiZSByZW5kZXJlZCBvbmx5IGlmIHRoZVxuICAgICAgICAgICAgICAvLyB1c2VyIGlzIGZldGNoZWQgYW5kIHRoZSB1c2VyIGhhcyBwcm9qZWN0cyB3aGlsZSB0aGUgYXBwIHJ1bnMgaW4gYW4gcHJvamVjdCBjb250ZXh0LlxuICAgICAgICAgICAgICBpZiAocHJvcHMudXNlci5wcm9qZWN0cy50b3RhbCA+IDAgJiYgcHJvcHMucHJvamVjdEtleUZyb21VcmwpXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIDxQcm9qZWN0U3dpdGNoZXJcbiAgICAgICAgICAgICAgICAgICAgLy8gSW4gdGhpcyBjYXNlIGl0J3Mgbm90IG5lY2Vzc2FyeSB0byBjaGVjayBpZiB0aGUgYHByb2plY3RLZXlgIHBhcmFtXG4gICAgICAgICAgICAgICAgICAgIC8vIGlzIGluY2x1ZGVkIGluIHRoZSBsaXN0IG9mIHByb2plY3RzLiBJbiBzdWNoIGNhc2VcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGRyb3Bkb3duIHdpbGwgc3RpbGwgYmUgcmVuZGVyZWQgYnV0IG5vIHByb2plY3Qgd2lsbCBiZSBzZWxlY3RlZC5cbiAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBmaW5lIGJlY2FzZSB0aGUgdXNlciBoYXMgc3RpbGwgdGhlIHBvc3NpYmlsaXR5IHRvIFwic3dpdGNoXCJcbiAgICAgICAgICAgICAgICAgICAgLy8gdG8gYSBwcm9qZWN0LlxuICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9wcy5wcm9qZWN0S2V5RnJvbVVybCB8fCBwcmV2aW91c1Byb2plY3RLZXl9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGlmICghcHJvcHMudXNlci5kZWZhdWx0UHJvamVjdEtleSkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgIHJldHVybiA8QmFja1RvUHJvamVjdCBwcm9qZWN0S2V5PXtwcmV2aW91c1Byb2plY3RLZXl9IC8+O1xuICAgICAgICAgICAgfSkoKX1cbiAgICAgICAgICA8L1NwYWNpbmdzLklubGluZT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCAke3Vpa2l0RGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbDkwfSBzb2xpZDtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAke0RJTUVOU0lPTlMuaGVhZGVySXRlbURpdmlkZXJ9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHtwcm9wcy51c2VyID8gKFxuICAgICAgICAgICAgPFVzZXJTZXR0aW5nc01lbnVcbiAgICAgICAgICAgICAgbGFuZ3VhZ2U9e3Byb3BzLnVzZXIubGFuZ3VhZ2V9XG4gICAgICAgICAgICAgIGZpcnN0TmFtZT17cHJvcHMudXNlci5maXJzdE5hbWV9XG4gICAgICAgICAgICAgIGxhc3ROYW1lPXtwcm9wcy51c2VyLmxhc3ROYW1lfVxuICAgICAgICAgICAgICBncmF2YXRhckhhc2g9e3Byb3BzLnVzZXIuZ3JhdmF0YXJIYXNofVxuICAgICAgICAgICAgICBlbWFpbD17cHJvcHMudXNlci5lbWFpbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxMb2FkaW5nUGxhY2Vob2xkZXIgc2hhcGU9XCJkb3RcIiBzaXplPVwibFwiIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TcGFjaW5ncy5JbmxpbmU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5BcHBCYXIuZGlzcGxheU5hbWUgPSAnQXBwQmFyJztcblxuZXhwb3J0IGRlZmF1bHQgQXBwQmFyO1xuIl19 */")
489
- }), props.user ? jsxRuntime.jsx(UserSettingsMenu, {
490
- language: props.user.language,
491
- firstName: props.user.firstName,
492
- lastName: props.user.lastName,
493
- gravatarHash: props.user.gravatarHash,
494
- email: props.user.email
495
- }) : jsxRuntime.jsx(LoadingPlaceholder, {
496
- shape: "dot",
497
- size: "l"
498
- })]
499
- })
500
- })]
501
- });
502
- };
503
- AppBar.displayName = 'AppBar';
504
-
505
- const ApplicationLoader = props => jsxRuntime.jsxs("div", {
506
- css: /*#__PURE__*/react$1.css("display:flex;align-items:center;justify-content:center;flex:1;flex-direction:column;height:100vh;padding:", designSystem.customProperties.spacingL, ";>*+*{margin:", designSystem.customProperties.spacingL, " 0 0;}" + (process.env.NODE_ENV === "production" ? "" : ";label:ApplicationLoader;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLWxvYWRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV1kiLCJmaWxlIjoiYXBwbGljYXRpb24tbG9hZGVyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBDVExvZ29TVkcgZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvYXNzZXRzL2ltYWdlcy9jdC1sb2dvLnN2Zyc7XG5pbXBvcnQgeyBjdXN0b21Qcm9wZXJ0aWVzIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5pbXBvcnQgTG9hZGluZ1NwaW5uZXIgZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvbG9hZGluZy1zcGlubmVyJztcblxudHlwZSBQcm9wcyA9IHtcbiAgc2hvd0xvZ28/OiBib29sZWFuO1xufTtcblxuY29uc3QgQXBwbGljYXRpb25Mb2FkZXIgPSAocHJvcHM6IFByb3BzKSA9PiAoXG4gIDxkaXZcbiAgICBjc3M9e2Nzc2BcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBmbGV4OiAxO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICBwYWRkaW5nOiAke2N1c3RvbVByb3BlcnRpZXMuc3BhY2luZ0x9O1xuXG4gICAgICA+ICogKyAqIHtcbiAgICAgICAgbWFyZ2luOiAke2N1c3RvbVByb3BlcnRpZXMuc3BhY2luZ0x9IDAgMDtcbiAgICAgIH1cbiAgICBgfVxuICAgIGRhdGEtdGVzdGlkPVwiYXBwbGljYXRpb24tbG9hZGVyXCJcbiAgPlxuICAgIDxMb2FkaW5nU3Bpbm5lciAvPlxuICAgIHtwcm9wcy5zaG93TG9nbyA9PT0gdHJ1ZSA/IChcbiAgICAgIDxpbWcgYWx0PVwiY29tbWVyY2V0b29scyBsb2dvXCIgc3JjPXtDVExvZ29TVkd9IC8+XG4gICAgKSA6IG51bGx9XG4gIDwvZGl2PlxuKTtcbkFwcGxpY2F0aW9uTG9hZGVyLmRpc3BsYXlOYW1lID0gJ0FwcGxpY2F0aW9uTG9hZGVyJztcblxuZXhwb3J0IGRlZmF1bHQgQXBwbGljYXRpb25Mb2FkZXI7XG4iXX0= */"),
507
- "data-testid": "application-loader",
508
- children: [jsxRuntime.jsx(LoadingSpinner__default["default"], {}), props.showLogo === true ? jsxRuntime.jsx("img", {
509
- alt: "commercetools logo",
510
- src: CTLogoSVG__default["default"]
511
- }) : null]
512
- });
513
- ApplicationLoader.displayName = 'ApplicationLoader';
514
-
515
- const getBrowserHistory = () => history__default["default"];
516
- const getBrowserLocale = win => {
517
- const browserLocale = win && win.navigator && win.navigator.language;
518
- return l10n.getSupportedLocale(browserLocale);
519
- };
520
-
521
- const hideAppLoader = () => {
522
- /**
523
- * NOTE:
524
- * This function is defined in the `index.html` in a script-tag
525
- * by the `html-template.js` in the `mc-scripts`. There are
526
- * alternative ways of acheiving this namely:
527
- * 1. Using custom events and dispatching here
528
- * - Not supported in IE11 and would need a polyfill
529
- * 2. Removing the DOM node here
530
- * - Both `index.html` and this component would have to
531
- * now the div's id/class. If one would change the index.html
532
- * the app would never show (always show the loading screen)
533
- */
534
- if (window.onAppLoaded) window.onAppLoaded();
535
- };
536
- const ConfigureIntlProvider = props => {
537
- react.useEffect(() => {
538
- if (props.locale) {
539
- hideAppLoader();
540
- }
541
- }, [props.locale]);
542
- if (!props.locale) {
543
- return null;
544
- }
545
- return jsxRuntime.jsx(reactIntl.IntlProvider, {
546
- locale: props.locale,
547
- messages: props.messages,
548
- children: props.children
549
- });
550
- };
551
- ConfigureIntlProvider.propTypes = process.env.NODE_ENV !== "production" ? {
552
- locale: _pt__default["default"].string,
553
- children: _pt__default["default"].node.isRequired
554
- } : {};
555
- ConfigureIntlProvider.displayName = 'ConfigureIntlProvider';
556
-
557
- const ErrorApologizer = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./error-apologizer-f6793491.cjs.dev.js' /* webpackChunkName: "error-apologizer" */); }));
558
-
559
- var ProjectQuery = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "FetchProject" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "projectKey" } }, type: { kind: "NamedType", name: { kind: "Name", value: "String" } }, directives: [] }], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "project" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "key" }, value: { kind: "Variable", name: { kind: "Name", value: "projectKey" } } }], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "key" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "version" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "countries" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "currencies" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "languages" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "initialized" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "expiry" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "isActive" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "daysLeft" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "suspension" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "isActive" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "reason" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "allAppliedPermissions" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "allAppliedActionRights" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "group" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "allAppliedDataFences" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "StoreDataFence" } }, directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "type" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "group" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "__typename" }, arguments: [], directives: [] }] } }] } }, { kind: "Field", name: { kind: "Name", value: "allPermissionsForAllApplications" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "allAppliedPermissions" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "allAppliedActionRights" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "group" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "allAppliedMenuVisibilities" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "allAppliedDataFences" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "StoreDataFence" } }, directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "type" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "group" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "__typename" }, arguments: [], directives: [] }] } }] } }] } }, { kind: "Field", name: { kind: "Name", value: "owner" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "sampleDataImportDataset" }, arguments: [], directives: [] }] } }] } }], loc: { start: 0, end: 1025, source: { body: "query FetchProject($projectKey: String) {\n project(key: $projectKey) {\n key\n version\n name\n countries\n currencies\n languages\n initialized\n expiry {\n isActive\n daysLeft\n }\n suspension {\n isActive\n reason\n }\n allAppliedPermissions {\n name\n value\n }\n allAppliedActionRights {\n group\n name\n value\n }\n allAppliedDataFences {\n ... on StoreDataFence {\n type\n name\n value\n group\n __typename\n }\n }\n allPermissionsForAllApplications {\n allAppliedPermissions {\n name\n value\n }\n allAppliedActionRights {\n group\n name\n value\n }\n allAppliedMenuVisibilities {\n name\n value\n }\n allAppliedDataFences {\n ... on StoreDataFence {\n type\n name\n value\n group\n __typename\n }\n }\n }\n owner {\n id\n name\n }\n sampleDataImportDataset\n }\n}\n", name: "GraphQL request", locationOffset: { line: 1, column: 1 } } } };
560
- const FetchProject = props => {
561
- const _useMcQuery = applicationShellConnectors.useMcQuery(ProjectQuery, {
562
- onError: sentry.reportErrorToSentry,
563
- variables: {
564
- projectKey: props.projectKey
565
- },
566
- context: {
567
- target: constants.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
568
- },
569
- skip: props.skip === true
570
- }),
571
- loading = _useMcQuery.loading,
572
- data = _useMcQuery.data,
573
- error = _useMcQuery.error;
574
- return jsxRuntime.jsx(jsxRuntime.Fragment, {
575
- children: props.children({
576
- isLoading: loading,
577
- error,
578
- project: data && data.project
579
- })
580
- });
581
- };
582
- FetchProject.propTypes = {
583
- projectKey: _pt__default["default"].string,
584
- skip: _pt__default["default"].bool,
585
- children: _pt__default["default"].func.isRequired
586
- };
587
- FetchProject.displayName = 'FetchProject';
588
-
589
- var LoggedInUserQuery = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "FetchLoggedInUser" }, variableDefinitions: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", alias: { kind: "Name", value: "user" }, name: { kind: "Name", value: "me" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "email" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "createdAt" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "gravatarHash" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "firstName" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "lastName" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "language" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "numberFormat" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "timeZone" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "launchdarklyTrackingId" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "launchdarklyTrackingGroup" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "launchdarklyTrackingSubgroup" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "launchdarklyTrackingTeam" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "launchdarklyTrackingTenant" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "defaultProjectKey" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "businessRole" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "projects" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "total" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "results" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "key" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "suspension" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "isActive" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "expiry" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "isActive" }, arguments: [], directives: [] }] } }] } }] } }, { kind: "Field", name: { kind: "Name", value: "idTokenUserInfo" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "iss" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "sub" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "aud" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "exp" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "iat" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "email" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "additionalClaims" }, arguments: [], directives: [] }] } }] } }] } }], loc: { start: 0, end: 654, source: { body: "query FetchLoggedInUser {\n user: me {\n id\n email\n createdAt\n gravatarHash\n firstName\n lastName\n language\n numberFormat\n timeZone\n launchdarklyTrackingId\n launchdarklyTrackingGroup\n launchdarklyTrackingSubgroup\n launchdarklyTrackingTeam\n launchdarklyTrackingTenant\n defaultProjectKey\n businessRole\n projects {\n total\n results {\n name\n key\n suspension {\n isActive\n }\n expiry {\n isActive\n }\n }\n }\n idTokenUserInfo {\n iss\n sub\n aud\n exp\n iat\n email\n name\n additionalClaims\n }\n }\n}\n", name: "GraphQL request", locationOffset: { line: 1, column: 1 } } } };
590
- const FetchUser = props => {
591
- const _useMcQuery = applicationShellConnectors.useMcQuery(LoggedInUserQuery, {
592
- onError: sentry.reportErrorToSentry,
593
- context: {
594
- target: constants.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
595
- }
596
- }),
597
- loading = _useMcQuery.loading,
598
- data = _useMcQuery.data,
599
- error = _useMcQuery.error;
600
- return jsxRuntime.jsx(jsxRuntime.Fragment, {
601
- children: props.children({
602
- isLoading: loading,
603
- user: data && data.user,
604
- error
605
- })
606
- });
607
- };
608
- FetchUser.propTypes = {
609
- children: _pt__default["default"].func.isRequired
610
- };
611
- FetchUser.displayName = 'FetchUser';
612
-
613
- const Navbar = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./navbar-a4e4bff2.cjs.dev.js' /* webpackChunkName: "navbar" */); }));
614
-
615
- const ProjectContainer = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./project-container-61346ae8.cjs.dev.js' /* webpackChunkName: "project-container" */); }));
616
-
617
- const getSelectedDataLocaleForProject = projectLocales => {
618
- const cachedDataLocale = window.localStorage.getItem(constants.STORAGE_KEYS.SELECTED_DATA_LOCALE);
619
- // Make sure the cached locale is listed in the selected project
620
- const isCachedDataLocaleIncludedInProjectLanguages = _includesInstanceProperty__default["default"](projectLocales).call(projectLocales, cachedDataLocale || '');
621
- if (cachedDataLocale && isCachedDataLocaleIncludedInProjectLanguages) return cachedDataLocale;
622
- // Pick the first locale from the list
623
- const defaultDataLocaleForProject = projectLocales[0];
624
- // Cache it
625
- window.localStorage.setItem(constants.STORAGE_KEYS.SELECTED_DATA_LOCALE, defaultDataLocaleForProject);
626
- return defaultDataLocaleForProject;
627
- };
628
- const ProjectDataLocale = props => {
629
- const _useState = react.useState(getSelectedDataLocaleForProject(props.locales)),
630
- _useState2 = _slicedToArray(_useState, 2),
631
- locale = _useState2[0],
632
- setLocale = _useState2[1];
633
- const handleSetProjectDataLocale = react.useCallback(locale => {
634
- setLocale(locale);
635
- // Cache it
636
- window.localStorage.setItem(constants.STORAGE_KEYS.SELECTED_DATA_LOCALE, locale);
637
- }, []);
638
- return jsxRuntime.jsx(jsxRuntime.Fragment, {
639
- children: props.children({
640
- locale,
641
- setProjectDataLocale: handleSetProjectDataLocale
642
- })
643
- });
644
- };
645
- ProjectDataLocale.propTypes = {
646
- locales: _pt__default["default"].arrayOf(_pt__default["default"].string).isRequired,
647
- children: _pt__default["default"].func.isRequired
648
- };
649
- ProjectDataLocale.displayName = 'ProjectDataLocale';
650
-
651
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = _Reflect$construct__default["default"](Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
652
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct__default["default"]) return false; if (_Reflect$construct__default["default"].sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct__default["default"](Boolean, [], function () {})); return true; } catch (e) { return false; } }
653
- let ErrorBoundary = /*#__PURE__*/function (_Component) {
654
- _inherits(ErrorBoundary, _Component);
655
- var _super = _createSuper(ErrorBoundary);
656
- function ErrorBoundary() {
657
- var _this;
658
- _classCallCheck(this, ErrorBoundary);
659
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
660
- args[_key] = arguments[_key];
661
- }
662
- _this = _super.call(this, ...args);
663
- _this.state = {
664
- hasError: false
665
- };
666
- return _this;
667
- }
668
- _createClass(ErrorBoundary, [{
669
- key: "componentDidUpdate",
670
- value: function componentDidUpdate(prevProps) {
671
- const hasRouteChanged = prevProps.pathname !== this.props.pathname;
672
- this.setState(prevState => hasRouteChanged && prevState.hasError ? {
673
- hasError: false
674
- } : null);
675
- }
676
- }, {
677
- key: "componentDidCatch",
678
- value: function componentDidCatch(error, errorInfo) {
679
- // Note: In development mode componentDidCatch is not based on try-catch
680
- // to catch exceptions. Thus exceptions caught here will also be caught in
681
- // the global `error` event listener (setup-global-error-listener.js).
682
- // see: https://github.com/facebook/react/issues/10474
683
- sentry.reportErrorToSentry(error, {
684
- extra: errorInfo
685
- });
686
- }
687
- }, {
688
- key: "render",
689
- value: function render() {
690
- if (this.state.hasError) {
691
- return jsxRuntime.jsx(ErrorApologizer, {});
692
- }
693
- return jsxRuntime.jsx(jsxRuntime.Fragment, {
694
- children: this.props.children
695
- });
696
- }
697
- }], [{
698
- key: "getDerivedStateFromError",
699
- value: function getDerivedStateFromError( /* error */
700
- ) {
701
- // Update state so the next render will show the fallback UI.
702
- return {
703
- hasError: true
704
- };
705
- }
706
- }]);
707
- return ErrorBoundary;
708
- }(react.Component);
709
- ErrorBoundary.propTypes = process.env.NODE_ENV !== "production" ? {
710
- pathname: _pt__default["default"].string,
711
- children: _pt__default["default"].node.isRequired
712
- } : {};
713
-
714
- function _EMOTION_STRINGIFIED_CSS_ERROR__$2() { 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)."; }
715
- const ButlerContainer = /*#__PURE__*/_styled__default["default"]("div", process.env.NODE_ENV === "production" ? {
716
- target: "e1fuwyk10"
717
- } : {
718
- target: "e1fuwyk10",
719
- label: "ButlerContainer"
720
- })(process.env.NODE_ENV === "production" ? {
721
- name: "xvk698",
722
- styles: "position:absolute;left:0;bottom:0;top:0;right:0;background-color:rgba(0, 0, 0, 0.35);z-index:20001"
723
- } : {
724
- name: "xvk698",
725
- styles: "position:absolute;left:0;bottom:0;top:0;right:0;background-color:rgba(0, 0, 0, 0.35);z-index:20001",
726
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1dGxlci1jb250YWluZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVrQyIsImZpbGUiOiJidXRsZXItY29udGFpbmVyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcblxuY29uc3QgQnV0bGVyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zNSk7XG4gIHotaW5kZXg6IDIwMDAxO1xuYDtcblxuZXhwb3J0IGRlZmF1bHQgQnV0bGVyQ29udGFpbmVyO1xuIl19 */",
727
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__$2
728
- });
729
-
730
- var pimIndexerStates = {
731
- // we did not check yet
732
- UNCHECKED: 'UNCHECKED',
733
- // the project is indexed by pim-indexer
734
- INDEXED: 'INDEXED',
735
- // the project is not indexed by pim-indexer
736
- NOT_INDEXED: 'NOT_INDEXED'
737
- };
738
-
739
- const QuickAccess = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./quick-access-9613aac7.cjs.dev.js' /* webpackChunkName: "quick-access" */); }));
740
-
741
- const QuickAccessTrigger = props => {
742
- const _useState = react.useState(false),
743
- _useState2 = _slicedToArray(_useState, 2),
744
- isVisible = _useState2[0],
745
- setIsVisible = _useState2[1];
746
- const open = react.useCallback(() => {
747
- setIsVisible(true);
748
- }, []);
749
- const close = react.useCallback(() => {
750
- setIsVisible(false);
751
- }, []);
752
- // We store the information of whether a project is indexed by pim-indexer,
753
- // to avoid having to refetch that information every time Quick Access is
754
- // opened. We can't move the information to the quick-access.js component
755
- // as that component unmounts and would lose its state.
756
- //
757
- // We need to know whether a project is indexed by pim-indexer to know
758
- // whether we should query pim-search or whether we can skip that request.
759
- //
760
- // We don't need to update this information when the project key changes,
761
- // as changing a project always results in a full page reload anyways.
762
- const _useState3 = react.useState(pimIndexerStates.UNCHECKED),
763
- _useState4 = _slicedToArray(_useState3, 2),
764
- pimIndexerState = _useState4[0],
765
- setPimIndexerState = _useState4[1];
766
- const handlePimIndexerStateChange = react.useCallback(nextPimIndexerState => {
767
- setPimIndexerState(nextPimIndexerState);
768
- }, []);
769
- const keyHandler = react.useCallback(event => {
770
- const hotKey = 'f';
771
- // avoid interfering with any key combinations using modifier keys
772
- if (event.ctrlKey || event.altKey || event.shiftKey || event.metaKey) return;
773
-
774
- // Let users close QuickAccess by pressing Escape
775
- if (event.key === 'Escape' && event.target.id === 'quick-access-search-input') {
776
- close();
777
- return;
778
- }
779
-
780
- // Avoid interfering with any other elements. We only
781
- // open the QuickAccess when nothing was focused, so target is document.body
782
- if (event.target !== document.body &&
783
- // tabIndex="-1" has a special meaning
784
- // It will make the element focusable, while hiding it from the
785
- // navigation. It is typically used for modals and overlays.
786
- // react-modal uses it for example. We want to treat those elements
787
- // similar to document.body.
788
- // See https://stackoverflow.com/a/32912224
789
- event.target.getAttribute('tabindex') !== '-1' &&
790
- // Do not prevent Quick Access from opening when a link has focus
791
- event.target.nodeName !== 'A') return;
792
- if (event.key === hotKey) {
793
- if (!isVisible) {
794
- // prevent the letter from appearing in the search input when
795
- // it is the key press that lead to opening Quick Access
796
- event.preventDefault();
797
- }
798
- open();
799
- }
800
- return;
801
- }, [close, isVisible, open]);
802
- react.useEffect(() => {
803
- document.addEventListener('keydown', keyHandler);
804
- return () => {
805
- document.removeEventListener('keydown', keyHandler);
806
- };
807
- }, [keyHandler]);
808
- if (!isVisible) return null;
809
- return jsxRuntime.jsx(ErrorBoundary, {
810
- children: jsxRuntime.jsx(react.Suspense, {
811
- fallback: jsxRuntime.jsx(ButlerContainer, {
812
- tabIndex: -1
813
- }),
814
- children: jsxRuntime.jsx(QuickAccess, {
815
- pimIndexerState: pimIndexerState,
816
- onPimIndexerStateChange: handlePimIndexerStateChange,
817
- onClose: close,
818
- onChangeProjectDataLocale: props.onChangeProjectDataLocale
819
- })
820
- })
821
- });
822
- };
823
- QuickAccessTrigger.propTypes = process.env.NODE_ENV !== "production" ? {
824
- onChangeProjectDataLocale: _pt__default["default"].func
825
- } : {};
826
- QuickAccessTrigger.displayName = 'QuickAccessTrigger';
827
-
828
- const RedirectToLogout = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./redirect-to-logout-202a372c.cjs.dev.js' /* webpackChunkName: "redirect-to-logout" */); }));
829
-
830
- const RedirectToProjectCreate = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./redirect-to-project-create-7b476aa6.cjs.dev.js' /* webpackChunkName: "redirect-to-project-create" */); }));
831
-
832
- /*
833
- * This file contains a list of all feature toggles used within
834
- * the app shell. Each feature toggle should be a constant.
835
- *
836
- * ```
837
- * export const FEATURE_TOGGLE_NAME = 'featureToggleName';
838
- * export const FLAGS = {
839
- * [FEATURE_TOGGLE_NAME]: false,
840
- * };
841
- * ```
842
- *
843
- * NOTE:
844
- * Default values are not yet passed to flopflip and it has to be decided
845
- * how the integrate with the plugin API.
846
- * The default values would be used whenever feature toggles have not been
847
- * fetched from LaunchDarkly (without default values flopflip will default
848
- * them to off until fetched).
849
- */
850
-
851
- const MAIN_NAVIGATION = 'newMainNavigationBar';
852
- const FLAGS = {
853
- [MAIN_NAVIGATION]: false
854
- };
855
-
856
- function ownKeys$7(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; }
857
- function _objectSpread$7(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$7(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$7(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
858
- var FetchAllMenuFeatureToggles = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "FetchAllMenuFeatureToggles" }, variableDefinitions: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "allFeatureToggles" }, arguments: [], directives: [] }] } }], loc: { start: 0, end: 57, source: { body: "query FetchAllMenuFeatureToggles {\n allFeatureToggles\n}\n", name: "GraphQL request", locationOffset: { line: 1, column: 1 } } } };
859
- const defaultApiUrl = window.location.origin;
860
- const getDefaultedFeatureToggles = allFeatureToggles => _reduceInstanceProperty__default["default"](allFeatureToggles).call(allFeatureToggles, (previouslyDefaultedFeatureToggles, nextFeatureToggle) => _objectSpread$7(_objectSpread$7({}, previouslyDefaultedFeatureToggles), {}, {
861
- [nextFeatureToggle]: false
862
- }), {});
863
- const useAllMenuFeatureToggles = () => {
864
- const servedByProxy = useIsServedByProxy.useIsServedByProxy();
865
- const mcProxyApiUrl = applicationShellConnectors.useApplicationContext(applicationContext => applicationContext.environment.mcProxyApiUrl);
866
- const _useMcQuery = applicationShellConnectors.useMcQuery(FetchAllMenuFeatureToggles, {
867
- fetchPolicy: 'cache-and-network',
868
- skip: !servedByProxy,
869
- onError: sentry.reportErrorToSentry,
870
- context: {
871
- uri: "".concat(mcProxyApiUrl || defaultApiUrl, "/api/graphql"),
872
- skipGraphQlTargetCheck: true
873
- }
874
- }),
875
- data = _useMcQuery.data,
876
- refetch = _useMcQuery.refetch,
877
- loading = _useMcQuery.loading;
878
- return {
879
- isLoading: loading,
880
- refetch,
881
- allFeatureToggles: data && getDefaultedFeatureToggles(data.allFeatureToggles) || {}
882
- };
883
- };
884
-
885
- function ownKeys$6(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$6(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys$6(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys$6(Object(t))).call(_context3, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
887
- var AllFeaturesQuery = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "AllFeatures" }, variableDefinitions: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "allFeatures" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "reason" }, arguments: [], directives: [] }] } }] } }], loc: { start: 0, end: 72, source: { body: "query AllFeatures {\n allFeatures {\n name\n value\n reason\n }\n}\n", name: "GraphQL request", locationOffset: { line: 1, column: 1 } } } };
888
- // This value is hard-coded here because we want to make sure that the
889
- // app uses our account of LD. The value is meant to be public, so there
890
- // is no need to be concerned about security.
891
- const ldClientSideIdProduction = '5979d95f6040390cd07b5e01';
892
- function getUserContextForLaunchDarklyAdapter(user, projectKey) {
893
- var _user$launchdarklyTra, _user$launchdarklyTra2, _user$launchdarklyTra3, _user$launchdarklyTra4, _user$launchdarklyTra5;
894
- return {
895
- kind: 'user',
896
- key: user === null || user === void 0 ? void 0 : user.id,
897
- project: projectKey !== null && projectKey !== void 0 ? projectKey : '',
898
- id: (_user$launchdarklyTra = user === null || user === void 0 ? void 0 : user.launchdarklyTrackingId) !== null && _user$launchdarklyTra !== void 0 ? _user$launchdarklyTra : '',
899
- team: (_user$launchdarklyTra2 = user === null || user === void 0 ? void 0 : user.launchdarklyTrackingTeam) !== null && _user$launchdarklyTra2 !== void 0 ? _user$launchdarklyTra2 : [],
900
- group: (_user$launchdarklyTra3 = user === null || user === void 0 ? void 0 : user.launchdarklyTrackingGroup) !== null && _user$launchdarklyTra3 !== void 0 ? _user$launchdarklyTra3 : '',
901
- subgroup: (_user$launchdarklyTra4 = user === null || user === void 0 ? void 0 : user.launchdarklyTrackingSubgroup) !== null && _user$launchdarklyTra4 !== void 0 ? _user$launchdarklyTra4 : '',
902
- tenant: (_user$launchdarklyTra5 = user === null || user === void 0 ? void 0 : user.launchdarklyTrackingTenant) !== null && _user$launchdarklyTra5 !== void 0 ? _user$launchdarklyTra5 : ''
903
- };
904
- }
905
- const parseFlags = fetchedFlags => {
906
- var _context;
907
- return _Object$fromEntries__default["default"](_mapInstanceProperty__default["default"](_context = fetchedFlags.allFeatures).call(_context, fetchedFlag => [fetchedFlag.name, {
908
- value: fetchedFlag.value,
909
- reason: fetchedFlag.reason
910
- }]));
911
- };
912
- const SetupFlopFlipProvider = props => {
913
- const apolloClient = react$2.useApolloClient();
914
- const enableLongLivedFeatureFlags = applicationShellConnectors.useApplicationContext(context => context.environment.enableLongLivedFeatureFlags);
915
- const allMenuFeatureToggles = useAllMenuFeatureToggles();
916
- const flags = react.useMemo(() => _objectSpread$6(_objectSpread$6(_objectSpread$6({}, FLAGS), allMenuFeatureToggles.allFeatureToggles), _flagsInstanceProperty__default["default"](props)), [allMenuFeatureToggles.allFeatureToggles, _flagsInstanceProperty__default["default"](props)]);
917
- react.useMemo(() => {
918
- if (enableLongLivedFeatureFlags) {
919
- combineAdapters__default["default"].combine([ldAdapter__default["default"], httpAdapter__default["default"]]);
920
- } else {
921
- combineAdapters__default["default"].combine([ldAdapter__default["default"]]);
922
- }
923
- }, [enableLongLivedFeatureFlags]);
924
- const defaultFlags = react.useMemo(() => _objectSpread$6(_objectSpread$6(_objectSpread$6({}, FLAGS), allMenuFeatureToggles.allFeatureToggles), props.defaultFlags), [allMenuFeatureToggles.allFeatureToggles, props.defaultFlags]);
925
- const adapterArgs = react.useMemo(() => {
926
- var _props$user, _props$ldClientSideId, _props$user2;
927
- return {
928
- user: {
929
- key: (_props$user = props.user) === null || _props$user === void 0 ? void 0 : _props$user.id
930
- },
931
- launchdarkly: {
932
- sdk: {
933
- // Allow to overwrite the client ID, passed via the `additionalEnv` properties
934
- // of the application config.
935
- // This is mostly useful for internal usage on our staging environments.
936
- clientSideId: (_props$ldClientSideId = props.ldClientSideId) !== null && _props$ldClientSideId !== void 0 ? _props$ldClientSideId : ldClientSideIdProduction
937
- },
938
- flags,
939
- context: getUserContextForLaunchDarklyAdapter(props.user, props.projectKey)
940
- },
941
- http: {
942
- user: {
943
- key: (_props$user2 = props.user) === null || _props$user2 === void 0 ? void 0 : _props$user2.id
944
- },
945
- execute: async function () {
946
- const response = await apolloClient.query({
947
- query: AllFeaturesQuery,
948
- errorPolicy: 'ignore',
949
- context: {
950
- target: constants.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
951
- }
952
- });
953
- return parseFlags(response.data);
954
- }
955
- }
956
- };
957
- }, [apolloClient, flags, props.ldClientSideId, props.projectKey, props.user]);
958
-
959
- /**
960
- * The `<ApplicationShell />` tests itself. When it does so it can not setup and use
961
- * the `launchdarkly-adapter` and `http-adapter`. As a result the `process.env`
962
- * is evaluated and a test provider is rendered for feature flags.
963
- *
964
- * The `process.env` check also ensures that this block is excluded from production
965
- * bundles.
966
- */
967
- if (process.env.NODE_ENV === 'test') {
968
- const _require = require('@flopflip/react-broadcast'),
969
- TestProviderFlopFlip = _require.TestProviderFlopFlip;
970
- return jsxRuntime.jsx(TestProviderFlopFlip, {
971
- flags: defaultFlags,
972
- children: props.children
973
- });
974
- }
975
- return jsxRuntime.jsx(reactBroadcast.ConfigureFlopFlip, {
976
- adapter: combineAdapters__default["default"],
977
- adapterArgs: adapterArgs,
978
- defaultFlags: defaultFlags,
979
- shouldDeferAdapterConfiguration: typeof props.shouldDeferAdapterConfiguration === 'boolean' ? props.shouldDeferAdapterConfiguration : !props.user || allMenuFeatureToggles.isLoading,
980
- children: props.children
981
- });
982
- };
983
- SetupFlopFlipProvider.propTypes = process.env.NODE_ENV !== "production" ? {
984
- projectKey: _pt__default["default"].string,
985
- flags: _pt__default["default"].any,
986
- defaultFlags: _pt__default["default"].any,
987
- ldClientSideId: _pt__default["default"].string,
988
- children: _pt__default["default"].node.isRequired,
989
- shouldDeferAdapterConfiguration: _pt__default["default"].bool
990
- } : {};
991
- SetupFlopFlipProvider.displayName = 'SetupFlopFlipProvider';
992
-
993
- const ThemeSwitcher = () => {
994
- return jsxRuntime.jsx(jsxRuntime.Fragment, {
995
- children: jsxRuntime.jsx(designSystem.ThemeProvider, {
996
- theme: "default",
997
- themeOverrides: applicationComponents.themesOverrides.default
998
- })
999
- });
1000
- };
1001
-
1002
- const VersionTracker = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./version-tracker-df0e6378.cjs.dev.js' /* webpackChunkName: "version-tracker" */); }));
1003
-
1004
- // TODO: Remove this file once the new navigation is enabled for all users
1005
- const NewMainNavigationFlagWrapper = props => {
1006
- const isNewNavigationEnabled = reactBroadcast.useFeatureToggle(MAIN_NAVIGATION);
1007
- const _useAdapterStatus = reactBroadcast.useAdapterStatus({
1008
- adapterIdentifiers: [types.adapterIdentifiers.launchdarkly]
1009
- }),
1010
- isReady = _useAdapterStatus.isReady;
1011
- return props.children({
1012
- isNewNavigationEnabled,
1013
- isNewNavigationEnabledEvaluationReady: isReady
1014
- });
1015
- };
1016
-
1017
- function ownKeys$5(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; }
1018
- function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys$5(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys$5(Object(t))).call(_context3, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
1019
- 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)."; }
1020
- const getHasUnauthorizedError = graphQLErrors => _findInstanceProperty__default["default"](graphQLErrors).call(graphQLErrors, gqlError => gqlError.extensions && gqlError.extensions.code && gqlError.extensions.code === 'UNAUTHENTICATED');
1021
- const getHasUserBeenDeletedError = graphQLErrors => _findInstanceProperty__default["default"](graphQLErrors).call(graphQLErrors, gqlError => {
1022
- var _context;
1023
- return gqlError.message &&
1024
- // NOTE: The CTP API does not provide an error code in this case.
1025
- _includesInstanceProperty__default["default"](_context = gqlError.message).call(_context, 'was not found.');
1026
- });
1027
- const MainContainer = /*#__PURE__*/_styled__default["default"]("main", process.env.NODE_ENV === "production" ? {
1028
- target: "esrtekc0"
1029
- } : {
1030
- target: "esrtekc0",
1031
- label: "MainContainer"
1032
- })(props => props.isNewNavigationEnabled ? "\n grid-column: 2/3;\n grid-row: 3/4;\n " : "\n grid-column: 2;\n grid-row: 3;\n ", ";min-width:0;overflow-x:hidden;overflow-y:scroll;display:flex;flex-direction:column;position:relative;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLXNoZWxsLWF1dGhlbnRpY2F0ZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStFNEQiLCJmaWxlIjoiYXBwbGljYXRpb24tc2hlbGwtYXV0aGVudGljYXRlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIFJlYWN0Tm9kZSxcbiAgdHlwZSBSZWZPYmplY3QsXG4gIHR5cGUgU3ludGhldGljRXZlbnQsXG4gIHVzZVJlZixcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHR5cGUgeyBBcG9sbG9FcnJvciB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2Vycm9ycyc7XG5pbXBvcnQgdHlwZSB7IFRGbGFncyB9IGZyb20gJ0BmbG9wZmxpcC90eXBlcyc7XG5pbXBvcnQgeyBSZWRpcmVjdCwgUm91dGUsIFN3aXRjaCwgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IFBvcnRhbHNDb250YWluZXIgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyLFxuICBzZWxlY3RQcm9qZWN0S2V5RnJvbVVybCxcbiAgdXNlQXBwbGljYXRpb25Db250ZXh0LFxuICB0eXBlIFRBcHBsaWNhdGlvbkNvbnRleHQsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRE9NQUlOUywgTE9HT1VUX1JFQVNPTlMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUgeyBUQXN5bmNMb2NhbGVEYXRhUHJvcHMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9pMThuJztcbmltcG9ydCB7IEFzeW5jTG9jYWxlRGF0YSB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2kxOG4nO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uc0xpc3QgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9yZWFjdC1ub3RpZmljYXRpb25zJztcbmltcG9ydCB7XG4gIHJlcG9ydEVycm9yVG9TZW50cnksXG4gIFNlbnRyeVVzZXJUcmFja2VyLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9zZW50cnknO1xuaW1wb3J0IHsgRElNRU5TSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRQcmV2aW91c1Byb2plY3RLZXkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgQXBwQmFyIGZyb20gJy4uL2FwcC1iYXInO1xuaW1wb3J0IEFwcGxpY2F0aW9uTG9hZGVyIGZyb20gJy4uL2FwcGxpY2F0aW9uLWxvYWRlcic7XG5pbXBvcnQgeyBnZXRCcm93c2VyTG9jYWxlIH0gZnJvbSAnLi4vYXBwbGljYXRpb24tc2hlbGwtcHJvdmlkZXIvdXRpbHMnO1xuaW1wb3J0IENvbmZpZ3VyZUludGxQcm92aWRlciBmcm9tICcuLi9jb25maWd1cmUtaW50bC1wcm92aWRlcic7XG5pbXBvcnQgRXJyb3JBcG9sb2dpemVyIGZyb20gJy4uL2Vycm9yLWFwb2xvZ2l6ZXInO1xuaW1wb3J0IEZldGNoUHJvamVjdCBmcm9tICcuLi9mZXRjaC1wcm9qZWN0JztcbmltcG9ydCBGZXRjaFVzZXIgZnJvbSAnLi4vZmV0Y2gtdXNlcic7XG5pbXBvcnQgTmF2QmFyIGZyb20gJy4uL25hdmJhcic7XG5pbXBvcnQgUHJvamVjdENvbnRhaW5lciBmcm9tICcuLi9wcm9qZWN0LWNvbnRhaW5lcic7XG5pbXBvcnQgUHJvamVjdERhdGFMb2NhbGUgZnJvbSAnLi4vcHJvamVjdC1kYXRhLWxvY2FsZSc7XG5pbXBvcnQgUXVpY2tBY2Nlc3MgZnJvbSAnLi4vcXVpY2stYWNjZXNzJztcbmltcG9ydCBSZWRpcmVjdFRvTG9nb3V0IGZyb20gJy4uL3JlZGlyZWN0LXRvLWxvZ291dCc7XG5pbXBvcnQgUmVkaXJlY3RUb1Byb2plY3RDcmVhdGUgZnJvbSAnLi4vcmVkaXJlY3QtdG8tcHJvamVjdC1jcmVhdGUnO1xuaW1wb3J0IFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgZnJvbSAnLi4vcmVxdWVzdHMtaW4tZmxpZ2h0LWxvYWRlcic7XG5pbXBvcnQgUm91dGVDYXRjaEFsbCBmcm9tICcuLi9yb3V0ZS1jYXRjaC1hbGwnO1xuaW1wb3J0IFNldHVwRmxvcEZsaXBQcm92aWRlciBmcm9tICcuLi9zZXR1cC1mbG9wLWZsaXAtcHJvdmlkZXInO1xuaW1wb3J0IFRoZW1lU3dpdGNoZXIgZnJvbSAnLi4vdGhlbWUtc3dpdGNoZXInO1xuaW1wb3J0IFZlcnNpb25UcmFja2VyIGZyb20gJy4uL3ZlcnNpb24tdHJhY2tlcic7XG5pbXBvcnQgTmV3TWFpbk5hdmlnYXRpb25GbGFnV3JhcHBlciBmcm9tICcuL25ldy1tYWluLW5hdmlnYXRpb24tZmxhZy13cmFwcGVyJztcblxudHlwZSBUQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0aW9uUHJvcHMgPSB7XG4gIGZlYXR1cmVGbGFncz86IFRGbGFncztcbiAgZGVmYXVsdEZlYXR1cmVGbGFncz86IFRGbGFncztcbiAgYXBwbGljYXRpb25NZXNzYWdlczogVEFzeW5jTG9jYWxlRGF0YVByb3BzWydhcHBsaWNhdGlvbk1lc3NhZ2VzJ107XG4gIG9uTWVudUl0ZW1DbGljaz86IChldmVudDogU3ludGhldGljRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQ+KSA9PiB2b2lkO1xuICBkaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2s/OiBib29sZWFuO1xuICByZW5kZXI/OiAoKSA9PiBKU1guRWxlbWVudDtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG59O1xuXG50eXBlIE1haW5Db250YWluZXJQcm9wcyA9IHtcbiAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZDogYm9vbGVhbjtcbn07XG5cbmNvbnN0IGdldEhhc1VuYXV0aG9yaXplZEVycm9yID0gKGdyYXBoUUxFcnJvcnM6IEFwb2xsb0Vycm9yWydncmFwaFFMRXJyb3JzJ10pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5leHRlbnNpb25zICYmXG4gICAgICBncWxFcnJvci5leHRlbnNpb25zLmNvZGUgJiZcbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMuY29kZSA9PT0gJ1VOQVVUSEVOVElDQVRFRCdcbiAgKTtcbmNvbnN0IGdldEhhc1VzZXJCZWVuRGVsZXRlZEVycm9yID0gKFxuICBncmFwaFFMRXJyb3JzOiBBcG9sbG9FcnJvclsnZ3JhcGhRTEVycm9ycyddXG4pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5tZXNzYWdlICYmXG4gICAgICAvLyBOT1RFOiBUaGUgQ1RQIEFQSSBkb2VzIG5vdCBwcm92aWRlIGFuIGVycm9yIGNvZGUgaW4gdGhpcyBjYXNlLlxuICAgICAgZ3FsRXJyb3IubWVzc2FnZS5pbmNsdWRlcygnd2FzIG5vdCBmb3VuZC4nKVxuICApO1xuXG5leHBvcnQgY29uc3QgTWFpbkNvbnRhaW5lciA9IHN0eWxlZC5tYWluPE1haW5Db250YWluZXJQcm9wcz5gXG4gICR7KHByb3BzKSA9PlxuICAgIHByb3BzLmlzTmV3TmF2aWdhdGlvbkVuYWJsZWRcbiAgICAgID8gYFxuICAgICAgICBncmlkLWNvbHVtbjogMi8zO1xuICAgICAgICBncmlkLXJvdzogMy80O1xuICAgICAgYFxuICAgICAgOiBgXG4gICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICBncmlkLXJvdzogMztcbiAgICAgIGB9O1xuXG4gIC8qXG4gICAgQWxsb3cgdGhlIHRoaXMgZmxleCBjaGlsZCB0byBncm93IHNtYWxsZXIgdGhhbiBpdHMgc21hbGxlc3QgY29udGVudC5cbiAgICBUaGlzIGlzIG5lZWRlZCB3aGVuIHRoZXJlIGlzIGEgcmVhbGx5IHdpZGUgdGV4dCBpbnNpZGUgdGhhdCB3b3VsZCBzdHJldGNoXG4gICAgdGhpcyBub2RlIHRvIGJlIHdpZGVyIHRoYW4gdGhlIHBhcmVudC5cbiAgKi9cbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcblxuICAvKlxuICAgIGxheW91dCB0aGUgY2hpbGRyZW4uIFRoZXJlIHdpbGwgYWx3YXlzIGJlIHRoZSBwYWdlIGFuZCBzaWRlIG5vdGlmaWNhdGlvblxuICAgIGFib3V0IHRoZSBhY3R1YWwgY29udGVudC4gVGhlIGNvbnRlbnQgc2hvdWxkIHN0cmV0Y2ggdG8gZmlsbCB0aGUgcmVzdCBvZlxuICAgIHRoZSBwYWdlLlxuICAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIC8qXG4gICAgc2V0IHBvc2l0aW9uIHRvIHJlbGF0aXZlIHRvIGxheW91dCBub3RpZmljYXRpb25zIGFuZCBtb2RhbHNcbiAgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpcyByZW5kZXJlZCB3aGVuZXZlciB0aGUgdXNlciBpcyBjb25zaWRlcmVkIFwiYXV0aGVudGljYXRlZFwiXG4gKiBhbmQgY29udGFpbnMgdGhlIFwicmVzdHJpY3RlZFwiIGFwcGxpY2F0aW9uIHBhcnQuXG4gKi9cblxuZXhwb3J0IGNvbnN0IEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkID0gKFxuICBwcm9wczogVEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGlvblByb3BzXG4pID0+IHtcbiAgY29uc3QgYXBwbGljYXRpb25FbnZpcm9ubWVudCA9IHVzZUFwcGxpY2F0aW9uQ29udGV4dChcbiAgICAoY29udGV4dCkgPT4gY29udGV4dC5lbnZpcm9ubWVudFxuICApIGFzIFRBcHBsaWNhdGlvbkNvbnRleHQ8e30+WydlbnZpcm9ubWVudCddO1xuICAvLyBUT0RPOiB1c2luZyB0aGlzIGhvb2sgd2lsbCBzdWJzY3JpYmUgdGhlIGNvbXBvbmVudCB0byByb3V0ZSB1cGRhdGVzLlxuICAvLyBUaGlzIGlzIGN1cnJlbnRseSB1c2VmdWwgZm9yIGRldGVjdGluZyBhIGNoYW5nZSBpbiB0aGUgcHJvamVjdCBrZXlcbiAgLy8gZnJvbSBVUkwgKFwiL1wiIC0tPiBcIi86cHJvamVjdEtleVwiKS5cbiAgLy8gSG93ZXZlciwgZXZlcnkgcm91dGUgY2hhbmdlIHdpbGwgdHJpZ2dlciBhIHJlLXJlbmRlci4gVGhpcyBpcyBwcm9iYWJseVxuICAvLyBvay1pc2ggYnV0IHdlIG1pZ2h0IHdhbnQgdG8gbG9vayBpbnRvIGEgbW9yZSBwZXJmb3JtYW50IHNvbHV0aW9uLlxuICBjb25zdCBsb2NhdGlvbiA9IHVzZUxvY2F0aW9uKCk7XG5cbiAgY29uc3Qgbm90aWZpY2F0aW9uc0dsb2JhbFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IG5vdGlmaWNhdGlvbnNQYWdlUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3QgbGF5b3V0UmVmcyA9IHVzZVJlZjx7XG4gICAgbm90aWZpY2F0aW9uc0dsb2JhbFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgICBub3RpZmljYXRpb25zUGFnZVJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgfT4oe1xuICAgIG5vdGlmaWNhdGlvbnNHbG9iYWxSZWYsXG4gICAgbm90aWZpY2F0aW9uc1BhZ2VSZWYsXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPEZldGNoVXNlcj5cbiAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ1VzZXIsIHVzZXIsIGVycm9yIH0pID0+IHtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgLy8gSW4gY2FzZSB0aGVyZSBpcyBhbiB1bmF1dGhvcml6ZWQgZXJyb3IsIHdlIHJlZGlyZWN0IHRvIHRoZSBsb2dpbiBwYWdlXG4gICAgICAgICAgaWYgKGVycm9yLmdyYXBoUUxFcnJvcnMgJiYgQXJyYXkuaXNBcnJheShlcnJvci5ncmFwaFFMRXJyb3JzKSkge1xuICAgICAgICAgICAgY29uc3QgaGFzVW5hdXRob3JpemVkRXJyb3IgPSBnZXRIYXNVbmF1dGhvcml6ZWRFcnJvcihcbiAgICAgICAgICAgICAgZXJyb3IuZ3JhcGhRTEVycm9yc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yID0gZ2V0SGFzVXNlckJlZW5EZWxldGVkRXJyb3IoXG4gICAgICAgICAgICAgIGVycm9yLmdyYXBoUUxFcnJvcnNcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChoYXNVbmF1dGhvcml6ZWRFcnJvciB8fCBoYXNVc2VyQmVlbkRlbGV0ZWRFcnJvcikge1xuICAgICAgICAgICAgICBsZXQgbG9nb3V0UmVhc29uOlxuICAgICAgICAgICAgICAgIHwgKHR5cGVvZiBMT0dPVVRfUkVBU09OUylba2V5b2YgdHlwZW9mIExPR09VVF9SRUFTT05TXVxuICAgICAgICAgICAgICAgIHwgdW5kZWZpbmVkO1xuICAgICAgICAgICAgICBpZiAoaGFzVW5hdXRob3JpemVkRXJyb3IpXG4gICAgICAgICAgICAgICAgbG9nb3V0UmVhc29uID0gTE9HT1VUX1JFQVNPTlMuVU5BVVRIT1JJWkVEO1xuICAgICAgICAgICAgICBlbHNlIGlmIChoYXNVc2VyQmVlbkRlbGV0ZWRFcnJvcilcbiAgICAgICAgICAgICAgICBsb2dvdXRSZWFzb24gPSBMT0dPVVRfUkVBU09OUy5ERUxFVEVEO1xuICAgICAgICAgICAgICByZXR1cm4gPFJlZGlyZWN0VG9Mb2dvdXQgcmVhc29uPXtsb2dvdXRSZWFzb259IC8+O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBTaW5jZSB3ZSBkbyBub3Qga25vdyB0aGUgbG9jYWxlIG9mIHRoZSB1c2VyLCB3ZSBwaWNrIGl0IGZyb20gdGhlXG4gICAgICAgICAgLy8gdXNlcidzIGJyb3dzZXIgdG8gYXR0ZW1wdCB0byBtYXRjaCB0aGUgbGFuZ3VhZ2UgZm9yIHRoZSBjb3JyZWN0IHRyYW5zbGF0aW9ucy5cbiAgICAgICAgICBjb25zdCB1c2VyTG9jYWxlID0gZ2V0QnJvd3NlckxvY2FsZSh3aW5kb3cpO1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8QXN5bmNMb2NhbGVEYXRhXG4gICAgICAgICAgICAgIGxvY2FsZT17dXNlckxvY2FsZX1cbiAgICAgICAgICAgICAgYXBwbGljYXRpb25NZXNzYWdlcz17cHJvcHMuYXBwbGljYXRpb25NZXNzYWdlc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgeyh7IGxvY2FsZSwgbWVzc2FnZXMgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yVG9TZW50cnkoZXJyb3IsIHt9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPENvbmZpZ3VyZUludGxQcm92aWRlciBsb2NhbGU9e2xvY2FsZX0gbWVzc2FnZXM9e21lc3NhZ2VzfT5cbiAgICAgICAgICAgICAgICAgICAgPEVycm9yQXBvbG9naXplciAvPlxuICAgICAgICAgICAgICAgICAgPC9Db25maWd1cmVJbnRsUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvQXN5bmNMb2NhbGVEYXRhPlxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwcm9qZWN0S2V5RnJvbVVybCA9IHNlbGVjdFByb2plY3RLZXlGcm9tVXJsKGxvY2F0aW9uLnBhdGhuYW1lKTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8QXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXJcbiAgICAgICAgICAgIHVzZXI9e3VzZXJ9XG4gICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7LypcbiAgICAgICAgICAgIE5PVEU6IHdlIGRvIG5vdCB3YW50IHRvIGxvYWQgdGhlIGxvY2FsZSBkYXRhIGFzIGxvbmcgYXMgd2UgZG8gbm90XG4gICAgICAgICAgICBrbm93IHRoZSB1c2VyIHNldHRpbmcuIFRoaXMgaXMgaW1wb3J0YW50IGluIG9yZGVyIHRvIGF2b2lkIGZsYXNoaW5nXG4gICAgICAgICAgICBvZiB0cmFuc2xhdGVkIGNvbnRlbnQgb24gc3Vic2VxdWVudCByZS1yZW5kZXJzLlxuICAgICAgICAgICAgVGhlcmVmb3JlLCBhcyBsb25nIGFzIHRoZXJlIGlzIG5vIGxvY2FsZSwgdGhlIGNoaWxkcmVuIHNob3VsZCBjb25zaWRlciB1c2luZyB0aGVcbiAgICAgICAgICAgIGBpc0xvYWRpbmdgIHByb3AgdG8gZGVjaWRlIHdoYXQgdG8gcmVuZGVyLlxuICAgICAgICAgICovfVxuICAgICAgICAgICAgPEFzeW5jTG9jYWxlRGF0YVxuICAgICAgICAgICAgICBsb2NhbGU9e3VzZXI/Lmxhbmd1YWdlfVxuICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1lc3NhZ2VzPXtwcm9wcy5hcHBsaWNhdGlvbk1lc3NhZ2VzfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7KHsgaXNMb2FkaW5nOiBpc0xvYWRpbmdMb2NhbGVEYXRhLCBsb2NhbGUsIG1lc3NhZ2VzIH0pID0+IChcbiAgICAgICAgICAgICAgICA8Q29uZmlndXJlSW50bFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAvLyBXZSBkbyBub3Qgd2FudCB0byBwYXNzIHRoZSBsYW5ndWFnZSBhcyBsb25nIGFzIHRoZSBsb2NhbGUgZGF0YVxuICAgICAgICAgICAgICAgICAgLy8gaXMgbm90IGxvYWRlZC5cbiAgICAgICAgICAgICAgICAgIHsuLi4oaXNMb2FkaW5nTG9jYWxlRGF0YSA/IHt9IDogeyBsb2NhbGUsIG1lc3NhZ2VzIH0pfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTZXR1cEZsb3BGbGlwUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleT17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgIGxkQ2xpZW50U2lkZUlkPXthcHBsaWNhdGlvbkVudmlyb25tZW50LmxkQ2xpZW50U2lkZUlkfVxuICAgICAgICAgICAgICAgICAgICBmbGFncz17cHJvcHMuZmVhdHVyZUZsYWdzfVxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0RmxhZ3M9e3Byb3BzLmRlZmF1bHRGZWF0dXJlRmxhZ3N9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHsvKiBUaGlzIGlzIGEgdGVtcG9yYXJ5IGNvbnRhaW5lci4gSXQgd2lsbCBiZSByZW1vdmVkIG9uY2UgdGhlIG5ldyBuYXZpZ2F0aW9uIGlzIGVuYWJsZWQgYnkgZGVmYXVsdC4gKi99XG4gICAgICAgICAgICAgICAgICAgIDxOZXdNYWluTmF2aWdhdGlvbkZsYWdXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgIHsoe1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV3TmF2aWdhdGlvbkVuYWJsZWRFdmFsdWF0aW9uUmVhZHksXG4gICAgICAgICAgICAgICAgICAgICAgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGhlbWVTd2l0Y2hlciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxWZXJzaW9uVHJhY2tlciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBOT1RFOiB0aGUgcmVxdWVzdHMgaW4gZmxpZ2h0IGxvYWRlciB3aWxsIHJlbmRlciBhIGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGlubmVyIGludG8gdGhlIEFwcEJhci4gKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VudHJ5VXNlclRyYWNrZXIgdXNlcj17dXNlciA/PyB1bmRlZmluZWR9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAke0RJTUVOU0lPTlMuaGVhZGVyfSAxZnI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWluLWNvbnRlbnQgMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17bm90aWZpY2F0aW9uc0dsb2JhbFJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxLzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJhYm92ZS10b3AtbmF2aWdhdGlvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuR0xPQkFMfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxRdWlja0FjY2VzcyAvPjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZldGNoUHJvamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBpc1Byb2plY3RMb2FkaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNQcm9qZWN0TG9hZGluZyB8fCAhcHJvamVjdClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB1c2VkIG91dHNpZGUgb2YgYSBwcm9qZWN0IGNvbnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3Igd2hlbiB0aGUgcHJvamVjdCBpcyBleHBpcmVkIG9yIHN1cHNlbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNob3VsZFVzZVByb2plY3RDb250ZXh0ID0gIShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9qZWN0LnN1c3BlbnNpb24gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb2plY3QuZXhwaXJ5ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFVzZVByb2plY3RDb250ZXh0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxRdWlja0FjY2VzcyAvPjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvamVjdERhdGFMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlcz17cHJvamVjdC5sYW5ndWFnZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZTogZGF0YUxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0RGF0YUxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9e3Byb2plY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0RGF0YUxvY2FsZT17ZGF0YUxvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25FbnZpcm9ubWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxRdWlja0FjY2Vzc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZVByb2plY3REYXRhTG9jYWxlPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0RGF0YUxvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Byb2plY3REYXRhTG9jYWxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZldGNoUHJvamVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6ICR7aXNOZXdOYXZpZ2F0aW9uRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnMi8zJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMid9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAke2lzTmV3TmF2aWdhdGlvbkVuYWJsZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJzIvMydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJzEvMyd9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXBwQmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybD17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ld05hdmlnYXRpb25FbmFibGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oZWFkZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhc2lkZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2lzTmV3TmF2aWdhdGlvbkVuYWJsZWQgPT09IGZhbHNlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2lzTmV3TmF2aWdhdGlvbkVuYWJsZWQgPT09IHRydWUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgZ3JpZC1jb2x1bW46IDEvMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAyLzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO2B9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSA8TmF2QmFyPiBzaG91bGQgb25seSBiZSByZW5kZXJlZCB3aXRoaW4gYSBwcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGV4dCwgdGhlcmVmb3JlIHdoZW4gdGhlcmUgaXMgYSBgcHJvamVjdEtleWAuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gYHByb2plY3RLZXlgIGluIHRoZSBVUkwgKGUuZy4gYC9hY2NvdW50YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvdXRlcyksIHdlIGRvbid0IHJlbmRlciBpdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiB3ZSBhbHNvIFwiY2FjaGVcIiB0aGUgYHByb2plY3RLZXlgIGluIGxvY2FsU3RvcmFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCB0aGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgdG8gXCJyZS1oeWRyYXRlXCIgdGhlIFVSTFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvY2F0aW9uIChlLmcgd2hlbiB5b3UgZ28gdG8gYC9gLCB0aGVyZSBzaG91bGQgYmUgYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZGlyZWN0IHRvIGAvOnByb2plY3RLZXlgKS4gVGhlcmVmb3JlLCB3ZSBzaG91bGQgbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVseSBvbiB0aGUgdmFsdWUgaW4gbG9jYWxTdG9yYWdlIHRvIGRldGVybWluZSB3aGljaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBwcm9qZWN0S2V5YCBpcyBjdXJyZW50bHkgdXNlZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZldGNoUHJvamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBpc0xvYWRpbmdQcm9qZWN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0xvYWRpbmcgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nVXNlciB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nTG9jYWxlRGF0YSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nUHJvamVjdCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWxvY2FsZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXByb2plY3Q7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9e3VzZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiBkbyBub3QgcGFzcyB0aGUgYHByb2plY3RgIGludG8gdGhlIGFwcGxpY2F0aW9uIGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBwZXJtaXNzaW9ucyBmb3IgdGhlIE5hdmJhciBhcmUgcmVzb2x2ZWQgc2VwYXJhdGVseSwgd2l0aGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGEgZGlmZmVyZW50IFJlYWN0IGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOYXZCYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbkxvY2FsZT17bG9jYWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXk9e3Byb2plY3RLZXlGcm9tVXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9e3Byb2plY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25FbnZpcm9ubWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbk1lbnVJdGVtQ2xpY2s9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMub25NZW51SXRlbUNsaWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV3TmF2aWdhdGlvbkVuYWJsZWQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ld05hdmlnYXRpb25FbmFibGVkRXZhbHVhdGlvblJlYWR5PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV3TmF2aWdhdGlvbkVuYWJsZWRFdmFsdWF0aW9uUmVhZHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZldGNoUHJvamVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hc2lkZT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lzTG9hZGluZ1VzZXIgfHwgaXNMb2FkaW5nTG9jYWxlRGF0YSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1haW5Db250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ld05hdmlnYXRpb25FbmFibGVkPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV3TmF2aWdhdGlvbkVuYWJsZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cIm1haW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uTG9hZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ld05hdmlnYXRpb25FbmFibGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJtYWluXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgcmVmPXtub3RpZmljYXRpb25zUGFnZVJlZn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3QgZG9tYWluPXtET01BSU5TLlBBR0V9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE5vdGlmaWNhdGlvbnNMaXN0IGRvbWFpbj17RE9NQUlOUy5TSURFfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGlzIG9ubHkgbmVjZXNzYXJ5IGJlY2F1c2Ugd2UgaGF2ZSBhbiBpbnRlcm1lZGlhcnkgPGRpdj4gd3JhcHBpbmcgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxWaWV3PiBjb21wb25lbnQgdGhhdCBpcyB1c2VkIHRvIHdyYXAgZXZlcnkgY29udGVudC12aWV3LiBUaGlzIGludGVybWVkaWFyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PiBpcyBzb2xlbHkgdXNlZCBmb3IgYWRkaW5nIHRoZSB0cmFja2luZyBjb250ZXh0IHRvIHRoZSBjb250ZW50LXZpZXcuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhvd2V2ZXIsIHRoaXMgY291bGQgYmUgZG9uZSBieSBwYXNzaW5nIHRoZSB0cmFja2luZyBjb250ZXh0IHRvIHRoZSA8Vmlldz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGxldCBpdCBkbyB0aGUgbGF5b3V0LCBzbyB3ZSBjYW4gYXZvaWQgbGF5aW5nIG91ciBmcm9tIHRoZSBvdXRzaWRlIGFzIHdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvIGhlcmUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+ICo6bm90KDpmaXJzdC1vZi10eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UG9ydGFsc0NvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17bGF5b3V0UmVmc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0VG9wPXtESU1FTlNJT05TLmhlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0TGVmdD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleUZyb21VcmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IERJTUVOU0lPTlMubmV3TmF2TWVudVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IERJTUVOU0lPTlMubmF2TWVudVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldExlZnRPbkV4cGFuZGVkTWVudT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleUZyb21VcmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IERJTUVOU0lPTlMubmV3TmF2TWVudUV4cGFuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogRElNRU5TSU9OUy5uYXZNZW51RXhwYW5kZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJzBweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTd2l0Y2g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb209XCIvcHJvZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG89XCIvYWNjb3VudC9wcm9maWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlIHBhdGg9XCIvYWNjb3VudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSW4gY2FzZSB0aGUgQXBwU2hlbGwgdXNlcyB0aGUgYHJlbmRlcmAgZnVuY3Rpb24sIHdlIGFzc3VtZSBpdCdzIG9uZSBvZiB0d28gY2FzZXM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAxLiBUaGUgYXBwbGljYXRpb24gZG9lcyBub3QgdXNlIGBjaGlsZHJlbmAgYW5kIHRoZXJlZm9yZSBpbXBsZW1lbnRzIHRoZSByb3V0ZXMgaW5jbHVkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgPFJvdXRlQ2F0Y2hBbGw+ICh0aGlzIGlzIHRoZSBcImxlZ2FjeVwiIGJlaGF2aW9yKS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIDIuIEl0J3MgdGhlIGFjY291bnQgYXBwbGljYXRpb24sIHdoaWNoIGFsd2F5cyB1c2VzIGByZW5kZXJgIGFuZCB0aGVyZWZvcmUgc2hvdWxkIHJlbmRlciBhcyBub3JtYWwuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSW4gY2FzZSB0aGUgQXBwU2hlbGwgdXNlcyB0aGUgYGNoaWxkcmVuYCBmdW5jdGlvbiwgd2UgY2FuIGFsd2F5cyBhc3N1bWUgdGhhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaXQncyBhIG5vcm1hbCBDdXN0b20gQXBwbGljYXRpb24gYW5kIHRoYXQgaXQgc2hvdWxkIHRyaWdnZXIgYSBmb3JjZSByZWxvYWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLnJlbmRlciA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD57cHJvcHMucmVuZGVyKCl9PC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGVDYXRjaEFsbCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIFByb2plY3Qgcm91dGVzICovfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGUgZXhhY3Q9e3RydWV9IHBhdGg9XCIvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c1Byb2plY3RLZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRQcmV2aW91c1Byb2plY3RLZXkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj8uZGVmYXVsdFByb2plY3RLZXkgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIE5PVEU6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIEdpdmVuIHRoZSB1c2VyIGhhcyBub3QgYmVlbiBsb2FkZWQgYSBsb2FkaW5nIHNwaW5uZXIgaXMgc2hvd24uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIEdpdmVuIHRoZSB1c2VyIHdhcyBub3Qgd29ya2luZyBvbiBhIHByb2plY3QgcHJldmlvdXNseSBub3IgaGFzIGEgZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBwcm9qZWN0LCB0aGUgdXNlciB3aWxsIGJlIHByb21wdGVkIHRvIGNyZWF0ZSBvbmUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIEdpdmVuIHRoZSB1c2VyIHdhcyB3b3JraW5nIG9uIGEgcHJvamVjdCBwcmV2aW91c2x5IG9yIGhhcyBhIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgcHJvamVjdCwgdGhlIGFwcGxpY2F0aW9uIHdpbGwgcmVkaXJlY3QgdG8gdGhhdCBwcm9qZWN0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXVzZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8QXBwbGljYXRpb25Mb2FkZXIgLz47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByZXZpb3VzUHJvamVjdEtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxSZWRpcmVjdFRvUHJvamVjdENyZWF0ZSAvPjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvPXtgLyR7cHJldmlvdXNQcm9qZWN0S2V5fWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZSBleGFjdD17ZmFsc2V9IHBhdGg9XCIvOnByb2plY3RLZXlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvamVjdENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZVJvdXRlUGVybWlzc2lvbkNoZWNrPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuZGlzYWJsZVJvdXRlUGVybWlzc2lvbkNoZWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGVmZmVjdGl2ZWx5IHJlbmRlcnMgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGlsZHJlbiwgd2hpY2ggaXMgdGhlIGFwcGxpY2F0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzcGVjaWZpYyBwYXJ0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXI9e3Byb3BzLnJlbmRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Qcm9qZWN0Q29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JvdXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Td2l0Y2g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA8L05ld01haW5OYXZpZ2F0aW9uRmxhZ1dyYXBwZXI+XG4gICAgICAgICAgICAgICAgICA8L1NldHVwRmxvcEZsaXBQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L0NvbmZpZ3VyZUludGxQcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvQXN5bmNMb2NhbGVEYXRhPlxuICAgICAgICAgIDwvQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXI+XG4gICAgICAgICk7XG4gICAgICB9fVxuICAgIDwvRmV0Y2hVc2VyPlxuICApO1xufTtcbkFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkLmRpc3BsYXlOYW1lID0gJ0FwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkJztcblxuZXhwb3J0IGRlZmF1bHQgQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQ7XG4iXX0= */"));
1033
-
1034
- /**
1035
- * This component is rendered whenever the user is considered "authenticated"
1036
- * and contains the "restricted" application part.
1037
- */
1038
- var _ref = process.env.NODE_ENV === "production" ? {
1039
- name: "tlwzvn",
1040
- styles: "flex-grow:1;display:flex;flex-direction:column;position:relative;>*:not(:first-of-type){flex-grow:1;display:flex;flex-direction:column;}"
1041
- } : {
1042
- name: "1y4p4ln-ApplicationShellAuthenticated",
1043
- styles: "flex-grow:1;display:flex;flex-direction:column;position:relative;>*:not(:first-of-type){flex-grow:1;display:flex;flex-direction:column;};label:ApplicationShellAuthenticated;",
1044
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLXNoZWxsLWF1dGhlbnRpY2F0ZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNhNEMiLCJmaWxlIjoiYXBwbGljYXRpb24tc2hlbGwtYXV0aGVudGljYXRlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIFJlYWN0Tm9kZSxcbiAgdHlwZSBSZWZPYmplY3QsXG4gIHR5cGUgU3ludGhldGljRXZlbnQsXG4gIHVzZVJlZixcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHR5cGUgeyBBcG9sbG9FcnJvciB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2Vycm9ycyc7XG5pbXBvcnQgdHlwZSB7IFRGbGFncyB9IGZyb20gJ0BmbG9wZmxpcC90eXBlcyc7XG5pbXBvcnQgeyBSZWRpcmVjdCwgUm91dGUsIFN3aXRjaCwgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IFBvcnRhbHNDb250YWluZXIgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyLFxuICBzZWxlY3RQcm9qZWN0S2V5RnJvbVVybCxcbiAgdXNlQXBwbGljYXRpb25Db250ZXh0LFxuICB0eXBlIFRBcHBsaWNhdGlvbkNvbnRleHQsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRE9NQUlOUywgTE9HT1VUX1JFQVNPTlMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUgeyBUQXN5bmNMb2NhbGVEYXRhUHJvcHMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9pMThuJztcbmltcG9ydCB7IEFzeW5jTG9jYWxlRGF0YSB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2kxOG4nO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uc0xpc3QgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9yZWFjdC1ub3RpZmljYXRpb25zJztcbmltcG9ydCB7XG4gIHJlcG9ydEVycm9yVG9TZW50cnksXG4gIFNlbnRyeVVzZXJUcmFja2VyLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9zZW50cnknO1xuaW1wb3J0IHsgRElNRU5TSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRQcmV2aW91c1Byb2plY3RLZXkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgQXBwQmFyIGZyb20gJy4uL2FwcC1iYXInO1xuaW1wb3J0IEFwcGxpY2F0aW9uTG9hZGVyIGZyb20gJy4uL2FwcGxpY2F0aW9uLWxvYWRlcic7XG5pbXBvcnQgeyBnZXRCcm93c2VyTG9jYWxlIH0gZnJvbSAnLi4vYXBwbGljYXRpb24tc2hlbGwtcHJvdmlkZXIvdXRpbHMnO1xuaW1wb3J0IENvbmZpZ3VyZUludGxQcm92aWRlciBmcm9tICcuLi9jb25maWd1cmUtaW50bC1wcm92aWRlcic7XG5pbXBvcnQgRXJyb3JBcG9sb2dpemVyIGZyb20gJy4uL2Vycm9yLWFwb2xvZ2l6ZXInO1xuaW1wb3J0IEZldGNoUHJvamVjdCBmcm9tICcuLi9mZXRjaC1wcm9qZWN0JztcbmltcG9ydCBGZXRjaFVzZXIgZnJvbSAnLi4vZmV0Y2gtdXNlcic7XG5pbXBvcnQgTmF2QmFyIGZyb20gJy4uL25hdmJhcic7XG5pbXBvcnQgUHJvamVjdENvbnRhaW5lciBmcm9tICcuLi9wcm9qZWN0LWNvbnRhaW5lcic7XG5pbXBvcnQgUHJvamVjdERhdGFMb2NhbGUgZnJvbSAnLi4vcHJvamVjdC1kYXRhLWxvY2FsZSc7XG5pbXBvcnQgUXVpY2tBY2Nlc3MgZnJvbSAnLi4vcXVpY2stYWNjZXNzJztcbmltcG9ydCBSZWRpcmVjdFRvTG9nb3V0IGZyb20gJy4uL3JlZGlyZWN0LXRvLWxvZ291dCc7XG5pbXBvcnQgUmVkaXJlY3RUb1Byb2plY3RDcmVhdGUgZnJvbSAnLi4vcmVkaXJlY3QtdG8tcHJvamVjdC1jcmVhdGUnO1xuaW1wb3J0IFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgZnJvbSAnLi4vcmVxdWVzdHMtaW4tZmxpZ2h0LWxvYWRlcic7XG5pbXBvcnQgUm91dGVDYXRjaEFsbCBmcm9tICcuLi9yb3V0ZS1jYXRjaC1hbGwnO1xuaW1wb3J0IFNldHVwRmxvcEZsaXBQcm92aWRlciBmcm9tICcuLi9zZXR1cC1mbG9wLWZsaXAtcHJvdmlkZXInO1xuaW1wb3J0IFRoZW1lU3dpdGNoZXIgZnJvbSAnLi4vdGhlbWUtc3dpdGNoZXInO1xuaW1wb3J0IFZlcnNpb25UcmFja2VyIGZyb20gJy4uL3ZlcnNpb24tdHJhY2tlcic7XG5pbXBvcnQgTmV3TWFpbk5hdmlnYXRpb25GbGFnV3JhcHBlciBmcm9tICcuL25ldy1tYWluLW5hdmlnYXRpb24tZmxhZy13cmFwcGVyJztcblxudHlwZSBUQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0aW9uUHJvcHMgPSB7XG4gIGZlYXR1cmVGbGFncz86IFRGbGFncztcbiAgZGVmYXVsdEZlYXR1cmVGbGFncz86IFRGbGFncztcbiAgYXBwbGljYXRpb25NZXNzYWdlczogVEFzeW5jTG9jYWxlRGF0YVByb3BzWydhcHBsaWNhdGlvbk1lc3NhZ2VzJ107XG4gIG9uTWVudUl0ZW1DbGljaz86IChldmVudDogU3ludGhldGljRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQ+KSA9PiB2b2lkO1xuICBkaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2s/OiBib29sZWFuO1xuICByZW5kZXI/OiAoKSA9PiBKU1guRWxlbWVudDtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG59O1xuXG50eXBlIE1haW5Db250YWluZXJQcm9wcyA9IHtcbiAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZDogYm9vbGVhbjtcbn07XG5cbmNvbnN0IGdldEhhc1VuYXV0aG9yaXplZEVycm9yID0gKGdyYXBoUUxFcnJvcnM6IEFwb2xsb0Vycm9yWydncmFwaFFMRXJyb3JzJ10pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5leHRlbnNpb25zICYmXG4gICAgICBncWxFcnJvci5leHRlbnNpb25zLmNvZGUgJiZcbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMuY29kZSA9PT0gJ1VOQVVUSEVOVElDQVRFRCdcbiAgKTtcbmNvbnN0IGdldEhhc1VzZXJCZWVuRGVsZXRlZEVycm9yID0gKFxuICBncmFwaFFMRXJyb3JzOiBBcG9sbG9FcnJvclsnZ3JhcGhRTEVycm9ycyddXG4pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5tZXNzYWdlICYmXG4gICAgICAvLyBOT1RFOiBUaGUgQ1RQIEFQSSBkb2VzIG5vdCBwcm92aWRlIGFuIGVycm9yIGNvZGUgaW4gdGhpcyBjYXNlLlxuICAgICAgZ3FsRXJyb3IubWVzc2FnZS5pbmNsdWRlcygnd2FzIG5vdCBmb3VuZC4nKVxuICApO1xuXG5leHBvcnQgY29uc3QgTWFpbkNvbnRhaW5lciA9IHN0eWxlZC5tYWluPE1haW5Db250YWluZXJQcm9wcz5gXG4gICR7KHByb3BzKSA9PlxuICAgIHByb3BzLmlzTmV3TmF2aWdhdGlvbkVuYWJsZWRcbiAgICAgID8gYFxuICAgICAgICBncmlkLWNvbHVtbjogMi8zO1xuICAgICAgICBncmlkLXJvdzogMy80O1xuICAgICAgYFxuICAgICAgOiBgXG4gICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICBncmlkLXJvdzogMztcbiAgICAgIGB9O1xuXG4gIC8qXG4gICAgQWxsb3cgdGhlIHRoaXMgZmxleCBjaGlsZCB0byBncm93IHNtYWxsZXIgdGhhbiBpdHMgc21hbGxlc3QgY29udGVudC5cbiAgICBUaGlzIGlzIG5lZWRlZCB3aGVuIHRoZXJlIGlzIGEgcmVhbGx5IHdpZGUgdGV4dCBpbnNpZGUgdGhhdCB3b3VsZCBzdHJldGNoXG4gICAgdGhpcyBub2RlIHRvIGJlIHdpZGVyIHRoYW4gdGhlIHBhcmVudC5cbiAgKi9cbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcblxuICAvKlxuICAgIGxheW91dCB0aGUgY2hpbGRyZW4uIFRoZXJlIHdpbGwgYWx3YXlzIGJlIHRoZSBwYWdlIGFuZCBzaWRlIG5vdGlmaWNhdGlvblxuICAgIGFib3V0IHRoZSBhY3R1YWwgY29udGVudC4gVGhlIGNvbnRlbnQgc2hvdWxkIHN0cmV0Y2ggdG8gZmlsbCB0aGUgcmVzdCBvZlxuICAgIHRoZSBwYWdlLlxuICAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIC8qXG4gICAgc2V0IHBvc2l0aW9uIHRvIHJlbGF0aXZlIHRvIGxheW91dCBub3RpZmljYXRpb25zIGFuZCBtb2RhbHNcbiAgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpcyByZW5kZXJlZCB3aGVuZXZlciB0aGUgdXNlciBpcyBjb25zaWRlcmVkIFwiYXV0aGVudGljYXRlZFwiXG4gKiBhbmQgY29udGFpbnMgdGhlIFwicmVzdHJpY3RlZFwiIGFwcGxpY2F0aW9uIHBhcnQuXG4gKi9cblxuZXhwb3J0IGNvbnN0IEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkID0gKFxuICBwcm9wczogVEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGlvblByb3BzXG4pID0+IHtcbiAgY29uc3QgYXBwbGljYXRpb25FbnZpcm9ubWVudCA9IHVzZUFwcGxpY2F0aW9uQ29udGV4dChcbiAgICAoY29udGV4dCkgPT4gY29udGV4dC5lbnZpcm9ubWVudFxuICApIGFzIFRBcHBsaWNhdGlvbkNvbnRleHQ8e30+WydlbnZpcm9ubWVudCddO1xuICAvLyBUT0RPOiB1c2luZyB0aGlzIGhvb2sgd2lsbCBzdWJzY3JpYmUgdGhlIGNvbXBvbmVudCB0byByb3V0ZSB1cGRhdGVzLlxuICAvLyBUaGlzIGlzIGN1cnJlbnRseSB1c2VmdWwgZm9yIGRldGVjdGluZyBhIGNoYW5nZSBpbiB0aGUgcHJvamVjdCBrZXlcbiAgLy8gZnJvbSBVUkwgKFwiL1wiIC0tPiBcIi86cHJvamVjdEtleVwiKS5cbiAgLy8gSG93ZXZlciwgZXZlcnkgcm91dGUgY2hhbmdlIHdpbGwgdHJpZ2dlciBhIHJlLXJlbmRlci4gVGhpcyBpcyBwcm9iYWJseVxuICAvLyBvay1pc2ggYnV0IHdlIG1pZ2h0IHdhbnQgdG8gbG9vayBpbnRvIGEgbW9yZSBwZXJmb3JtYW50IHNvbHV0aW9uLlxuICBjb25zdCBsb2NhdGlvbiA9IHVzZUxvY2F0aW9uKCk7XG5cbiAgY29uc3Qgbm90aWZpY2F0aW9uc0dsb2JhbFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IG5vdGlmaWNhdGlvbnNQYWdlUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3QgbGF5b3V0UmVmcyA9IHVzZVJlZjx7XG4gICAgbm90aWZpY2F0aW9uc0dsb2JhbFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgICBub3RpZmljYXRpb25zUGFnZVJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgfT4oe1xuICAgIG5vdGlmaWNhdGlvbnNHbG9iYWxSZWYsXG4gICAgbm90aWZpY2F0aW9uc1BhZ2VSZWYsXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPEZldGNoVXNlcj5cbiAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ1VzZXIsIHVzZXIsIGVycm9yIH0pID0+IHtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgLy8gSW4gY2FzZSB0aGVyZSBpcyBhbiB1bmF1dGhvcml6ZWQgZXJyb3IsIHdlIHJlZGlyZWN0IHRvIHRoZSBsb2dpbiBwYWdlXG4gICAgICAgICAgaWYgKGVycm9yLmdyYXBoUUxFcnJvcnMgJiYgQXJyYXkuaXNBcnJheShlcnJvci5ncmFwaFFMRXJyb3JzKSkge1xuICAgICAgICAgICAgY29uc3QgaGFzVW5hdXRob3JpemVkRXJyb3IgPSBnZXRIYXNVbmF1dGhvcml6ZWRFcnJvcihcbiAgICAgICAgICAgICAgZXJyb3IuZ3JhcGhRTEVycm9yc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yID0gZ2V0SGFzVXNlckJlZW5EZWxldGVkRXJyb3IoXG4gICAgICAgICAgICAgIGVycm9yLmdyYXBoUUxFcnJvcnNcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChoYXNVbmF1dGhvcml6ZWRFcnJvciB8fCBoYXNVc2VyQmVlbkRlbGV0ZWRFcnJvcikge1xuICAgICAgICAgICAgICBsZXQgbG9nb3V0UmVhc29uOlxuICAgICAgICAgICAgICAgIHwgKHR5cGVvZiBMT0dPVVRfUkVBU09OUylba2V5b2YgdHlwZW9mIExPR09VVF9SRUFTT05TXVxuICAgICAgICAgICAgICAgIHwgdW5kZWZpbmVkO1xuICAgICAgICAgICAgICBpZiAoaGFzVW5hdXRob3JpemVkRXJyb3IpXG4gICAgICAgICAgICAgICAgbG9nb3V0UmVhc29uID0gTE9HT1VUX1JFQVNPTlMuVU5BVVRIT1JJWkVEO1xuICAgICAgICAgICAgICBlbHNlIGlmIChoYXNVc2VyQmVlbkRlbGV0ZWRFcnJvcilcbiAgICAgICAgICAgICAgICBsb2dvdXRSZWFzb24gPSBMT0dPVVRfUkVBU09OUy5ERUxFVEVEO1xuICAgICAgICAgICAgICByZXR1cm4gPFJlZGlyZWN0VG9Mb2dvdXQgcmVhc29uPXtsb2dvdXRSZWFzb259IC8+O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBTaW5jZSB3ZSBkbyBub3Qga25vdyB0aGUgbG9jYWxlIG9mIHRoZSB1c2VyLCB3ZSBwaWNrIGl0IGZyb20gdGhlXG4gICAgICAgICAgLy8gdXNlcidzIGJyb3dzZXIgdG8gYXR0ZW1wdCB0byBtYXRjaCB0aGUgbGFuZ3VhZ2UgZm9yIHRoZSBjb3JyZWN0IHRyYW5zbGF0aW9ucy5cbiAgICAgICAgICBjb25zdCB1c2VyTG9jYWxlID0gZ2V0QnJvd3NlckxvY2FsZSh3aW5kb3cpO1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8QXN5bmNMb2NhbGVEYXRhXG4gICAgICAgICAgICAgIGxvY2FsZT17dXNlckxvY2FsZX1cbiAgICAgICAgICAgICAgYXBwbGljYXRpb25NZXNzYWdlcz17cHJvcHMuYXBwbGljYXRpb25NZXNzYWdlc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgeyh7IGxvY2FsZSwgbWVzc2FnZXMgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yVG9TZW50cnkoZXJyb3IsIHt9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPENvbmZpZ3VyZUludGxQcm92aWRlciBsb2NhbGU9e2xvY2FsZX0gbWVzc2FnZXM9e21lc3NhZ2VzfT5cbiAgICAgICAgICAgICAgICAgICAgPEVycm9yQXBvbG9naXplciAvPlxuICAgICAgICAgICAgICAgICAgPC9Db25maWd1cmVJbnRsUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvQXN5bmNMb2NhbGVEYXRhPlxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwcm9qZWN0S2V5RnJvbVVybCA9IHNlbGVjdFByb2plY3RLZXlGcm9tVXJsKGxvY2F0aW9uLnBhdGhuYW1lKTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8QXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXJcbiAgICAgICAgICAgIHVzZXI9e3VzZXJ9XG4gICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7LypcbiAgICAgICAgICAgIE5PVEU6IHdlIGRvIG5vdCB3YW50IHRvIGxvYWQgdGhlIGxvY2FsZSBkYXRhIGFzIGxvbmcgYXMgd2UgZG8gbm90XG4gICAgICAgICAgICBrbm93IHRoZSB1c2VyIHNldHRpbmcuIFRoaXMgaXMgaW1wb3J0YW50IGluIG9yZGVyIHRvIGF2b2lkIGZsYXNoaW5nXG4gICAgICAgICAgICBvZiB0cmFuc2xhdGVkIGNvbnRlbnQgb24gc3Vic2VxdWVudCByZS1yZW5kZXJzLlxuICAgICAgICAgICAgVGhlcmVmb3JlLCBhcyBsb25nIGFzIHRoZXJlIGlzIG5vIGxvY2FsZSwgdGhlIGNoaWxkcmVuIHNob3VsZCBjb25zaWRlciB1c2luZyB0aGVcbiAgICAgICAgICAgIGBpc0xvYWRpbmdgIHByb3AgdG8gZGVjaWRlIHdoYXQgdG8gcmVuZGVyLlxuICAgICAgICAgICovfVxuICAgICAgICAgICAgPEFzeW5jTG9jYWxlRGF0YVxuICAgICAgICAgICAgICBsb2NhbGU9e3VzZXI/Lmxhbmd1YWdlfVxuICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1lc3NhZ2VzPXtwcm9wcy5hcHBsaWNhdGlvbk1lc3NhZ2VzfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7KHsgaXNMb2FkaW5nOiBpc0xvYWRpbmdMb2NhbGVEYXRhLCBsb2NhbGUsIG1lc3NhZ2VzIH0pID0+IChcbiAgICAgICAgICAgICAgICA8Q29uZmlndXJlSW50bFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAvLyBXZSBkbyBub3Qgd2FudCB0byBwYXNzIHRoZSBsYW5ndWFnZSBhcyBsb25nIGFzIHRoZSBsb2NhbGUgZGF0YVxuICAgICAgICAgICAgICAgICAgLy8gaXMgbm90IGxvYWRlZC5cbiAgICAgICAgICAgICAgICAgIHsuLi4oaXNMb2FkaW5nTG9jYWxlRGF0YSA/IHt9IDogeyBsb2NhbGUsIG1lc3NhZ2VzIH0pfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTZXR1cEZsb3BGbGlwUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleT17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgIGxkQ2xpZW50U2lkZUlkPXthcHBsaWNhdGlvbkVudmlyb25tZW50LmxkQ2xpZW50U2lkZUlkfVxuICAgICAgICAgICAgICAgICAgICBmbGFncz17cHJvcHMuZmVhdHVyZUZsYWdzfVxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0RmxhZ3M9e3Byb3BzLmRlZmF1bHRGZWF0dXJlRmxhZ3N9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHsvKiBUaGlzIGlzIGEgdGVtcG9yYXJ5IGNvbnRhaW5lci4gSXQgd2lsbCBiZSByZW1vdmVkIG9uY2UgdGhlIG5ldyBuYXZpZ2F0aW9uIGlzIGVuYWJsZWQgYnkgZGVmYXVsdC4gKi99XG4gICAgICAgICAgICAgICAgICAgIDxOZXdNYWluTmF2aWdhdGlvbkZsYWdXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgIHsoe1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV3TmF2aWdhdGlvbkVuYWJsZWRFdmFsdWF0aW9uUmVhZHksXG4gICAgICAgICAgICAgICAgICAgICAgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGhlbWVTd2l0Y2hlciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxWZXJzaW9uVHJhY2tlciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBOT1RFOiB0aGUgcmVxdWVzdHMgaW4gZmxpZ2h0IGxvYWRlciB3aWxsIHJlbmRlciBhIGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGlubmVyIGludG8gdGhlIEFwcEJhci4gKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VudHJ5VXNlclRyYWNrZXIgdXNlcj17dXNlciA/PyB1bmRlZmluZWR9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAke0RJTUVOU0lPTlMuaGVhZGVyfSAxZnI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWluLWNvbnRlbnQgMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17bm90aWZpY2F0aW9uc0dsb2JhbFJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxLzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJhYm92ZS10b3AtbmF2aWdhdGlvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuR0xPQkFMfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxRdWlja0FjY2VzcyAvPjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZldGNoUHJvamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBpc1Byb2plY3RMb2FkaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNQcm9qZWN0TG9hZGluZyB8fCAhcHJvamVjdClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB1c2VkIG91dHNpZGUgb2YgYSBwcm9qZWN0IGNvbnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3Igd2hlbiB0aGUgcHJvamVjdCBpcyBleHBpcmVkIG9yIHN1cHNlbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNob3VsZFVzZVByb2plY3RDb250ZXh0ID0gIShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9qZWN0LnN1c3BlbnNpb24gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb2plY3QuZXhwaXJ5ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFVzZVByb2plY3RDb250ZXh0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxRdWlja0FjY2VzcyAvPjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvamVjdERhdGFMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlcz17cHJvamVjdC5sYW5ndWFnZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZTogZGF0YUxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0RGF0YUxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9e3Byb2plY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0RGF0YUxvY2FsZT17ZGF0YUxvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25FbnZpcm9ubWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxRdWlja0FjY2Vzc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZVByb2plY3REYXRhTG9jYWxlPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0RGF0YUxvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Byb2plY3REYXRhTG9jYWxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZldGNoUHJvamVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6ICR7aXNOZXdOYXZpZ2F0aW9uRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnMi8zJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMid9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAke2lzTmV3TmF2aWdhdGlvbkVuYWJsZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJzIvMydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJzEvMyd9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXBwQmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybD17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ld05hdmlnYXRpb25FbmFibGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oZWFkZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhc2lkZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2lzTmV3TmF2aWdhdGlvbkVuYWJsZWQgPT09IGZhbHNlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2lzTmV3TmF2aWdhdGlvbkVuYWJsZWQgPT09IHRydWUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgZ3JpZC1jb2x1bW46IDEvMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAyLzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO2B9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSA8TmF2QmFyPiBzaG91bGQgb25seSBiZSByZW5kZXJlZCB3aXRoaW4gYSBwcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGV4dCwgdGhlcmVmb3JlIHdoZW4gdGhlcmUgaXMgYSBgcHJvamVjdEtleWAuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gYHByb2plY3RLZXlgIGluIHRoZSBVUkwgKGUuZy4gYC9hY2NvdW50YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvdXRlcyksIHdlIGRvbid0IHJlbmRlciBpdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiB3ZSBhbHNvIFwiY2FjaGVcIiB0aGUgYHByb2plY3RLZXlgIGluIGxvY2FsU3RvcmFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCB0aGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgdG8gXCJyZS1oeWRyYXRlXCIgdGhlIFVSTFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvY2F0aW9uIChlLmcgd2hlbiB5b3UgZ28gdG8gYC9gLCB0aGVyZSBzaG91bGQgYmUgYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZGlyZWN0IHRvIGAvOnByb2plY3RLZXlgKS4gVGhlcmVmb3JlLCB3ZSBzaG91bGQgbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVseSBvbiB0aGUgdmFsdWUgaW4gbG9jYWxTdG9yYWdlIHRvIGRldGVybWluZSB3aGljaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBwcm9qZWN0S2V5YCBpcyBjdXJyZW50bHkgdXNlZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZldGNoUHJvamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBpc0xvYWRpbmdQcm9qZWN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0xvYWRpbmcgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nVXNlciB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nTG9jYWxlRGF0YSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nUHJvamVjdCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWxvY2FsZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXByb2plY3Q7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9e3VzZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiBkbyBub3QgcGFzcyB0aGUgYHByb2plY3RgIGludG8gdGhlIGFwcGxpY2F0aW9uIGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBwZXJtaXNzaW9ucyBmb3IgdGhlIE5hdmJhciBhcmUgcmVzb2x2ZWQgc2VwYXJhdGVseSwgd2l0aGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGEgZGlmZmVyZW50IFJlYWN0IGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOYXZCYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbkxvY2FsZT17bG9jYWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXk9e3Byb2plY3RLZXlGcm9tVXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9e3Byb2plY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25FbnZpcm9ubWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbk1lbnVJdGVtQ2xpY2s9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMub25NZW51SXRlbUNsaWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV3TmF2aWdhdGlvbkVuYWJsZWQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ld05hdmlnYXRpb25FbmFibGVkRXZhbHVhdGlvblJlYWR5PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV3TmF2aWdhdGlvbkVuYWJsZWRFdmFsdWF0aW9uUmVhZHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZldGNoUHJvamVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hc2lkZT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lzTG9hZGluZ1VzZXIgfHwgaXNMb2FkaW5nTG9jYWxlRGF0YSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1haW5Db250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ld05hdmlnYXRpb25FbmFibGVkPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV3TmF2aWdhdGlvbkVuYWJsZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cIm1haW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uTG9hZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ld05hdmlnYXRpb25FbmFibGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJtYWluXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgcmVmPXtub3RpZmljYXRpb25zUGFnZVJlZn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3QgZG9tYWluPXtET01BSU5TLlBBR0V9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE5vdGlmaWNhdGlvbnNMaXN0IGRvbWFpbj17RE9NQUlOUy5TSURFfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGlzIG9ubHkgbmVjZXNzYXJ5IGJlY2F1c2Ugd2UgaGF2ZSBhbiBpbnRlcm1lZGlhcnkgPGRpdj4gd3JhcHBpbmcgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxWaWV3PiBjb21wb25lbnQgdGhhdCBpcyB1c2VkIHRvIHdyYXAgZXZlcnkgY29udGVudC12aWV3LiBUaGlzIGludGVybWVkaWFyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PiBpcyBzb2xlbHkgdXNlZCBmb3IgYWRkaW5nIHRoZSB0cmFja2luZyBjb250ZXh0IHRvIHRoZSBjb250ZW50LXZpZXcuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhvd2V2ZXIsIHRoaXMgY291bGQgYmUgZG9uZSBieSBwYXNzaW5nIHRoZSB0cmFja2luZyBjb250ZXh0IHRvIHRoZSA8Vmlldz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGxldCBpdCBkbyB0aGUgbGF5b3V0LCBzbyB3ZSBjYW4gYXZvaWQgbGF5aW5nIG91ciBmcm9tIHRoZSBvdXRzaWRlIGFzIHdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvIGhlcmUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+ICo6bm90KDpmaXJzdC1vZi10eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UG9ydGFsc0NvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17bGF5b3V0UmVmc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0VG9wPXtESU1FTlNJT05TLmhlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0TGVmdD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleUZyb21VcmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IERJTUVOU0lPTlMubmV3TmF2TWVudVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IERJTUVOU0lPTlMubmF2TWVudVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldExlZnRPbkV4cGFuZGVkTWVudT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleUZyb21VcmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IERJTUVOU0lPTlMubmV3TmF2TWVudUV4cGFuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogRElNRU5TSU9OUy5uYXZNZW51RXhwYW5kZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJzBweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTd2l0Y2g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb209XCIvcHJvZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG89XCIvYWNjb3VudC9wcm9maWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlIHBhdGg9XCIvYWNjb3VudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSW4gY2FzZSB0aGUgQXBwU2hlbGwgdXNlcyB0aGUgYHJlbmRlcmAgZnVuY3Rpb24sIHdlIGFzc3VtZSBpdCdzIG9uZSBvZiB0d28gY2FzZXM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAxLiBUaGUgYXBwbGljYXRpb24gZG9lcyBub3QgdXNlIGBjaGlsZHJlbmAgYW5kIHRoZXJlZm9yZSBpbXBsZW1lbnRzIHRoZSByb3V0ZXMgaW5jbHVkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgPFJvdXRlQ2F0Y2hBbGw+ICh0aGlzIGlzIHRoZSBcImxlZ2FjeVwiIGJlaGF2aW9yKS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIDIuIEl0J3MgdGhlIGFjY291bnQgYXBwbGljYXRpb24sIHdoaWNoIGFsd2F5cyB1c2VzIGByZW5kZXJgIGFuZCB0aGVyZWZvcmUgc2hvdWxkIHJlbmRlciBhcyBub3JtYWwuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSW4gY2FzZSB0aGUgQXBwU2hlbGwgdXNlcyB0aGUgYGNoaWxkcmVuYCBmdW5jdGlvbiwgd2UgY2FuIGFsd2F5cyBhc3N1bWUgdGhhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaXQncyBhIG5vcm1hbCBDdXN0b20gQXBwbGljYXRpb24gYW5kIHRoYXQgaXQgc2hvdWxkIHRyaWdnZXIgYSBmb3JjZSByZWxvYWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLnJlbmRlciA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD57cHJvcHMucmVuZGVyKCl9PC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGVDYXRjaEFsbCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIFByb2plY3Qgcm91dGVzICovfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGUgZXhhY3Q9e3RydWV9IHBhdGg9XCIvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c1Byb2plY3RLZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRQcmV2aW91c1Byb2plY3RLZXkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj8uZGVmYXVsdFByb2plY3RLZXkgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIE5PVEU6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIEdpdmVuIHRoZSB1c2VyIGhhcyBub3QgYmVlbiBsb2FkZWQgYSBsb2FkaW5nIHNwaW5uZXIgaXMgc2hvd24uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIEdpdmVuIHRoZSB1c2VyIHdhcyBub3Qgd29ya2luZyBvbiBhIHByb2plY3QgcHJldmlvdXNseSBub3IgaGFzIGEgZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBwcm9qZWN0LCB0aGUgdXNlciB3aWxsIGJlIHByb21wdGVkIHRvIGNyZWF0ZSBvbmUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIEdpdmVuIHRoZSB1c2VyIHdhcyB3b3JraW5nIG9uIGEgcHJvamVjdCBwcmV2aW91c2x5IG9yIGhhcyBhIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgcHJvamVjdCwgdGhlIGFwcGxpY2F0aW9uIHdpbGwgcmVkaXJlY3QgdG8gdGhhdCBwcm9qZWN0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXVzZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8QXBwbGljYXRpb25Mb2FkZXIgLz47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByZXZpb3VzUHJvamVjdEtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxSZWRpcmVjdFRvUHJvamVjdENyZWF0ZSAvPjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvPXtgLyR7cHJldmlvdXNQcm9qZWN0S2V5fWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZSBleGFjdD17ZmFsc2V9IHBhdGg9XCIvOnByb2plY3RLZXlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvamVjdENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZVJvdXRlUGVybWlzc2lvbkNoZWNrPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuZGlzYWJsZVJvdXRlUGVybWlzc2lvbkNoZWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGVmZmVjdGl2ZWx5IHJlbmRlcnMgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGlsZHJlbiwgd2hpY2ggaXMgdGhlIGFwcGxpY2F0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzcGVjaWZpYyBwYXJ0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXI9e3Byb3BzLnJlbmRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Qcm9qZWN0Q29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JvdXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Td2l0Y2g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA8L05ld01haW5OYXZpZ2F0aW9uRmxhZ1dyYXBwZXI+XG4gICAgICAgICAgICAgICAgICA8L1NldHVwRmxvcEZsaXBQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L0NvbmZpZ3VyZUludGxQcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvQXN5bmNMb2NhbGVEYXRhPlxuICAgICAgICAgIDwvQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXI+XG4gICAgICAgICk7XG4gICAgICB9fVxuICAgIDwvRmV0Y2hVc2VyPlxuICApO1xufTtcbkFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkLmRpc3BsYXlOYW1lID0gJ0FwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkJztcblxuZXhwb3J0IGRlZmF1bHQgQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQ7XG4iXX0= */",
1045
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1
1046
- };
1047
- var _ref2 = process.env.NODE_ENV === "production" ? {
1048
- name: "8bdwu0",
1049
- styles: "grid-row:1;grid-column:1/3"
1050
- } : {
1051
- name: "u4fwut-ApplicationShellAuthenticated",
1052
- styles: "grid-row:1;grid-column:1/3;label:ApplicationShellAuthenticated;",
1053
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLXNoZWxsLWF1dGhlbnRpY2F0ZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtQd0MiLCJmaWxlIjoiYXBwbGljYXRpb24tc2hlbGwtYXV0aGVudGljYXRlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIFJlYWN0Tm9kZSxcbiAgdHlwZSBSZWZPYmplY3QsXG4gIHR5cGUgU3ludGhldGljRXZlbnQsXG4gIHVzZVJlZixcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHR5cGUgeyBBcG9sbG9FcnJvciB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2Vycm9ycyc7XG5pbXBvcnQgdHlwZSB7IFRGbGFncyB9IGZyb20gJ0BmbG9wZmxpcC90eXBlcyc7XG5pbXBvcnQgeyBSZWRpcmVjdCwgUm91dGUsIFN3aXRjaCwgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IFBvcnRhbHNDb250YWluZXIgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyLFxuICBzZWxlY3RQcm9qZWN0S2V5RnJvbVVybCxcbiAgdXNlQXBwbGljYXRpb25Db250ZXh0LFxuICB0eXBlIFRBcHBsaWNhdGlvbkNvbnRleHQsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRE9NQUlOUywgTE9HT1VUX1JFQVNPTlMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUgeyBUQXN5bmNMb2NhbGVEYXRhUHJvcHMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9pMThuJztcbmltcG9ydCB7IEFzeW5jTG9jYWxlRGF0YSB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2kxOG4nO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uc0xpc3QgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9yZWFjdC1ub3RpZmljYXRpb25zJztcbmltcG9ydCB7XG4gIHJlcG9ydEVycm9yVG9TZW50cnksXG4gIFNlbnRyeVVzZXJUcmFja2VyLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9zZW50cnknO1xuaW1wb3J0IHsgRElNRU5TSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRQcmV2aW91c1Byb2plY3RLZXkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgQXBwQmFyIGZyb20gJy4uL2FwcC1iYXInO1xuaW1wb3J0IEFwcGxpY2F0aW9uTG9hZGVyIGZyb20gJy4uL2FwcGxpY2F0aW9uLWxvYWRlcic7XG5pbXBvcnQgeyBnZXRCcm93c2VyTG9jYWxlIH0gZnJvbSAnLi4vYXBwbGljYXRpb24tc2hlbGwtcHJvdmlkZXIvdXRpbHMnO1xuaW1wb3J0IENvbmZpZ3VyZUludGxQcm92aWRlciBmcm9tICcuLi9jb25maWd1cmUtaW50bC1wcm92aWRlcic7XG5pbXBvcnQgRXJyb3JBcG9sb2dpemVyIGZyb20gJy4uL2Vycm9yLWFwb2xvZ2l6ZXInO1xuaW1wb3J0IEZldGNoUHJvamVjdCBmcm9tICcuLi9mZXRjaC1wcm9qZWN0JztcbmltcG9ydCBGZXRjaFVzZXIgZnJvbSAnLi4vZmV0Y2gtdXNlcic7XG5pbXBvcnQgTmF2QmFyIGZyb20gJy4uL25hdmJhcic7XG5pbXBvcnQgUHJvamVjdENvbnRhaW5lciBmcm9tICcuLi9wcm9qZWN0LWNvbnRhaW5lcic7XG5pbXBvcnQgUHJvamVjdERhdGFMb2NhbGUgZnJvbSAnLi4vcHJvamVjdC1kYXRhLWxvY2FsZSc7XG5pbXBvcnQgUXVpY2tBY2Nlc3MgZnJvbSAnLi4vcXVpY2stYWNjZXNzJztcbmltcG9ydCBSZWRpcmVjdFRvTG9nb3V0IGZyb20gJy4uL3JlZGlyZWN0LXRvLWxvZ291dCc7XG5pbXBvcnQgUmVkaXJlY3RUb1Byb2plY3RDcmVhdGUgZnJvbSAnLi4vcmVkaXJlY3QtdG8tcHJvamVjdC1jcmVhdGUnO1xuaW1wb3J0IFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgZnJvbSAnLi4vcmVxdWVzdHMtaW4tZmxpZ2h0LWxvYWRlcic7XG5pbXBvcnQgUm91dGVDYXRjaEFsbCBmcm9tICcuLi9yb3V0ZS1jYXRjaC1hbGwnO1xuaW1wb3J0IFNldHVwRmxvcEZsaXBQcm92aWRlciBmcm9tICcuLi9zZXR1cC1mbG9wLWZsaXAtcHJvdmlkZXInO1xuaW1wb3J0IFRoZW1lU3dpdGNoZXIgZnJvbSAnLi4vdGhlbWUtc3dpdGNoZXInO1xuaW1wb3J0IFZlcnNpb25UcmFja2VyIGZyb20gJy4uL3ZlcnNpb24tdHJhY2tlcic7XG5pbXBvcnQgTmV3TWFpbk5hdmlnYXRpb25GbGFnV3JhcHBlciBmcm9tICcuL25ldy1tYWluLW5hdmlnYXRpb24tZmxhZy13cmFwcGVyJztcblxudHlwZSBUQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0aW9uUHJvcHMgPSB7XG4gIGZlYXR1cmVGbGFncz86IFRGbGFncztcbiAgZGVmYXVsdEZlYXR1cmVGbGFncz86IFRGbGFncztcbiAgYXBwbGljYXRpb25NZXNzYWdlczogVEFzeW5jTG9jYWxlRGF0YVByb3BzWydhcHBsaWNhdGlvbk1lc3NhZ2VzJ107XG4gIG9uTWVudUl0ZW1DbGljaz86IChldmVudDogU3ludGhldGljRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQ+KSA9PiB2b2lkO1xuICBkaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2s/OiBib29sZWFuO1xuICByZW5kZXI/OiAoKSA9PiBKU1guRWxlbWVudDtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG59O1xuXG50eXBlIE1haW5Db250YWluZXJQcm9wcyA9IHtcbiAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZDogYm9vbGVhbjtcbn07XG5cbmNvbnN0IGdldEhhc1VuYXV0aG9yaXplZEVycm9yID0gKGdyYXBoUUxFcnJvcnM6IEFwb2xsb0Vycm9yWydncmFwaFFMRXJyb3JzJ10pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5leHRlbnNpb25zICYmXG4gICAgICBncWxFcnJvci5leHRlbnNpb25zLmNvZGUgJiZcbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMuY29kZSA9PT0gJ1VOQVVUSEVOVElDQVRFRCdcbiAgKTtcbmNvbnN0IGdldEhhc1VzZXJCZWVuRGVsZXRlZEVycm9yID0gKFxuICBncmFwaFFMRXJyb3JzOiBBcG9sbG9FcnJvclsnZ3JhcGhRTEVycm9ycyddXG4pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5tZXNzYWdlICYmXG4gICAgICAvLyBOT1RFOiBUaGUgQ1RQIEFQSSBkb2VzIG5vdCBwcm92aWRlIGFuIGVycm9yIGNvZGUgaW4gdGhpcyBjYXNlLlxuICAgICAgZ3FsRXJyb3IubWVzc2FnZS5pbmNsdWRlcygnd2FzIG5vdCBmb3VuZC4nKVxuICApO1xuXG5leHBvcnQgY29uc3QgTWFpbkNvbnRhaW5lciA9IHN0eWxlZC5tYWluPE1haW5Db250YWluZXJQcm9wcz5gXG4gICR7KHByb3BzKSA9PlxuICAgIHByb3BzLmlzTmV3TmF2aWdhdGlvbkVuYWJsZWRcbiAgICAgID8gYFxuICAgICAgICBncmlkLWNvbHVtbjogMi8zO1xuICAgICAgICBncmlkLXJvdzogMy80O1xuICAgICAgYFxuICAgICAgOiBgXG4gICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICBncmlkLXJvdzogMztcbiAgICAgIGB9O1xuXG4gIC8qXG4gICAgQWxsb3cgdGhlIHRoaXMgZmxleCBjaGlsZCB0byBncm93IHNtYWxsZXIgdGhhbiBpdHMgc21hbGxlc3QgY29udGVudC5cbiAgICBUaGlzIGlzIG5lZWRlZCB3aGVuIHRoZXJlIGlzIGEgcmVhbGx5IHdpZGUgdGV4dCBpbnNpZGUgdGhhdCB3b3VsZCBzdHJldGNoXG4gICAgdGhpcyBub2RlIHRvIGJlIHdpZGVyIHRoYW4gdGhlIHBhcmVudC5cbiAgKi9cbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcblxuICAvKlxuICAgIGxheW91dCB0aGUgY2hpbGRyZW4uIFRoZXJlIHdpbGwgYWx3YXlzIGJlIHRoZSBwYWdlIGFuZCBzaWRlIG5vdGlmaWNhdGlvblxuICAgIGFib3V0IHRoZSBhY3R1YWwgY29udGVudC4gVGhlIGNvbnRlbnQgc2hvdWxkIHN0cmV0Y2ggdG8gZmlsbCB0aGUgcmVzdCBvZlxuICAgIHRoZSBwYWdlLlxuICAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIC8qXG4gICAgc2V0IHBvc2l0aW9uIHRvIHJlbGF0aXZlIHRvIGxheW91dCBub3RpZmljYXRpb25zIGFuZCBtb2RhbHNcbiAgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpcyByZW5kZXJlZCB3aGVuZXZlciB0aGUgdXNlciBpcyBjb25zaWRlcmVkIFwiYXV0aGVudGljYXRlZFwiXG4gKiBhbmQgY29udGFpbnMgdGhlIFwicmVzdHJpY3RlZFwiIGFwcGxpY2F0aW9uIHBhcnQuXG4gKi9cblxuZXhwb3J0IGNvbnN0IEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkID0gKFxuICBwcm9wczogVEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGlvblByb3BzXG4pID0+IHtcbiAgY29uc3QgYXBwbGljYXRpb25FbnZpcm9ubWVudCA9IHVzZUFwcGxpY2F0aW9uQ29udGV4dChcbiAgICAoY29udGV4dCkgPT4gY29udGV4dC5lbnZpcm9ubWVudFxuICApIGFzIFRBcHBsaWNhdGlvbkNvbnRleHQ8e30+WydlbnZpcm9ubWVudCddO1xuICAvLyBUT0RPOiB1c2luZyB0aGlzIGhvb2sgd2lsbCBzdWJzY3JpYmUgdGhlIGNvbXBvbmVudCB0byByb3V0ZSB1cGRhdGVzLlxuICAvLyBUaGlzIGlzIGN1cnJlbnRseSB1c2VmdWwgZm9yIGRldGVjdGluZyBhIGNoYW5nZSBpbiB0aGUgcHJvamVjdCBrZXlcbiAgLy8gZnJvbSBVUkwgKFwiL1wiIC0tPiBcIi86cHJvamVjdEtleVwiKS5cbiAgLy8gSG93ZXZlciwgZXZlcnkgcm91dGUgY2hhbmdlIHdpbGwgdHJpZ2dlciBhIHJlLXJlbmRlci4gVGhpcyBpcyBwcm9iYWJseVxuICAvLyBvay1pc2ggYnV0IHdlIG1pZ2h0IHdhbnQgdG8gbG9vayBpbnRvIGEgbW9yZSBwZXJmb3JtYW50IHNvbHV0aW9uLlxuICBjb25zdCBsb2NhdGlvbiA9IHVzZUxvY2F0aW9uKCk7XG5cbiAgY29uc3Qgbm90aWZpY2F0aW9uc0dsb2JhbFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IG5vdGlmaWNhdGlvbnNQYWdlUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3QgbGF5b3V0UmVmcyA9IHVzZVJlZjx7XG4gICAgbm90aWZpY2F0aW9uc0dsb2JhbFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgICBub3RpZmljYXRpb25zUGFnZVJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgfT4oe1xuICAgIG5vdGlmaWNhdGlvbnNHbG9iYWxSZWYsXG4gICAgbm90aWZpY2F0aW9uc1BhZ2VSZWYsXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPEZldGNoVXNlcj5cbiAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ1VzZXIsIHVzZXIsIGVycm9yIH0pID0+IHtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgLy8gSW4gY2FzZSB0aGVyZSBpcyBhbiB1bmF1dGhvcml6ZWQgZXJyb3IsIHdlIHJlZGlyZWN0IHRvIHRoZSBsb2dpbiBwYWdlXG4gICAgICAgICAgaWYgKGVycm9yLmdyYXBoUUxFcnJvcnMgJiYgQXJyYXkuaXNBcnJheShlcnJvci5ncmFwaFFMRXJyb3JzKSkge1xuICAgICAgICAgICAgY29uc3QgaGFzVW5hdXRob3JpemVkRXJyb3IgPSBnZXRIYXNVbmF1dGhvcml6ZWRFcnJvcihcbiAgICAgICAgICAgICAgZXJyb3IuZ3JhcGhRTEVycm9yc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yID0gZ2V0SGFzVXNlckJlZW5EZWxldGVkRXJyb3IoXG4gICAgICAgICAgICAgIGVycm9yLmdyYXBoUUxFcnJvcnNcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChoYXNVbmF1dGhvcml6ZWRFcnJvciB8fCBoYXNVc2VyQmVlbkRlbGV0ZWRFcnJvcikge1xuICAgICAgICAgICAgICBsZXQgbG9nb3V0UmVhc29uOlxuICAgICAgICAgICAgICAgIHwgKHR5cGVvZiBMT0dPVVRfUkVBU09OUylba2V5b2YgdHlwZW9mIExPR09VVF9SRUFTT05TXVxuICAgICAgICAgICAgICAgIHwgdW5kZWZpbmVkO1xuICAgICAgICAgICAgICBpZiAoaGFzVW5hdXRob3JpemVkRXJyb3IpXG4gICAgICAgICAgICAgICAgbG9nb3V0UmVhc29uID0gTE9HT1VUX1JFQVNPTlMuVU5BVVRIT1JJWkVEO1xuICAgICAgICAgICAgICBlbHNlIGlmIChoYXNVc2VyQmVlbkRlbGV0ZWRFcnJvcilcbiAgICAgICAgICAgICAgICBsb2dvdXRSZWFzb24gPSBMT0dPVVRfUkVBU09OUy5ERUxFVEVEO1xuICAgICAgICAgICAgICByZXR1cm4gPFJlZGlyZWN0VG9Mb2dvdXQgcmVhc29uPXtsb2dvdXRSZWFzb259IC8+O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBTaW5jZSB3ZSBkbyBub3Qga25vdyB0aGUgbG9jYWxlIG9mIHRoZSB1c2VyLCB3ZSBwaWNrIGl0IGZyb20gdGhlXG4gICAgICAgICAgLy8gdXNlcidzIGJyb3dzZXIgdG8gYXR0ZW1wdCB0byBtYXRjaCB0aGUgbGFuZ3VhZ2UgZm9yIHRoZSBjb3JyZWN0IHRyYW5zbGF0aW9ucy5cbiAgICAgICAgICBjb25zdCB1c2VyTG9jYWxlID0gZ2V0QnJvd3NlckxvY2FsZSh3aW5kb3cpO1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8QXN5bmNMb2NhbGVEYXRhXG4gICAgICAgICAgICAgIGxvY2FsZT17dXNlckxvY2FsZX1cbiAgICAgICAgICAgICAgYXBwbGljYXRpb25NZXNzYWdlcz17cHJvcHMuYXBwbGljYXRpb25NZXNzYWdlc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgeyh7IGxvY2FsZSwgbWVzc2FnZXMgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yVG9TZW50cnkoZXJyb3IsIHt9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPENvbmZpZ3VyZUludGxQcm92aWRlciBsb2NhbGU9e2xvY2FsZX0gbWVzc2FnZXM9e21lc3NhZ2VzfT5cbiAgICAgICAgICAgICAgICAgICAgPEVycm9yQXBvbG9naXplciAvPlxuICAgICAgICAgICAgICAgICAgPC9Db25maWd1cmVJbnRsUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvQXN5bmNMb2NhbGVEYXRhPlxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwcm9qZWN0S2V5RnJvbVVybCA9IHNlbGVjdFByb2plY3RLZXlGcm9tVXJsKGxvY2F0aW9uLnBhdGhuYW1lKTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8QXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXJcbiAgICAgICAgICAgIHVzZXI9e3VzZXJ9XG4gICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7LypcbiAgICAgICAgICAgIE5PVEU6IHdlIGRvIG5vdCB3YW50IHRvIGxvYWQgdGhlIGxvY2FsZSBkYXRhIGFzIGxvbmcgYXMgd2UgZG8gbm90XG4gICAgICAgICAgICBrbm93IHRoZSB1c2VyIHNldHRpbmcuIFRoaXMgaXMgaW1wb3J0YW50IGluIG9yZGVyIHRvIGF2b2lkIGZsYXNoaW5nXG4gICAgICAgICAgICBvZiB0cmFuc2xhdGVkIGNvbnRlbnQgb24gc3Vic2VxdWVudCByZS1yZW5kZXJzLlxuICAgICAgICAgICAgVGhlcmVmb3JlLCBhcyBsb25nIGFzIHRoZXJlIGlzIG5vIGxvY2FsZSwgdGhlIGNoaWxkcmVuIHNob3VsZCBjb25zaWRlciB1c2luZyB0aGVcbiAgICAgICAgICAgIGBpc0xvYWRpbmdgIHByb3AgdG8gZGVjaWRlIHdoYXQgdG8gcmVuZGVyLlxuICAgICAgICAgICovfVxuICAgICAgICAgICAgPEFzeW5jTG9jYWxlRGF0YVxuICAgICAgICAgICAgICBsb2NhbGU9e3VzZXI/Lmxhbmd1YWdlfVxuICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1lc3NhZ2VzPXtwcm9wcy5hcHBsaWNhdGlvbk1lc3NhZ2VzfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7KHsgaXNMb2FkaW5nOiBpc0xvYWRpbmdMb2NhbGVEYXRhLCBsb2NhbGUsIG1lc3NhZ2VzIH0pID0+IChcbiAgICAgICAgICAgICAgICA8Q29uZmlndXJlSW50bFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAvLyBXZSBkbyBub3Qgd2FudCB0byBwYXNzIHRoZSBsYW5ndWFnZSBhcyBsb25nIGFzIHRoZSBsb2NhbGUgZGF0YVxuICAgICAgICAgICAgICAgICAgLy8gaXMgbm90IGxvYWRlZC5cbiAgICAgICAgICAgICAgICAgIHsuLi4oaXNMb2FkaW5nTG9jYWxlRGF0YSA/IHt9IDogeyBsb2NhbGUsIG1lc3NhZ2VzIH0pfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTZXR1cEZsb3BGbGlwUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleT17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgIGxkQ2xpZW50U2lkZUlkPXthcHBsaWNhdGlvbkVudmlyb25tZW50LmxkQ2xpZW50U2lkZUlkfVxuICAgICAgICAgICAgICAgICAgICBmbGFncz17cHJvcHMuZmVhdHVyZUZsYWdzfVxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0RmxhZ3M9e3Byb3BzLmRlZmF1bHRGZWF0dXJlRmxhZ3N9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHsvKiBUaGlzIGlzIGEgdGVtcG9yYXJ5IGNvbnRhaW5lci4gSXQgd2lsbCBiZSByZW1vdmVkIG9uY2UgdGhlIG5ldyBuYXZpZ2F0aW9uIGlzIGVuYWJsZWQgYnkgZGVmYXVsdC4gKi99XG4gICAgICAgICAgICAgICAgICAgIDxOZXdNYWluTmF2aWdhdGlvbkZsYWdXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgIHsoe1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV3TmF2aWdhdGlvbkVuYWJsZWRFdmFsdWF0aW9uUmVhZHksXG4gICAgICAgICAgICAgICAgICAgICAgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGhlbWVTd2l0Y2hlciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxWZXJzaW9uVHJhY2tlciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBOT1RFOiB0aGUgcmVxdWVzdHMgaW4gZmxpZ2h0IGxvYWRlciB3aWxsIHJlbmRlciBhIGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGlubmVyIGludG8gdGhlIEFwcEJhci4gKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VudHJ5VXNlclRyYWNrZXIgdXNlcj17dXNlciA/PyB1bmRlZmluZWR9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAke0RJTUVOU0lPTlMuaGVhZGVyfSAxZnI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWluLWNvbnRlbnQgMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17bm90aWZpY2F0aW9uc0dsb2JhbFJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxLzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJhYm92ZS10b3AtbmF2aWdhdGlvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuR0xPQkFMfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxRdWlja0FjY2VzcyAvPjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZldGNoUHJvamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBpc1Byb2plY3RMb2FkaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNQcm9qZWN0TG9hZGluZyB8fCAhcHJvamVjdClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB1c2VkIG91dHNpZGUgb2YgYSBwcm9qZWN0IGNvbnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3Igd2hlbiB0aGUgcHJvamVjdCBpcyBleHBpcmVkIG9yIHN1cHNlbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNob3VsZFVzZVByb2plY3RDb250ZXh0ID0gIShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9qZWN0LnN1c3BlbnNpb24gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb2plY3QuZXhwaXJ5ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFVzZVByb2plY3RDb250ZXh0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxRdWlja0FjY2VzcyAvPjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvamVjdERhdGFMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlcz17cHJvamVjdC5sYW5ndWFnZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZTogZGF0YUxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0RGF0YUxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9e3Byb2plY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0RGF0YUxvY2FsZT17ZGF0YUxvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25FbnZpcm9ubWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxRdWlja0FjY2Vzc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZVByb2plY3REYXRhTG9jYWxlPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0RGF0YUxvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Byb2plY3REYXRhTG9jYWxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZldGNoUHJvamVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6ICR7aXNOZXdOYXZpZ2F0aW9uRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnMi8zJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMid9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAke2lzTmV3TmF2aWdhdGlvbkVuYWJsZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJzIvMydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJzEvMyd9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXBwQmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybD17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ld05hdmlnYXRpb25FbmFibGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oZWFkZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhc2lkZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2lzTmV3TmF2aWdhdGlvbkVuYWJsZWQgPT09IGZhbHNlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2lzTmV3TmF2aWdhdGlvbkVuYWJsZWQgPT09IHRydWUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgZ3JpZC1jb2x1bW46IDEvMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAyLzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO2B9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSA8TmF2QmFyPiBzaG91bGQgb25seSBiZSByZW5kZXJlZCB3aXRoaW4gYSBwcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGV4dCwgdGhlcmVmb3JlIHdoZW4gdGhlcmUgaXMgYSBgcHJvamVjdEtleWAuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gYHByb2plY3RLZXlgIGluIHRoZSBVUkwgKGUuZy4gYC9hY2NvdW50YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvdXRlcyksIHdlIGRvbid0IHJlbmRlciBpdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiB3ZSBhbHNvIFwiY2FjaGVcIiB0aGUgYHByb2plY3RLZXlgIGluIGxvY2FsU3RvcmFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCB0aGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgdG8gXCJyZS1oeWRyYXRlXCIgdGhlIFVSTFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvY2F0aW9uIChlLmcgd2hlbiB5b3UgZ28gdG8gYC9gLCB0aGVyZSBzaG91bGQgYmUgYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZGlyZWN0IHRvIGAvOnByb2plY3RLZXlgKS4gVGhlcmVmb3JlLCB3ZSBzaG91bGQgbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVseSBvbiB0aGUgdmFsdWUgaW4gbG9jYWxTdG9yYWdlIHRvIGRldGVybWluZSB3aGljaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBwcm9qZWN0S2V5YCBpcyBjdXJyZW50bHkgdXNlZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZldGNoUHJvamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBpc0xvYWRpbmdQcm9qZWN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0xvYWRpbmcgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nVXNlciB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nTG9jYWxlRGF0YSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nUHJvamVjdCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWxvY2FsZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXByb2plY3Q7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9e3VzZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiBkbyBub3QgcGFzcyB0aGUgYHByb2plY3RgIGludG8gdGhlIGFwcGxpY2F0aW9uIGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBwZXJtaXNzaW9ucyBmb3IgdGhlIE5hdmJhciBhcmUgcmVzb2x2ZWQgc2VwYXJhdGVseSwgd2l0aGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGEgZGlmZmVyZW50IFJlYWN0IGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOYXZCYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbkxvY2FsZT17bG9jYWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXk9e3Byb2plY3RLZXlGcm9tVXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9e3Byb2plY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25FbnZpcm9ubWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbk1lbnVJdGVtQ2xpY2s9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMub25NZW51SXRlbUNsaWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV3TmF2aWdhdGlvbkVuYWJsZWQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ld05hdmlnYXRpb25FbmFibGVkRXZhbHVhdGlvblJlYWR5PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV3TmF2aWdhdGlvbkVuYWJsZWRFdmFsdWF0aW9uUmVhZHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZldGNoUHJvamVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hc2lkZT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lzTG9hZGluZ1VzZXIgfHwgaXNMb2FkaW5nTG9jYWxlRGF0YSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1haW5Db250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ld05hdmlnYXRpb25FbmFibGVkPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV3TmF2aWdhdGlvbkVuYWJsZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cIm1haW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uTG9hZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ld05hdmlnYXRpb25FbmFibGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJtYWluXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgcmVmPXtub3RpZmljYXRpb25zUGFnZVJlZn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3QgZG9tYWluPXtET01BSU5TLlBBR0V9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE5vdGlmaWNhdGlvbnNMaXN0IGRvbWFpbj17RE9NQUlOUy5TSURFfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGlzIG9ubHkgbmVjZXNzYXJ5IGJlY2F1c2Ugd2UgaGF2ZSBhbiBpbnRlcm1lZGlhcnkgPGRpdj4gd3JhcHBpbmcgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxWaWV3PiBjb21wb25lbnQgdGhhdCBpcyB1c2VkIHRvIHdyYXAgZXZlcnkgY29udGVudC12aWV3LiBUaGlzIGludGVybWVkaWFyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PiBpcyBzb2xlbHkgdXNlZCBmb3IgYWRkaW5nIHRoZSB0cmFja2luZyBjb250ZXh0IHRvIHRoZSBjb250ZW50LXZpZXcuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhvd2V2ZXIsIHRoaXMgY291bGQgYmUgZG9uZSBieSBwYXNzaW5nIHRoZSB0cmFja2luZyBjb250ZXh0IHRvIHRoZSA8Vmlldz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGxldCBpdCBkbyB0aGUgbGF5b3V0LCBzbyB3ZSBjYW4gYXZvaWQgbGF5aW5nIG91ciBmcm9tIHRoZSBvdXRzaWRlIGFzIHdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvIGhlcmUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+ICo6bm90KDpmaXJzdC1vZi10eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UG9ydGFsc0NvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17bGF5b3V0UmVmc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0VG9wPXtESU1FTlNJT05TLmhlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0TGVmdD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleUZyb21VcmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IERJTUVOU0lPTlMubmV3TmF2TWVudVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IERJTUVOU0lPTlMubmF2TWVudVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldExlZnRPbkV4cGFuZGVkTWVudT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleUZyb21VcmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IERJTUVOU0lPTlMubmV3TmF2TWVudUV4cGFuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogRElNRU5TSU9OUy5uYXZNZW51RXhwYW5kZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJzBweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTd2l0Y2g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb209XCIvcHJvZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG89XCIvYWNjb3VudC9wcm9maWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlIHBhdGg9XCIvYWNjb3VudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSW4gY2FzZSB0aGUgQXBwU2hlbGwgdXNlcyB0aGUgYHJlbmRlcmAgZnVuY3Rpb24sIHdlIGFzc3VtZSBpdCdzIG9uZSBvZiB0d28gY2FzZXM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAxLiBUaGUgYXBwbGljYXRpb24gZG9lcyBub3QgdXNlIGBjaGlsZHJlbmAgYW5kIHRoZXJlZm9yZSBpbXBsZW1lbnRzIHRoZSByb3V0ZXMgaW5jbHVkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgPFJvdXRlQ2F0Y2hBbGw+ICh0aGlzIGlzIHRoZSBcImxlZ2FjeVwiIGJlaGF2aW9yKS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIDIuIEl0J3MgdGhlIGFjY291bnQgYXBwbGljYXRpb24sIHdoaWNoIGFsd2F5cyB1c2VzIGByZW5kZXJgIGFuZCB0aGVyZWZvcmUgc2hvdWxkIHJlbmRlciBhcyBub3JtYWwuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSW4gY2FzZSB0aGUgQXBwU2hlbGwgdXNlcyB0aGUgYGNoaWxkcmVuYCBmdW5jdGlvbiwgd2UgY2FuIGFsd2F5cyBhc3N1bWUgdGhhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaXQncyBhIG5vcm1hbCBDdXN0b20gQXBwbGljYXRpb24gYW5kIHRoYXQgaXQgc2hvdWxkIHRyaWdnZXIgYSBmb3JjZSByZWxvYWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLnJlbmRlciA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD57cHJvcHMucmVuZGVyKCl9PC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGVDYXRjaEFsbCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIFByb2plY3Qgcm91dGVzICovfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGUgZXhhY3Q9e3RydWV9IHBhdGg9XCIvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c1Byb2plY3RLZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRQcmV2aW91c1Byb2plY3RLZXkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj8uZGVmYXVsdFByb2plY3RLZXkgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIE5PVEU6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIEdpdmVuIHRoZSB1c2VyIGhhcyBub3QgYmVlbiBsb2FkZWQgYSBsb2FkaW5nIHNwaW5uZXIgaXMgc2hvd24uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIEdpdmVuIHRoZSB1c2VyIHdhcyBub3Qgd29ya2luZyBvbiBhIHByb2plY3QgcHJldmlvdXNseSBub3IgaGFzIGEgZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBwcm9qZWN0LCB0aGUgdXNlciB3aWxsIGJlIHByb21wdGVkIHRvIGNyZWF0ZSBvbmUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIEdpdmVuIHRoZSB1c2VyIHdhcyB3b3JraW5nIG9uIGEgcHJvamVjdCBwcmV2aW91c2x5IG9yIGhhcyBhIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgcHJvamVjdCwgdGhlIGFwcGxpY2F0aW9uIHdpbGwgcmVkaXJlY3QgdG8gdGhhdCBwcm9qZWN0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXVzZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8QXBwbGljYXRpb25Mb2FkZXIgLz47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByZXZpb3VzUHJvamVjdEtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxSZWRpcmVjdFRvUHJvamVjdENyZWF0ZSAvPjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvPXtgLyR7cHJldmlvdXNQcm9qZWN0S2V5fWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZSBleGFjdD17ZmFsc2V9IHBhdGg9XCIvOnByb2plY3RLZXlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvamVjdENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZVJvdXRlUGVybWlzc2lvbkNoZWNrPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuZGlzYWJsZVJvdXRlUGVybWlzc2lvbkNoZWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGVmZmVjdGl2ZWx5IHJlbmRlcnMgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGlsZHJlbiwgd2hpY2ggaXMgdGhlIGFwcGxpY2F0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzcGVjaWZpYyBwYXJ0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXI9e3Byb3BzLnJlbmRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Qcm9qZWN0Q29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JvdXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Td2l0Y2g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA8L05ld01haW5OYXZpZ2F0aW9uRmxhZ1dyYXBwZXI+XG4gICAgICAgICAgICAgICAgICA8L1NldHVwRmxvcEZsaXBQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L0NvbmZpZ3VyZUludGxQcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvQXN5bmNMb2NhbGVEYXRhPlxuICAgICAgICAgIDwvQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXI+XG4gICAgICAgICk7XG4gICAgICB9fVxuICAgIDwvRmV0Y2hVc2VyPlxuICApO1xufTtcbkFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkLmRpc3BsYXlOYW1lID0gJ0FwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkJztcblxuZXhwb3J0IGRlZmF1bHQgQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQ7XG4iXX0= */",
1054
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1
1055
- };
1056
- const ApplicationShellAuthenticated = props => {
1057
- const applicationEnvironment = applicationShellConnectors.useApplicationContext(context => context.environment);
1058
- // TODO: using this hook will subscribe the component to route updates.
1059
- // This is currently useful for detecting a change in the project key
1060
- // from URL ("/" --> "/:projectKey").
1061
- // However, every route change will trigger a re-render. This is probably
1062
- // ok-ish but we might want to look into a more performant solution.
1063
- const location = reactRouterDom.useLocation();
1064
- const notificationsGlobalRef = react.useRef(null);
1065
- const notificationsPageRef = react.useRef(null);
1066
- const layoutRefs = react.useRef({
1067
- notificationsGlobalRef,
1068
- notificationsPageRef
1069
- });
1070
- return jsxRuntime.jsx(FetchUser, {
1071
- children: _ref3 => {
1072
- let isLoadingUser = _ref3.isLoading,
1073
- user = _ref3.user,
1074
- error = _ref3.error;
1075
- if (error) {
1076
- // In case there is an unauthorized error, we redirect to the login page
1077
- if (error.graphQLErrors && _Array$isArray__default["default"](error.graphQLErrors)) {
1078
- const hasUnauthorizedError = getHasUnauthorizedError(error.graphQLErrors);
1079
- const hasUserBeenDeletedError = getHasUserBeenDeletedError(error.graphQLErrors);
1080
- if (hasUnauthorizedError || hasUserBeenDeletedError) {
1081
- let logoutReason;
1082
- if (hasUnauthorizedError) logoutReason = constants.LOGOUT_REASONS.UNAUTHORIZED;else if (hasUserBeenDeletedError) logoutReason = constants.LOGOUT_REASONS.DELETED;
1083
- return jsxRuntime.jsx(RedirectToLogout, {
1084
- reason: logoutReason
1085
- });
1086
- }
1087
- }
1088
- // Since we do not know the locale of the user, we pick it from the
1089
- // user's browser to attempt to match the language for the correct translations.
1090
- const userLocale = getBrowserLocale(window);
1091
- return jsxRuntime.jsx(i18n.AsyncLocaleData, {
1092
- locale: userLocale,
1093
- applicationMessages: props.applicationMessages,
1094
- children: _ref4 => {
1095
- let locale = _ref4.locale,
1096
- messages = _ref4.messages;
1097
- sentry.reportErrorToSentry(error, {});
1098
- return jsxRuntime.jsx(ConfigureIntlProvider, {
1099
- locale: locale,
1100
- messages: messages,
1101
- children: jsxRuntime.jsx(ErrorApologizer, {})
1102
- });
1103
- }
1104
- });
1105
- }
1106
- const projectKeyFromUrl = applicationShellConnectors.selectProjectKeyFromUrl(location.pathname);
1107
- return jsxRuntime.jsx(applicationShellConnectors.ApplicationContextProvider, {
1108
- user: user,
1109
- environment: applicationEnvironment,
1110
- children: jsxRuntime.jsx(i18n.AsyncLocaleData, {
1111
- locale: user === null || user === void 0 ? void 0 : user.language,
1112
- applicationMessages: props.applicationMessages,
1113
- children: _ref5 => {
1114
- let isLoadingLocaleData = _ref5.isLoading,
1115
- locale = _ref5.locale,
1116
- messages = _ref5.messages;
1117
- return jsxRuntime.jsx(ConfigureIntlProvider
1118
- // We do not want to pass the language as long as the locale data
1119
- // is not loaded.
1120
- , _objectSpread$5(_objectSpread$5({}, isLoadingLocaleData ? {} : {
1121
- locale,
1122
- messages
1123
- }), {}, {
1124
- children: jsxRuntime.jsx(SetupFlopFlipProvider, {
1125
- user: user,
1126
- projectKey: projectKeyFromUrl,
1127
- ldClientSideId: applicationEnvironment.ldClientSideId,
1128
- flags: props.featureFlags,
1129
- defaultFlags: props.defaultFeatureFlags,
1130
- children: jsxRuntime.jsx(NewMainNavigationFlagWrapper, {
1131
- children: _ref6 => {
1132
- let isNewNavigationEnabled = _ref6.isNewNavigationEnabled,
1133
- isNewNavigationEnabledEvaluationReady = _ref6.isNewNavigationEnabledEvaluationReady;
1134
- return jsxRuntime.jsxs(jsxRuntime.Fragment, {
1135
- children: [jsxRuntime.jsx(ThemeSwitcher, {}), jsxRuntime.jsx(VersionTracker, {}), jsxRuntime.jsx(RequestsInFlightLoader, {}), jsxRuntime.jsx(sentry.SentryUserTracker, {
1136
- user: user !== null && user !== void 0 ? user : undefined
1137
- }), jsxRuntime.jsxs("div", {
1138
- css: /*#__PURE__*/react$1.css("height:100vh;display:grid;grid-template-rows:auto ", oidc.DIMENSIONS.header, " 1fr;grid-template-columns:min-content 1fr;" + (process.env.NODE_ENV === "production" ? "" : ";label:ApplicationShellAuthenticated;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLXNoZWxsLWF1dGhlbnRpY2F0ZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVPc0MiLCJmaWxlIjoiYXBwbGljYXRpb24tc2hlbGwtYXV0aGVudGljYXRlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIFJlYWN0Tm9kZSxcbiAgdHlwZSBSZWZPYmplY3QsXG4gIHR5cGUgU3ludGhldGljRXZlbnQsXG4gIHVzZVJlZixcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHR5cGUgeyBBcG9sbG9FcnJvciB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2Vycm9ycyc7XG5pbXBvcnQgdHlwZSB7IFRGbGFncyB9IGZyb20gJ0BmbG9wZmxpcC90eXBlcyc7XG5pbXBvcnQgeyBSZWRpcmVjdCwgUm91dGUsIFN3aXRjaCwgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IFBvcnRhbHNDb250YWluZXIgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyLFxuICBzZWxlY3RQcm9qZWN0S2V5RnJvbVVybCxcbiAgdXNlQXBwbGljYXRpb25Db250ZXh0LFxuICB0eXBlIFRBcHBsaWNhdGlvbkNvbnRleHQsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRE9NQUlOUywgTE9HT1VUX1JFQVNPTlMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUgeyBUQXN5bmNMb2NhbGVEYXRhUHJvcHMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9pMThuJztcbmltcG9ydCB7IEFzeW5jTG9jYWxlRGF0YSB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2kxOG4nO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uc0xpc3QgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9yZWFjdC1ub3RpZmljYXRpb25zJztcbmltcG9ydCB7XG4gIHJlcG9ydEVycm9yVG9TZW50cnksXG4gIFNlbnRyeVVzZXJUcmFja2VyLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9zZW50cnknO1xuaW1wb3J0IHsgRElNRU5TSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRQcmV2aW91c1Byb2plY3RLZXkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgQXBwQmFyIGZyb20gJy4uL2FwcC1iYXInO1xuaW1wb3J0IEFwcGxpY2F0aW9uTG9hZGVyIGZyb20gJy4uL2FwcGxpY2F0aW9uLWxvYWRlcic7XG5pbXBvcnQgeyBnZXRCcm93c2VyTG9jYWxlIH0gZnJvbSAnLi4vYXBwbGljYXRpb24tc2hlbGwtcHJvdmlkZXIvdXRpbHMnO1xuaW1wb3J0IENvbmZpZ3VyZUludGxQcm92aWRlciBmcm9tICcuLi9jb25maWd1cmUtaW50bC1wcm92aWRlcic7XG5pbXBvcnQgRXJyb3JBcG9sb2dpemVyIGZyb20gJy4uL2Vycm9yLWFwb2xvZ2l6ZXInO1xuaW1wb3J0IEZldGNoUHJvamVjdCBmcm9tICcuLi9mZXRjaC1wcm9qZWN0JztcbmltcG9ydCBGZXRjaFVzZXIgZnJvbSAnLi4vZmV0Y2gtdXNlcic7XG5pbXBvcnQgTmF2QmFyIGZyb20gJy4uL25hdmJhcic7XG5pbXBvcnQgUHJvamVjdENvbnRhaW5lciBmcm9tICcuLi9wcm9qZWN0LWNvbnRhaW5lcic7XG5pbXBvcnQgUHJvamVjdERhdGFMb2NhbGUgZnJvbSAnLi4vcHJvamVjdC1kYXRhLWxvY2FsZSc7XG5pbXBvcnQgUXVpY2tBY2Nlc3MgZnJvbSAnLi4vcXVpY2stYWNjZXNzJztcbmltcG9ydCBSZWRpcmVjdFRvTG9nb3V0IGZyb20gJy4uL3JlZGlyZWN0LXRvLWxvZ291dCc7XG5pbXBvcnQgUmVkaXJlY3RUb1Byb2plY3RDcmVhdGUgZnJvbSAnLi4vcmVkaXJlY3QtdG8tcHJvamVjdC1jcmVhdGUnO1xuaW1wb3J0IFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgZnJvbSAnLi4vcmVxdWVzdHMtaW4tZmxpZ2h0LWxvYWRlcic7XG5pbXBvcnQgUm91dGVDYXRjaEFsbCBmcm9tICcuLi9yb3V0ZS1jYXRjaC1hbGwnO1xuaW1wb3J0IFNldHVwRmxvcEZsaXBQcm92aWRlciBmcm9tICcuLi9zZXR1cC1mbG9wLWZsaXAtcHJvdmlkZXInO1xuaW1wb3J0IFRoZW1lU3dpdGNoZXIgZnJvbSAnLi4vdGhlbWUtc3dpdGNoZXInO1xuaW1wb3J0IFZlcnNpb25UcmFja2VyIGZyb20gJy4uL3ZlcnNpb24tdHJhY2tlcic7XG5pbXBvcnQgTmV3TWFpbk5hdmlnYXRpb25GbGFnV3JhcHBlciBmcm9tICcuL25ldy1tYWluLW5hdmlnYXRpb24tZmxhZy13cmFwcGVyJztcblxudHlwZSBUQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0aW9uUHJvcHMgPSB7XG4gIGZlYXR1cmVGbGFncz86IFRGbGFncztcbiAgZGVmYXVsdEZlYXR1cmVGbGFncz86IFRGbGFncztcbiAgYXBwbGljYXRpb25NZXNzYWdlczogVEFzeW5jTG9jYWxlRGF0YVByb3BzWydhcHBsaWNhdGlvbk1lc3NhZ2VzJ107XG4gIG9uTWVudUl0ZW1DbGljaz86IChldmVudDogU3ludGhldGljRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQ+KSA9PiB2b2lkO1xuICBkaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2s/OiBib29sZWFuO1xuICByZW5kZXI/OiAoKSA9PiBKU1guRWxlbWVudDtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG59O1xuXG50eXBlIE1haW5Db250YWluZXJQcm9wcyA9IHtcbiAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZDogYm9vbGVhbjtcbn07XG5cbmNvbnN0IGdldEhhc1VuYXV0aG9yaXplZEVycm9yID0gKGdyYXBoUUxFcnJvcnM6IEFwb2xsb0Vycm9yWydncmFwaFFMRXJyb3JzJ10pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5leHRlbnNpb25zICYmXG4gICAgICBncWxFcnJvci5leHRlbnNpb25zLmNvZGUgJiZcbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMuY29kZSA9PT0gJ1VOQVVUSEVOVElDQVRFRCdcbiAgKTtcbmNvbnN0IGdldEhhc1VzZXJCZWVuRGVsZXRlZEVycm9yID0gKFxuICBncmFwaFFMRXJyb3JzOiBBcG9sbG9FcnJvclsnZ3JhcGhRTEVycm9ycyddXG4pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5tZXNzYWdlICYmXG4gICAgICAvLyBOT1RFOiBUaGUgQ1RQIEFQSSBkb2VzIG5vdCBwcm92aWRlIGFuIGVycm9yIGNvZGUgaW4gdGhpcyBjYXNlLlxuICAgICAgZ3FsRXJyb3IubWVzc2FnZS5pbmNsdWRlcygnd2FzIG5vdCBmb3VuZC4nKVxuICApO1xuXG5leHBvcnQgY29uc3QgTWFpbkNvbnRhaW5lciA9IHN0eWxlZC5tYWluPE1haW5Db250YWluZXJQcm9wcz5gXG4gICR7KHByb3BzKSA9PlxuICAgIHByb3BzLmlzTmV3TmF2aWdhdGlvbkVuYWJsZWRcbiAgICAgID8gYFxuICAgICAgICBncmlkLWNvbHVtbjogMi8zO1xuICAgICAgICBncmlkLXJvdzogMy80O1xuICAgICAgYFxuICAgICAgOiBgXG4gICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICBncmlkLXJvdzogMztcbiAgICAgIGB9O1xuXG4gIC8qXG4gICAgQWxsb3cgdGhlIHRoaXMgZmxleCBjaGlsZCB0byBncm93IHNtYWxsZXIgdGhhbiBpdHMgc21hbGxlc3QgY29udGVudC5cbiAgICBUaGlzIGlzIG5lZWRlZCB3aGVuIHRoZXJlIGlzIGEgcmVhbGx5IHdpZGUgdGV4dCBpbnNpZGUgdGhhdCB3b3VsZCBzdHJldGNoXG4gICAgdGhpcyBub2RlIHRvIGJlIHdpZGVyIHRoYW4gdGhlIHBhcmVudC5cbiAgKi9cbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcblxuICAvKlxuICAgIGxheW91dCB0aGUgY2hpbGRyZW4uIFRoZXJlIHdpbGwgYWx3YXlzIGJlIHRoZSBwYWdlIGFuZCBzaWRlIG5vdGlmaWNhdGlvblxuICAgIGFib3V0IHRoZSBhY3R1YWwgY29udGVudC4gVGhlIGNvbnRlbnQgc2hvdWxkIHN0cmV0Y2ggdG8gZmlsbCB0aGUgcmVzdCBvZlxuICAgIHRoZSBwYWdlLlxuICAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIC8qXG4gICAgc2V0IHBvc2l0aW9uIHRvIHJlbGF0aXZlIHRvIGxheW91dCBub3RpZmljYXRpb25zIGFuZCBtb2RhbHNcbiAgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpcyByZW5kZXJlZCB3aGVuZXZlciB0aGUgdXNlciBpcyBjb25zaWRlcmVkIFwiYXV0aGVudGljYXRlZFwiXG4gKiBhbmQgY29udGFpbnMgdGhlIFwicmVzdHJpY3RlZFwiIGFwcGxpY2F0aW9uIHBhcnQuXG4gKi9cblxuZXhwb3J0IGNvbnN0IEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkID0gKFxuICBwcm9wczogVEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGlvblByb3BzXG4pID0+IHtcbiAgY29uc3QgYXBwbGljYXRpb25FbnZpcm9ubWVudCA9IHVzZUFwcGxpY2F0aW9uQ29udGV4dChcbiAgICAoY29udGV4dCkgPT4gY29udGV4dC5lbnZpcm9ubWVudFxuICApIGFzIFRBcHBsaWNhdGlvbkNvbnRleHQ8e30+WydlbnZpcm9ubWVudCddO1xuICAvLyBUT0RPOiB1c2luZyB0aGlzIGhvb2sgd2lsbCBzdWJzY3JpYmUgdGhlIGNvbXBvbmVudCB0byByb3V0ZSB1cGRhdGVzLlxuICAvLyBUaGlzIGlzIGN1cnJlbnRseSB1c2VmdWwgZm9yIGRldGVjdGluZyBhIGNoYW5nZSBpbiB0aGUgcHJvamVjdCBrZXlcbiAgLy8gZnJvbSBVUkwgKFwiL1wiIC0tPiBcIi86cHJvamVjdEtleVwiKS5cbiAgLy8gSG93ZXZlciwgZXZlcnkgcm91dGUgY2hhbmdlIHdpbGwgdHJpZ2dlciBhIHJlLXJlbmRlci4gVGhpcyBpcyBwcm9iYWJseVxuICAvLyBvay1pc2ggYnV0IHdlIG1pZ2h0IHdhbnQgdG8gbG9vayBpbnRvIGEgbW9yZSBwZXJmb3JtYW50IHNvbHV0aW9uLlxuICBjb25zdCBsb2NhdGlvbiA9IHVzZUxvY2F0aW9uKCk7XG5cbiAgY29uc3Qgbm90aWZpY2F0aW9uc0dsb2JhbFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IG5vdGlmaWNhdGlvbnNQYWdlUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3QgbGF5b3V0UmVmcyA9IHVzZVJlZjx7XG4gICAgbm90aWZpY2F0aW9uc0dsb2JhbFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgICBub3RpZmljYXRpb25zUGFnZVJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgfT4oe1xuICAgIG5vdGlmaWNhdGlvbnNHbG9iYWxSZWYsXG4gICAgbm90aWZpY2F0aW9uc1BhZ2VSZWYsXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPEZldGNoVXNlcj5cbiAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ1VzZXIsIHVzZXIsIGVycm9yIH0pID0+IHtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgLy8gSW4gY2FzZSB0aGVyZSBpcyBhbiB1bmF1dGhvcml6ZWQgZXJyb3IsIHdlIHJlZGlyZWN0IHRvIHRoZSBsb2dpbiBwYWdlXG4gICAgICAgICAgaWYgKGVycm9yLmdyYXBoUUxFcnJvcnMgJiYgQXJyYXkuaXNBcnJheShlcnJvci5ncmFwaFFMRXJyb3JzKSkge1xuICAgICAgICAgICAgY29uc3QgaGFzVW5hdXRob3JpemVkRXJyb3IgPSBnZXRIYXNVbmF1dGhvcml6ZWRFcnJvcihcbiAgICAgICAgICAgICAgZXJyb3IuZ3JhcGhRTEVycm9yc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yID0gZ2V0SGFzVXNlckJlZW5EZWxldGVkRXJyb3IoXG4gICAgICAgICAgICAgIGVycm9yLmdyYXBoUUxFcnJvcnNcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChoYXNVbmF1dGhvcml6ZWRFcnJvciB8fCBoYXNVc2VyQmVlbkRlbGV0ZWRFcnJvcikge1xuICAgICAgICAgICAgICBsZXQgbG9nb3V0UmVhc29uOlxuICAgICAgICAgICAgICAgIHwgKHR5cGVvZiBMT0dPVVRfUkVBU09OUylba2V5b2YgdHlwZW9mIExPR09VVF9SRUFTT05TXVxuICAgICAgICAgICAgICAgIHwgdW5kZWZpbmVkO1xuICAgICAgICAgICAgICBpZiAoaGFzVW5hdXRob3JpemVkRXJyb3IpXG4gICAgICAgICAgICAgICAgbG9nb3V0UmVhc29uID0gTE9HT1VUX1JFQVNPTlMuVU5BVVRIT1JJWkVEO1xuICAgICAgICAgICAgICBlbHNlIGlmIChoYXNVc2VyQmVlbkRlbGV0ZWRFcnJvcilcbiAgICAgICAgICAgICAgICBsb2dvdXRSZWFzb24gPSBMT0dPVVRfUkVBU09OUy5ERUxFVEVEO1xuICAgICAgICAgICAgICByZXR1cm4gPFJlZGlyZWN0VG9Mb2dvdXQgcmVhc29uPXtsb2dvdXRSZWFzb259IC8+O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBTaW5jZSB3ZSBkbyBub3Qga25vdyB0aGUgbG9jYWxlIG9mIHRoZSB1c2VyLCB3ZSBwaWNrIGl0IGZyb20gdGhlXG4gICAgICAgICAgLy8gdXNlcidzIGJyb3dzZXIgdG8gYXR0ZW1wdCB0byBtYXRjaCB0aGUgbGFuZ3VhZ2UgZm9yIHRoZSBjb3JyZWN0IHRyYW5zbGF0aW9ucy5cbiAgICAgICAgICBjb25zdCB1c2VyTG9jYWxlID0gZ2V0QnJvd3NlckxvY2FsZSh3aW5kb3cpO1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8QXN5bmNMb2NhbGVEYXRhXG4gICAgICAgICAgICAgIGxvY2FsZT17dXNlckxvY2FsZX1cbiAgICAgICAgICAgICAgYXBwbGljYXRpb25NZXNzYWdlcz17cHJvcHMuYXBwbGljYXRpb25NZXNzYWdlc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgeyh7IGxvY2FsZSwgbWVzc2FnZXMgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yVG9TZW50cnkoZXJyb3IsIHt9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPENvbmZpZ3VyZUludGxQcm92aWRlciBsb2NhbGU9e2xvY2FsZX0gbWVzc2FnZXM9e21lc3NhZ2VzfT5cbiAgICAgICAgICAgICAgICAgICAgPEVycm9yQXBvbG9naXplciAvPlxuICAgICAgICAgICAgICAgICAgPC9Db25maWd1cmVJbnRsUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvQXN5bmNMb2NhbGVEYXRhPlxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwcm9qZWN0S2V5RnJvbVVybCA9IHNlbGVjdFByb2plY3RLZXlGcm9tVXJsKGxvY2F0aW9uLnBhdGhuYW1lKTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8QXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXJcbiAgICAgICAgICAgIHVzZXI9e3VzZXJ9XG4gICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7LypcbiAgICAgICAgICAgIE5PVEU6IHdlIGRvIG5vdCB3YW50IHRvIGxvYWQgdGhlIGxvY2FsZSBkYXRhIGFzIGxvbmcgYXMgd2UgZG8gbm90XG4gICAgICAgICAgICBrbm93IHRoZSB1c2VyIHNldHRpbmcuIFRoaXMgaXMgaW1wb3J0YW50IGluIG9yZGVyIHRvIGF2b2lkIGZsYXNoaW5nXG4gICAgICAgICAgICBvZiB0cmFuc2xhdGVkIGNvbnRlbnQgb24gc3Vic2VxdWVudCByZS1yZW5kZXJzLlxuICAgICAgICAgICAgVGhlcmVmb3JlLCBhcyBsb25nIGFzIHRoZXJlIGlzIG5vIGxvY2FsZSwgdGhlIGNoaWxkcmVuIHNob3VsZCBjb25zaWRlciB1c2luZyB0aGVcbiAgICAgICAgICAgIGBpc0xvYWRpbmdgIHByb3AgdG8gZGVjaWRlIHdoYXQgdG8gcmVuZGVyLlxuICAgICAgICAgICovfVxuICAgICAgICAgICAgPEFzeW5jTG9jYWxlRGF0YVxuICAgICAgICAgICAgICBsb2NhbGU9e3VzZXI/Lmxhbmd1YWdlfVxuICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1lc3NhZ2VzPXtwcm9wcy5hcHBsaWNhdGlvbk1lc3NhZ2VzfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7KHsgaXNMb2FkaW5nOiBpc0xvYWRpbmdMb2NhbGVEYXRhLCBsb2NhbGUsIG1lc3NhZ2VzIH0pID0+IChcbiAgICAgICAgICAgICAgICA8Q29uZmlndXJlSW50bFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAvLyBXZSBkbyBub3Qgd2FudCB0byBwYXNzIHRoZSBsYW5ndWFnZSBhcyBsb25nIGFzIHRoZSBsb2NhbGUgZGF0YVxuICAgICAgICAgICAgICAgICAgLy8gaXMgbm90IGxvYWRlZC5cbiAgICAgICAgICAgICAgICAgIHsuLi4oaXNMb2FkaW5nTG9jYWxlRGF0YSA/IHt9IDogeyBsb2NhbGUsIG1lc3NhZ2VzIH0pfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTZXR1cEZsb3BGbGlwUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleT17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgIGxkQ2xpZW50U2lkZUlkPXthcHBsaWNhdGlvbkVudmlyb25tZW50LmxkQ2xpZW50U2lkZUlkfVxuICAgICAgICAgICAgICAgICAgICBmbGFncz17cHJvcHMuZmVhdHVyZUZsYWdzfVxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0RmxhZ3M9e3Byb3BzLmRlZmF1bHRGZWF0dXJlRmxhZ3N9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHsvKiBUaGlzIGlzIGEgdGVtcG9yYXJ5IGNvbnRhaW5lci4gSXQgd2lsbCBiZSByZW1vdmVkIG9uY2UgdGhlIG5ldyBuYXZpZ2F0aW9uIGlzIGVuYWJsZWQgYnkgZGVmYXVsdC4gKi99XG4gICAgICAgICAgICAgICAgICAgIDxOZXdNYWluTmF2aWdhdGlvbkZsYWdXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgIHsoe1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV3TmF2aWdhdGlvbkVuYWJsZWRFdmFsdWF0aW9uUmVhZHksXG4gICAgICAgICAgICAgICAgICAgICAgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGhlbWVTd2l0Y2hlciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxWZXJzaW9uVHJhY2tlciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBOT1RFOiB0aGUgcmVxdWVzdHMgaW4gZmxpZ2h0IGxvYWRlciB3aWxsIHJlbmRlciBhIGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGlubmVyIGludG8gdGhlIEFwcEJhci4gKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VudHJ5VXNlclRyYWNrZXIgdXNlcj17dXNlciA/PyB1bmRlZmluZWR9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAke0RJTUVOU0lPTlMuaGVhZGVyfSAxZnI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWluLWNvbnRlbnQgMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17bm90aWZpY2F0aW9uc0dsb2JhbFJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxLzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJhYm92ZS10b3AtbmF2aWdhdGlvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuR0xPQkFMfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxRdWlja0FjY2VzcyAvPjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZldGNoUHJvamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBpc1Byb2plY3RMb2FkaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNQcm9qZWN0TG9hZGluZyB8fCAhcHJvamVjdClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB1c2VkIG91dHNpZGUgb2YgYSBwcm9qZWN0IGNvbnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3Igd2hlbiB0aGUgcHJvamVjdCBpcyBleHBpcmVkIG9yIHN1cHNlbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNob3VsZFVzZVByb2plY3RDb250ZXh0ID0gIShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9qZWN0LnN1c3BlbnNpb24gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb2plY3QuZXhwaXJ5ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFVzZVByb2plY3RDb250ZXh0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxRdWlja0FjY2VzcyAvPjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvamVjdERhdGFMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlcz17cHJvamVjdC5sYW5ndWFnZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZTogZGF0YUxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0RGF0YUxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9e3Byb2plY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0RGF0YUxvY2FsZT17ZGF0YUxvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25FbnZpcm9ubWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxRdWlja0FjY2Vzc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZVByb2plY3REYXRhTG9jYWxlPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0RGF0YUxvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Byb2plY3REYXRhTG9jYWxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZldGNoUHJvamVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6ICR7aXNOZXdOYXZpZ2F0aW9uRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnMi8zJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMid9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAke2lzTmV3TmF2aWdhdGlvbkVuYWJsZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJzIvMydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJzEvMyd9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXBwQmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybD17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ld05hdmlnYXRpb25FbmFibGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oZWFkZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhc2lkZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2lzTmV3TmF2aWdhdGlvbkVuYWJsZWQgPT09IGZhbHNlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2lzTmV3TmF2aWdhdGlvbkVuYWJsZWQgPT09IHRydWUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgZ3JpZC1jb2x1bW46IDEvMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAyLzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO2B9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSA8TmF2QmFyPiBzaG91bGQgb25seSBiZSByZW5kZXJlZCB3aXRoaW4gYSBwcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGV4dCwgdGhlcmVmb3JlIHdoZW4gdGhlcmUgaXMgYSBgcHJvamVjdEtleWAuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gYHByb2plY3RLZXlgIGluIHRoZSBVUkwgKGUuZy4gYC9hY2NvdW50YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvdXRlcyksIHdlIGRvbid0IHJlbmRlciBpdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiB3ZSBhbHNvIFwiY2FjaGVcIiB0aGUgYHByb2plY3RLZXlgIGluIGxvY2FsU3RvcmFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCB0aGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgdG8gXCJyZS1oeWRyYXRlXCIgdGhlIFVSTFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvY2F0aW9uIChlLmcgd2hlbiB5b3UgZ28gdG8gYC9gLCB0aGVyZSBzaG91bGQgYmUgYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZGlyZWN0IHRvIGAvOnByb2plY3RLZXlgKS4gVGhlcmVmb3JlLCB3ZSBzaG91bGQgbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVseSBvbiB0aGUgdmFsdWUgaW4gbG9jYWxTdG9yYWdlIHRvIGRldGVybWluZSB3aGljaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBwcm9qZWN0S2V5YCBpcyBjdXJyZW50bHkgdXNlZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZldGNoUHJvamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBpc0xvYWRpbmdQcm9qZWN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0xvYWRpbmcgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nVXNlciB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nTG9jYWxlRGF0YSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nUHJvamVjdCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWxvY2FsZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXByb2plY3Q7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9e3VzZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiBkbyBub3QgcGFzcyB0aGUgYHByb2plY3RgIGludG8gdGhlIGFwcGxpY2F0aW9uIGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBwZXJtaXNzaW9ucyBmb3IgdGhlIE5hdmJhciBhcmUgcmVzb2x2ZWQgc2VwYXJhdGVseSwgd2l0aGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGEgZGlmZmVyZW50IFJlYWN0IGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOYXZCYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbkxvY2FsZT17bG9jYWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXk9e3Byb2plY3RLZXlGcm9tVXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9e3Byb2plY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25FbnZpcm9ubWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbk1lbnVJdGVtQ2xpY2s9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMub25NZW51SXRlbUNsaWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV3TmF2aWdhdGlvbkVuYWJsZWQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ld05hdmlnYXRpb25FbmFibGVkRXZhbHVhdGlvblJlYWR5PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV3TmF2aWdhdGlvbkVuYWJsZWRFdmFsdWF0aW9uUmVhZHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZldGNoUHJvamVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hc2lkZT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lzTG9hZGluZ1VzZXIgfHwgaXNMb2FkaW5nTG9jYWxlRGF0YSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1haW5Db250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ld05hdmlnYXRpb25FbmFibGVkPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV3TmF2aWdhdGlvbkVuYWJsZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cIm1haW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uTG9hZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ld05hdmlnYXRpb25FbmFibGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJtYWluXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgcmVmPXtub3RpZmljYXRpb25zUGFnZVJlZn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3QgZG9tYWluPXtET01BSU5TLlBBR0V9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE5vdGlmaWNhdGlvbnNMaXN0IGRvbWFpbj17RE9NQUlOUy5TSURFfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGlzIG9ubHkgbmVjZXNzYXJ5IGJlY2F1c2Ugd2UgaGF2ZSBhbiBpbnRlcm1lZGlhcnkgPGRpdj4gd3JhcHBpbmcgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxWaWV3PiBjb21wb25lbnQgdGhhdCBpcyB1c2VkIHRvIHdyYXAgZXZlcnkgY29udGVudC12aWV3LiBUaGlzIGludGVybWVkaWFyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PiBpcyBzb2xlbHkgdXNlZCBmb3IgYWRkaW5nIHRoZSB0cmFja2luZyBjb250ZXh0IHRvIHRoZSBjb250ZW50LXZpZXcuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhvd2V2ZXIsIHRoaXMgY291bGQgYmUgZG9uZSBieSBwYXNzaW5nIHRoZSB0cmFja2luZyBjb250ZXh0IHRvIHRoZSA8Vmlldz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGxldCBpdCBkbyB0aGUgbGF5b3V0LCBzbyB3ZSBjYW4gYXZvaWQgbGF5aW5nIG91ciBmcm9tIHRoZSBvdXRzaWRlIGFzIHdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvIGhlcmUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+ICo6bm90KDpmaXJzdC1vZi10eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UG9ydGFsc0NvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17bGF5b3V0UmVmc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0VG9wPXtESU1FTlNJT05TLmhlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0TGVmdD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleUZyb21VcmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IERJTUVOU0lPTlMubmV3TmF2TWVudVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IERJTUVOU0lPTlMubmF2TWVudVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldExlZnRPbkV4cGFuZGVkTWVudT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleUZyb21VcmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IERJTUVOU0lPTlMubmV3TmF2TWVudUV4cGFuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogRElNRU5TSU9OUy5uYXZNZW51RXhwYW5kZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJzBweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTd2l0Y2g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb209XCIvcHJvZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG89XCIvYWNjb3VudC9wcm9maWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlIHBhdGg9XCIvYWNjb3VudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSW4gY2FzZSB0aGUgQXBwU2hlbGwgdXNlcyB0aGUgYHJlbmRlcmAgZnVuY3Rpb24sIHdlIGFzc3VtZSBpdCdzIG9uZSBvZiB0d28gY2FzZXM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAxLiBUaGUgYXBwbGljYXRpb24gZG9lcyBub3QgdXNlIGBjaGlsZHJlbmAgYW5kIHRoZXJlZm9yZSBpbXBsZW1lbnRzIHRoZSByb3V0ZXMgaW5jbHVkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgPFJvdXRlQ2F0Y2hBbGw+ICh0aGlzIGlzIHRoZSBcImxlZ2FjeVwiIGJlaGF2aW9yKS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIDIuIEl0J3MgdGhlIGFjY291bnQgYXBwbGljYXRpb24sIHdoaWNoIGFsd2F5cyB1c2VzIGByZW5kZXJgIGFuZCB0aGVyZWZvcmUgc2hvdWxkIHJlbmRlciBhcyBub3JtYWwuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSW4gY2FzZSB0aGUgQXBwU2hlbGwgdXNlcyB0aGUgYGNoaWxkcmVuYCBmdW5jdGlvbiwgd2UgY2FuIGFsd2F5cyBhc3N1bWUgdGhhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaXQncyBhIG5vcm1hbCBDdXN0b20gQXBwbGljYXRpb24gYW5kIHRoYXQgaXQgc2hvdWxkIHRyaWdnZXIgYSBmb3JjZSByZWxvYWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLnJlbmRlciA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD57cHJvcHMucmVuZGVyKCl9PC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGVDYXRjaEFsbCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIFByb2plY3Qgcm91dGVzICovfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGUgZXhhY3Q9e3RydWV9IHBhdGg9XCIvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c1Byb2plY3RLZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRQcmV2aW91c1Byb2plY3RLZXkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj8uZGVmYXVsdFByb2plY3RLZXkgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIE5PVEU6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIEdpdmVuIHRoZSB1c2VyIGhhcyBub3QgYmVlbiBsb2FkZWQgYSBsb2FkaW5nIHNwaW5uZXIgaXMgc2hvd24uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIEdpdmVuIHRoZSB1c2VyIHdhcyBub3Qgd29ya2luZyBvbiBhIHByb2plY3QgcHJldmlvdXNseSBub3IgaGFzIGEgZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBwcm9qZWN0LCB0aGUgdXNlciB3aWxsIGJlIHByb21wdGVkIHRvIGNyZWF0ZSBvbmUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIEdpdmVuIHRoZSB1c2VyIHdhcyB3b3JraW5nIG9uIGEgcHJvamVjdCBwcmV2aW91c2x5IG9yIGhhcyBhIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgcHJvamVjdCwgdGhlIGFwcGxpY2F0aW9uIHdpbGwgcmVkaXJlY3QgdG8gdGhhdCBwcm9qZWN0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXVzZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8QXBwbGljYXRpb25Mb2FkZXIgLz47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByZXZpb3VzUHJvamVjdEtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxSZWRpcmVjdFRvUHJvamVjdENyZWF0ZSAvPjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvPXtgLyR7cHJldmlvdXNQcm9qZWN0S2V5fWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZSBleGFjdD17ZmFsc2V9IHBhdGg9XCIvOnByb2plY3RLZXlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvamVjdENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZVJvdXRlUGVybWlzc2lvbkNoZWNrPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuZGlzYWJsZVJvdXRlUGVybWlzc2lvbkNoZWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGVmZmVjdGl2ZWx5IHJlbmRlcnMgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGlsZHJlbiwgd2hpY2ggaXMgdGhlIGFwcGxpY2F0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzcGVjaWZpYyBwYXJ0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXI9e3Byb3BzLnJlbmRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Qcm9qZWN0Q29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JvdXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Td2l0Y2g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA8L05ld01haW5OYXZpZ2F0aW9uRmxhZ1dyYXBwZXI+XG4gICAgICAgICAgICAgICAgICA8L1NldHVwRmxvcEZsaXBQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L0NvbmZpZ3VyZUludGxQcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvQXN5bmNMb2NhbGVEYXRhPlxuICAgICAgICAgIDwvQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXI+XG4gICAgICAgICk7XG4gICAgICB9fVxuICAgIDwvRmV0Y2hVc2VyPlxuICApO1xufTtcbkFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkLmRpc3BsYXlOYW1lID0gJ0FwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkJztcblxuZXhwb3J0IGRlZmF1bHQgQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQ7XG4iXX0= */"),
1139
- children: [jsxRuntime.jsxs("div", {
1140
- ref: notificationsGlobalRef,
1141
- role: "region",
1142
- "aria-live": "polite",
1143
- css: _ref2,
1144
- children: [jsxRuntime.jsx("div", {
1145
- id: "above-top-navigation"
1146
- }), jsxRuntime.jsx(reactNotifications.NotificationsList, {
1147
- domain: constants.DOMAINS.GLOBAL
1148
- })]
1149
- }), jsxRuntime.jsx(reactRouterDom.Route, {
1150
- children: () => {
1151
- if (!projectKeyFromUrl) return jsxRuntime.jsx(QuickAccessTrigger, {});
1152
- return jsxRuntime.jsx(FetchProject, {
1153
- projectKey: projectKeyFromUrl,
1154
- children: _ref7 => {
1155
- let isProjectLoading = _ref7.isLoading,
1156
- project = _ref7.project;
1157
- if (isProjectLoading || !project) return null;
1158
-
1159
- // when used outside of a project context,
1160
- // or when the project is expired or supsended
1161
- const shouldUseProjectContext = !(project.suspension && project.suspension.isActive || project.expiry && project.expiry.isActive);
1162
- if (!shouldUseProjectContext) return jsxRuntime.jsx(QuickAccessTrigger, {});
1163
- return jsxRuntime.jsx(ProjectDataLocale, {
1164
- locales: project.languages,
1165
- children: _ref8 => {
1166
- let dataLocale = _ref8.locale,
1167
- setProjectDataLocale = _ref8.setProjectDataLocale;
1168
- return jsxRuntime.jsx(applicationShellConnectors.ApplicationContextProvider, {
1169
- user: user,
1170
- project: project,
1171
- projectDataLocale: dataLocale,
1172
- environment: applicationEnvironment,
1173
- children: jsxRuntime.jsx(QuickAccessTrigger, {
1174
- onChangeProjectDataLocale: setProjectDataLocale
1175
- })
1176
- });
1177
- }
1178
- });
1179
- }
1180
- });
1181
- }
1182
- }), jsxRuntime.jsx("header", {
1183
- css: /*#__PURE__*/react$1.css("grid-row:", isNewNavigationEnabled ? '2/3' : '2', ";grid-column:", isNewNavigationEnabled ? '2/3' : '1/3', ";" + (process.env.NODE_ENV === "production" ? "" : ";label:ApplicationShellAuthenticated;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLXNoZWxsLWF1dGhlbnRpY2F0ZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFUd0MiLCJmaWxlIjoiYXBwbGljYXRpb24tc2hlbGwtYXV0aGVudGljYXRlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIFJlYWN0Tm9kZSxcbiAgdHlwZSBSZWZPYmplY3QsXG4gIHR5cGUgU3ludGhldGljRXZlbnQsXG4gIHVzZVJlZixcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHR5cGUgeyBBcG9sbG9FcnJvciB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2Vycm9ycyc7XG5pbXBvcnQgdHlwZSB7IFRGbGFncyB9IGZyb20gJ0BmbG9wZmxpcC90eXBlcyc7XG5pbXBvcnQgeyBSZWRpcmVjdCwgUm91dGUsIFN3aXRjaCwgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IFBvcnRhbHNDb250YWluZXIgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyLFxuICBzZWxlY3RQcm9qZWN0S2V5RnJvbVVybCxcbiAgdXNlQXBwbGljYXRpb25Db250ZXh0LFxuICB0eXBlIFRBcHBsaWNhdGlvbkNvbnRleHQsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRE9NQUlOUywgTE9HT1VUX1JFQVNPTlMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUgeyBUQXN5bmNMb2NhbGVEYXRhUHJvcHMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9pMThuJztcbmltcG9ydCB7IEFzeW5jTG9jYWxlRGF0YSB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2kxOG4nO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uc0xpc3QgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9yZWFjdC1ub3RpZmljYXRpb25zJztcbmltcG9ydCB7XG4gIHJlcG9ydEVycm9yVG9TZW50cnksXG4gIFNlbnRyeVVzZXJUcmFja2VyLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9zZW50cnknO1xuaW1wb3J0IHsgRElNRU5TSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRQcmV2aW91c1Byb2plY3RLZXkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgQXBwQmFyIGZyb20gJy4uL2FwcC1iYXInO1xuaW1wb3J0IEFwcGxpY2F0aW9uTG9hZGVyIGZyb20gJy4uL2FwcGxpY2F0aW9uLWxvYWRlcic7XG5pbXBvcnQgeyBnZXRCcm93c2VyTG9jYWxlIH0gZnJvbSAnLi4vYXBwbGljYXRpb24tc2hlbGwtcHJvdmlkZXIvdXRpbHMnO1xuaW1wb3J0IENvbmZpZ3VyZUludGxQcm92aWRlciBmcm9tICcuLi9jb25maWd1cmUtaW50bC1wcm92aWRlcic7XG5pbXBvcnQgRXJyb3JBcG9sb2dpemVyIGZyb20gJy4uL2Vycm9yLWFwb2xvZ2l6ZXInO1xuaW1wb3J0IEZldGNoUHJvamVjdCBmcm9tICcuLi9mZXRjaC1wcm9qZWN0JztcbmltcG9ydCBGZXRjaFVzZXIgZnJvbSAnLi4vZmV0Y2gtdXNlcic7XG5pbXBvcnQgTmF2QmFyIGZyb20gJy4uL25hdmJhcic7XG5pbXBvcnQgUHJvamVjdENvbnRhaW5lciBmcm9tICcuLi9wcm9qZWN0LWNvbnRhaW5lcic7XG5pbXBvcnQgUHJvamVjdERhdGFMb2NhbGUgZnJvbSAnLi4vcHJvamVjdC1kYXRhLWxvY2FsZSc7XG5pbXBvcnQgUXVpY2tBY2Nlc3MgZnJvbSAnLi4vcXVpY2stYWNjZXNzJztcbmltcG9ydCBSZWRpcmVjdFRvTG9nb3V0IGZyb20gJy4uL3JlZGlyZWN0LXRvLWxvZ291dCc7XG5pbXBvcnQgUmVkaXJlY3RUb1Byb2plY3RDcmVhdGUgZnJvbSAnLi4vcmVkaXJlY3QtdG8tcHJvamVjdC1jcmVhdGUnO1xuaW1wb3J0IFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgZnJvbSAnLi4vcmVxdWVzdHMtaW4tZmxpZ2h0LWxvYWRlcic7XG5pbXBvcnQgUm91dGVDYXRjaEFsbCBmcm9tICcuLi9yb3V0ZS1jYXRjaC1hbGwnO1xuaW1wb3J0IFNldHVwRmxvcEZsaXBQcm92aWRlciBmcm9tICcuLi9zZXR1cC1mbG9wLWZsaXAtcHJvdmlkZXInO1xuaW1wb3J0IFRoZW1lU3dpdGNoZXIgZnJvbSAnLi4vdGhlbWUtc3dpdGNoZXInO1xuaW1wb3J0IFZlcnNpb25UcmFja2VyIGZyb20gJy4uL3ZlcnNpb24tdHJhY2tlcic7XG5pbXBvcnQgTmV3TWFpbk5hdmlnYXRpb25GbGFnV3JhcHBlciBmcm9tICcuL25ldy1tYWluLW5hdmlnYXRpb24tZmxhZy13cmFwcGVyJztcblxudHlwZSBUQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0aW9uUHJvcHMgPSB7XG4gIGZlYXR1cmVGbGFncz86IFRGbGFncztcbiAgZGVmYXVsdEZlYXR1cmVGbGFncz86IFRGbGFncztcbiAgYXBwbGljYXRpb25NZXNzYWdlczogVEFzeW5jTG9jYWxlRGF0YVByb3BzWydhcHBsaWNhdGlvbk1lc3NhZ2VzJ107XG4gIG9uTWVudUl0ZW1DbGljaz86IChldmVudDogU3ludGhldGljRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQ+KSA9PiB2b2lkO1xuICBkaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2s/OiBib29sZWFuO1xuICByZW5kZXI/OiAoKSA9PiBKU1guRWxlbWVudDtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG59O1xuXG50eXBlIE1haW5Db250YWluZXJQcm9wcyA9IHtcbiAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZDogYm9vbGVhbjtcbn07XG5cbmNvbnN0IGdldEhhc1VuYXV0aG9yaXplZEVycm9yID0gKGdyYXBoUUxFcnJvcnM6IEFwb2xsb0Vycm9yWydncmFwaFFMRXJyb3JzJ10pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5leHRlbnNpb25zICYmXG4gICAgICBncWxFcnJvci5leHRlbnNpb25zLmNvZGUgJiZcbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMuY29kZSA9PT0gJ1VOQVVUSEVOVElDQVRFRCdcbiAgKTtcbmNvbnN0IGdldEhhc1VzZXJCZWVuRGVsZXRlZEVycm9yID0gKFxuICBncmFwaFFMRXJyb3JzOiBBcG9sbG9FcnJvclsnZ3JhcGhRTEVycm9ycyddXG4pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5tZXNzYWdlICYmXG4gICAgICAvLyBOT1RFOiBUaGUgQ1RQIEFQSSBkb2VzIG5vdCBwcm92aWRlIGFuIGVycm9yIGNvZGUgaW4gdGhpcyBjYXNlLlxuICAgICAgZ3FsRXJyb3IubWVzc2FnZS5pbmNsdWRlcygnd2FzIG5vdCBmb3VuZC4nKVxuICApO1xuXG5leHBvcnQgY29uc3QgTWFpbkNvbnRhaW5lciA9IHN0eWxlZC5tYWluPE1haW5Db250YWluZXJQcm9wcz5gXG4gICR7KHByb3BzKSA9PlxuICAgIHByb3BzLmlzTmV3TmF2aWdhdGlvbkVuYWJsZWRcbiAgICAgID8gYFxuICAgICAgICBncmlkLWNvbHVtbjogMi8zO1xuICAgICAgICBncmlkLXJvdzogMy80O1xuICAgICAgYFxuICAgICAgOiBgXG4gICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICBncmlkLXJvdzogMztcbiAgICAgIGB9O1xuXG4gIC8qXG4gICAgQWxsb3cgdGhlIHRoaXMgZmxleCBjaGlsZCB0byBncm93IHNtYWxsZXIgdGhhbiBpdHMgc21hbGxlc3QgY29udGVudC5cbiAgICBUaGlzIGlzIG5lZWRlZCB3aGVuIHRoZXJlIGlzIGEgcmVhbGx5IHdpZGUgdGV4dCBpbnNpZGUgdGhhdCB3b3VsZCBzdHJldGNoXG4gICAgdGhpcyBub2RlIHRvIGJlIHdpZGVyIHRoYW4gdGhlIHBhcmVudC5cbiAgKi9cbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcblxuICAvKlxuICAgIGxheW91dCB0aGUgY2hpbGRyZW4uIFRoZXJlIHdpbGwgYWx3YXlzIGJlIHRoZSBwYWdlIGFuZCBzaWRlIG5vdGlmaWNhdGlvblxuICAgIGFib3V0IHRoZSBhY3R1YWwgY29udGVudC4gVGhlIGNvbnRlbnQgc2hvdWxkIHN0cmV0Y2ggdG8gZmlsbCB0aGUgcmVzdCBvZlxuICAgIHRoZSBwYWdlLlxuICAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIC8qXG4gICAgc2V0IHBvc2l0aW9uIHRvIHJlbGF0aXZlIHRvIGxheW91dCBub3RpZmljYXRpb25zIGFuZCBtb2RhbHNcbiAgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpcyByZW5kZXJlZCB3aGVuZXZlciB0aGUgdXNlciBpcyBjb25zaWRlcmVkIFwiYXV0aGVudGljYXRlZFwiXG4gKiBhbmQgY29udGFpbnMgdGhlIFwicmVzdHJpY3RlZFwiIGFwcGxpY2F0aW9uIHBhcnQuXG4gKi9cblxuZXhwb3J0IGNvbnN0IEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkID0gKFxuICBwcm9wczogVEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGlvblByb3BzXG4pID0+IHtcbiAgY29uc3QgYXBwbGljYXRpb25FbnZpcm9ubWVudCA9IHVzZUFwcGxpY2F0aW9uQ29udGV4dChcbiAgICAoY29udGV4dCkgPT4gY29udGV4dC5lbnZpcm9ubWVudFxuICApIGFzIFRBcHBsaWNhdGlvbkNvbnRleHQ8e30+WydlbnZpcm9ubWVudCddO1xuICAvLyBUT0RPOiB1c2luZyB0aGlzIGhvb2sgd2lsbCBzdWJzY3JpYmUgdGhlIGNvbXBvbmVudCB0byByb3V0ZSB1cGRhdGVzLlxuICAvLyBUaGlzIGlzIGN1cnJlbnRseSB1c2VmdWwgZm9yIGRldGVjdGluZyBhIGNoYW5nZSBpbiB0aGUgcHJvamVjdCBrZXlcbiAgLy8gZnJvbSBVUkwgKFwiL1wiIC0tPiBcIi86cHJvamVjdEtleVwiKS5cbiAgLy8gSG93ZXZlciwgZXZlcnkgcm91dGUgY2hhbmdlIHdpbGwgdHJpZ2dlciBhIHJlLXJlbmRlci4gVGhpcyBpcyBwcm9iYWJseVxuICAvLyBvay1pc2ggYnV0IHdlIG1pZ2h0IHdhbnQgdG8gbG9vayBpbnRvIGEgbW9yZSBwZXJmb3JtYW50IHNvbHV0aW9uLlxuICBjb25zdCBsb2NhdGlvbiA9IHVzZUxvY2F0aW9uKCk7XG5cbiAgY29uc3Qgbm90aWZpY2F0aW9uc0dsb2JhbFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IG5vdGlmaWNhdGlvbnNQYWdlUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3QgbGF5b3V0UmVmcyA9IHVzZVJlZjx7XG4gICAgbm90aWZpY2F0aW9uc0dsb2JhbFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgICBub3RpZmljYXRpb25zUGFnZVJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgfT4oe1xuICAgIG5vdGlmaWNhdGlvbnNHbG9iYWxSZWYsXG4gICAgbm90aWZpY2F0aW9uc1BhZ2VSZWYsXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPEZldGNoVXNlcj5cbiAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ1VzZXIsIHVzZXIsIGVycm9yIH0pID0+IHtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgLy8gSW4gY2FzZSB0aGVyZSBpcyBhbiB1bmF1dGhvcml6ZWQgZXJyb3IsIHdlIHJlZGlyZWN0IHRvIHRoZSBsb2dpbiBwYWdlXG4gICAgICAgICAgaWYgKGVycm9yLmdyYXBoUUxFcnJvcnMgJiYgQXJyYXkuaXNBcnJheShlcnJvci5ncmFwaFFMRXJyb3JzKSkge1xuICAgICAgICAgICAgY29uc3QgaGFzVW5hdXRob3JpemVkRXJyb3IgPSBnZXRIYXNVbmF1dGhvcml6ZWRFcnJvcihcbiAgICAgICAgICAgICAgZXJyb3IuZ3JhcGhRTEVycm9yc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yID0gZ2V0SGFzVXNlckJlZW5EZWxldGVkRXJyb3IoXG4gICAgICAgICAgICAgIGVycm9yLmdyYXBoUUxFcnJvcnNcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChoYXNVbmF1dGhvcml6ZWRFcnJvciB8fCBoYXNVc2VyQmVlbkRlbGV0ZWRFcnJvcikge1xuICAgICAgICAgICAgICBsZXQgbG9nb3V0UmVhc29uOlxuICAgICAgICAgICAgICAgIHwgKHR5cGVvZiBMT0dPVVRfUkVBU09OUylba2V5b2YgdHlwZW9mIExPR09VVF9SRUFTT05TXVxuICAgICAgICAgICAgICAgIHwgdW5kZWZpbmVkO1xuICAgICAgICAgICAgICBpZiAoaGFzVW5hdXRob3JpemVkRXJyb3IpXG4gICAgICAgICAgICAgICAgbG9nb3V0UmVhc29uID0gTE9HT1VUX1JFQVNPTlMuVU5BVVRIT1JJWkVEO1xuICAgICAgICAgICAgICBlbHNlIGlmIChoYXNVc2VyQmVlbkRlbGV0ZWRFcnJvcilcbiAgICAgICAgICAgICAgICBsb2dvdXRSZWFzb24gPSBMT0dPVVRfUkVBU09OUy5ERUxFVEVEO1xuICAgICAgICAgICAgICByZXR1cm4gPFJlZGlyZWN0VG9Mb2dvdXQgcmVhc29uPXtsb2dvdXRSZWFzb259IC8+O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBTaW5jZSB3ZSBkbyBub3Qga25vdyB0aGUgbG9jYWxlIG9mIHRoZSB1c2VyLCB3ZSBwaWNrIGl0IGZyb20gdGhlXG4gICAgICAgICAgLy8gdXNlcidzIGJyb3dzZXIgdG8gYXR0ZW1wdCB0byBtYXRjaCB0aGUgbGFuZ3VhZ2UgZm9yIHRoZSBjb3JyZWN0IHRyYW5zbGF0aW9ucy5cbiAgICAgICAgICBjb25zdCB1c2VyTG9jYWxlID0gZ2V0QnJvd3NlckxvY2FsZSh3aW5kb3cpO1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8QXN5bmNMb2NhbGVEYXRhXG4gICAgICAgICAgICAgIGxvY2FsZT17dXNlckxvY2FsZX1cbiAgICAgICAgICAgICAgYXBwbGljYXRpb25NZXNzYWdlcz17cHJvcHMuYXBwbGljYXRpb25NZXNzYWdlc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgeyh7IGxvY2FsZSwgbWVzc2FnZXMgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yVG9TZW50cnkoZXJyb3IsIHt9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPENvbmZpZ3VyZUludGxQcm92aWRlciBsb2NhbGU9e2xvY2FsZX0gbWVzc2FnZXM9e21lc3NhZ2VzfT5cbiAgICAgICAgICAgICAgICAgICAgPEVycm9yQXBvbG9naXplciAvPlxuICAgICAgICAgICAgICAgICAgPC9Db25maWd1cmVJbnRsUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvQXN5bmNMb2NhbGVEYXRhPlxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwcm9qZWN0S2V5RnJvbVVybCA9IHNlbGVjdFByb2plY3RLZXlGcm9tVXJsKGxvY2F0aW9uLnBhdGhuYW1lKTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8QXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXJcbiAgICAgICAgICAgIHVzZXI9e3VzZXJ9XG4gICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7LypcbiAgICAgICAgICAgIE5PVEU6IHdlIGRvIG5vdCB3YW50IHRvIGxvYWQgdGhlIGxvY2FsZSBkYXRhIGFzIGxvbmcgYXMgd2UgZG8gbm90XG4gICAgICAgICAgICBrbm93IHRoZSB1c2VyIHNldHRpbmcuIFRoaXMgaXMgaW1wb3J0YW50IGluIG9yZGVyIHRvIGF2b2lkIGZsYXNoaW5nXG4gICAgICAgICAgICBvZiB0cmFuc2xhdGVkIGNvbnRlbnQgb24gc3Vic2VxdWVudCByZS1yZW5kZXJzLlxuICAgICAgICAgICAgVGhlcmVmb3JlLCBhcyBsb25nIGFzIHRoZXJlIGlzIG5vIGxvY2FsZSwgdGhlIGNoaWxkcmVuIHNob3VsZCBjb25zaWRlciB1c2luZyB0aGVcbiAgICAgICAgICAgIGBpc0xvYWRpbmdgIHByb3AgdG8gZGVjaWRlIHdoYXQgdG8gcmVuZGVyLlxuICAgICAgICAgICovfVxuICAgICAgICAgICAgPEFzeW5jTG9jYWxlRGF0YVxuICAgICAgICAgICAgICBsb2NhbGU9e3VzZXI/Lmxhbmd1YWdlfVxuICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1lc3NhZ2VzPXtwcm9wcy5hcHBsaWNhdGlvbk1lc3NhZ2VzfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7KHsgaXNMb2FkaW5nOiBpc0xvYWRpbmdMb2NhbGVEYXRhLCBsb2NhbGUsIG1lc3NhZ2VzIH0pID0+IChcbiAgICAgICAgICAgICAgICA8Q29uZmlndXJlSW50bFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAvLyBXZSBkbyBub3Qgd2FudCB0byBwYXNzIHRoZSBsYW5ndWFnZSBhcyBsb25nIGFzIHRoZSBsb2NhbGUgZGF0YVxuICAgICAgICAgICAgICAgICAgLy8gaXMgbm90IGxvYWRlZC5cbiAgICAgICAgICAgICAgICAgIHsuLi4oaXNMb2FkaW5nTG9jYWxlRGF0YSA/IHt9IDogeyBsb2NhbGUsIG1lc3NhZ2VzIH0pfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTZXR1cEZsb3BGbGlwUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleT17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgIGxkQ2xpZW50U2lkZUlkPXthcHBsaWNhdGlvbkVudmlyb25tZW50LmxkQ2xpZW50U2lkZUlkfVxuICAgICAgICAgICAgICAgICAgICBmbGFncz17cHJvcHMuZmVhdHVyZUZsYWdzfVxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0RmxhZ3M9e3Byb3BzLmRlZmF1bHRGZWF0dXJlRmxhZ3N9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHsvKiBUaGlzIGlzIGEgdGVtcG9yYXJ5IGNvbnRhaW5lci4gSXQgd2lsbCBiZSByZW1vdmVkIG9uY2UgdGhlIG5ldyBuYXZpZ2F0aW9uIGlzIGVuYWJsZWQgYnkgZGVmYXVsdC4gKi99XG4gICAgICAgICAgICAgICAgICAgIDxOZXdNYWluTmF2aWdhdGlvbkZsYWdXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgIHsoe1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV3TmF2aWdhdGlvbkVuYWJsZWRFdmFsdWF0aW9uUmVhZHksXG4gICAgICAgICAgICAgICAgICAgICAgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGhlbWVTd2l0Y2hlciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxWZXJzaW9uVHJhY2tlciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBOT1RFOiB0aGUgcmVxdWVzdHMgaW4gZmxpZ2h0IGxvYWRlciB3aWxsIHJlbmRlciBhIGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGlubmVyIGludG8gdGhlIEFwcEJhci4gKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VudHJ5VXNlclRyYWNrZXIgdXNlcj17dXNlciA/PyB1bmRlZmluZWR9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAke0RJTUVOU0lPTlMuaGVhZGVyfSAxZnI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWluLWNvbnRlbnQgMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17bm90aWZpY2F0aW9uc0dsb2JhbFJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxLzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJhYm92ZS10b3AtbmF2aWdhdGlvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuR0xPQkFMfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxRdWlja0FjY2VzcyAvPjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZldGNoUHJvamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBpc1Byb2plY3RMb2FkaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNQcm9qZWN0TG9hZGluZyB8fCAhcHJvamVjdClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB1c2VkIG91dHNpZGUgb2YgYSBwcm9qZWN0IGNvbnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3Igd2hlbiB0aGUgcHJvamVjdCBpcyBleHBpcmVkIG9yIHN1cHNlbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNob3VsZFVzZVByb2plY3RDb250ZXh0ID0gIShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9qZWN0LnN1c3BlbnNpb24gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb2plY3QuZXhwaXJ5ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFVzZVByb2plY3RDb250ZXh0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxRdWlja0FjY2VzcyAvPjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvamVjdERhdGFMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlcz17cHJvamVjdC5sYW5ndWFnZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZTogZGF0YUxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0RGF0YUxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9e3Byb2plY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0RGF0YUxvY2FsZT17ZGF0YUxvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25FbnZpcm9ubWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxRdWlja0FjY2Vzc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZVByb2plY3REYXRhTG9jYWxlPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0RGF0YUxvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Byb2plY3REYXRhTG9jYWxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZldGNoUHJvamVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6ICR7aXNOZXdOYXZpZ2F0aW9uRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnMi8zJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMid9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAke2lzTmV3TmF2aWdhdGlvbkVuYWJsZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJzIvMydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJzEvMyd9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXBwQmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybD17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ld05hdmlnYXRpb25FbmFibGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oZWFkZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhc2lkZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2lzTmV3TmF2aWdhdGlvbkVuYWJsZWQgPT09IGZhbHNlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2lzTmV3TmF2aWdhdGlvbkVuYWJsZWQgPT09IHRydWUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgZ3JpZC1jb2x1bW46IDEvMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAyLzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO2B9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSA8TmF2QmFyPiBzaG91bGQgb25seSBiZSByZW5kZXJlZCB3aXRoaW4gYSBwcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGV4dCwgdGhlcmVmb3JlIHdoZW4gdGhlcmUgaXMgYSBgcHJvamVjdEtleWAuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gYHByb2plY3RLZXlgIGluIHRoZSBVUkwgKGUuZy4gYC9hY2NvdW50YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvdXRlcyksIHdlIGRvbid0IHJlbmRlciBpdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiB3ZSBhbHNvIFwiY2FjaGVcIiB0aGUgYHByb2plY3RLZXlgIGluIGxvY2FsU3RvcmFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCB0aGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgdG8gXCJyZS1oeWRyYXRlXCIgdGhlIFVSTFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvY2F0aW9uIChlLmcgd2hlbiB5b3UgZ28gdG8gYC9gLCB0aGVyZSBzaG91bGQgYmUgYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZGlyZWN0IHRvIGAvOnByb2plY3RLZXlgKS4gVGhlcmVmb3JlLCB3ZSBzaG91bGQgbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVseSBvbiB0aGUgdmFsdWUgaW4gbG9jYWxTdG9yYWdlIHRvIGRldGVybWluZSB3aGljaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBwcm9qZWN0S2V5YCBpcyBjdXJyZW50bHkgdXNlZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZldGNoUHJvamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBpc0xvYWRpbmdQcm9qZWN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0xvYWRpbmcgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nVXNlciB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nTG9jYWxlRGF0YSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nUHJvamVjdCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWxvY2FsZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXByb2plY3Q7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9e3VzZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiBkbyBub3QgcGFzcyB0aGUgYHByb2plY3RgIGludG8gdGhlIGFwcGxpY2F0aW9uIGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBwZXJtaXNzaW9ucyBmb3IgdGhlIE5hdmJhciBhcmUgcmVzb2x2ZWQgc2VwYXJhdGVseSwgd2l0aGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGEgZGlmZmVyZW50IFJlYWN0IGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOYXZCYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbkxvY2FsZT17bG9jYWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXk9e3Byb2plY3RLZXlGcm9tVXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9e3Byb2plY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25FbnZpcm9ubWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbk1lbnVJdGVtQ2xpY2s9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMub25NZW51SXRlbUNsaWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV3TmF2aWdhdGlvbkVuYWJsZWQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ld05hdmlnYXRpb25FbmFibGVkRXZhbHVhdGlvblJlYWR5PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV3TmF2aWdhdGlvbkVuYWJsZWRFdmFsdWF0aW9uUmVhZHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZldGNoUHJvamVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hc2lkZT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lzTG9hZGluZ1VzZXIgfHwgaXNMb2FkaW5nTG9jYWxlRGF0YSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1haW5Db250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ld05hdmlnYXRpb25FbmFibGVkPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV3TmF2aWdhdGlvbkVuYWJsZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cIm1haW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uTG9hZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ld05hdmlnYXRpb25FbmFibGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJtYWluXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgcmVmPXtub3RpZmljYXRpb25zUGFnZVJlZn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3QgZG9tYWluPXtET01BSU5TLlBBR0V9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE5vdGlmaWNhdGlvbnNMaXN0IGRvbWFpbj17RE9NQUlOUy5TSURFfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGlzIG9ubHkgbmVjZXNzYXJ5IGJlY2F1c2Ugd2UgaGF2ZSBhbiBpbnRlcm1lZGlhcnkgPGRpdj4gd3JhcHBpbmcgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxWaWV3PiBjb21wb25lbnQgdGhhdCBpcyB1c2VkIHRvIHdyYXAgZXZlcnkgY29udGVudC12aWV3LiBUaGlzIGludGVybWVkaWFyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PiBpcyBzb2xlbHkgdXNlZCBmb3IgYWRkaW5nIHRoZSB0cmFja2luZyBjb250ZXh0IHRvIHRoZSBjb250ZW50LXZpZXcuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhvd2V2ZXIsIHRoaXMgY291bGQgYmUgZG9uZSBieSBwYXNzaW5nIHRoZSB0cmFja2luZyBjb250ZXh0IHRvIHRoZSA8Vmlldz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGxldCBpdCBkbyB0aGUgbGF5b3V0LCBzbyB3ZSBjYW4gYXZvaWQgbGF5aW5nIG91ciBmcm9tIHRoZSBvdXRzaWRlIGFzIHdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvIGhlcmUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+ICo6bm90KDpmaXJzdC1vZi10eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UG9ydGFsc0NvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17bGF5b3V0UmVmc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0VG9wPXtESU1FTlNJT05TLmhlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0TGVmdD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleUZyb21VcmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IERJTUVOU0lPTlMubmV3TmF2TWVudVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IERJTUVOU0lPTlMubmF2TWVudVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldExlZnRPbkV4cGFuZGVkTWVudT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleUZyb21VcmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IERJTUVOU0lPTlMubmV3TmF2TWVudUV4cGFuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogRElNRU5TSU9OUy5uYXZNZW51RXhwYW5kZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJzBweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTd2l0Y2g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb209XCIvcHJvZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG89XCIvYWNjb3VudC9wcm9maWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlIHBhdGg9XCIvYWNjb3VudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSW4gY2FzZSB0aGUgQXBwU2hlbGwgdXNlcyB0aGUgYHJlbmRlcmAgZnVuY3Rpb24sIHdlIGFzc3VtZSBpdCdzIG9uZSBvZiB0d28gY2FzZXM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAxLiBUaGUgYXBwbGljYXRpb24gZG9lcyBub3QgdXNlIGBjaGlsZHJlbmAgYW5kIHRoZXJlZm9yZSBpbXBsZW1lbnRzIHRoZSByb3V0ZXMgaW5jbHVkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgPFJvdXRlQ2F0Y2hBbGw+ICh0aGlzIGlzIHRoZSBcImxlZ2FjeVwiIGJlaGF2aW9yKS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIDIuIEl0J3MgdGhlIGFjY291bnQgYXBwbGljYXRpb24sIHdoaWNoIGFsd2F5cyB1c2VzIGByZW5kZXJgIGFuZCB0aGVyZWZvcmUgc2hvdWxkIHJlbmRlciBhcyBub3JtYWwuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSW4gY2FzZSB0aGUgQXBwU2hlbGwgdXNlcyB0aGUgYGNoaWxkcmVuYCBmdW5jdGlvbiwgd2UgY2FuIGFsd2F5cyBhc3N1bWUgdGhhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaXQncyBhIG5vcm1hbCBDdXN0b20gQXBwbGljYXRpb24gYW5kIHRoYXQgaXQgc2hvdWxkIHRyaWdnZXIgYSBmb3JjZSByZWxvYWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLnJlbmRlciA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD57cHJvcHMucmVuZGVyKCl9PC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGVDYXRjaEFsbCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIFByb2plY3Qgcm91dGVzICovfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGUgZXhhY3Q9e3RydWV9IHBhdGg9XCIvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c1Byb2plY3RLZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRQcmV2aW91c1Byb2plY3RLZXkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj8uZGVmYXVsdFByb2plY3RLZXkgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIE5PVEU6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIEdpdmVuIHRoZSB1c2VyIGhhcyBub3QgYmVlbiBsb2FkZWQgYSBsb2FkaW5nIHNwaW5uZXIgaXMgc2hvd24uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIEdpdmVuIHRoZSB1c2VyIHdhcyBub3Qgd29ya2luZyBvbiBhIHByb2plY3QgcHJldmlvdXNseSBub3IgaGFzIGEgZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBwcm9qZWN0LCB0aGUgdXNlciB3aWxsIGJlIHByb21wdGVkIHRvIGNyZWF0ZSBvbmUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIEdpdmVuIHRoZSB1c2VyIHdhcyB3b3JraW5nIG9uIGEgcHJvamVjdCBwcmV2aW91c2x5IG9yIGhhcyBhIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgcHJvamVjdCwgdGhlIGFwcGxpY2F0aW9uIHdpbGwgcmVkaXJlY3QgdG8gdGhhdCBwcm9qZWN0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXVzZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8QXBwbGljYXRpb25Mb2FkZXIgLz47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByZXZpb3VzUHJvamVjdEtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxSZWRpcmVjdFRvUHJvamVjdENyZWF0ZSAvPjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvPXtgLyR7cHJldmlvdXNQcm9qZWN0S2V5fWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZSBleGFjdD17ZmFsc2V9IHBhdGg9XCIvOnByb2plY3RLZXlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvamVjdENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZVJvdXRlUGVybWlzc2lvbkNoZWNrPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuZGlzYWJsZVJvdXRlUGVybWlzc2lvbkNoZWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGVmZmVjdGl2ZWx5IHJlbmRlcnMgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGlsZHJlbiwgd2hpY2ggaXMgdGhlIGFwcGxpY2F0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzcGVjaWZpYyBwYXJ0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXI9e3Byb3BzLnJlbmRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Qcm9qZWN0Q29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JvdXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Td2l0Y2g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA8L05ld01haW5OYXZpZ2F0aW9uRmxhZ1dyYXBwZXI+XG4gICAgICAgICAgICAgICAgICA8L1NldHVwRmxvcEZsaXBQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L0NvbmZpZ3VyZUludGxQcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvQXN5bmNMb2NhbGVEYXRhPlxuICAgICAgICAgIDwvQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXI+XG4gICAgICAgICk7XG4gICAgICB9fVxuICAgIDwvRmV0Y2hVc2VyPlxuICApO1xufTtcbkFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkLmRpc3BsYXlOYW1lID0gJ0FwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkJztcblxuZXhwb3J0IGRlZmF1bHQgQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQ7XG4iXX0= */"),
1184
- children: jsxRuntime.jsx(AppBar, {
1185
- user: user,
1186
- projectKeyFromUrl: projectKeyFromUrl,
1187
- isNewNavigationEnabled: isNewNavigationEnabled
1188
- })
1189
- }), jsxRuntime.jsx("aside", {
1190
- css: /*#__PURE__*/react$1.css(isNewNavigationEnabled === false && "position: relative;\n grid-row: 3;\n display: flex;\n flex-direction: column;", " ", isNewNavigationEnabled === true && "grid-column: 1/2;\n grid-row: 2/4;\n overflow: hidden;", ";" + (process.env.NODE_ENV === "production" ? "" : ";label:ApplicationShellAuthenticated;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLXNoZWxsLWF1dGhlbnRpY2F0ZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdVd0MiLCJmaWxlIjoiYXBwbGljYXRpb24tc2hlbGwtYXV0aGVudGljYXRlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIFJlYWN0Tm9kZSxcbiAgdHlwZSBSZWZPYmplY3QsXG4gIHR5cGUgU3ludGhldGljRXZlbnQsXG4gIHVzZVJlZixcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHR5cGUgeyBBcG9sbG9FcnJvciB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2Vycm9ycyc7XG5pbXBvcnQgdHlwZSB7IFRGbGFncyB9IGZyb20gJ0BmbG9wZmxpcC90eXBlcyc7XG5pbXBvcnQgeyBSZWRpcmVjdCwgUm91dGUsIFN3aXRjaCwgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IFBvcnRhbHNDb250YWluZXIgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyLFxuICBzZWxlY3RQcm9qZWN0S2V5RnJvbVVybCxcbiAgdXNlQXBwbGljYXRpb25Db250ZXh0LFxuICB0eXBlIFRBcHBsaWNhdGlvbkNvbnRleHQsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRE9NQUlOUywgTE9HT1VUX1JFQVNPTlMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUgeyBUQXN5bmNMb2NhbGVEYXRhUHJvcHMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9pMThuJztcbmltcG9ydCB7IEFzeW5jTG9jYWxlRGF0YSB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2kxOG4nO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uc0xpc3QgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9yZWFjdC1ub3RpZmljYXRpb25zJztcbmltcG9ydCB7XG4gIHJlcG9ydEVycm9yVG9TZW50cnksXG4gIFNlbnRyeVVzZXJUcmFja2VyLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9zZW50cnknO1xuaW1wb3J0IHsgRElNRU5TSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRQcmV2aW91c1Byb2plY3RLZXkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgQXBwQmFyIGZyb20gJy4uL2FwcC1iYXInO1xuaW1wb3J0IEFwcGxpY2F0aW9uTG9hZGVyIGZyb20gJy4uL2FwcGxpY2F0aW9uLWxvYWRlcic7XG5pbXBvcnQgeyBnZXRCcm93c2VyTG9jYWxlIH0gZnJvbSAnLi4vYXBwbGljYXRpb24tc2hlbGwtcHJvdmlkZXIvdXRpbHMnO1xuaW1wb3J0IENvbmZpZ3VyZUludGxQcm92aWRlciBmcm9tICcuLi9jb25maWd1cmUtaW50bC1wcm92aWRlcic7XG5pbXBvcnQgRXJyb3JBcG9sb2dpemVyIGZyb20gJy4uL2Vycm9yLWFwb2xvZ2l6ZXInO1xuaW1wb3J0IEZldGNoUHJvamVjdCBmcm9tICcuLi9mZXRjaC1wcm9qZWN0JztcbmltcG9ydCBGZXRjaFVzZXIgZnJvbSAnLi4vZmV0Y2gtdXNlcic7XG5pbXBvcnQgTmF2QmFyIGZyb20gJy4uL25hdmJhcic7XG5pbXBvcnQgUHJvamVjdENvbnRhaW5lciBmcm9tICcuLi9wcm9qZWN0LWNvbnRhaW5lcic7XG5pbXBvcnQgUHJvamVjdERhdGFMb2NhbGUgZnJvbSAnLi4vcHJvamVjdC1kYXRhLWxvY2FsZSc7XG5pbXBvcnQgUXVpY2tBY2Nlc3MgZnJvbSAnLi4vcXVpY2stYWNjZXNzJztcbmltcG9ydCBSZWRpcmVjdFRvTG9nb3V0IGZyb20gJy4uL3JlZGlyZWN0LXRvLWxvZ291dCc7XG5pbXBvcnQgUmVkaXJlY3RUb1Byb2plY3RDcmVhdGUgZnJvbSAnLi4vcmVkaXJlY3QtdG8tcHJvamVjdC1jcmVhdGUnO1xuaW1wb3J0IFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgZnJvbSAnLi4vcmVxdWVzdHMtaW4tZmxpZ2h0LWxvYWRlcic7XG5pbXBvcnQgUm91dGVDYXRjaEFsbCBmcm9tICcuLi9yb3V0ZS1jYXRjaC1hbGwnO1xuaW1wb3J0IFNldHVwRmxvcEZsaXBQcm92aWRlciBmcm9tICcuLi9zZXR1cC1mbG9wLWZsaXAtcHJvdmlkZXInO1xuaW1wb3J0IFRoZW1lU3dpdGNoZXIgZnJvbSAnLi4vdGhlbWUtc3dpdGNoZXInO1xuaW1wb3J0IFZlcnNpb25UcmFja2VyIGZyb20gJy4uL3ZlcnNpb24tdHJhY2tlcic7XG5pbXBvcnQgTmV3TWFpbk5hdmlnYXRpb25GbGFnV3JhcHBlciBmcm9tICcuL25ldy1tYWluLW5hdmlnYXRpb24tZmxhZy13cmFwcGVyJztcblxudHlwZSBUQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0aW9uUHJvcHMgPSB7XG4gIGZlYXR1cmVGbGFncz86IFRGbGFncztcbiAgZGVmYXVsdEZlYXR1cmVGbGFncz86IFRGbGFncztcbiAgYXBwbGljYXRpb25NZXNzYWdlczogVEFzeW5jTG9jYWxlRGF0YVByb3BzWydhcHBsaWNhdGlvbk1lc3NhZ2VzJ107XG4gIG9uTWVudUl0ZW1DbGljaz86IChldmVudDogU3ludGhldGljRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQ+KSA9PiB2b2lkO1xuICBkaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2s/OiBib29sZWFuO1xuICByZW5kZXI/OiAoKSA9PiBKU1guRWxlbWVudDtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG59O1xuXG50eXBlIE1haW5Db250YWluZXJQcm9wcyA9IHtcbiAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZDogYm9vbGVhbjtcbn07XG5cbmNvbnN0IGdldEhhc1VuYXV0aG9yaXplZEVycm9yID0gKGdyYXBoUUxFcnJvcnM6IEFwb2xsb0Vycm9yWydncmFwaFFMRXJyb3JzJ10pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5leHRlbnNpb25zICYmXG4gICAgICBncWxFcnJvci5leHRlbnNpb25zLmNvZGUgJiZcbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMuY29kZSA9PT0gJ1VOQVVUSEVOVElDQVRFRCdcbiAgKTtcbmNvbnN0IGdldEhhc1VzZXJCZWVuRGVsZXRlZEVycm9yID0gKFxuICBncmFwaFFMRXJyb3JzOiBBcG9sbG9FcnJvclsnZ3JhcGhRTEVycm9ycyddXG4pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5tZXNzYWdlICYmXG4gICAgICAvLyBOT1RFOiBUaGUgQ1RQIEFQSSBkb2VzIG5vdCBwcm92aWRlIGFuIGVycm9yIGNvZGUgaW4gdGhpcyBjYXNlLlxuICAgICAgZ3FsRXJyb3IubWVzc2FnZS5pbmNsdWRlcygnd2FzIG5vdCBmb3VuZC4nKVxuICApO1xuXG5leHBvcnQgY29uc3QgTWFpbkNvbnRhaW5lciA9IHN0eWxlZC5tYWluPE1haW5Db250YWluZXJQcm9wcz5gXG4gICR7KHByb3BzKSA9PlxuICAgIHByb3BzLmlzTmV3TmF2aWdhdGlvbkVuYWJsZWRcbiAgICAgID8gYFxuICAgICAgICBncmlkLWNvbHVtbjogMi8zO1xuICAgICAgICBncmlkLXJvdzogMy80O1xuICAgICAgYFxuICAgICAgOiBgXG4gICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICBncmlkLXJvdzogMztcbiAgICAgIGB9O1xuXG4gIC8qXG4gICAgQWxsb3cgdGhlIHRoaXMgZmxleCBjaGlsZCB0byBncm93IHNtYWxsZXIgdGhhbiBpdHMgc21hbGxlc3QgY29udGVudC5cbiAgICBUaGlzIGlzIG5lZWRlZCB3aGVuIHRoZXJlIGlzIGEgcmVhbGx5IHdpZGUgdGV4dCBpbnNpZGUgdGhhdCB3b3VsZCBzdHJldGNoXG4gICAgdGhpcyBub2RlIHRvIGJlIHdpZGVyIHRoYW4gdGhlIHBhcmVudC5cbiAgKi9cbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcblxuICAvKlxuICAgIGxheW91dCB0aGUgY2hpbGRyZW4uIFRoZXJlIHdpbGwgYWx3YXlzIGJlIHRoZSBwYWdlIGFuZCBzaWRlIG5vdGlmaWNhdGlvblxuICAgIGFib3V0IHRoZSBhY3R1YWwgY29udGVudC4gVGhlIGNvbnRlbnQgc2hvdWxkIHN0cmV0Y2ggdG8gZmlsbCB0aGUgcmVzdCBvZlxuICAgIHRoZSBwYWdlLlxuICAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIC8qXG4gICAgc2V0IHBvc2l0aW9uIHRvIHJlbGF0aXZlIHRvIGxheW91dCBub3RpZmljYXRpb25zIGFuZCBtb2RhbHNcbiAgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpcyByZW5kZXJlZCB3aGVuZXZlciB0aGUgdXNlciBpcyBjb25zaWRlcmVkIFwiYXV0aGVudGljYXRlZFwiXG4gKiBhbmQgY29udGFpbnMgdGhlIFwicmVzdHJpY3RlZFwiIGFwcGxpY2F0aW9uIHBhcnQuXG4gKi9cblxuZXhwb3J0IGNvbnN0IEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkID0gKFxuICBwcm9wczogVEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGlvblByb3BzXG4pID0+IHtcbiAgY29uc3QgYXBwbGljYXRpb25FbnZpcm9ubWVudCA9IHVzZUFwcGxpY2F0aW9uQ29udGV4dChcbiAgICAoY29udGV4dCkgPT4gY29udGV4dC5lbnZpcm9ubWVudFxuICApIGFzIFRBcHBsaWNhdGlvbkNvbnRleHQ8e30+WydlbnZpcm9ubWVudCddO1xuICAvLyBUT0RPOiB1c2luZyB0aGlzIGhvb2sgd2lsbCBzdWJzY3JpYmUgdGhlIGNvbXBvbmVudCB0byByb3V0ZSB1cGRhdGVzLlxuICAvLyBUaGlzIGlzIGN1cnJlbnRseSB1c2VmdWwgZm9yIGRldGVjdGluZyBhIGNoYW5nZSBpbiB0aGUgcHJvamVjdCBrZXlcbiAgLy8gZnJvbSBVUkwgKFwiL1wiIC0tPiBcIi86cHJvamVjdEtleVwiKS5cbiAgLy8gSG93ZXZlciwgZXZlcnkgcm91dGUgY2hhbmdlIHdpbGwgdHJpZ2dlciBhIHJlLXJlbmRlci4gVGhpcyBpcyBwcm9iYWJseVxuICAvLyBvay1pc2ggYnV0IHdlIG1pZ2h0IHdhbnQgdG8gbG9vayBpbnRvIGEgbW9yZSBwZXJmb3JtYW50IHNvbHV0aW9uLlxuICBjb25zdCBsb2NhdGlvbiA9IHVzZUxvY2F0aW9uKCk7XG5cbiAgY29uc3Qgbm90aWZpY2F0aW9uc0dsb2JhbFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IG5vdGlmaWNhdGlvbnNQYWdlUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3QgbGF5b3V0UmVmcyA9IHVzZVJlZjx7XG4gICAgbm90aWZpY2F0aW9uc0dsb2JhbFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgICBub3RpZmljYXRpb25zUGFnZVJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgfT4oe1xuICAgIG5vdGlmaWNhdGlvbnNHbG9iYWxSZWYsXG4gICAgbm90aWZpY2F0aW9uc1BhZ2VSZWYsXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPEZldGNoVXNlcj5cbiAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ1VzZXIsIHVzZXIsIGVycm9yIH0pID0+IHtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgLy8gSW4gY2FzZSB0aGVyZSBpcyBhbiB1bmF1dGhvcml6ZWQgZXJyb3IsIHdlIHJlZGlyZWN0IHRvIHRoZSBsb2dpbiBwYWdlXG4gICAgICAgICAgaWYgKGVycm9yLmdyYXBoUUxFcnJvcnMgJiYgQXJyYXkuaXNBcnJheShlcnJvci5ncmFwaFFMRXJyb3JzKSkge1xuICAgICAgICAgICAgY29uc3QgaGFzVW5hdXRob3JpemVkRXJyb3IgPSBnZXRIYXNVbmF1dGhvcml6ZWRFcnJvcihcbiAgICAgICAgICAgICAgZXJyb3IuZ3JhcGhRTEVycm9yc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yID0gZ2V0SGFzVXNlckJlZW5EZWxldGVkRXJyb3IoXG4gICAgICAgICAgICAgIGVycm9yLmdyYXBoUUxFcnJvcnNcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChoYXNVbmF1dGhvcml6ZWRFcnJvciB8fCBoYXNVc2VyQmVlbkRlbGV0ZWRFcnJvcikge1xuICAgICAgICAgICAgICBsZXQgbG9nb3V0UmVhc29uOlxuICAgICAgICAgICAgICAgIHwgKHR5cGVvZiBMT0dPVVRfUkVBU09OUylba2V5b2YgdHlwZW9mIExPR09VVF9SRUFTT05TXVxuICAgICAgICAgICAgICAgIHwgdW5kZWZpbmVkO1xuICAgICAgICAgICAgICBpZiAoaGFzVW5hdXRob3JpemVkRXJyb3IpXG4gICAgICAgICAgICAgICAgbG9nb3V0UmVhc29uID0gTE9HT1VUX1JFQVNPTlMuVU5BVVRIT1JJWkVEO1xuICAgICAgICAgICAgICBlbHNlIGlmIChoYXNVc2VyQmVlbkRlbGV0ZWRFcnJvcilcbiAgICAgICAgICAgICAgICBsb2dvdXRSZWFzb24gPSBMT0dPVVRfUkVBU09OUy5ERUxFVEVEO1xuICAgICAgICAgICAgICByZXR1cm4gPFJlZGlyZWN0VG9Mb2dvdXQgcmVhc29uPXtsb2dvdXRSZWFzb259IC8+O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBTaW5jZSB3ZSBkbyBub3Qga25vdyB0aGUgbG9jYWxlIG9mIHRoZSB1c2VyLCB3ZSBwaWNrIGl0IGZyb20gdGhlXG4gICAgICAgICAgLy8gdXNlcidzIGJyb3dzZXIgdG8gYXR0ZW1wdCB0byBtYXRjaCB0aGUgbGFuZ3VhZ2UgZm9yIHRoZSBjb3JyZWN0IHRyYW5zbGF0aW9ucy5cbiAgICAgICAgICBjb25zdCB1c2VyTG9jYWxlID0gZ2V0QnJvd3NlckxvY2FsZSh3aW5kb3cpO1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8QXN5bmNMb2NhbGVEYXRhXG4gICAgICAgICAgICAgIGxvY2FsZT17dXNlckxvY2FsZX1cbiAgICAgICAgICAgICAgYXBwbGljYXRpb25NZXNzYWdlcz17cHJvcHMuYXBwbGljYXRpb25NZXNzYWdlc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgeyh7IGxvY2FsZSwgbWVzc2FnZXMgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yVG9TZW50cnkoZXJyb3IsIHt9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPENvbmZpZ3VyZUludGxQcm92aWRlciBsb2NhbGU9e2xvY2FsZX0gbWVzc2FnZXM9e21lc3NhZ2VzfT5cbiAgICAgICAgICAgICAgICAgICAgPEVycm9yQXBvbG9naXplciAvPlxuICAgICAgICAgICAgICAgICAgPC9Db25maWd1cmVJbnRsUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvQXN5bmNMb2NhbGVEYXRhPlxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwcm9qZWN0S2V5RnJvbVVybCA9IHNlbGVjdFByb2plY3RLZXlGcm9tVXJsKGxvY2F0aW9uLnBhdGhuYW1lKTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8QXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXJcbiAgICAgICAgICAgIHVzZXI9e3VzZXJ9XG4gICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7LypcbiAgICAgICAgICAgIE5PVEU6IHdlIGRvIG5vdCB3YW50IHRvIGxvYWQgdGhlIGxvY2FsZSBkYXRhIGFzIGxvbmcgYXMgd2UgZG8gbm90XG4gICAgICAgICAgICBrbm93IHRoZSB1c2VyIHNldHRpbmcuIFRoaXMgaXMgaW1wb3J0YW50IGluIG9yZGVyIHRvIGF2b2lkIGZsYXNoaW5nXG4gICAgICAgICAgICBvZiB0cmFuc2xhdGVkIGNvbnRlbnQgb24gc3Vic2VxdWVudCByZS1yZW5kZXJzLlxuICAgICAgICAgICAgVGhlcmVmb3JlLCBhcyBsb25nIGFzIHRoZXJlIGlzIG5vIGxvY2FsZSwgdGhlIGNoaWxkcmVuIHNob3VsZCBjb25zaWRlciB1c2luZyB0aGVcbiAgICAgICAgICAgIGBpc0xvYWRpbmdgIHByb3AgdG8gZGVjaWRlIHdoYXQgdG8gcmVuZGVyLlxuICAgICAgICAgICovfVxuICAgICAgICAgICAgPEFzeW5jTG9jYWxlRGF0YVxuICAgICAgICAgICAgICBsb2NhbGU9e3VzZXI/Lmxhbmd1YWdlfVxuICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1lc3NhZ2VzPXtwcm9wcy5hcHBsaWNhdGlvbk1lc3NhZ2VzfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7KHsgaXNMb2FkaW5nOiBpc0xvYWRpbmdMb2NhbGVEYXRhLCBsb2NhbGUsIG1lc3NhZ2VzIH0pID0+IChcbiAgICAgICAgICAgICAgICA8Q29uZmlndXJlSW50bFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAvLyBXZSBkbyBub3Qgd2FudCB0byBwYXNzIHRoZSBsYW5ndWFnZSBhcyBsb25nIGFzIHRoZSBsb2NhbGUgZGF0YVxuICAgICAgICAgICAgICAgICAgLy8gaXMgbm90IGxvYWRlZC5cbiAgICAgICAgICAgICAgICAgIHsuLi4oaXNMb2FkaW5nTG9jYWxlRGF0YSA/IHt9IDogeyBsb2NhbGUsIG1lc3NhZ2VzIH0pfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTZXR1cEZsb3BGbGlwUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleT17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgIGxkQ2xpZW50U2lkZUlkPXthcHBsaWNhdGlvbkVudmlyb25tZW50LmxkQ2xpZW50U2lkZUlkfVxuICAgICAgICAgICAgICAgICAgICBmbGFncz17cHJvcHMuZmVhdHVyZUZsYWdzfVxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0RmxhZ3M9e3Byb3BzLmRlZmF1bHRGZWF0dXJlRmxhZ3N9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHsvKiBUaGlzIGlzIGEgdGVtcG9yYXJ5IGNvbnRhaW5lci4gSXQgd2lsbCBiZSByZW1vdmVkIG9uY2UgdGhlIG5ldyBuYXZpZ2F0aW9uIGlzIGVuYWJsZWQgYnkgZGVmYXVsdC4gKi99XG4gICAgICAgICAgICAgICAgICAgIDxOZXdNYWluTmF2aWdhdGlvbkZsYWdXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgIHsoe1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV3TmF2aWdhdGlvbkVuYWJsZWRFdmFsdWF0aW9uUmVhZHksXG4gICAgICAgICAgICAgICAgICAgICAgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGhlbWVTd2l0Y2hlciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxWZXJzaW9uVHJhY2tlciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBOT1RFOiB0aGUgcmVxdWVzdHMgaW4gZmxpZ2h0IGxvYWRlciB3aWxsIHJlbmRlciBhIGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGlubmVyIGludG8gdGhlIEFwcEJhci4gKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VudHJ5VXNlclRyYWNrZXIgdXNlcj17dXNlciA/PyB1bmRlZmluZWR9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAke0RJTUVOU0lPTlMuaGVhZGVyfSAxZnI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWluLWNvbnRlbnQgMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17bm90aWZpY2F0aW9uc0dsb2JhbFJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxLzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJhYm92ZS10b3AtbmF2aWdhdGlvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuR0xPQkFMfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxRdWlja0FjY2VzcyAvPjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZldGNoUHJvamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBpc1Byb2plY3RMb2FkaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNQcm9qZWN0TG9hZGluZyB8fCAhcHJvamVjdClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB1c2VkIG91dHNpZGUgb2YgYSBwcm9qZWN0IGNvbnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3Igd2hlbiB0aGUgcHJvamVjdCBpcyBleHBpcmVkIG9yIHN1cHNlbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNob3VsZFVzZVByb2plY3RDb250ZXh0ID0gIShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9qZWN0LnN1c3BlbnNpb24gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb2plY3QuZXhwaXJ5ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFVzZVByb2plY3RDb250ZXh0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxRdWlja0FjY2VzcyAvPjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvamVjdERhdGFMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlcz17cHJvamVjdC5sYW5ndWFnZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZTogZGF0YUxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0RGF0YUxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9e3Byb2plY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0RGF0YUxvY2FsZT17ZGF0YUxvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25FbnZpcm9ubWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxRdWlja0FjY2Vzc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZVByb2plY3REYXRhTG9jYWxlPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0RGF0YUxvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Byb2plY3REYXRhTG9jYWxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZldGNoUHJvamVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6ICR7aXNOZXdOYXZpZ2F0aW9uRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnMi8zJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMid9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAke2lzTmV3TmF2aWdhdGlvbkVuYWJsZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJzIvMydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJzEvMyd9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXBwQmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybD17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ld05hdmlnYXRpb25FbmFibGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oZWFkZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhc2lkZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2lzTmV3TmF2aWdhdGlvbkVuYWJsZWQgPT09IGZhbHNlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2lzTmV3TmF2aWdhdGlvbkVuYWJsZWQgPT09IHRydWUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgZ3JpZC1jb2x1bW46IDEvMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAyLzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO2B9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSA8TmF2QmFyPiBzaG91bGQgb25seSBiZSByZW5kZXJlZCB3aXRoaW4gYSBwcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGV4dCwgdGhlcmVmb3JlIHdoZW4gdGhlcmUgaXMgYSBgcHJvamVjdEtleWAuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gYHByb2plY3RLZXlgIGluIHRoZSBVUkwgKGUuZy4gYC9hY2NvdW50YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvdXRlcyksIHdlIGRvbid0IHJlbmRlciBpdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiB3ZSBhbHNvIFwiY2FjaGVcIiB0aGUgYHByb2plY3RLZXlgIGluIGxvY2FsU3RvcmFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCB0aGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgdG8gXCJyZS1oeWRyYXRlXCIgdGhlIFVSTFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvY2F0aW9uIChlLmcgd2hlbiB5b3UgZ28gdG8gYC9gLCB0aGVyZSBzaG91bGQgYmUgYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZGlyZWN0IHRvIGAvOnByb2plY3RLZXlgKS4gVGhlcmVmb3JlLCB3ZSBzaG91bGQgbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVseSBvbiB0aGUgdmFsdWUgaW4gbG9jYWxTdG9yYWdlIHRvIGRldGVybWluZSB3aGljaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBwcm9qZWN0S2V5YCBpcyBjdXJyZW50bHkgdXNlZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZldGNoUHJvamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBpc0xvYWRpbmdQcm9qZWN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0xvYWRpbmcgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nVXNlciB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nTG9jYWxlRGF0YSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nUHJvamVjdCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWxvY2FsZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXByb2plY3Q7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9e3VzZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiBkbyBub3QgcGFzcyB0aGUgYHByb2plY3RgIGludG8gdGhlIGFwcGxpY2F0aW9uIGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBwZXJtaXNzaW9ucyBmb3IgdGhlIE5hdmJhciBhcmUgcmVzb2x2ZWQgc2VwYXJhdGVseSwgd2l0aGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGEgZGlmZmVyZW50IFJlYWN0IGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOYXZCYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbkxvY2FsZT17bG9jYWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXk9e3Byb2plY3RLZXlGcm9tVXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9e3Byb2plY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25FbnZpcm9ubWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbk1lbnVJdGVtQ2xpY2s9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMub25NZW51SXRlbUNsaWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV3TmF2aWdhdGlvbkVuYWJsZWQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ld05hdmlnYXRpb25FbmFibGVkRXZhbHVhdGlvblJlYWR5PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV3TmF2aWdhdGlvbkVuYWJsZWRFdmFsdWF0aW9uUmVhZHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZldGNoUHJvamVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hc2lkZT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lzTG9hZGluZ1VzZXIgfHwgaXNMb2FkaW5nTG9jYWxlRGF0YSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1haW5Db250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ld05hdmlnYXRpb25FbmFibGVkPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV3TmF2aWdhdGlvbkVuYWJsZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cIm1haW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uTG9hZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ld05hdmlnYXRpb25FbmFibGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJtYWluXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgcmVmPXtub3RpZmljYXRpb25zUGFnZVJlZn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3QgZG9tYWluPXtET01BSU5TLlBBR0V9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE5vdGlmaWNhdGlvbnNMaXN0IGRvbWFpbj17RE9NQUlOUy5TSURFfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGlzIG9ubHkgbmVjZXNzYXJ5IGJlY2F1c2Ugd2UgaGF2ZSBhbiBpbnRlcm1lZGlhcnkgPGRpdj4gd3JhcHBpbmcgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxWaWV3PiBjb21wb25lbnQgdGhhdCBpcyB1c2VkIHRvIHdyYXAgZXZlcnkgY29udGVudC12aWV3LiBUaGlzIGludGVybWVkaWFyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PiBpcyBzb2xlbHkgdXNlZCBmb3IgYWRkaW5nIHRoZSB0cmFja2luZyBjb250ZXh0IHRvIHRoZSBjb250ZW50LXZpZXcuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhvd2V2ZXIsIHRoaXMgY291bGQgYmUgZG9uZSBieSBwYXNzaW5nIHRoZSB0cmFja2luZyBjb250ZXh0IHRvIHRoZSA8Vmlldz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGxldCBpdCBkbyB0aGUgbGF5b3V0LCBzbyB3ZSBjYW4gYXZvaWQgbGF5aW5nIG91ciBmcm9tIHRoZSBvdXRzaWRlIGFzIHdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvIGhlcmUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+ICo6bm90KDpmaXJzdC1vZi10eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UG9ydGFsc0NvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17bGF5b3V0UmVmc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0VG9wPXtESU1FTlNJT05TLmhlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0TGVmdD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleUZyb21VcmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IERJTUVOU0lPTlMubmV3TmF2TWVudVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IERJTUVOU0lPTlMubmF2TWVudVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldExlZnRPbkV4cGFuZGVkTWVudT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleUZyb21VcmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaXNOZXdOYXZpZ2F0aW9uRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IERJTUVOU0lPTlMubmV3TmF2TWVudUV4cGFuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogRElNRU5TSU9OUy5uYXZNZW51RXhwYW5kZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJzBweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTd2l0Y2g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb209XCIvcHJvZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG89XCIvYWNjb3VudC9wcm9maWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlIHBhdGg9XCIvYWNjb3VudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSW4gY2FzZSB0aGUgQXBwU2hlbGwgdXNlcyB0aGUgYHJlbmRlcmAgZnVuY3Rpb24sIHdlIGFzc3VtZSBpdCdzIG9uZSBvZiB0d28gY2FzZXM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAxLiBUaGUgYXBwbGljYXRpb24gZG9lcyBub3QgdXNlIGBjaGlsZHJlbmAgYW5kIHRoZXJlZm9yZSBpbXBsZW1lbnRzIHRoZSByb3V0ZXMgaW5jbHVkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgPFJvdXRlQ2F0Y2hBbGw+ICh0aGlzIGlzIHRoZSBcImxlZ2FjeVwiIGJlaGF2aW9yKS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIDIuIEl0J3MgdGhlIGFjY291bnQgYXBwbGljYXRpb24sIHdoaWNoIGFsd2F5cyB1c2VzIGByZW5kZXJgIGFuZCB0aGVyZWZvcmUgc2hvdWxkIHJlbmRlciBhcyBub3JtYWwuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSW4gY2FzZSB0aGUgQXBwU2hlbGwgdXNlcyB0aGUgYGNoaWxkcmVuYCBmdW5jdGlvbiwgd2UgY2FuIGFsd2F5cyBhc3N1bWUgdGhhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaXQncyBhIG5vcm1hbCBDdXN0b20gQXBwbGljYXRpb24gYW5kIHRoYXQgaXQgc2hvdWxkIHRyaWdnZXIgYSBmb3JjZSByZWxvYWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLnJlbmRlciA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD57cHJvcHMucmVuZGVyKCl9PC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGVDYXRjaEFsbCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIFByb2plY3Qgcm91dGVzICovfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGUgZXhhY3Q9e3RydWV9IHBhdGg9XCIvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c1Byb2plY3RLZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRQcmV2aW91c1Byb2plY3RLZXkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj8uZGVmYXVsdFByb2plY3RLZXkgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIE5PVEU6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIEdpdmVuIHRoZSB1c2VyIGhhcyBub3QgYmVlbiBsb2FkZWQgYSBsb2FkaW5nIHNwaW5uZXIgaXMgc2hvd24uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIEdpdmVuIHRoZSB1c2VyIHdhcyBub3Qgd29ya2luZyBvbiBhIHByb2plY3QgcHJldmlvdXNseSBub3IgaGFzIGEgZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBwcm9qZWN0LCB0aGUgdXNlciB3aWxsIGJlIHByb21wdGVkIHRvIGNyZWF0ZSBvbmUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIEdpdmVuIHRoZSB1c2VyIHdhcyB3b3JraW5nIG9uIGEgcHJvamVjdCBwcmV2aW91c2x5IG9yIGhhcyBhIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgcHJvamVjdCwgdGhlIGFwcGxpY2F0aW9uIHdpbGwgcmVkaXJlY3QgdG8gdGhhdCBwcm9qZWN0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXVzZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8QXBwbGljYXRpb25Mb2FkZXIgLz47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByZXZpb3VzUHJvamVjdEtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxSZWRpcmVjdFRvUHJvamVjdENyZWF0ZSAvPjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvPXtgLyR7cHJldmlvdXNQcm9qZWN0S2V5fWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZSBleGFjdD17ZmFsc2V9IHBhdGg9XCIvOnByb2plY3RLZXlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvamVjdENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZVJvdXRlUGVybWlzc2lvbkNoZWNrPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuZGlzYWJsZVJvdXRlUGVybWlzc2lvbkNoZWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGVmZmVjdGl2ZWx5IHJlbmRlcnMgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGlsZHJlbiwgd2hpY2ggaXMgdGhlIGFwcGxpY2F0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzcGVjaWZpYyBwYXJ0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXI9e3Byb3BzLnJlbmRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Qcm9qZWN0Q29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JvdXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Td2l0Y2g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA8L05ld01haW5OYXZpZ2F0aW9uRmxhZ1dyYXBwZXI+XG4gICAgICAgICAgICAgICAgICA8L1NldHVwRmxvcEZsaXBQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L0NvbmZpZ3VyZUludGxQcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvQXN5bmNMb2NhbGVEYXRhPlxuICAgICAgICAgIDwvQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXI+XG4gICAgICAgICk7XG4gICAgICB9fVxuICAgIDwvRmV0Y2hVc2VyPlxuICApO1xufTtcbkFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkLmRpc3BsYXlOYW1lID0gJ0FwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkJztcblxuZXhwb3J0IGRlZmF1bHQgQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQ7XG4iXX0= */"),
1191
- children: (() => {
1192
- // The <NavBar> should only be rendered within a project
1193
- // context, therefore when there is a `projectKey`.
1194
- // If there is no `projectKey` in the URL (e.g. `/account`
1195
- // routes), we don't render it.
1196
- // NOTE: we also "cache" the `projectKey` in localStorage
1197
- // but this should only be used to "re-hydrate" the URL
1198
- // location (e.g when you go to `/`, there should be a
1199
- // redirect to `/:projectKey`). Therefore, we should not
1200
- // rely on the value in localStorage to determine which
1201
- // `projectKey` is currently used.
1202
- if (!projectKeyFromUrl) return null;
1203
- return jsxRuntime.jsx(FetchProject, {
1204
- projectKey: projectKeyFromUrl,
1205
- children: _ref9 => {
1206
- let isLoadingProject = _ref9.isLoading,
1207
- project = _ref9.project;
1208
- const isLoading = isLoadingUser || isLoadingLocaleData || isLoadingProject || !locale || !project;
1209
- return jsxRuntime.jsx(applicationShellConnectors.ApplicationContextProvider, {
1210
- user: user,
1211
- environment: applicationEnvironment
1212
- // NOTE: do not pass the `project` into the application context.
1213
- // The permissions for the Navbar are resolved separately, within
1214
- // a different React context.
1215
- ,
1216
- children: jsxRuntime.jsx(Navbar, {
1217
- applicationLocale: locale,
1218
- projectKey: projectKeyFromUrl,
1219
- project: project,
1220
- environment: applicationEnvironment,
1221
- onMenuItemClick: props.onMenuItemClick,
1222
- isLoading: isLoading,
1223
- isNewNavigationEnabled: isNewNavigationEnabled,
1224
- isNewNavigationEnabledEvaluationReady: isNewNavigationEnabledEvaluationReady
1225
- })
1226
- });
1227
- }
1228
- });
1229
- })()
1230
- }), isLoadingUser || isLoadingLocaleData ? jsxRuntime.jsx(MainContainer, {
1231
- isNewNavigationEnabled: isNewNavigationEnabled,
1232
- role: "main",
1233
- children: jsxRuntime.jsx(ApplicationLoader, {})
1234
- }) : jsxRuntime.jsxs(MainContainer, {
1235
- isNewNavigationEnabled: isNewNavigationEnabled,
1236
- role: "main",
1237
- children: [jsxRuntime.jsx("div", {
1238
- ref: notificationsPageRef,
1239
- children: jsxRuntime.jsx(reactNotifications.NotificationsList, {
1240
- domain: constants.DOMAINS.PAGE
1241
- })
1242
- }), jsxRuntime.jsx(reactNotifications.NotificationsList, {
1243
- domain: constants.DOMAINS.SIDE
1244
- }), jsxRuntime.jsxs("div", {
1245
- css: _ref,
1246
- children: [jsxRuntime.jsx(applicationComponents.PortalsContainer
1247
- // @ts-ignore
1248
- , {
1249
- ref: layoutRefs,
1250
- offsetTop: oidc.DIMENSIONS.header,
1251
- offsetLeft: projectKeyFromUrl ? isNewNavigationEnabled ? oidc.DIMENSIONS.newNavMenu : oidc.DIMENSIONS.navMenu : '0px',
1252
- offsetLeftOnExpandedMenu: projectKeyFromUrl ? isNewNavigationEnabled ? oidc.DIMENSIONS.newNavMenuExpanded : oidc.DIMENSIONS.navMenuExpanded : '0px'
1253
- }), jsxRuntime.jsxs(reactRouterDom.Switch, {
1254
- children: [jsxRuntime.jsx(reactRouterDom.Redirect, {
1255
- from: "/profile",
1256
- to: "/account/profile"
1257
- }), jsxRuntime.jsx(reactRouterDom.Route, {
1258
- path: "/account",
1259
- children:
1260
- /**
1261
- * In case the AppShell uses the `render` function, we assume it's one of two cases:
1262
- * 1. The application does not use `children` and therefore implements the routes including
1263
- * the <RouteCatchAll> (this is the "legacy" behavior).
1264
- * 2. It's the account application, which always uses `render` and therefore should render as normal.
1265
- *
1266
- * In case the AppShell uses the `children` function, we can always assume that
1267
- * it's a normal Custom Application and that it should trigger a force reload.
1268
- */
1269
- props.render ? jsxRuntime.jsx(jsxRuntime.Fragment, {
1270
- children: props.render()
1271
- }) : jsxRuntime.jsx(index.RouteCatchAll, {})
1272
- }), jsxRuntime.jsx(reactRouterDom.Route, {
1273
- exact: true,
1274
- path: "/",
1275
- children: (_user$defaultProjectK => {
1276
- const previousProjectKey = getPreviousProjectKey((_user$defaultProjectK = user === null || user === void 0 ? void 0 : user.defaultProjectKey) !== null && _user$defaultProjectK !== void 0 ? _user$defaultProjectK : undefined);
1277
-
1278
- /**
1279
- * NOTE:
1280
- * Given the user has not been loaded a loading spinner is shown.
1281
- * Given the user was not working on a project previously nor has a default
1282
- * project, the user will be prompted to create one.
1283
- * Given the user was working on a project previously or has a default
1284
- * project, the application will redirect to that project.
1285
- */
1286
- if (!user) return jsxRuntime.jsx(ApplicationLoader, {});
1287
- if (!previousProjectKey) return jsxRuntime.jsx(RedirectToProjectCreate, {});
1288
- return jsxRuntime.jsx(reactRouterDom.Redirect, {
1289
- to: "/".concat(previousProjectKey)
1290
- });
1291
- })()
1292
- }), jsxRuntime.jsx(reactRouterDom.Route, {
1293
- exact: false,
1294
- path: "/:projectKey",
1295
- children: jsxRuntime.jsx(ProjectContainer, {
1296
- user: user,
1297
- environment: applicationEnvironment,
1298
- disableRoutePermissionCheck: props.disableRoutePermissionCheck
1299
- // This effectively renders the
1300
- // children, which is the application
1301
- // specific part
1302
- ,
1303
- render: props.render,
1304
- children: props.children
1305
- })
1306
- })]
1307
- })]
1308
- })]
1309
- })]
1310
- })]
1311
- });
1312
- }
1313
- })
1314
- })
1315
- }));
1316
- }
1317
- })
1318
- });
1319
- }
1320
- });
1321
- };
1322
- ApplicationShellAuthenticated.propTypes = process.env.NODE_ENV !== "production" ? {
1323
- featureFlags: _pt__default["default"].any,
1324
- defaultFeatureFlags: _pt__default["default"].any,
1325
- onMenuItemClick: _pt__default["default"].func,
1326
- disableRoutePermissionCheck: _pt__default["default"].bool,
1327
- render: _pt__default["default"].func,
1328
- children: _pt__default["default"].node
1329
- } : {};
1330
- ApplicationShellAuthenticated.displayName = 'ApplicationShellAuthenticated';
1331
-
1332
- const maxTitleCharLength = 24;
1333
- const staticPaths = ['account', 'login'];
1334
- const defaultProps$1 = {
1335
- additionalParts: []
1336
- };
1337
- const getPageTitle = (pathname, additionalParts) => {
1338
- const _pathname$split = pathname.split('/'),
1339
- _pathname$split2 = _slicedToArray(_pathname$split, 3),
1340
- projectKeyOrStaticPath = _pathname$split2[1],
1341
- entryPointUriPath = _pathname$split2[2];
1342
- const customTitleParts = _mapInstanceProperty__default["default"](additionalParts).call(additionalParts, titlePart => {
1343
- if (titlePart.length <= maxTitleCharLength) {
1344
- return titlePart;
1345
- }
1346
- return [_sliceInstanceProperty__default["default"](titlePart).call(titlePart, 0, maxTitleCharLength / 2), _sliceInstanceProperty__default["default"](titlePart).call(titlePart, titlePart.length - maxTitleCharLength / 2)].join('...');
1347
- });
1348
- if (_includesInstanceProperty__default["default"](staticPaths).call(staticPaths, projectKeyOrStaticPath)) {
1349
- return [...(customTitleParts || []), upperFirst__default["default"](projectKeyOrStaticPath), 'Merchant Center'].join(' - ');
1350
- }
1351
- return [...(customTitleParts || []), upperFirst__default["default"](entryPointUriPath), projectKeyOrStaticPath, 'Merchant Center'].join(' - ');
1352
- };
1353
- const ApplicationPageTitle = props => {
1354
- const location = reactRouterDom.useLocation();
1355
- react.useLayoutEffect(() => {
1356
- const pageTitle = getPageTitle(location.pathname, props.additionalParts);
1357
- document.title = pageTitle;
1358
- }, [location.pathname, props.additionalParts]);
1359
- return null;
1360
- };
1361
- ApplicationPageTitle.propTypes = {
1362
- additionalParts: _pt__default["default"].arrayOf(_pt__default["default"].string).isRequired
1363
- };
1364
- ApplicationPageTitle.displayName = 'ApplicationPageTitle';
1365
- ApplicationPageTitle.defaultProps = defaultProps$1;
1366
-
1367
- function ownKeys$4(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; }
1368
- function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$4(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$4(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
1369
- const SuspendedRoute = props => jsxRuntime.jsx(reactRouterDom.Route, _objectSpread$4(_objectSpread$4({}, props), {}, {
1370
- children: jsxRuntime.jsx(react.Suspense, {
1371
- fallback: jsxRuntime.jsx(LoadingSpinner__default["default"], {}),
1372
- children: props.children
1373
- })
1374
- }));
1375
- SuspendedRoute.displayName = 'SuspendedRoute';
1376
-
1377
- var AmILoggedInQuery = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "AmILoggedIn" }, variableDefinitions: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "amILoggedIn" }, arguments: [], directives: [] }] } }], loc: { start: 0, end: 36, source: { body: "query AmILoggedIn {\n amILoggedIn\n}\n", name: "GraphQL request", locationOffset: { line: 1, column: 1 } } } };
1378
- const AmILoggedIn = props => {
1379
- // ...otherwise, we ping a "secured" endpoint in the MC API to see if there is
1380
- // a valid access token. If we get an error, we assume that the user is not
1381
- // authenticated. If we don't get any error, the access token sent with the cookie
1382
- // is valid. We return null while the query is loading.
1383
- const _useMcQuery = applicationShellConnectors.useMcQuery(AmILoggedInQuery, {
1384
- context: {
1385
- target: constants.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND,
1386
- skipTokenRetry: true
1387
- },
1388
- // NOTE: With `no-cache` the `useQuery` will not trigger a
1389
- // re-render of the `AmILoggedIn` component. Relying on a default
1390
- // fetch policy results in rendering the component without refetching the data
1391
- // which as a result unmounts child components (such as an application).
1392
- //
1393
- // For example:
1394
- // Given the user not authenticated
1395
- // Then the first pass of useQuery returns an exptected error
1396
- // Given the query is triggered again (through `useQuery`)
1397
- // Then the component will re-render
1398
- // Resulting in inconsistent data with the error not being defined
1399
- fetchPolicy: 'no-cache',
1400
- onCompleted: data => {
1401
- if (!data) {
1402
- // In case the request is 200 but there is no data, we assume
1403
- // there are some errors.
1404
- window.localStorage.removeItem(constants.STORAGE_KEYS.IS_AUTHENTICATED);
1405
- } else {
1406
- // Even though the login page might set this flag, we just make sure that
1407
- // we do it here as well. This will help in the future when we eventually
1408
- // move the auth service to itw own domain, in which case the local storage
1409
- // is not shared anymore.
1410
- window.localStorage.setItem(constants.STORAGE_KEYS.IS_AUTHENTICATED, String(true));
1411
- }
1412
- },
1413
- onError: () => {
1414
- // The query fails without the `mcAccessToken`. In this case the caching
1415
- // needs to be unset as otherwise the application will end up in a infinte
1416
- // redirect loop.
1417
- window.localStorage.removeItem(constants.STORAGE_KEYS.IS_AUTHENTICATED);
1418
- }
1419
- }),
1420
- data = _useMcQuery.data,
1421
- loading = _useMcQuery.loading,
1422
- error = _useMcQuery.error;
1423
- if (error) {
1424
- // No matter what error, we consider it as a failed authentication
1425
- return jsxRuntime.jsx(jsxRuntime.Fragment, {
1426
- children: props.render({
1427
- isAuthenticated: false
1428
- })
1429
- });
1430
- }
1431
- if (!loading && data && data.amILoggedIn) {
1432
- return jsxRuntime.jsx(jsxRuntime.Fragment, {
1433
- children: props.render({
1434
- isAuthenticated: true
1435
- })
1436
- });
1437
- }
1438
- return null;
1439
- };
1440
- AmILoggedIn.displayName = 'AmILoggedIn';
1441
-
1442
- const withoutProjectKeyClaim = scope => {
1443
- var _context;
1444
- return _filterInstanceProperty__default["default"](_context = scope.split(' ')).call(_context, claim => !_startsWithInstanceProperty__default["default"](claim).call(claim, oidc.OIDC_CLAIMS.PROJECT_KEY)).join(' ');
1445
- };
1446
- const hasCachedAuthenticationState = () => {
1447
- var _window$app$__DEVELOP;
1448
- if ((_window$app$__DEVELOP = window.app.__DEVELOPMENT__) !== null && _window$app$__DEVELOP !== void 0 && (_window$app$__DEVELOP = _window$app$__DEVELOP.oidc) !== null && _window$app$__DEVELOP !== void 0 && _window$app$__DEVELOP.authorizeUrl) {
1449
- try {
1450
- var _window$app$__DEVELOP5, _window$app$__DEVELOP6, _window$app$__DEVELOP7, _window$app$__DEVELOP8;
1451
- const activeProjectKey = applicationShellConnectors.oidcStorage.getActiveProjectKey();
1452
- if (activeProjectKey) {
1453
- var _window$app$__DEVELOP2;
1454
- // GIVEN The application is not requesting a project key,
1455
- // THEN we assume that the application does not need a project context.
1456
- // GIVEN The application is not requesting a project key,
1457
- // THEN we remove the cached project key.
1458
- // This is the case of an application like `account`.
1459
- if (!((_window$app$__DEVELOP2 = window.app.__DEVELOPMENT__) !== null && _window$app$__DEVELOP2 !== void 0 && (_window$app$__DEVELOP2 = _window$app$__DEVELOP2.oidc) !== null && _window$app$__DEVELOP2 !== void 0 && _window$app$__DEVELOP2.initialProjectKey)) {
1460
- applicationShellConnectors.oidcStorage.removeActiveProjectKey();
1461
- }
1462
- } else {
1463
- var _window$app$__DEVELOP3;
1464
- if ((_window$app$__DEVELOP3 = window.app.__DEVELOPMENT__) !== null && _window$app$__DEVELOP3 !== void 0 && (_window$app$__DEVELOP3 = _window$app$__DEVELOP3.oidc) !== null && _window$app$__DEVELOP3 !== void 0 && _window$app$__DEVELOP3.initialProjectKey) {
1465
- var _window$app$__DEVELOP4;
1466
- // Here we store the initial project key in local storage,
1467
- // so that it gets picked up when we initiate the login flow.
1468
- applicationShellConnectors.oidcStorage.setActiveProjectKey((_window$app$__DEVELOP4 = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP4 === void 0 || (_window$app$__DEVELOP4 = _window$app$__DEVELOP4.oidc) === null || _window$app$__DEVELOP4 === void 0 ? void 0 : _window$app$__DEVELOP4.initialProjectKey);
1469
- }
1470
- }
1471
-
1472
- // cachedScope is assumed to be the exact cached version of the `requestedScope`
1473
- // if they don't match, then we know that one of the claims within the scope has changed
1474
- // given a change, we need to force the user to log in, so that new values on respective claim
1475
- // will apply for the given custom application
1476
- const cachedScope = applicationShellConnectors.oidcStorage.getSessionScope();
1477
- // Force the user to log in again
1478
- if (!cachedScope) {
1479
- return false;
1480
- }
1481
- // Rebuild the requested OIDC scope to verify that it didn't change.
1482
- const requestedScope = oidc.buildOidcScope({
1483
- projectKey: activeProjectKey !== null && activeProjectKey !== void 0 ? activeProjectKey : undefined,
1484
- oAuthScopes: (_window$app$__DEVELOP5 = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP5 === void 0 || (_window$app$__DEVELOP5 = _window$app$__DEVELOP5.oidc) === null || _window$app$__DEVELOP5 === void 0 ? void 0 : _window$app$__DEVELOP5.oAuthScopes,
1485
- additionalOAuthScopes: (_window$app$__DEVELOP6 = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP6 === void 0 || (_window$app$__DEVELOP6 = _window$app$__DEVELOP6.oidc) === null || _window$app$__DEVELOP6 === void 0 ? void 0 : _window$app$__DEVELOP6.additionalOAuthScopes,
1486
- teamId: (_window$app$__DEVELOP7 = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP7 === void 0 || (_window$app$__DEVELOP7 = _window$app$__DEVELOP7.oidc) === null || _window$app$__DEVELOP7 === void 0 ? void 0 : _window$app$__DEVELOP7.teamId,
1487
- applicationId: (_window$app$__DEVELOP8 = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP8 === void 0 || (_window$app$__DEVELOP8 = _window$app$__DEVELOP8.oidc) === null || _window$app$__DEVELOP8 === void 0 ? void 0 : _window$app$__DEVELOP8.applicationId
1488
- });
1489
- // Omit the project key from the check. This allows to switch projects
1490
- // without having to log in again.
1491
- const cachedScopeWithoutProjectKey = withoutProjectKeyClaim(cachedScope);
1492
- const requestedScopeWithoutProjectKey = withoutProjectKeyClaim(requestedScope);
1493
- // Check that the session scope didn't change.
1494
- if (cachedScopeWithoutProjectKey === requestedScopeWithoutProjectKey) {
1495
- return true;
1496
- }
1497
- return false;
1498
- } catch (err) {
1499
- return false;
1500
- }
1501
- }
1502
- return window.localStorage.getItem(constants.STORAGE_KEYS.IS_AUTHENTICATED) === 'true';
1503
- };
1504
-
1505
- const OidcCallback = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./oidc-callback-d8c66ca9.cjs.dev.js' /* webpackChunkName: "oidc-callback" */); }));
1506
-
1507
- function ownKeys$3(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; }
1508
- function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$3(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$3(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
1509
- const Authenticated = props => {
1510
- var _window$app$__DEVELOP;
1511
- // We attempt to see if the user was already authenticated by looking
1512
- // at the "cached" flag in local storage.
1513
- const cachedAuthenticationState = hasCachedAuthenticationState();
1514
- if (cachedAuthenticationState) {
1515
- return jsxRuntime.jsx(jsxRuntime.Fragment, {
1516
- children: props.render({
1517
- isAuthenticated: true
1518
- })
1519
- });
1520
- }
1521
-
1522
- // When using the OIDC workflow, we always return false, to trigger
1523
- // the redirect to the login page.
1524
- if ((_window$app$__DEVELOP = window.app.__DEVELOPMENT__) !== null && _window$app$__DEVELOP !== void 0 && (_window$app$__DEVELOP = _window$app$__DEVELOP.oidc) !== null && _window$app$__DEVELOP !== void 0 && _window$app$__DEVELOP.authorizeUrl) {
1525
- return jsxRuntime.jsx(jsxRuntime.Fragment, {
1526
- children: props.render({
1527
- isAuthenticated: false
1528
- })
1529
- });
1530
- }
1531
-
1532
- // Fall back to check for cookie-based authentication.
1533
- return jsxRuntime.jsx(AmILoggedIn, _objectSpread$3({}, props));
1534
- };
1535
- Authenticated.displayName = 'Authenticated';
1536
- const AuthenticationRoutes = props => jsxRuntime.jsxs(reactRouterDom.Switch, {
1537
- children: [jsxRuntime.jsx(SuspendedRoute, {
1538
- path: "/account/oidc/callback",
1539
- children: jsxRuntime.jsx(OidcCallback, {
1540
- locale: props.locale,
1541
- applicationMessages: props.applicationMessages
1542
- })
1543
- }), jsxRuntime.jsx(SuspendedRoute, {
1544
- path: "/:projectKey/:identifier/oidc/callback",
1545
- children: jsxRuntime.jsx(OidcCallback, {
1546
- locale: props.locale,
1547
- applicationMessages: props.applicationMessages
1548
- })
1549
- }), jsxRuntime.jsx(reactRouterDom.Route, {
1550
- children: jsxRuntime.jsx(Authenticated, _objectSpread$3({}, props))
1551
- })]
1552
- });
1553
- AuthenticationRoutes.displayName = 'AuthenticationRoutes';
1554
-
1555
- 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; }
1556
- function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys$2(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys$2(Object(t))).call(_context3, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
1557
- /**
1558
- * NOTE:
1559
- * This function try-catches around a `JSON.parse` and return
1560
- * the parsed value whenever possible.
1561
- *
1562
- * This allows parsing most primitive values.
1563
- *
1564
- * - `JSON.parse('null')` => `null`
1565
- * - `JSON.parse('1')` => `1`
1566
- * - `JSON.parse('["a", "b"]')` => `['a', 'b']`
1567
- */
1568
- const getCoerceEnvironmentValue = environmentValueAsString => {
1569
- // Return the value as-is if it's not a string.
1570
- if (typeof environmentValueAsString !== 'string') {
1571
- return environmentValueAsString;
1572
- }
1573
-
1574
- // In case the value is a string, we try to parse it to attempt to extract
1575
- // the primitive value, if the original value is indeed supposed to be a primitive.
1576
- // For example, `'1'` is converted to a number, `'true'` is converted to a boolean, etc.
1577
- try {
1578
- // Strip out escaped quotes. This is mostly important to coerce an array of string
1579
- // with escaped quotes.
1580
- return JSON.parse(String(environmentValueAsString).replace(/(\\")/g, '"'));
1581
- } catch (e) {
1582
- return environmentValueAsString;
1583
- }
1584
- };
1585
- const shallowlyCoerceValues = uncoercedEnvironmentValues => {
1586
- var _context;
1587
- return _reduceInstanceProperty__default["default"](_context = _Object$keys__default["default"](uncoercedEnvironmentValues)).call(_context, (coercedEnvironmentValues, key) => {
1588
- const uncoercedEnvironmentValue = uncoercedEnvironmentValues[key];
1589
- return _objectSpread$2(_objectSpread$2({}, coercedEnvironmentValues), {}, {
1590
- [key]: getCoerceEnvironmentValue(uncoercedEnvironmentValue)
1591
- });
1592
- }, {});
1593
- };
1594
- const useCoercedEnvironmentValues = environment => {
1595
- const coercedEnvironmentValues = react.useMemo(() => shallowlyCoerceValues(environment), [environment]);
1596
- return coercedEnvironmentValues;
1597
- };
1598
-
1599
- const ApplicationShellProvider = props => {
1600
- const apolloClient = react.useMemo(() => {
1601
- var _props$apolloClient;
1602
- return (_props$apolloClient = props.apolloClient) !== null && _props$apolloClient !== void 0 ? _props$apolloClient : applicationShellConnectors.createApolloClient();
1603
- }, [props.apolloClient]);
1604
- react.useEffect(() => {
1605
- applicationShellConnectors.setCachedApolloClient(apolloClient);
1606
- }, [apolloClient]);
1607
- const coercedEnvironmentValues = useCoercedEnvironmentValues(props.environment);
1608
- const browserLocale = getBrowserLocale(window);
1609
- return jsxRuntime.jsx(react.Suspense, {
1610
- fallback: jsxRuntime.jsx(ApplicationLoader, {}),
1611
- children: jsxRuntime.jsx(ErrorBoundary, {
1612
- children: jsxRuntime.jsx(applicationShellConnectors.ApplicationContextProvider, {
1613
- environment: coercedEnvironmentValues,
1614
- children: jsxRuntime.jsx(reactRedux.Provider, {
1615
- store: index.internalReduxStore,
1616
- children: jsxRuntime.jsx(react$2.ApolloProvider, {
1617
- client: apolloClient,
1618
- children: jsxRuntime.jsxs(reactRouterDom.Router, {
1619
- history: getBrowserHistory(),
1620
- children: [jsxRuntime.jsx(ApplicationPageTitle, {}), jsxRuntime.jsx(AuthenticationRoutes, {
1621
- locale: browserLocale,
1622
- applicationMessages: props.applicationMessages,
1623
- render: _ref => {
1624
- let isAuthenticated = _ref.isAuthenticated;
1625
- if (isAuthenticated) return props.children({
1626
- isAuthenticated
1627
- });
1628
- return jsxRuntime.jsx(i18n.AsyncLocaleData, {
1629
- locale: browserLocale,
1630
- applicationMessages: props.applicationMessages,
1631
- children: _ref2 => {
1632
- let locale = _ref2.locale,
1633
- messages = _ref2.messages;
1634
- return jsxRuntime.jsx(ConfigureIntlProvider, {
1635
- locale: locale,
1636
- messages: messages,
1637
- children: props.children({
1638
- isAuthenticated
1639
- })
1640
- });
1641
- }
1642
- });
1643
- }
1644
- })]
1645
- })
1646
- })
1647
- })
1648
- })
1649
- })
1650
- });
1651
- };
1652
- ApplicationShellProvider.propTypes = process.env.NODE_ENV !== "production" ? {
1653
- apolloClient: _pt__default["default"].any,
1654
- children: _pt__default["default"].func.isRequired
1655
- } : {};
1656
- ApplicationShellProvider.displayName = 'ApplicationShellProvider';
1657
-
1658
- const RedirectToLogin = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./redirect-to-login-aa538da2.cjs.dev.js' /* webpackChunkName: "redirect-to-login" */); }));
1659
-
1660
- 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)."; }
1661
- const styles = process.env.NODE_ENV === "production" ? {
1662
- name: "1prreal",
1663
- styles: "html,body{font-size:var(--font-size-for-body);height:100vh;}#app{height:100%;}"
1664
- } : {
1665
- name: "6fkj0f-styles",
1666
- styles: "html,body{font-size:var(--font-size-for-body);height:100vh;}#app{height:100%;};label:styles;",
1667
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdsb2JhbC1zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdrQiIsImZpbGUiOiJnbG9iYWwtc3R5bGVzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbS9tYXRlcmlhbHMvcmVzZXRzLmNzcyc7XG5pbXBvcnQgeyBHbG9iYWwsIGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuY29uc3Qgc3R5bGVzID0gY3NzYFxuICBodG1sLFxuICBib2R5IHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1mb3ItYm9keSk7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgfVxuXG4gICNhcHAge1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuYDtcblxuY29uc3QgR2xvYmFsU3R5bGVzID0gKCkgPT4gPEdsb2JhbCBzdHlsZXM9e3N0eWxlc30gLz47XG5cbmV4cG9ydCBkZWZhdWx0IEdsb2JhbFN0eWxlcztcbiJdfQ== */",
1668
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
1669
- };
1670
- const GlobalStyles = () => jsxRuntime.jsx(react$1.Global, {
1671
- styles: styles
1672
- });
1673
-
1674
- const ApplicationShell = props => {
1675
- react.useEffect(() => {
1676
- var _props$onRegisterErro;
1677
- (_props$onRegisterErro = props.onRegisterErrorListeners) === null || _props$onRegisterErro === void 0 || _props$onRegisterErro.call(props, {
1678
- dispatch: index.internalReduxStore.dispatch
1679
- });
1680
- // eslint-disable-next-line react-hooks/exhaustive-deps
1681
- }, []); // <-- run only once, when component mounts
1682
-
1683
- return jsxRuntime.jsxs(jsxRuntime.Fragment, {
1684
- children: [jsxRuntime.jsx(GlobalStyles, {}), jsxRuntime.jsx(ApplicationShellProvider, {
1685
- apolloClient: props.apolloClient,
1686
- environment: props.environment,
1687
- applicationMessages: props.applicationMessages,
1688
- children: _ref => {
1689
- let isAuthenticated = _ref.isAuthenticated;
1690
- if (isAuthenticated) {
1691
- return jsxRuntime.jsxs(reactRouterDom.Switch, {
1692
- children: [jsxRuntime.jsx(SuspendedRoute, {
1693
- path: "/logout",
1694
- children: jsxRuntime.jsx(RedirectToLogout, {})
1695
- }), jsxRuntime.jsx(SuspendedRoute, {
1696
- children: jsxRuntime.jsx(ApplicationShellAuthenticated, {
1697
- defaultFeatureFlags: props.defaultFeatureFlags,
1698
- featureFlags: props.featureFlags,
1699
- render: props.render,
1700
- applicationMessages: props.applicationMessages,
1701
- onMenuItemClick: props.onMenuItemClick,
1702
- disableRoutePermissionCheck: props.disableRoutePermissionCheck,
1703
- children: props.children
1704
- })
1705
- })]
1706
- });
1707
- }
1708
- return jsxRuntime.jsx(RedirectToLogin, {});
1709
- }
1710
- })]
1711
- });
1712
- };
1713
- ApplicationShell.propTypes = process.env.NODE_ENV !== "production" ? {
1714
- apolloClient: _pt__default["default"].any,
1715
- featureFlags: _pt__default["default"].any,
1716
- defaultFeatureFlags: _pt__default["default"].any,
1717
- onRegisterErrorListeners: _pt__default["default"].func,
1718
- onMenuItemClick: _pt__default["default"].func,
1719
- disableRoutePermissionCheck: _pt__default["default"].bool,
1720
- render: _pt__default["default"].func,
1721
- children: _pt__default["default"].node
1722
- } : {};
1723
- ApplicationShell.displayName = 'ApplicationShell';
1724
- ApplicationShell.version = applicationShellVersion;
1725
-
1726
- const CustomViewDevHost = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./custom-view-dev-host-379d3461.cjs.dev.js' /* webpackChunkName: "custom-view-dev-host" */); }));
1727
-
1728
- 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; }
1729
- function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$1(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$1(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
1730
- const CustomViewWithPermissionCheck = props => {
1731
- const permissionKeys = ssr.entryPointUriPathToPermissionKeys(constants.CUSTOM_VIEW_HOST_ENTRY_POINT_URI_PATH);
1732
-
1733
- // Require View permission to render the application.
1734
- const canView = permissions.useIsAuthorized({
1735
- demandedPermissions: [permissionKeys.View]
1736
- });
1737
- if (canView) {
1738
- return jsxRuntime.jsx(jsxRuntime.Fragment, {
1739
- children: props.children
1740
- });
1741
- }
1742
- return jsxRuntime.jsx(applicationComponents.PageUnauthorized, {});
1743
- };
1744
- CustomViewWithPermissionCheck.propTypes = process.env.NODE_ENV !== "production" ? {
1745
- children: _pt__default["default"].node
1746
- } : {};
1747
- function CustomViewShellAuthenticated(props) {
1748
- const browserLocale = getBrowserLocale(window);
1749
- return jsxRuntime.jsx(FetchUser, {
1750
- children: _ref => {
1751
- let isLoading = _ref.isLoading,
1752
- fetchUserError = _ref.error,
1753
- user = _ref.user;
1754
- if (isLoading) {
1755
- return jsxRuntime.jsx(ApplicationLoader, {});
1756
- }
1757
- return jsxRuntime.jsx(i18n.AsyncLocaleData, {
1758
- locale: (user === null || user === void 0 ? void 0 : user.language) || browserLocale,
1759
- applicationMessages: props.messages,
1760
- children: _ref2 => {
1761
- let isLoadingLocaleData = _ref2.isLoading,
1762
- locale = _ref2.locale,
1763
- messages = _ref2.messages;
1764
- return jsxRuntime.jsx(ConfigureIntlProvider
1765
- // We do not want to pass the language as long as the locale data
1766
- // is not loaded.
1767
- , _objectSpread$1(_objectSpread$1({}, isLoadingLocaleData ? {} : {
1768
- locale,
1769
- messages
1770
- }), {}, {
1771
- children: jsxRuntime.jsx(applicationShellConnectors.ApplicationContextProvider, {
1772
- user: user,
1773
- environment: props.environment,
1774
- children: jsxRuntime.jsxs(jsxRuntime.Fragment, {
1775
- children: [jsxRuntime.jsx(designSystem.ThemeProvider, {
1776
- theme: "default"
1777
- }), jsxRuntime.jsx(FetchProject, {
1778
- projectKey: props.projectKey,
1779
- children: _ref3 => {
1780
- let isProjectLoading = _ref3.isLoading,
1781
- project = _ref3.project;
1782
- if (fetchUserError) {
1783
- return jsxRuntime.jsx(applicationComponents.PageUnauthorized, {});
1784
- }
1785
- if (isProjectLoading) {
1786
- return jsxRuntime.jsx(ApplicationLoader, {});
1787
- }
1788
- return jsxRuntime.jsx(applicationShellConnectors.ApplicationContextProvider, {
1789
- user: user,
1790
- project: project,
1791
- projectDataLocale: props.dataLocale,
1792
- environment: props.environment,
1793
- children: jsxRuntime.jsx(CustomViewWithPermissionCheck, {
1794
- children: props.children
1795
- })
1796
- });
1797
- }
1798
- })]
1799
- })
1800
- })
1801
- }));
1802
- }
1803
- });
1804
- }
1805
- });
1806
- }
1807
- CustomViewShellAuthenticated.propTypes = process.env.NODE_ENV !== "production" ? {
1808
- dataLocale: _pt__default["default"].string.isRequired,
1809
- projectKey: _pt__default["default"].string,
1810
- customViewConfig: _pt__default["default"].any.isRequired,
1811
- children: _pt__default["default"].node.isRequired
1812
- } : {};
1813
-
1814
- const browserLocale = getBrowserLocale(window);
1815
- function CustomViewShell(props) {
1816
- var _window$app$__DEVELOP;
1817
- const _useState = react.useState(),
1818
- _useState2 = _slicedToArray(_useState, 2),
1819
- hostContext = _useState2[0],
1820
- setHostContext = _useState2[1];
1821
- const iFrameCommunicationPort = react.useRef();
1822
- const hostMessageHandler = react.useCallback(event => {
1823
- if (event.data.eventName === constants.CUSTOM_VIEWS_EVENTS_NAMES.CUSTOM_VIEW_INITIALIZATION) {
1824
- setHostContext(event.data.eventData.context);
1825
- } else {
1826
- console.warn("CustomViewShell: Unknown received event with name: ".concat(event.data.eventName), {
1827
- event
1828
- });
1829
- }
1830
- }, []);
1831
- react.useEffect(() => {
1832
- const bootstrapMessageHandler = event => {
1833
- if ((event.origin === window.location.origin ||
1834
- // event.origin is not defined in test environment
1835
- process.env.NODE_ENV === 'test') && event.data === constants.CUSTOM_VIEWS_EVENTS_NAMES.CUSTOM_VIEW_BOOTSTRAP) {
1836
- iFrameCommunicationPort.current = event.ports[0];
1837
- iFrameCommunicationPort.current.onmessage = hostMessageHandler;
1838
- // Once bootstraped, we don't want to listen for global messages anymore.
1839
- // We will only listen to messages coming through the MessageChannel port.
1840
- window.removeEventListener('message', bootstrapMessageHandler);
1841
- } else {
1842
- console.warn('CustomViewShell: Received an event that is not allowed.', {
1843
- event
1844
- });
1845
- }
1846
- };
1847
- window.addEventListener('message', bootstrapMessageHandler);
1848
- return () => {
1849
- window.removeEventListener('message', bootstrapMessageHandler);
1850
- };
1851
- }, [hostMessageHandler]);
1852
- react.useEffect(() => {
1853
- // Close the channel when the component unmounts
1854
- return () => {
1855
- var _iFrameCommunicationP;
1856
- (_iFrameCommunicationP = iFrameCommunicationPort.current) === null || _iFrameCommunicationP === void 0 || _iFrameCommunicationP.close();
1857
- iFrameCommunicationPort.current = undefined;
1858
- };
1859
- }, []);
1860
- if (!hostContext) {
1861
- return jsxRuntime.jsx(ApplicationLoader, {
1862
- showLogo: true
1863
- });
1864
- }
1865
- const hostUrl = process.env.NODE_ENV === 'development' ? (_window$app$__DEVELOP = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP === void 0 ? void 0 : _window$app$__DEVELOP.customViewHostUrl : hostContext.hostUrl;
1866
- return jsxRuntime.jsx(ApplicationShellProvider, {
1867
- environment: window.app,
1868
- applicationMessages: props.applicationMessages,
1869
- children: _ref => {
1870
- let isAuthenticated = _ref.isAuthenticated;
1871
- if (isAuthenticated) {
1872
- return jsxRuntime.jsx(applicationShellConnectors.CustomViewContextProvider, {
1873
- hostUrl: hostUrl,
1874
- customViewConfig: hostContext.customViewConfig,
1875
- children: jsxRuntime.jsx(CustomViewShellAuthenticated, {
1876
- dataLocale: hostContext.dataLocale,
1877
- environment: window.app,
1878
- messages: props.applicationMessages,
1879
- projectKey: hostContext.projectKey,
1880
- customViewConfig: hostContext.customViewConfig,
1881
- children: props.children
1882
- })
1883
- });
1884
- }
1885
- return jsxRuntime.jsx(i18n.AsyncLocaleData, {
1886
- locale: browserLocale,
1887
- applicationMessages: props.applicationMessages,
1888
- children: _ref2 => {
1889
- let locale = _ref2.locale,
1890
- messages = _ref2.messages;
1891
- return jsxRuntime.jsx(ConfigureIntlProvider, {
1892
- locale: locale,
1893
- messages: messages,
1894
- children: jsxRuntime.jsx(applicationComponents.PageUnauthorized, {})
1895
- });
1896
- }
1897
- });
1898
- }
1899
- });
1900
- }
1901
- CustomViewShell.propTypes = process.env.NODE_ENV !== "production" ? {
1902
- disableDevHost: _pt__default["default"].bool,
1903
- children: _pt__default["default"].node.isRequired
1904
- } : {};
1905
- const CustomViewShellWrapper = props => {
1906
- if (process.env.NODE_ENV === 'development' && !props.disableDevHost) {
1907
- return jsxRuntime.jsx(react.Suspense, {
1908
- fallback: jsxRuntime.jsx(ApplicationLoader, {}),
1909
- children: jsxRuntime.jsx(CustomViewDevHost, {
1910
- applicationMessages: props.applicationMessages,
1911
- children: jsxRuntime.jsx(CustomViewShell, {
1912
- applicationMessages: props.applicationMessages,
1913
- children: props.children
1914
- })
1915
- })
1916
- });
1917
- }
1918
- return jsxRuntime.jsx(CustomViewShell, {
1919
- applicationMessages: props.applicationMessages,
1920
- children: props.children
1921
- });
1922
- };
1923
- CustomViewShellWrapper.propTypes = process.env.NODE_ENV !== "production" ? {
1924
- disableDevHost: _pt__default["default"].bool,
1925
- children: _pt__default["default"].node.isRequired
1926
- } : {};
1927
-
1928
- const defaultProps = {
1929
- shouldCleanUpOnUnmount: true
1930
- };
1931
- const InjectReducers = props => {
1932
- const _useState = react.useState(false),
1933
- _useState2 = _slicedToArray(_useState, 2),
1934
- areReducersInjected = _useState2[0],
1935
- setAreReducersInjected = _useState2[1];
1936
- const store = reactRedux.useStore();
1937
- react.useEffect(() => {
1938
- store.injectReducers({
1939
- id: props.id,
1940
- reducers: props.reducers
1941
- });
1942
- setAreReducersInjected(true);
1943
- return () => {
1944
- if (props.shouldCleanUpOnUnmount) {
1945
- store.removeReducers({
1946
- id: props.id
1947
- });
1948
- }
1949
- };
1950
- }, [props.id, props.reducers, props.shouldCleanUpOnUnmount, store]);
1951
-
1952
- // Render children only when the plugin reducers have been injected
1953
- if (areReducersInjected) return jsxRuntime.jsx(jsxRuntime.Fragment, {
1954
- children: props.children
1955
- });
1956
- return null;
1957
- };
1958
- InjectReducers.propTypes = {
1959
- id: _pt__default["default"].string.isRequired,
1960
- reducers: _pt__default["default"].any.isRequired,
1961
- shouldCleanUpOnUnmount: _pt__default["default"].bool.isRequired,
1962
- children: _pt__default["default"].node.isRequired
1963
- };
1964
- InjectReducers.displayName = 'InjectReducers';
1965
- InjectReducers.defaultProps = defaultProps;
1966
-
1967
- const errorMessageIgnoreList = [/ResizeObserver loop limit exceeded/i];
1968
-
1969
- // Ensure to initialize Sentry as soon as possible, so that we have the chance
1970
- // of catching possible errors.
1971
- sentry.boot();
1972
- const makeErrorToCapture = error => {
1973
- if (error instanceof Error) return error;
1974
- if (error instanceof ErrorEvent) return new Error(error.message);
1975
- return new Error(_JSON$stringify__default["default"](error.reason || 'Unhandled rejection without a reason'));
1976
- };
1977
- const getErrorMessage = error => {
1978
- if (typeof error === 'string') return error;
1979
- const errorToCapture = makeErrorToCapture(error);
1980
- return errorToCapture.message || errorToCapture.name;
1981
- };
1982
- const shouldErrorBeTracked = error => {
1983
- const errorMessage = getErrorMessage(error);
1984
- return !_someInstanceProperty__default["default"](errorMessageIgnoreList).call(errorMessageIgnoreList, match => match.test(errorMessage));
1985
- };
1986
- function setupGlobalErrorListener() {
1987
- // Capture unhandled errors generated from rejected Promises.
1988
- //
1989
- // http://www.2ality.com/2016/04/unhandled-rejections.html
1990
- // https://docs.getsentry.com/hosted/clients/javascript/usage/#promises
1991
- //
1992
- // Note: this currently works only in Chrome, and it might not be needed.
1993
- // We just keep it here as a nice-to-have thing.
1994
- window.addEventListener('unhandledrejection', event => {
1995
- if (process.env.NODE_ENV !== 'production')
1996
- // eslint-disable-next-line no-console
1997
- console.warn('An uncaught promise has been rejected and not properly ' + 'handled. This is most likely a bug in the software. Please ensure ' + 'that the promise is correctly handled.');
1998
- if (shouldErrorBeTracked(event)) {
1999
- const errorId = sentry.reportErrorToSentry(event);
2000
- index.internalReduxStore.dispatch(actionsGlobal.showUnexpectedErrorNotification({
2001
- errorId
2002
- }));
2003
- }
2004
- });
2005
-
2006
- // Capture normal global errors coming from non Promise code.
2007
- window.addEventListener('error', errorEvent => {
2008
- if (shouldErrorBeTracked(errorEvent)) {
2009
- const errorId = sentry.reportErrorToSentry(errorEvent);
2010
- index.internalReduxStore.dispatch(actionsGlobal.showUnexpectedErrorNotification({
2011
- errorId
2012
- }));
2013
- }
2014
- });
2015
- }
2016
-
2017
- 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; }
2018
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys(Object(t))).call(_context3, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
2019
-
2020
- /**
2021
- * The route path to match. Usually it starts with `/:projectKey/my-entry-point`.
2022
- */
2023
-
2024
- const makeRoute = (routePath, routeOptions) => {
2025
- const getUrl = (nextParams, nextQueryParams) => {
2026
- const baseUrl = reactRouterDom.generatePath(routePath, _objectSpread(_objectSpread({}, routeOptions.params), nextParams));
2027
- if (nextQueryParams) {
2028
- var _context;
2029
- return _concatInstanceProperty__default["default"](_context = "".concat(baseUrl, "?")).call(_context, nextQueryParams.toString());
2030
- }
2031
- return baseUrl;
2032
- };
2033
- const go = (nextParams, nextQueryParams) => {
2034
- routeOptions.goTo(getUrl(nextParams, nextQueryParams));
2035
- };
2036
- return {
2037
- path: routePath,
2038
- getUrl,
2039
- go
2040
- };
2041
- };
2042
- function useRoutesCreator() {
2043
- const _useRouteMatch = reactRouterDom.useRouteMatch(),
2044
- params = _useRouteMatch.params;
2045
- const _useHistory = reactRouterDom.useHistory(),
2046
- goTo = _useHistory.push,
2047
- location = _useHistory.location;
2048
- const createRoute = routePath => makeRoute(routePath, {
2049
- goTo,
2050
- params,
2051
- location
2052
- });
2053
- return {
2054
- createRoute
2055
- };
2056
- }
2057
-
2058
- exports.ApplicationLoader = ApplicationLoader;
2059
- exports.ApplicationPageTitle = ApplicationPageTitle;
2060
- exports.ApplicationShell = ApplicationShell;
2061
- exports.ApplicationShellProvider = ApplicationShellProvider;
2062
- exports.ButlerContainer = ButlerContainer;
2063
- exports.ConfigureIntlProvider = ConfigureIntlProvider;
2064
- exports.CustomViewShellWrapper = CustomViewShellWrapper;
2065
- exports.ErrorBoundary = ErrorBoundary;
2066
- exports.FetchProject = FetchProject;
2067
- exports.InjectReducers = InjectReducers;
2068
- exports.LoadingPlaceholder = LoadingPlaceholder;
2069
- exports.ProjectDataLocale = ProjectDataLocale;
2070
- exports.ProjectSwitcher = ProjectSwitcher;
2071
- exports.REQUESTS_IN_FLIGHT_LOADER_DOM_ID = REQUESTS_IN_FLIGHT_LOADER_DOM_ID;
2072
- exports.RedirectToLogin = RedirectToLogin;
2073
- exports.RedirectToProjectCreate = RedirectToProjectCreate;
2074
- exports.SetupFlopFlipProvider = SetupFlopFlipProvider;
2075
- exports.SuspendedRoute = SuspendedRoute;
2076
- exports.applicationShellVersion = applicationShellVersion;
2077
- exports.pimIndexerStates = pimIndexerStates;
2078
- exports.setupGlobalErrorListener = setupGlobalErrorListener;
2079
- exports.useRoutesCreator = useRoutesCreator;